Introducción a los sistemas de Computación Capítulo 1 Sistemas Operativos • Admnistra los recursos del hardware de uno o mas procesadores • Provee un conjunto de servicios a los usuarios del sistema • Administra memoria secundaria y los dispositivos de entrada/salida Elementos Básicos • Procesador • Memoria Principal – Se la conoce como memoria real o primaria – volátil • Módulos de entrada/salida – Dispositivos de memoria secundaria – Equipamiento de comunicaciones – terminales • Bus del sistema – comunicacion entre procesadores, memoria, y módulos de entrada/salida Componentes principales Registros del Procesador • Registros publicos – Permite al programador minimizar las referencias a memoria principal optimizando el uso de dichos registros • Control y registros de estado – Usados por el procesador para el control operativo del mismo procesado – Utilizados por las rutinas del S.O. Para controlar la ejecucion de los programas Registros Públicos • Pueden ser referenciados por lenguaje de maquina • Disponible para todos los programas, de aplicacion o de sistema • Tipos de registros – Datos – Direcciones • Indice • Puntero a segmentos • Stack pointer Registros Públicos • Registros de direccionamiento – Indices • Intervienen en el calculo de direcciones reales sumando su contenido a un registro base – Punteros a segmentos • Cuando la memoria se divide en segmentos, el direccionamiento se hace en base al contenido del segmento mas un desplazamiento – Stack pointer • Apunta al tope de la pila o stack Control and Status Registers • Program Counter (PC) o Registro de Proxima Instruccion (RPI) – Contiene la direccion de la instruccion a ser analizada • Instruction Register (IR) o Registro de Instruccion (RI) – Contiene la instruccion analizada • Program Status Word (PSW) – Codigos de condición – Habilitacion/inhabilitacion de prioridades – Modo Supervisor o modo usuario Registros de Estado y Control • Códigos de Condición y banderas – Bits administrados por el procesador registrando los resultados de las operaciones – Pueden ser accedidas por los programas pero no modificadas – Ejemplos • • • • resultado positivo Resultado negativo cero Overflow Ciclo de Procesamiento para cada Instrucción Procesamiento de cada instruccion y su ejecución • El procesador toma una instrucción desde la Memoria Principal • Program counter (PC) retiene la dirección de la proxima instruccion a analizarse • El Program counter se incrementa con cada instruccion tomada para analizar Registro de Instruccion • La instruccion leida, es copiada al IR (instruction register) • Tipos de instrucción – Procesador a memoria • Transferencia de datos entre memoria y procesador – Procesesador-E/S • Datos transferidos hacia o desde perifericos – Procesamiento de datos • Operacion aritmetica o logica sobre datos – Control • Altera la secuencia de operacion Ejemplo de ejecucion de un programa Direct Memory Access (DMA) • El intercambio de E/S se hace directamente con la memoria • El procesador garantiza al modulo de E/S con la debida autoridad para leer/grabar a memoria • Releva al procesador de responsabilidad por sobre el intercambio • Libera al procesador para realizar otras tareas Interrupciones • Interrumpe la secuencia normal de ejecucion de un programa • Mejora la eficiencia de procesamiento • Permite al procesador ejecutar otras instrucciones mientras avanzan las operaciones de E/S • La suspension de un proceso causado por un evento externo al proceso se hace de tal manera, que el proceso puede ser reiniciado Clases de Interrupciones • Programas – – – – overflow artimético division por cero Ejecucion de una instruccion ilegal Referencia a una direccion fuera de los limites de la memoria • Timer • Entrada / Salida • Falla de Hardware Administrador de interrupciones • Es un programa que determina la naturaleza de cada interrupcion y pone n marcha las acciones correspondientes • El control es transferido a este programa • Generalmente, forma parte del S.O. Ciclo de Interrupción Ciclo de Interrupción • El procesador controla las interrupciones • Si no hay interrupciones, se sigue con el ciclo de instruccion de la siguiente orden para el programa en curso de ejecución • Si hay pendiente una interrupcion, se suspende la ejecucion del programa actual y se ejecuta el programa administrador de interrupciones Interrupciones multiples • Traba nuevas interrupciones mientras se trata una previa – El procesador ignora cualquier nueva señal de interrupción Interrupciones Múltiples Orden secuencial • Inhabilita interrupciones para que el procesador pueda completar su trabajo • Las interrupciones quedan pendientes hasta que el procesador vuelve a habilitar las interrupciones • Despues de completada la rutina del administrador de interrupciones, el procesador chequea si hay nuevas interrupciones por atender Interrupciones Multiples Prioridades • Interrupciones de alta prioridad obligan a esperar a otras de menor prioridad, • Causan la interrupcion del aministrador de interrupciones de baja prioridad a ser interrumpido • Ejemplo: cuando llega una entrada a traves de la linea de comunicaciones, necesita ser rapidamente absorbido para hacer lugar a los datos entrantes Multiprogramación • El procesador puede trabajar simultaneamente con mas de un programa La secuencia de programas que se ejecuten, depende de su relativa prioridad y del orden del pedido de E/S de datos • A la finalizacion del administrador de interrupciones, el control puede no retornar al programa al programa que se estaba ejecutando cuando ocurrio la interrupcion Jerarquia de Memorias Analizando y vinculando las Memorias por su jerarquia • • • • Costo decreciente por bit Incremento de capacidad Incremento del tiempo de acceso Decrecimiento de la frecuencia de accesos a la memoria por parte del procesador – Principio de localizacion de referencia Principio de Localizacion de referencia • Es una observacion hecha en el funcionamiento de la memoria/disco: donde es alta la probabilidad de que la instruccion a ejecutarse a posteriori de una previa, esté fisicamente contigua a la misma. Es alta la probabilidad de que sean fisicamente vecinos, dos registros que se han de procesar secuencialmente Disco Cache • Una porcion de memoria principal usada como buffer para retener transitoriamente, datos del disco • El disco se graba por cluster • Algunos datos grabados, pueden requerir ser referenciados nuevamente. Los datos son recuperados rapidamente del cache instalado en lugar de hacerlo del disco, mucho mas lentamente. Memoria Cache • Invisible al sistema operativo • Incrementa la velocidad de la memoria • La velocidad del procesador es mayor a la de la memoria Memoria cache Memoria Cache • Contiene una porcion de memoria principal • El procersador chequea primero la cache • Si no lo encuentra en la cache, se mueve el bloque requerido desde la memoria hacia la cache Cache/Main Memory System Diseño de Cache • Tamaño de la cache – Caches aún pequeñas, tienen un significativo impacto en la performance • Tamaño del bloque – Es la unidad de intercambio de datos entre chace y memoria ppal. – A mayor tamaño de bloque mas hits, hasta la probabilidad de utilizacion de datos cargados desde memoria sea menor a la de reusar los que fueron recien cargados en la cache Diseño de la cache • Funciones de mapeo – Determina cual sector de la cache, va a ser ocupada por el bloque • Algoritmos de reemplazo – Determina el bloque a reemplazar – Algoritmo de Least-Recently-Used (LRU) Diseño de la Cache • Politica de grabación – Cuando se graba la memoria – Puede ocurrir en cada oportunidad en que el bloque es actualizado – Puede ocurrir solamente cuando el bloque es reemplazado • Minimiza las operaciones de memoria • Deja la memoria en un estgado obsoleto E/S programada • El modulo de E/S realiza la operacion, no el procesador • Inicializa apropiadamente los bits del registro de estado de E/S • No se producen interrupciones • El procesador chequea el status de los indicadores, hasta que la operacion se completa Interrupcion orientada a E/S • El procesador es interrumpido cuando el modulo de E/S esta listo para el intercambio de datos • El procesador es liberado para acomenter otro trabajo • Eliminan esperas inutiles • Consume un poco de tiempo de procesador debido a que cada palabra procesada se hace a traves del procesador Direct Memory Access (DMA) • Transfiere un bloque de datos de/hacia memoria en forma directa • Se envia una interrupcion cuando la transmisión se ha completado • El procesador solo se involucra al comienzo y finalizacion de la transmision