Sistema Operativo Repaso de Estructura de Computadores Capítulo 1 Elementos Básicos • 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 • 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) Componentes Hardware 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 • 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 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 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) • 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 Ciclo de Interrupción 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 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 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 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 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 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 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