Sistemas operativos: una visión aplicada Capítulo 1 Conceptos arquitectónicos Contenido Estructura del computador Ejecución de instrucciones Interrupciones Reloj del computador Jerarquía de memoria Entrada/Salida Protección Sistemas operativos: una visión aplicada 1 J. Carretero, F. García, P. de Miguel, F. Pérez 1
Esquema de funcionamiento de la computadora Datos Procesador Resultados Instrucciones de máquina Sistemas operativos: una visión aplicada 2 J. Carretero, F. García, P. de Miguel, F. Pérez Estructura del computador Registros MEMORIA PRINCIPAL PERIFÉRICOS UNIDAD ARITMÉTICA Datos Código ROM UNIDAD DE CONTROL Estado Contador de programa Registro de instrucción Puntero de pila UNIDAD de ENTRADA/SALIDA Monoprocesador Sistemas operativos: una visión aplicada 3 J. Carretero, F. García, P. de Miguel, F. Pérez 2
Modelo de programación del computador Modelo de programación Juego de instrucciones (usuario y núcleo) 31 D D1 D2 D3 D4 D5 D6 D7 A A1 A2 A3 A4 A5 A6 A7 A7' 16 15 8 7 Registros de datos Registros de dirección Puntero de pila de usuario Puntero de pila de sistema Contador de programa Registro de estado Modo Traza T 15 14 Sistema/Usuario S 13 12 11 Máscara I2 1 de I1 9 Interrupciones I 8 7 6 5 Extensión X 4 Negativo N 3 Cero Z 2 Desbordamiento V 1 Acarreo C Octeto de Sistema Octeto de Usuario Mapa de memoria 16 2-1 Mapa de E/S Juego de Instrucciones 32 2-1 Sistemas operativos: una visión aplicada 4 J. Carretero, F. García, P. de Miguel, F. Pérez Modelo de programación de usuario y de núcleo Niveles de ejecución D D1 D2 D3 D4 D5 D6 D7 A A1 A2 A3 A4 A5 A6 A7 Registro de estado X N V Z C 7 6 5 4 3 2 1 Octeto de Usuario D D1 D2 D3 D4 D5 D6 D7 A A1 A2 A3 A4 A5 A6 A7 A7' Registro de estado T S I2 I1 I X N Z V C 15 14 13 12 11 1 9 8 7 6 5 4 3 2 1 Octeto de Sistema Octeto de Usuario 31 2-1 Mapa de memoria Juego de Instrucciones Modelo de programación de usuario 32 2-1 Mapa de memoria 16 2-1 Mapa de E/S Juego de Instrucciones Modelo de programación de núcleo Sistemas operativos: una visión aplicada 5 J. Carretero, F. García, P. de Miguel, F. Pérez 3
Secuencia de ejecución del computador Secuencia de trabajo del computador a) Lectura de la instrucción apuntada por CP b) Incremento del CP c) Ejecución de la instrucción secuencia lineal: ejecuta instrucciones consecutivas bucle infinito Ruptura del secuenciamiento lineal de instrucciones La instrucción de salto modifica el CP Se produce una interrupción interna o externa (el procesador automodifica el CP) Retorno de subrutina Sistemas operativos: una visión aplicada 6 J. Carretero, F. García, P. de Miguel, F. Pérez Interrupciones Ruptura de la secuencia de ejecución HW Salva algunos registros del procesador (CP y registro de estado) Eleva el nivel de ejecución del procesador (nivel de núcleo) Salta al SO SO Rutina tratamiento de la interrupción Agente que interrumpe Solicitud de Interrupción Vector Tabla Interr. S.O. Rutina Trat. Interrupción Unidad de control Sistemas operativos: una visión aplicada 7 J. Carretero, F. García, P. de Miguel, F. Pérez 4
Interrupciones Fuentes de las interrupciones: Excepciones de programa Interrupciones periódicas de reloj Interrupciones de E/S Excepciones del HW Sistemas operativos: una visión aplicada 8 J. Carretero, F. García, P. de Miguel, F. Pérez Reloj del computador Tres visiones del reloj Oscilador que gobierna las fases de las instrucciones de máquina Interrupción periódica Contador fecha y hora Contabiliza unidades de tiempo (p.e. segundos) desde un instante (p.e. h del 1 de enero de 199) Esta cuenta la puede hacer: HW especial con batería SO Oscilador Divisor de frecuencia Contador INT Procesador Sistemas operativos: una visión aplicada 9 J. Carretero, F. García, P. de Miguel, F. Pérez 5
Jerarquía de memoria Elementos de información replicados en varios niveles de la jerarquía Problema de coherencia Migración de la información Automática Reg. Por demanda explícita Traducción de direcciones M. Cache Gestión HW Mem. Principal Gestión S.O. Mem. Expandida Gestión S.O. Discos Gestión S.O. Sistemas operativos: una visión aplicada 1 J. Carretero, F. García, P. de Miguel, F. Pérez Jerarquía de memoria Migración de la información Automática Por demanda explícita Migración automática Tamaño de los bloques transferidos Política de extracción Política de reemplazo Política de ubicación Traducción de direcciones n bits Dirección en el nivel k+1 Traductor m bits Dirección en el nivel k Sistemas operativos: una visión aplicada 11 J. Carretero, F. García, P. de Miguel, F. Pérez 6
Asignación de memoria clásica Los programas reciben del SO un espacio de memoria para su ejecución Monoprogramación Multiprogramación principal principal Programa A Programa A Programa B Sistema operativo Programa C Sistema operativo Sistemas operativos: una visión aplicada 12 J. Carretero, F. García, P. de Miguel, F. Pérez MEMORIA VIRTUAL 7
Fundamentos de la memoria virtual El procesador utiliza y genera direcciones virtuales Parte del mapa de memoria (virtual) está en disco (swap) y parte en memoria principal La MMU (memory management unit) traduce las direcciones virtuales en físicas La MMU produce un fallo de página (trap) cuando la dirección no está en memoria principal El SO trata el fallo de página, haciendo un transvase entre la memoria principal y el swap (disco) Mapa de memoria virtual (direcciones generadas por el procesador) Procesador Dirección virtual principal (RAM + ROM) Dirección física Fallo página MMU Secundaria (Intercambio) Sistemas operativos: una visión aplicada 14 J. Carretero, F. García, P. de Miguel, F. Pérez Asignación de memoria virtual Asignación de memoria virtual Un solo segmento Varios segmentos virtual Programa A virtual Segmento Segmento 1 Programa A Sistema operativo Segmento 2 Sistema operativo Sistemas operativos: una visión aplicada 15 J. Carretero, F. García, P. de Miguel, F. Pérez 8
ENTRADA/SALIDA E/S y concurrencia Concurrencia entre UCP y la E/S E/S programada: concurrencia nula E/S por interrupciones: concurrencia E/S por DMA: máxima concurrencia El SO se encarga de explotar la concurrencia entre la UCP y la E/S CONTROLADOR Procesador DISPOSITIVO Registro control Registro datos Registro estado Bus Sistemas operativos: una visión aplicada 17 J. Carretero, F. García, P. de Miguel, F. Pérez 9
Transferencia de datos Espera activa n = while n < m read registro_control DISPOSITIVO Registro control CONTROLADOR Registro datos if (registro_control = dato_disponible) read registro_datos store en memoria principal n = n + 1 endif endwhile Espera pasiva Uso de interrupciones Registro estado Bus Procesador Sistemas operativos: una visión aplicada 18 J. Carretero, F. García, P. de Miguel, F. Pérez Organización del disco Celdas de bit Byte Pista N Pista Pista Sectores Pista 1 a) Pistas y sectores b) Celdas de bit y octeto Sistemas operativos: una visión aplicada 19 J. Carretero, F. García, P. de Miguel, F. Pérez 1
PROTECCIÓN Protección UCP Niveles de ejecución Núcleo: ejecuta todas las instrucciones de máquina. Permite acceder a la E/S y registros especiales Usuario: ejecuta un subconjunto de las instrucciones Instrucciones privilegiadas sólo posible en modo núcleo Las interrupciones pasan automáticamente a modo de ejecución núcleo (sólo se puede pasar de esta forma) Núcleo Interrupción Usuario Cambiar a modo usuario Sistemas operativos: una visión aplicada 21 J. Carretero, F. García, P. de Miguel, F. Pérez 11
Protección El uso del reloj impide que se monopolice la UCP E/S: siempre mediante instrucciones privilegiadas principal: registros valla o claves principal Región asignada al proceso A Registro límite Registro base Registros valla Sistemas operativos: una visión aplicada 22 J. Carretero, F. García, P. de Miguel, F. Pérez Protección: división del mapa de memoria virtual Espacios de memoria virtual independientes RIED Mapa Virtual de Usuario A Mapa Virtual del S.O. Sistemas operativos: una visión aplicada 23 J. Carretero, F. García, P. de Miguel, F. Pérez 12