Вы находитесь на странице: 1из 9

Ingenier en Telecomunicin a o Arquitectura de Computadores Nombre:

Curso: 4o

Grupo: A

Examen de teor (14/09/2011) a DNI:

Test: 5 puntos
Escriba la opcin correcta en la tabla siguiente, dentro de la casilla debajo de cada nmero de pregunta. Cada respuesta o u correcta vale 5/50 puntos, 0 si no se contesta o est claramente tachada y 1/3 5/50 si es errnea o no est claramente a o a contestada. Aconsejamos terminar de leer completamente cada pregunta antes de contestarla. 1 b 2 c 3 d 4 c 5 d 6 b 7 a 8 c 9 a 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 b c c a d a c c c a b a a b d a

26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 c a b b a a b c d c c b a b b d a d a c d c a c a

1. Cul de los siguientes formas de paralelismo resulta a ms econmica? a o a) Multiproceso simtrico. e b) Multihebra simultnea. a c) Sistema multincleo. u d ) No son comparables. 2. Qu ocurre cuando se intenta ejecutar una instruccin e o privilegia en modo usuario? a) Se ignora. b) Se produce una peticin interrupcin. o o c) Se lanza una excepcin. o d ) Nada. 3. Cuntos registros tienen, de forma aproximada, los a ultimos procesadores de la familia 80x86 disponibles pa ra el SO? a) 8. b) 16. c) 32. d ) 64.

5. Cuntas etapas debe tener un procesador segmentado a para poder nalizar 10 instrucciones en 15 ciclos suponiendo que tarda 1 ciclo en ejecutar cada etapa? a) 3. b) 4. c) 5. d ) 6.

6. Cuntas veces ha de replicar sus unidades funcionales a un procesador superescalar y segmentado en 3 etapas para poder ejecutar 9 instrucciones en 5 ciclos suponiendo que tarda 1 ciclo en ejecutar cada etapa? a) 2. b) 3. c) 4. d ) 5.

7. Una jerarqu de memoria de dos niveles tiene los a siguientes parmetros: tiempo de acceso a memoria: a 100ns, tasa de fallos de cach: 5 %. Qu tiempo de ace e ceso debe tener la cach para que el tiempo medio de e acceso a toda la jerarqu sea de 10ns? a a) 5ns. b) 6ns. c) 7ns. d ) 8ns.

4. Cul de las siguiente tareas no es responsabilidad de a la unidad de gestin de memoria? o a) Gestionar las tablas de segmentos. b) Gestionar las tablas de pginas. a c) Gestionar las tablas de interrupciones. d ) Ninguna de las anteriores. 1

8. Qu diferencia una TLB etiquetada de una que no lo e es? a) Marcas de proceso. b) Marcas de hebras. c) Marcas de espacio de direcciones. d ) Ninguna de las anteriores. 9. Qu diseo de etiquetas de cach permite a un procee n e sador acceder ms rpidamente a ella? a a

a) Virtual. b) Lgica. o c) F sica. d ) Ninguna de las anteriores. 10. Qu tipo de evento provocar el fallo de un dispositivo e a de E/S? a) Excepcin. o b) Interrupcin. o c) Excepcin y interrupcin. o o d ) Ninguna de las anteriores. 11. En qu tipo de E/S la transferencia de informacin no e o la realiza el procesador? a) E/S programada. b) E/S mediante interrupciones. c) DMA. d ) Ninguna de las anteriores. 12. En cul de las siguientes estructuras de sistema operaa tivo puede el software de usuario acceder directamente al hardware? a) Monol tico. b) Microncleo. u c) Exoncleo. u d ) Ninguna de las anteriores. 13. Qu diferencia concurrencia de paralelismo? e a) La capacidad de ejecucin simultnea. o a b) Puede emplearse en multiprocesadores. c) Nada. d ) Ninguna de las anteriores. 14. Qu estructura de sistema operativo es ms insegura e a frente a fallos en las aplicaciones de usuario? a) Monol tico. b) Microncleo. u c) Exoncleo. u d ) Ninguna de las anteriores. 15. Cul es el mtodo de paso de parmetros a las llamadas a e a al sistema ms eciente? a a) Registros. b) Memoria. c) Pila. d ) Ninguno de las anteriores. 16. Cuntas veces se cambia de espacio de direcciones al a cambiar de proceso en Linux? a) 0. b) 1. c) 0 1. o d ) 1 2. o 2

17. Cul no es un componente bsico de un proceso? a a a) Espacio de direcciones. b) Hebras ejecucin. o c) Bloque de control de procesos. d ) Ninguna de las anteriores. 18. En qu regin de memoria estar almacenado el valor e o a 7? int main() { int *x = new int; *x = 7; } a) bss. b) data. c) heap. d ) stack.

19. Qu hace la llamada al sistema exec()? e a) Cambia la imagen de un proceso. b) Ejecuta un programa. c) Ejecuta un proceso. d ) Ninguna de las anteriores. 20. En funcin de como se ejecute el sistema operativo, o cul requerir menos cambios de proceso para atender a a eventos? a) Ncleo independiente. u b) Ncleo dentro de los procesos. u c) Ncleo basado en procesos. u d ) Ninguna de las anteriores. 21. Cul de las siguientes transiciones entre estados de un a proceso no tiene sentido? a) suspendido ejecutando. b) ejecutando suspendido. c) preparado ejecutando. d ) Ninguna de las anteriores. 22. Qu funcin permite a una hebra esperar la nalizacin e o o de otra? a) pthread join(). b) pthread exit(). c) pthread wait(). d ) Ninguna de las anteriores. 23. En un sistema que emplea hebras tipo usuario, cuntas a tablas de hebras son necesarias? a) Una en el interior del SO.. b) Una por proceso. c) Una por hebra.

d ) Ninguna de las anteriores. 24. Cul de las caracter a sticas es t pica de las hebras tipo ncleo? u a) Pueden utilizarse en cualquier SO. b) Un evento bloquean al proceso. c) Slo es posible la concurrencia. o d ) Ninguna de las anteriores. 25. Cul de los siguientes campos podr no aparecer en el a a bloque de control de una hebra? a) Identicador de hebra. b) Puntero de instruccin. o c) Puntero de pila. d ) Banderas. 26. De las siguientes armaciones, cul no es una ventaja a de las hebras tipo usuario? a) Puede implementarse en cualquier SO. b) La conmutacin entre ellas es extremadamente o rpida. a c) Si una se bloquea podemos ejecutar otra del mismo proceso. d ) Pueden emplear un algoritmo de planicacin pero sonalizado. 27. Cul de las siguientes armaciones sobre hebras h a bridas es falsa? a) No permiten ejecutar en paralelo varias hebras de un proceso. b) El SO debe disponer de hebras tipo ncleo. u c) Hay dos niveles de planicacin. o d ) Ninguna de las anteriores. 28. Cul es la relacin entre hebras tipo usuario/ncleo a o u ms habitual en los SO comerciales en la actualidad? a a) n:1. b) 1:1. c) n:m. d ) n:m + 1:1.

c) preparado/ejecutando. d ) nalizado/ejecutando. 31. Qu tipo de hebras es ms portable? e a a) Hebras de usuario. b) Hebras del ncleo. u c) Hebras h bridas. d ) a) y b) por igual. 32. Algunos sistemas permiten especicar un manejador de excepcin espec o co. Recuerda haber utilizado alguno en prcticas? a a) fork() b) signal() c) wait() d ) yield()

33. Cul es la operacin clave en el cambio de hebra? a o a) Almacenamiento del puntero de instruccin. o b) Almacenamiento de las banderas. c) Cambio del puntero de pila. d ) Ninguna de las anteriores. 34. Cul de las siguientes tareas no es obligacin de la hea o bra ociosa? a) Facilitar la creacin de hebras. o b) Facilitar la nalizacin de hebras. o c) Ahorrar energ a. d ) Ninguna de las anteriores. 35. Cul de las siguientes armaciones sobre las hebras tia po ncleo es cierta? u a) No pueden ejecutarse en paralelo. b) Una llamada bloqueante bloquea a todas las hebras de un proceso. c) Un cambio de hebra requiere de dos cambios de modo. d ) Ninguna de las anteriores. 36. Qu implementacin del estado de un hebra es ms e o a eciente? a) Sin atributo. b) Atributo expl cito en el TCB. c) Estado impl cito mediante la ubicacin en una coo la. d ) Ninguna de las anteriores. 37. Qu mtodos existen para evitar que una hebra acae e pare el procesador? a) En las hebras tipo usuario, la apropiacin. o b) En las hebras tipo usuario, la cooperacin. o c) a) y b) son correctas. d ) Ninguna de las anteriores. 3

29. Las hebras tipo usuario emplean yield como mecanismo de cambio de hebra porque... a) Se ahorran cambios de proceso. b) Se ahorran cambios de modo. c) Se evitan problemas si alguna hebra olvida llamar a yield. d ) Ninguna de las anteriores. 30. Aunque el estado de un proceso y sus hebras es independiente, qu combinacin no puede darse? e o a) nuevo/ejecutando. b) bloqueado/ejecutando.

38. Si varias hebras de un proceso ejecutan el siguiente cdio go, qu problema se podr presentar? e a void* hebra(void*) { seccion_critica(); seccion_no_critica(); } a) Condicin de carrera. o b) Interbloqueo. c) Inanicin. o d ) Ninguno de los anteriores. 39. Puede una hebra acceder a las variables locales de otra? a) Si. b) No. c) Depende del nmero de procesadores. u d ) Depende el tipo de hebras. 40. En el problema productor/consumidor con bfer ilimiu tado, existe algn problema de concurrencia? u a) Si, el productor no puede producir sobre una posicin ocupada. o b) Si, el consumidor no puede consumir desde un bfer vacio. u c) No. d ) Ninguna de las anteriores. 41. Cules de las siguientes armaciones sobre la sincronia zacin mediante seales es cierta? o n a) Es eciente. b) Es escalable. c) No se puede implementar la relacin de precedeno cia mtua empleando menos llamadas al sistema. u d ) Ninguna de las anteriores. 42. Cul de las siguientes armaciones acerca de los a semforos con contador es falsa? a a) Un valor positivo indica el nmero seales atendiu n das. b) Un valor negativo indica el nmero de hebras que u esperan por una seal o la longitud de la cola de n hebras bloqueadas en espera de una seal. n c) Si el contador es cero ni hay seales pendientes de n atender ni hay hebras a la espera de que se produzca una seal. n d ) Ninguna de las anteriores. 43. Cul de los siguientes no es un requisito de una seccin a o cr tica? a) Exclusividad. b) Progreso. c) Espera acotada. d ) Justicia. 4

44. Puede conseguirse la exclusin mtua de 2 hebras emo u pleando una variable turno? a) No, porque el requisito de progreso no es satisfecho. b) Si. c) No, porque aparecer una condicin de carrera. a o d ) Ninguna de las anteriores. 45. Cul de las siguientes mtodos para obtener la exclua e sin mtua es ms eciente y portable? o u a a) Algoritmo de la panader a. b) Deshabilitar las interrupciones. c) Instrucciones hardware atmicas. o d ) Ninguna de las anteriores. 46. Qu caracteriza la implementacin de un semforo mee o a diante la instruccin test and set? o a) La alta eciencia. b) Cumplir el requisito de espera acotada. c) Evitar la inanicin. o d ) Ninguna de las anteriores. 47. Cmo implementar un semforo con contador en un o a a sistema multiprocesador? a) Deshabilitando las interrupciones. b) Mediante el algorimo de la panader a. c) Empleando test and set. d ) Ninguna de las anteriores. 48. Qu diferencia a un semforo fuerte de uno dbil? e a e a) Garantizar la espera acotada. b) La garantia de recordar las llamadas a decrementar e incrementar. c) La forma de garantizar la exclusin mtua. o u d ) Ninguna de las anteriores. 49. Qu armacin acerca de los monitores es falsa? e o a) Garantizan la exclusin mtua. o u b) Posee una secuencia de inicializacin. o c) Permite sincronizar las operaciones en su interior sin recurrir a mecanismos adicionales. d ) Ninguna de las anteriores. 50. Si encuentra la llamada enviar(mensaje) en el cdio go de un programa, de qu tipo de paso de mensajes e estamos hablando? a) Orientado a conexin. o b) No orientado a conexin. o c) Tanto a) como b). d ) Ninguna de las anteriores.

Ingenier en Telecomunicin a o Arquitectura de Computadores Nombre:

Curso: 4o

Grupo: A

Examen de problemas (14/09/2011) DNI:

Problemas: 5 puntos
1. (1 punto) Qu resultado muestra por pantalla el siguiente programa que emplea MPI al ejecutarse mediante la orden: e mpirun -n 4 ./este programa dni donde dni es la ultima cifra de su DNI? Explicite el resultado mostrando que se escribe al nalizar el programa. int main(int argc, char *argv[]) { // const int N = 4; int v[N] = {0, 0, 0, 0}; int A; istringstream iss(argv[1]); iss >> A; if (!iss) { cerr << argv[0] << ": " << argv[1] << "no es un entero valido" << endl; exit(EXIT_FAILURE); } MPI::Init(argc, argv); int rank = MPI::COMM_WORLD.Get_rank(); int size = MPI::COMM_WORLD.Get_size(); if (rank == 0) for (int i = 0; i < N; ++i) v[i] = (A + i) % 10; if (rank == 0) for (int i = 1; i < size; ++i) MPI::COMM_WORLD.Send(&v[0], A % N + 1, MPI::INT, i, i); else MPI::COMM_WORLD.Recv(&v[0], A % N + 1, MPI::INT, 0, rank); cout << "[" << rank << "," << size << "]: " << v << endl; MPI::Finalize(); return EXIT_SUCCESS; } // // // // // resultado: [0,4]: [ ] [1,4]: [ ] [2,4]: [ ] [3,4]: [ ]

[ [ [ [

] ] ] ]

[ [ [ [

] ] ] ]

[ [ [ [

] ] ] ]

soluciones: -------------------- 0 -------------------[0,4]: 0 1 2 3 [1,4]: 0 0 0 0 [2,4]: 0 0 0 0 [3,4]: 0 0 0 0 -------------------- 1 -------------------[0,4]: 1 2 3 4 [1,4]: 1 2 0 0 [2,4]: 1 2 0 0 [3,4]: 1 2 0 0 -------------------- 2 -------------------[0,4]: 2 3 4 5 [1,4]: 2 3 4 0 [2,4]: 2 3 4 0 [3,4]: 2 3 4 0 -------------------- 3 -------------------[0,4]: 3 4 5 6 [1,4]: 3 4 5 6 [2,4]: 3 4 5 6 [3,4]: 3 4 5 6 -------------------- 4 -------------------[0,4]: 4 5 6 7 [1,4]: 4 0 0 0 [2,4]: 4 0 0 0 [3,4]: 4 0 0 0 -------------------- 5 -------------------[0,4]: 5 6 7 8 [1,4]: 5 6 0 0 [2,4]: 5 6 0 0 [3,4]: 5 6 0 0 -------------------- 6 -------------------[0,4]: 6 7 8 9 [1,4]: 6 7 8 0 [2,4]: 6 7 8 0 [3,4]: 6 7 8 0 -------------------- 7 -------------------[0,4]: 7 8 9 0 [1,4]: 7 8 9 0 [2,4]: 7 8 9 0 [3,4]: 7 8 9 0 -------------------- 8 -------------------[0,4]: 8 9 0 1 [1,4]: 8 0 0 0 [2,4]: 8 0 0 0 [3,4]: 8 0 0 0 -------------------- 9 -------------------[0,4]: 9 0 1 2 [1,4]: 9 0 0 0 [2,4]: 9 0 0 0 [3,4]: 9 0 0 0

2. (1,50 puntos) Escriba una solucin correcta para el problema de la construccin de molculas de H2 O. Cada molcula o o e e de agua est compuesta por dos tomos de hidrgeno y uno de ox a a o geno. Cada tipo de tomo est representado por un a a tipo de hebra distinto. Debe conseguir reunir el nmero necesario de elementos para fabricar molculas de agua. Tras u e reunir los tres tomos correctos estos ejecutar la funcin reaccionar() antes de que pueda hacerlo un nuevo grupo de a o tomos. En otras palabras: a Si una hebra de ox geno llega antes de que lo hayan hecho dos de hidrgeno entonces debe esperar. o Si una hebra de hidrgeno llega antes de que lo hayan hecho una de ox o geno y otra de hidrgeno entonces debe o esperar. void *oxigeno(void*) { // codigo de sincronizacion reaccionar(); } void *hidrogeno(void*) { // codigo de sincronizacion reaccionar(); }

Solucin: o sem_t H2, O; pthread_barrier_t barrera; void* oxigeno(void*) { sem_wait(&O); reaccion(O); pthread_barrier_wait(&barrera); sem_post(&O); return NULL; } void* hidrogeno(void*) { sem_wait(&H2); reaccion(H); pthread_barrier_wait(&barrera); sem_post(&H2); return NULL; } int main() { sem_init(&H2, 0, 2); sem_init(&O , 0, 1); pthread_barrier_init(&barrera, NULL, 3); ... }

3. (2 puntos) Realice la planicacin de las tareas aperidicas que se muestran en la tabla utilizando los algoritmos de o o planicacin siguientes: o a) (0,50 puntos) Turno circular con quantum = 2ms. b) (0,50 puntos) Turno circular virtual con quantum = 2ms, expulsivo por quantum de tiempo. c) (0,50 puntos) Retroalimentacin multinivel con 3 colas cuyo quantum = 2i , dnde i es el nmero de cola o o u de 0 a 2. En esta variante cando no se agota el quantum completo se asciende a la cola superior. d ) (0,50 puntos) El plazo ms cercano primero en su versin no expulsiva. a o Todas las tareas realizan una operacin de E/S cada 3ms de 5ms de duracin sobre dispositivos diferentes, o o de forma que todas ellas pueden realizarse en paralelo. En caso de que varios eventos de los siguientes tengan lugar en el mismo instante de tiempo, el orden para volver a la cola de preparados ser: a 1o - proceso nuevo. 2o - n de E/S. 3o - n de quantum. El plazo de n que se muestra slo es aplicable a EDF. En caso de incumplimiento del plazo terminar continuar o la ejecucin del proceso. o tarea A B C D E F 0 A B C D E F 0 A B C D E F 0 A B MLFB C D E F 0 A B C D E F 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 1 2 3 4 5 tiempo de llegada 0 1 2 3 5 7 6 7 8 9 tiempo de servicio 5 4 6 8 3 4 plazo de n 20 14 19 22 15 18

10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25

RR

VRR

EDF

4. (0,50 puntos) Planique las tareas peridicas que se muestran en la siguiente tabla de acuerdo al algoritmo de o planicacin RMS en su versin no expulsiva. Calcule el hiperperiodo y demuestre si el conjunto de tareas es planicable o o o no y sea cual sea el resultado planique los primeros 30ms. Supondremos que todas las tareas llegan en el instante 0. Si alguna tarea incumple su plazo siga ejecutndola como si esto no hubiese pasado. a tarea A B C D periodo 7 9 11 13 tiempo de servicio 1 2 3 4

0 A B C D

10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30

Вам также может понравиться