Sistema Operativo Repaso de Estructura de Computadores Capítulo 1 Explota los recursos hardware de uno o más procesadores Proporciona un conjunto de servicios a los usuarios del sistema Gestiona la memoria secundaria y los dispositivos de entrada/salida (I/O) Elementos Básicos Componentes Hardware Procesador Memoria Principal referida como memoria real o memoria primaria volátil Módulos de entrada/salida (I/O) dispositivos de memoria secundaria equipos de comunicación terminales Bus del sistema comunicación entre procesos, memoria, y módulos de entrada/salida
Registros del Procesador Registros visibles por el Usuario Permiten al programador minimizar las referencias a la memoria principal mediante la optimización del uso de registros Registros de Control y Estado Usados por el procesador para control de la operatividad del propio procesador Usados por las rutinas del sistema operativo para controlar la ejecución de los programas Registros Visibles por el Usuario Pueden ser referenciados por el lenguaje máquina Disponibles para todos los programas (aplicaciones y programas del sistema) Tipos de registros Datos Dirección Índice (Index) Puntero a Segmento (Segment pointer) Puntero a la Pila (Stack pointer) Registros Visibles por el Usuario Registros de Dirección Índice (index) supone sumar un índice a un valor base para obtener una dirección Puntero a Segmento (segment pointer) Cuando la memoria está dividida en segmentos, la memoria se referencia por un segmento y un desplazamiento (offset) Puntero a la Pila (stack pointer) apunta a la cima de la pila Registros de Control y Estado Contador del Programa (Program Counter:PC) Contiene la dirección de la instrucción que se requiere Registro del Instrucción (Instruction Register:IR) Contiene la última instrucción requerida Palabra de Estado (Program Status Word:PSW) Códigos de condición Habilitación/Inhibición de Interrupciones Modo Supervisor/usuario
Registros de Control y Estado Ciclo de Instrucción Banderas o Códigos de Condición Conjuntos de Bits del hardware del procesador como resultados de operaciones Pueden ser consultados por un programa pero no alterados Ejemplos resultado positivo resultado negativo cero desbordamiento Búsqueda y Ejecución de la Instrucción El contador del programa (PC) tiene la dirección de la instrucción a buscar. El procesador busca (fetch) la instrucción en la memoria El Contador de Programa se incrementa después de cada búsqueda Registro de Instrucción Las instrucciones buscadas se cargan en el registro de instrucción Tipos de instrucciones Procesador-memoria transfieren datos entre el procesador y la memoria Procesador-Entrada/Salida transfieren desde o hacia un dispositivo periférico Procesamiento de datos operaciones aritméticas o lógicas sobre datos Control alteran la secuencia de la ejecución
Ejemplo de Ejecución de un Programa Acceso Directo a Memoria (DMA) Los intercambios de entrada/salida se realizan directamente con la memoria El procesador le otorga al módulo de entrada/salida autoridad para leer y escribir en la memoria Libera al procesador de la responsabilidad del intercambio de datos El procesador queda libre para realizar otras tareas Interrupciones Una interrupción de la secuencia normal de ejecución Mejora la eficiencia del procesamiento Permite al procesador ejecutar otras instrucciones mientras una operación de entrada/salida está en marcha Una suspensión del proceso causada por un evento externo al proceso realizada de tal manera que el proceso pueda ser reanudado Tipos de Interrupciones Programa rebosamiento aritmético división por cero ejecución de instrucción ilegal referencia fuera del espacio de memoria del usuario Temporizador (Timer) Entrada/salida (I/O) Fallo Hardware
Rutina de Tratamiento de la Interrupción (RTI) Ciclo de Interrupción Un programa que determina la naturaleza de la interrupción y realiza la acción que se necesite El control se transfiere a este programa Normalmente es una parte del sistema operativo En inglés: interrupt handler Ciclo de Interrupción El procesador comprueba las interrupciones Si no hay peticiones, busca la siguiente instrucción del programa de usuario Si hay una interrupción pendiente, suspende la ejecución del programa y ejecuta la RTI
Interrupciones Múltiples Deshabilitar las interrupciones mientras una interrupción está en proceso El procesador ignora cualquier nueva señal de petición de interrupción Interrupciones Múltiples Orden Secuencial Deshabilitar las interrupciones de manera que el procesador pueda completar la tarea La interrupción queda pendiente hasta que el procesador permite interrupciones Cuando acaba la rutina de tratamiento de la interrupción (RTI), el procesador comprueba si hay interrupciones pendientes Interrupciones Múltiples Prioridades Las interrupciones de mayor prioridad: hacen esperar a las interrupciones de menor prioridad interrumpen a las RTI de interrupciones de menor prioridad p.e.: cuando llega un dato de una línea de comunicación, éste debe ser absorbido rápidamente para dejar sitio a más datos Multiprogramación El procesador tiene más de un programa que ejecutar La secuencia de programas a ejecutar depende de la prioridad relativa y de cuando éstos están esperando una entrada/salida Después de finalizar una RTI, el control puede que no se devuelva al programa que se estaba ejecutando cuando se produjo la interrupción
Jerarquía de Memoria Bajando a través de la jerarquía Decremento del coste por bit Incremento de la capacidad Incremento del tiempo de acceso (latencia) Decremento de la frecuencia de acceso por parte del procesador localidad de referencia Cache de disco Una porción de la memoria principal usada como almacén temporal de datos del disco Las escrituras al disco se agrupan Algunos datos escritos pueden ser leídos otra vez. Los datos se recuperan más rápidamente desde la cache software que desde el disco Memoria cache Invisible al sistema operativo Incrementa la velocidad de la memoria El procesador es más veloz que la memoria
Memoria Cache Cache/Main Memory System Contiene una porción de la memoria principal El procesador primero busca en la cache Si no se encuentra en cache, el bloque que contiene la información buscada se copia en la cache Diseño Cache Tamaño de la cache incluso pequeñas caches tienen un impacto significativo en el rendimiento Tamaño del bloque (línea cache) es la unidad de transferencia de datos entre la cache y la memoria principal Acierto significa que el dato está en la cache mayores bloques de cache dan lugar a más aciertos, mientras la probabilidad de usar los nuevos datos sea mayor que la probabilidad de usar datos reemplazados de la cache Diseño Cache Política de ubicación (mapping function) determina qué posición de cache ocupa un bloque Algoritmo de reemplazo determina qué bloque se reemplaza Algoritmos: FIFO, Least-Recently-Used (LRU), LRU jerárquico,
Diseño Cache Política de escritura Cuando tiene lugar una operación de escritura en memoria siempre que se actualice un bloque en cache sólo cuando es bloque es reemplazado Minimiza las operaciones de memoria Problemas de consistencia de datos Entrada/salida programada El módulo de entrada/salida realiza la acción, no el procesador Se activan los bits adecuados en el registro de estado de entrada/salida No se producen interrupciones El procesador comprueba el estado hasta que finaliza la operación Entrada/salida por interrupción El procesador es interrumpido cuando un módulo de I/O está listo para intercambiar datos El procesador queda libre para realizar otras tareas No requiere tiempos de espera Consume tiempo de CPU porque cada palabra que se lee o escribe pasa a través del procesador Acceso Directo a Memoria Transfiere un bloque de datos directamente a o desde la memoria Se envía una interrupción cuando se completa la transferencia El procesador sólo está implicado en el inicio y fin de la transferencia