Estructura de los sistemas de cómputo ● Introducción ● Elementos básicos de un computador ● Registro del procesador ● Ejecución de las instrucciones ● Interrupciones ● Hardware de protección Introducción Qué es un sistema operativo? ● ● Un SO es un conjunto de programas que por medio de abstracciones ponen el hw del computador, de modo seguro, a disposición del usuario Conjunto de programas que gestionan los recursos del sistema, optimizan su uso y resuelven conflictos Introducción Qué es un sistema operativo? ● Es una máquina extendida – Esconde los detalles del hardware – Presenta una máquina virtual – Presenta abstracciones: fichero, proceso, I/O, memoria Introducción Qué es un sistema operativo? ● Es un gestor de recursos – Memoria, procesador, discos, impresoras, … – Dispositivos no compartidos – Protección de memoria – ¿Quién utiliza qué recurso? – Multiplexar recursos en tiempo y espacio Elementos básicos de un computador ● ● Procesador – Controla el computador. Lleva el control – Realiza funciones de procesamiento de datos y ejecución de instrucciones – Si solamente un solo procesador -->CPU Memoria Principal – Conocida como memoria real o memoria primaria – Almacena datos y programas; Es volátil Elementos básicos de un computador ● ● Dispositivos de E/S – Transporta datos entre el computador y su entorno exterior – Gran variedad de dispositivos (Memoria secundaria, equipos para comunicaciones, terminales, impresoras, etc.) Bus del Sistema – Comunicación entre el procesador, la memoria, y los dispositivos E/S Registros del procesador Registros del procesador ● ● ● El procesador lleva el control Una de sus funciones: intercambiar datos con la memoria Para esto hace uso de dos registros internos: – Registro de dirección de memoria (MAR): Dirección de memoria donde va hacer la siguiente lectura o escritura – Registro de intermedio (buffer) de memoria (MBR): Datos que van a ser escritos en memoria o que fueron leídos de ésta Registros del procesador ● Otros registros para la comunicación con disp. E/S: – I/O AR (Input Output Address Register): especifica un dispositivo – I/O BR (Input Output Buffer Register): se utiliza para intercambiar datos entre módulos de E/S y el procesador Registros del procesador ● ● Hay un conjunto de registros que ofrecen un nivel de memoria más rápido y pequeño que la memoria principal Registros Visibles para el Usuario – ● Permite al programador reducir al mínimo referencias de memoria principal optimizando uso del registro Registros de control y estado – Usados por el procesador para controlar la operación del procesador – Usado por las rutinas del Sistema Operativo para controlar la ejecución de programas Registros del procesador ● Registros Visibles para el Usuario – Puedes ser referenciados mediante código máquina o ensamblador (ASM) – Disponibles para todos los programas (programas de usuario y del sistema operativo) – Se pueden reducir accesos a memoria – Lenguajes de alto nivel optimizan código mediante la selección de registros a utilizar. – Otros lenguajes como C permiten hacer referencia implícita a registros Registros del procesador Tipo de registros ● Registros de Datos – ● de propósito general y para uso de cualquier instrucción que requiera realizar operaciones sobre datos Registros de Dirección – Registros Índice ● Añadir un índice a una dirección base para obtener una dirección Registros del procesador Tipo de Registros ● Registros de Dirección – Puntero de segmento ● – Cuando la memoria está dividida en segmentos, la memoria es referenciada por un segmento y un offset (desplazamiento) Puntero de Pila ● ● Si hay direccionamiento de pila esta se encuentra en la memoria principal Hay un registro que apunta la cima de la pila. Registros del procesador Tipo de Registros ● Otra categoría de registros – Registros que contienen códigos de condición – Parcialmente visibles para el usuario flags o bits activados por el procesador como resultado de determinadas operaciones – Conocidos como PSW (Program Status Word) Registros del procesador Registros de control y estado ● ● Registros para controlar operaciones del procesador Además de los registros MAR, MBR, IOAR, IOBR hay otro conjunto de registros utilizados por el procesador para la ejecución de programas: – Program Counter (PC) ● – Contiene la dirección de la instrucción siguiente Instruction Register (IR) ● Contiene la última instrucción leída Registros del procesador Registros de control y estado – Program Status Word (PSW) ● ● ● ● Códigos de condición Interrupciones Habilitadas/Deshabilitadas Modo Supervisor/Usuario Códigos o Flags de Condición (PSW) – Bits marcados por el procesador como resultado de las operaciones – Puede ser accedido por cualquier programa, pero no modificado – Ejemplos: Resultado positivo, Resultado negativo, Cero, Overflow Registros del procesador Registros de control y estado – Program Status Word (PSW) ● ● ● ● Códigos de condición Interrupciones Habilitadas/Deshabilitadas Modo Supervisor/Usuario Códigos o Flags de Condición (PSW) – Bits marcados por el procesador como resultado de las operaciones – Puede ser accedido por cualquier programa, pero no modificado – Ejemplos: Resultado positivo, Resultado negativo, Cero, Overflow Registros del procesador Ejecución de las instrucciones ● ● ● ● ● Tarea básica de un computador: ejecución de programas Un programa consta de un conjunto de instrucciones almacenadas en memoria El procesador ejecuta las instrucciones especificadas en el programa Ejecución de instrucciones – el procesador trae las instrucciones desde la memoria – ejecuta cada instrucción El procesamiento de una instrucción: ciclo de instrucción Ejecución de las instrucciones ● Ciclo de instrucción simple: – El procesador trae la instrucción de la memoria – La instrucción actual es almacenada en el registro de instrucción (IR) – El contador de programa (PC) almacena la dirección de la siguiente instrucción – El contador de programa (PC) se incrementa después de cada instrucción que trae Ejecución de las instrucciones ● Tipos de Instrucciones – Procesador-Memoria ● – Transfiere datos entre el procesador y la memoria Procesador – E/S ● Datos transferidos desde o hacia un dispositivo periférico – Procesamiento de datos – Operaciones aritméticas o lógicas sobre los datos Control ● ● Modificar la secuencia de ejecución (saltos) Ejecución de las instrucciones Ejecución de las instrucciones Funciones de E/S ● ● ● ● ● Los intercambios de E/S ocurren directamente con la memoria El procesador permite a los módulos de E/S leer o escribir en memoria directamente El procesador cede la responsabilidad del intercambio a los módulos de E/S El procesador está libre para hacer otras operaciones Esta técnica se conoce como Direct Memory Access (DMA) Interrupciones Definición de Interrupción: ● ● ● ● Interrupción de la secuencia normal de una ejecución Mejora la eficiencia del proceso Permite al procesador ejecutar otra instrucción mientras una operación de E/S está en marcha Una suspensión de un proceso causado por un acontecimiento externo a ese proceso y realizado de una manera tal que el proceso pueda ser recuperado. Interrupciones Clases de Interrupciones ● De programa – Desbordamiento aritmético, división por cero – Ejecución de una instrucción ilegal – Acceso fuera del espacio de memoria del usuario ● Reloj – interno del procesador ● E/S – ● Terminación normal. Diferentes cond de error Fallos Hardware Interrupciones Manejador de Interrupciones (interrupt handler) ● ● ● Un programa que determina la naturaleza de la interrupción y realiza las acciones necesarias El control es transferido a este programa Tras la ejecución de este programa el control pasa a la instrucción siguiente del programa interrumpido – ● el manejador de instrucciones coloca en el PC la dirección de la siguiente instrucción Generalmente es parte del sistema operativo Interrupciones Interrupciones Ciclo de interrupción: ● ● ● ● El procesador comprueba si hay interrupciones Si no hay interrupciones recoge la instrucción siguiente del programa actual Si hay una interrupción pendiente, suspende la ejecución del programa actual, y cede el control al manejador de interrupciones Hay cierta sobrecarga en el proceso, pero mayor es el desperdicio de tiempo por operaciones de E/S. Interrupciones Interrupciones Múltiples ● ● Es posible que se produzca una interrupción cuando se está tratando otra Dos enfoques: – Inhabilitar interrupciones cuando se está tratando una interrupción. Tratamiento secuencial. No se tienen en cuenta prioridades – Interrupciones por prioridad. Definir prioridades y permitir que una interrupción de mayor prioridad interrumpa el tratamiento de la interrupción actual. Hardware de protección ● ● ● Objetivo: Evitar la interferencia entre procesos de usuario, y entre los procesos y el SO Método: Definir como instrucciones “privilegiadas” aquellas que pueden potencialmente dañar a otros procesos o usuarios (operaciones de E/S, actualización de reloj, deshabilitar interrupciones, etc.) Consecuencia: diferentes modos de funcionamiento del hardware. Hardware de protección ● Mecanismo de protección – Compartición de recursos requiere mecanismos de protección – Errores pueden ser detectados por hardware y pueden ser manejados por el S.O – Errores generalmente generan una interrupción que es atrapa por el S.O – Ejemplos: Instrucción ilegal ● Violación del espacio de direcciones ● Hardware de protección ● Modo Dual de Operación – Dos modos de ejecución: usuario o supervisor (kernel, monitor, privilegiado o del sistema) – Cuando el sistema arranca, parte en modo monitor – Cuando ocurre una interrupción, la CPU cambia a modo supervisor (lo atiende el S.O) – El S.O debe velar siempre que cambie a modo usuario cuando se transfiere el control al usuario – Instrucciones privilegiadas de máquina sólo pueden ejecutarse en modo supervisor – La ejecución de una instrucción privilegiada en modo usuario causa interrupción/excepción con error de instrucción ilegal Hardware de protección ● Protección de la E/S – Un programa usuario puede causar daño si ejecuta instrucciones ilegales de E/S – Se debe proteger el acceso a los dispositivos E/S para evitar accesos concurrentes a dispositivos – Solución: ● ● Usuario sólo puede realizar operaciones de E/S indirectamente mediante una llamada al sistema (modo supervisor) Operaciones de E/S se definen como instrucciones privilegiadas Hardware de protección ● Protección de Memoria – Se debe proteger la memoria del S.O (núcleo) (p.e: vector de interrupciones y rutinas de manejo de interrupciones) – Se debe proteger mutuamente los programas de los usuarios (multiprogramación) – Técnica básica: registro base y registro límite – Estos registros deben ser posibles de modificar sólo en modo privilegiado Hardware de protección ● Técnica de registro base y límite Hardware de protección ● Protección de la CPU – Uso de temporizador (timer) para impedir monopolizar el procesador por parte de un programa – Se aplican también en la programación de otros eventos futuros – Timers se utilizan en sistemas de tiempo compartido para definir ranuras de tiempo – Timeout (expiración de tiempo) causa una interrupción