1) Se dispone de un computador de 32 bits con la siguiente estructura: MP CPU CACHE DISCO1 DISCO2 ....... DISCO n El sistema de memoria está formado por una Memoria principal cuyo tiempo de acceso es de 550nseg y una caché con un tiempo de acceso de 50nseg con un hit ratio del 90% y una política de actualización write-back. La CPU realiza 9x106 peticiones por segundo al sistema de memoria y se dispone de discos cuya velocidad de transferencia es de 1Mbyte/seg. a) Se pide calcular cuantos discos se pueden conectar al sistema sin afectar al rendimiento de la CPU en más de un 25%. Nota: Considerar despreciable el tiempo en realizar el write-back. Solución: a) Se harían 0,75 x 9x106 =6,75 x106 peticiones a memoria /seg para afectar menos del 25% el rendimiento de la CPU. Cada disco transfiere 1Mbyte/seg -> 256 Kpalabras/seg -> 218 palabras /seg. Por tanto el cuello de botella para las transferencias estará en el tiempo de respuesta de la memoria o en la capacidad de tráfico del bus. - T. acceso medio a memoria = 50x0,9+550x0,1=100ns - La memoria permite 1/100x10-9= 107peticiones/seg que tendrán que repartirse entre CPU y E/S. - Si la CPU hace 6,75 x106 pet/seg a memoria quedarán libres para el disco en 1 seg: 107 - 6,75 x106 =3,25 x106, sabemos que cada disco transfiere 218 palabras /seg-> 3,25 x106/218 =12,39, es decir se podrán soportar hasta 12 discos. 2) Sea un sistema de disco con las siguiente características: 1021 bytes/sector, 48 sectores/pista, 120 pistas/superficie y 8 superficies; el tiempo medio de movimiento de pista a pista es de 6 mseg y la velocidad de rotación del disco es de 360 rpm. Una CPU lee un sector del disco utilizando E/S controlada por interrupciones. Se produce una interrupción cada vez que se transmite un byte. Si tarda 2 seg en procesar cada instrucción, ¿Qué porcentaje máximo del tiempo estará la CPU ocupada en la operación de E/S?. Si se empleara un controlador DMA para la transferencia y se supone una interrupción por sector, ¿Qué porcentaje máximo del tiempo estará la CPU ocupada en la operación de E/S?. Solución: 360 rpm 6 rps tarda 1/6 en dar una vuelta completa. tsector = 1/6 48 = 3.47 ms tbytes = 3.47 x 10-3 1024 = 3.39 s 2 s 3.39 s x 100 = 59% % CPU = 3) Elegir una de entre las opciones para cada apartado. a) Un controlador de interrupciones. 1. Indica la fuente de interrupciones. 2. Decide el periférico que debe ser atendido. 3. Sirve para ampliar el nº de líneas de interrupciones de la CPU. 4. Todas son ciertas. b) La línea INTA. 1. Indica que está pendiente un reconocimiento de interrupción. 2. Indica que está pendiente y sin reconocer una interrupción. 3. Permite saber que la interrupción pendiente ha sido reconocida. 4. Indica que la CPU está preparada para reconocer una interrupción. c) En un sistema con Daisy Chain, la prioridad de un módulo depende: 1. De la prioridad asignada a su línea de interrupción en la cadena. 2. De la CPU. 3. Del controlador de interrupciones de la cadena. 4. De su posición en la cadena. Solución: a) 4 b) 3 c) 4 4) Se dispone de un computador que funciona a una velocidad de 107 ciclos/seg y en el que, en promedio, una instrucción emplea 4 ciclos máquina y cada operación de lectura o escritura de memoria dura 1 ciclo máquina. Determinar la máxima velocidad de transferencia de datos, en palabras por segundo, para los siguientes casos: a) E/S controlada por programa y empleando 3 instrucciones en transferir cada palabra. b) DMA con estrategia de transferencia por ráfagas. c) DMA con estrategia de transferencia por robo de ciclos. d) DMA con estrategia de transferencia transparente y suponiendo que en cada instrucción, en promedio, hay 2 ciclos en los cuales la CPU no utiliza el bus. Solución: a) E/S y 3 I 1 instrucción 4 ciclos x = 12 ciclos 3 instrucciones x 107 ciclos 1 palabra * = 8.3 x 105 palabra/seg Vmax = seg 12 ciclos b) Ráfagas 107 ciclos 1 palabra * = 107 palabra/seg Vmax = seg ciclo c) Robo de ciclo 107 ciclos 1 palabra * = 2x106 palabra/seg Vmax = seg 5 ciclos d) Transparente 2 ciclos sin usar el bus. Vmax = 107 ciclos 2 palabra 1 instruc = 5x106 pal/s * * seg 1 instruc 4 ciclos 5) Supongamos que el número de ciclos de reloj para una operación de polling (escrutinio) es de 100 y que el procesador lo ejecuta con un reloj de 50Mhz. Determinar la fracción del tiempo de CPU consumido en la operación de escrutinio para los tres casos siguientes, suponiendo que se escribe con suficiente frecuencia para que no se pierda ningún dato: b) El ratón debe ser escrutado 30 veces por segundo para asegurar que no falla ningún movimiento hecho por el usuario. c) El disquete transfiere datos al procesador en unidades de 16 bits y tiene una velocidad de datos de 50KBytes/seg. d) El disco duro transfiere datos en unidades de palabra de 32 bits y puede transferir a 2MBytes/seg. Solución: a) Ciclos para escrutinio: 30x100=3000 ciclos/seg. % T. Proc. = 3000x100 50 x 106 = 0,006 % Es el porcentaje de tiempo que se emplea en escrutar el ratón. b) Sabemos que en una operación de escrutinio se transfieren 2 bytes. Por tanto para mantener la velocidad del disco se tienen que realizar 50K/2 operaciones de escrutinio/seg. Ciclos para escrutinio: 25K * 100 = 2500x 210ciclos/seg. % T. Proc = 2500x 210 x100 50 x 106 = 5,12 % c) En una operación se emplean 4 bytes. Ciclos para escrutinio: 2Mb/4 =500K x100 ciclos/seg. % T. Proc = 500K x 100 x 100 = 100 % 50 x 106 Esto sería un grave problema por que en el acceso al disco duro el procesador quedaría totalmente ocupado. 6) Suponiendo el mismo procesador del ejercicio anterior, es decir con una frecuencia de trabajo de 50Mhz y con una velocidad de transferencia entre disquete y procesador de 50Kbytes/seg en unidades de 16 bits. Obtener la fracción consumida por el procesador sabiendo que la transferencia es mediante interrupciones y que el disquete se activa transfiriendo solamente el 10% del tiempo de la operación de E/S. Suponer que el gasto para cada transferencia, incluyendo la interrupción, es de 100 ciclos de reloj. Solución: En cada transferencia se transfieren 2 bytes. Para mantener la velocidad: 50K/2 = 25K transferencias /seg. Ciclos para escrutinio = 25Kx100=2500x 210ciclos/seg. Suponiendo que el disco este siempre activo: % T. Proc = 2500x 210 x100 50 x 106 = 5,12 % Como solo se activa el 10% de tiempo de transferencia: % T. Proc = 5,12 10 = 0,512 % 7) Suponemos nuevamente un procesador que trabaja a 50Mhz y cuya disco duro transfiere unidades de 32 bits a una velocidad de 2Mbytes/seg. Suponer inicialmente una transferencia de DMA que utiliza 1000 ciclos de reloj para el procesador, y suponer que el tratamiento de la interrupción a la terminación de un DMA necesita 500 ciclos de reloj para el procesador. Si el disco utiliza DMA y en cada bloque transfiere 4KB. ¿Qué fracción del procesador se consume si el disco está transfiriendo activamente el 100% del tiempo? Solución: Sabemos que el disco transfiere a 2Mbytes/seg y el DMA transfiere bloques de 4KB. Luego cada transferencia DMA tarda: 4KB/2MB/seg = 2x10-3 seg/transferencia. Si una transferencia DMA emplea 1000+500 ciclos por interrupción: 1500/2x10-3=750x 103 ciclos/segundo Si ahora dividimos por los ciclos de CPU: % T. Proc = 750 x103 = 1,5 % 50 x106 Como vemos no se consumen todos los ciclos del procesador como ocurría en E/S por programa.