09/03/2011 Fundamentos de arquitectura de computadores relacionados con SO Ingeniería del Software EUITI Índice Estructura del computador – Modelo de programación – Registros del procesador – Ejecución de instrucciones Interrupciones Jerarquía de memoria Entrada/salida Protección 1 09/03/2011 Esquema de funcionamiento Elementos del sistema Procesador Memoria principal – volatil – Memoria real o primaria I/O modulos – Dispositivos de memoria secundaria – Comunicaciones – Terminales Bus del sistema – Comunicacion entre procesadores, memoria e I/O 2 09/03/2011 Modelo de programación Modelo de programación 3 09/03/2011 Registros del procesador Registros de usuario – Permiten al programador minimizar el uso de memoria principal (referencias a memoria) Control y estado – Usados por el procesador – Usados por rutinas privilegiadas del sistema operativo para controlar la ejecucion de programas – Estado (octeto de usuario) si puede ser usado por programas Registros de usuario Pueden ser referenciados por codigo maquina (ensamblador) Pueden ser usados por todos los programas, usuario y sistema. Tipos de registros – Datos – Direcciones Indice/s – Se utiliza para conseguir una direccion absoluta con una referencia relativa Puntero de segmento (segment pointer) – Cuando la memoria se divide en segmentos, las referencias pueden ser generadas de forma relativa a un puntero de segmento y un offset. Puntero de pila (Stack pointer) – Apunta al principio de la pila. 4 09/03/2011 Registros de control y estado Program Counter (PC) Instruction Register (IR) Program Status Word (PSW) – Contiene la direccion de la instruccion a ser cargada (fetch) – Contiene la instruccion mas reciente – Condition codes (usuario) Banderas (flags) o codigos de condicion – Bits fijados por el hardware del procesador como resultado de operaciones Ejemplos – – – – Resultado positivo Resultado negativo (N) Cero (Zero=Z) Desbordamiento (Overflow) – Interrupt enable/disable (nucleo) – Supervisor/user mode (nucleo) Instrucciones Tipos de instruccion – Procesador-memoria Transferencia de datos – Procesador-I/O Transferencia a dispositivos – Procesamiento datos Aritmeticos o logicos – Control Cambiar la secuencia de ejecucion 5 09/03/2011 Secuencia de ejecucion El procesador carga (fetch) la instruccion de memoria apuntada por el contador de programa, Program counter (PC), en el registro de instruccion IR El PC se incrementa despues de cada carga Maquina hipotetica 6 09/03/2011 Ejemplo de ejecucion Secuencia de ejecución Secuencia – Lectura de la instrucción apuntada por el PC – Incrementa PC – Ejecuta instrucción Es lineal e infinita – Instrucción de salto modifica PC – Interrupción (procesador modifica PC) Interna o externa TRAP produce interrupción 7 09/03/2011 Lenguajes programación a=1; f=1; while (a <= 5) { f = f * a; a = a + 1; } LOADA mem - Load register A from memory address LOADB mem - Load register B from memory address CONB con - Load a constant value into register B SAVEB mem - Save register B to memory address SAVEC mem - Save register C to memory address ADD - Add A and B and store the result in C SUB - Subtract A and B and store the result in C MUL - Multiply A and B and store the result in C DIV - Divide A and B and store the result in C COM - Compare A and B and store the result in test JUMP addr - Jump to an address JEQ addr - Jump, if equal, to address JNEQ addr - Jump, if not equal, to address JG addr - Jump, if greater than, to address JGE addr - Jump, if greater than or equal, to address JL addr - Jump, if less than, to address JLE addr - Jump, if less than or equal, to address STOP - Stop execution Compilador // Assume a is at address 128 // Assume F is at address 129 0 CONB 1 // a=1; 1 SAVEB 128 2 CONB 1 // f=1; 3 SAVEB 129 4 LOADA 128 // if a > 5 the jump to 17 5 CONB 5 6 COM 7 JG 17 8 LOADA 129 // f=f*a; 9 LOADB 128 10 MUL 11 SAVEC 129 12 LOADA 128 // a=a+1; 13 CONB 1 14 ADD 15 SAVEC 128 16 JUMP 4 // loop back to if 17 STOP 8 09/03/2011 Ensamblador Índice Estructura del computador – Modelo de programación – Registros del procesador – Ejecución de instrucciones Interrupciones Jerarquía de memoria Entrada/salida Protección 9 09/03/2011 Ciclo de interrupción El procesador (HW) chequea las interrupciones Si no hay interrupciones, el procesador carga la siguiente instrucción del programa en ejecución. Si hay una interrupción pendiente, se suspende la ejecución del programa en curso y se ejecuta la rutina de manejo de la interrupción (Interrupt Handler, Manejador de interrupción, Rutina de atención a la interrupción) – Programa para una interrupción, un dispositivo I/O particular Sobrecarga del procesador, pero sigue siendo ventajoso Cambios en memoria y registros en una interrupcion 10 09/03/2011 Interrupciones Interrupciones en microcontroladores Interrupciones en computadores. – Casi todos los dispositivos de I/O son mas lentos que el procesador El procesador debe hacer una pausa para esperar al dispositivo Interrupciones Rompen la secuencia de ejecución – HW – SO Salva algunos registros (PC y estado) Eleva nivel de ejecución a núcleo Salto a SO Tabla y rutina pertenecen al sistema operativo Rutina de tratamiento de la interrupción Instruccion RETI devuelve el control al programa – Baja a modo usuario – Caso de retornar al proceso, recupera el PC y registro de estado 11 09/03/2011 Procesamiento de una interrupcion simple Interrupciones Fuentes de interrupción: – Excepciones de programa – Interrupciones periódicas de reloj – Interrupciones E/S – Excepciones del HW – Instrucción TRAP 12 09/03/2011 Flujo de control del programa sin interrupciones Flujo de control de programa con interrupciones, corta espera I/O 13 09/03/2011 Flujo de control de programa con interrupciones, larga espera I/O Diagrama de tiempos basado en una espera I/O corta 14 09/03/2011 Diagrama de tiempos basados en una espera I/O larga Interrupciones multiples Estrategia: deshabilitar interrupciones mientras que interrupcion esta siendo procesada. 15 09/03/2011 Interrupciones multiples Se definen prioridades para las interrupciones Interrupciones multiples 16 09/03/2011 Sistema multiprogramacion El procesador tiene mas de un proceso La secuencia en la que los programas se ejecutan depende de su prioridad relativa y de si estan esperando I/O Despues de una interrupcion, el control puede que no retorno al programa que se estaba ejecutando cuando salto la interrupcion Índice Estructura del computador – Modelo de programación – Registros del procesador – Ejecución de instrucciones Interrupciones Jerarquía de memoria Entrada/salida Protección 17 09/03/2011 Jerarquía de memoria Ventajas: – Equilibrio entre eficiencia y coste Problemas: – Información replicada en los distintos niveles – Problema de coherencia – Migración de la información Automática Demanda explicita – Traducción de direcciones Jerarquía de memoria Segun se baja en la jerarquia – – – – Decrece el coste por bit Aumenta la capacidad Se incrementa el tiempo de acceso Disminuye la frecuencia de acceso por el procesador Proximidad referencial Memoria primaria Memoria secundaria – Volatil, RAM – No volatil, disco – Memoria auxiliar – Almacenan programas y datos 18 09/03/2011 Jerarquía de memoria Nivel Capacidad Tiempo de acceso Tipo Registros 64-256 bytes 1-5ns Palabra Cache 8Kb – 2Mb 5-20ns Palabra Memoria principal 128Mb a 64 Gb 60-200 ns Palabra Disco 50 Mb a 250 Gb 10-30 ms Sector Jerarquía de memoria Migración de la información – Automática – Por demanda explicita Migración automática – – – – – Tamaño bloque transferido Política de extracción Política de reemplazo Política de ubicación Traducción de direcciones 19 09/03/2011 Cache Hardware – ExternaInterna 512Kb Software – Acceso a datos de disco. – Una porción de memoria principal se puede usar como buffer temporal para contener datos del disco Las escrituras y lecturas se realizan en clusters. Referencias continuas a los mismos datos son mucho mas rápidas Memoria cache Invisible al SO, tratamiento por hardware Aumenta la velocidad de la memoria – SRAM, mas cara, mas rapida, mas pequeña. Explota el principio de localidad o proximidad referencial 20 09/03/2011 Sistema de memoria cache/ppal Memoria ppal 2n direcciones, n bits (4Gb con 32bits) Tamaño de bloque=K palabras M=2n/K bloques en memoria principal Cache contiene C<<M Operación de lectura de la cache Contiene una copia de una porción de la memoria principal El procesador primero mira la cache. Si no se encuentran los datos en la cache, el bloque de memoria principal se copia a la cache y se suministran al procesador (invisible al SO) 21 09/03/2011 Diseño de la cache Tamaño Tamaño del bloque – Caches pequeñas tienen un fuerte impacto en el rendimiento – La unidad de intercambio entre cache y memoria ppal – Un tamaño de bloque mas grande incrementa la tasa de acierto en un principio, hasta que la probabilidad de referenciar un dato de fuera de la cache supera a la probabilidad de reusar un dato de dentro Función de ubicación (mapping) Algoritmo de reemplazo – En que posición de la cache se ubica el bloque requerido – Que bloque reemplazar, el que tenga menor probabilidad de ser referenciado – Algoritmo Least-Recently-Used (LRU) Política de escritura – Cuando se realiza la escritura en memoria principal? – Puede producirse cada vez que el bloque se modifica – La escritura se realiza cuando se reemplaza el bloque Minimiza las operaciones en memoria ppal Deja la memoria principal obsoleta (DMA, multiprocesadores) Cache actual Pentium 4 (on die) – Nivel 1 16 Kb datos, 12Kb (Execution trace cache) instrucciones ya decodificadas – Nivel 2 (Advanced Transfer cache) 512 Kb – 1 Mb Velocidad del micro 3.8Ghz122Gb/seg, Pentium III 1 Ghz16Gb/seg – Nivel 3 (Extreme Edition processor) 1- 2Mb 800-1066Mhz system bus 22 09/03/2011 Jerarquía de memoria ¿Porque Funciona? Traza: Re=re(1),re(2)…,re(j) Proximidad referencial – Distancia d(u,v)=|u-v| – Espacial i-j pequeñod(re(i),re(j)) prob. pequeña Causas – Programa secuencial – Bucles pequeños – Estructuras de datos – Temporal d(re(j+1),re(j-x)) prob. pequeña Causas – Bucles – Uso de datos – Subrutinas frecuentes Rendimiento Rendimiento de una memoria simple de 2 niveles – – – – Nivel 1, 1000 palabras y tiempo de acceso de 0,1us Nivel 2, 100.000 palabras, tiempo de acceso de 1us Tasa de aciertos H=95% Tiempo medio de acceso 0,95 x 0,1 + (1-0,95)x(0,1 +1) = 0,15us – El numero de palabras influye en la tasa de aciertos – No se ha tenido en cuenta la penalización del tratamiento del fallo 0,95 x 0,1 + (1-0,95)x(2x0,1 +fallo de pagina) 23 09/03/2011 Asignación de memoria clásica Los programas reciben del SO un espacio de memoria para su ejecución – ¿Y si no hay suficiente? Memoria virtual Fundamentos – El procesador utiliza y genera direcciones virtuales – Parte del mapa de memoria virtual esta en disco (swap) y parte en memoria principal. Paginas virtuales Marco de pagina (mem ppal) Pagina de intercambio (disco) – La Memory Management Unit MMU convierte las direcciones virtuales en físicas por HARDWARE (traducción) – Si la dirección generada no esta en memoria ppal (fallo de pagina), la MMU genera una interrupción – El SO gestiona la interrupción, trayendo la información de disco a memoria ppal 24 09/03/2011 División del espacio de memoria El espacio virtual se divide en paginas 4Kb Algunas paginas están en memoria ppal – SO se encarga de que estén las necesarias, respondiendo a los fallos de pagina de la MMU (paginacion) Traducción de direcciones La MMU realiza la traducción de pagina virtual a marco de pagina 25 09/03/2011 Tablas de paginas El SO genera y mantiene las tablas de paginas, la MMU las usa para hacer la traducción (TLB) Una tabla por cada proceso Elementos de la tabla de paginas Otras informaciones: – Copy on Write – Edad – No pagina (fija en memoria fisica) – Rellenar a ceros 26 09/03/2011 Ej. Traducción con tablas de paginas Tabla de paginas con 2 niveles Mas flexible Menor espacio Necesita 3 accesos a Memoria ppal por cada acceso de la CPU 27 09/03/2011 Ej. Traducción con tabla 2 niveles Direcciones no validas con tabla de 2 niveles 28 09/03/2011 Otros… Diferencia entre la caché de disco y la memoria virtual Trashing=hiperpaginacion Índice Estructura del computador – Modelo de programación – Registros del procesador – Ejecución de instrucciones Jerarquía de memoria Entrada/salida Protección 29 09/03/2011 E/S y concurrencia Concurrencia entre CPU y E/S – E/S programada: concurrencia nula – E/S por interrupciones : concurrencia – E/S por DMA: maxima concurrencia El SO se encarga de explotar esta concurrencia Transferencia de datos Espera activa Espera pasiva (interrupciones) DMA 30 09/03/2011 I/O programada El que realiza la accion es el modulo I/O, no el procesador Cuando termina, fija los bits adecuados en el registro de estado. No hay interrupciones El procesador chequea el estado continuamente hasta que la operacion finaliza I/O por interrupcion El procesador es interrumpido cuando el modulo I/O esta listo para el intercambio de datos. No son necesarias esperas, el procesador salva el contexto del programa y comienza a ejecutar la interrupción. Consume tiempo de procesamiento porque cada dato pasa por el procesador. 31 09/03/2011 Direct Memory Access (DMA) I/O transfiere directamente a/de memoria La interrupcion se lanza cuando la transferencia se termina El procesador debe conferir privilegios al modulo I/O para que pueda leer o escribir a memoria. Libera al procesador de la responsabilidad de hacer el intercambio Índice Descripción computador – Hardware Estructura del computador – Modelo de programación – Registros del procesador – Ejecución de instrucciones Interrupciones – Reloj del computador Jerarquía de memoria Entrada/salida Protección 32 09/03/2011 Protección CPU – Niveles de ejecución Núcleo: todas las instrucciones maquina, toda E/S (con instrucciones privilegiadas), registros y memoria Usuario: un subconjunto de instrucciones y solo mapa propio – Las interrupciones (y solo ellas) pasan la CPU a modo nucleo TRAP genera una interrupción Reloj evita que se monopolice Protección de memoria Memoria ppal: registros valla o claves 33 09/03/2011 Protección: división del mapa de memoria Memoria: – Espacios de memoria virtual independientes Tablas de paginas como protección de memoria Memoria virtual – Regiones definidas por la tabla de paginas 34 09/03/2011 Resumen Interrupciones – Dispositivos – Reloj Memoria – Memoria virtual E/S – Concurrente 35