Contenido Tema 1: Introducción a los Sistemas Informáticos Elementos básicos Registros del procesador Ejecución de instrucciones Interrupciones Secciones Stallings: 1.1 – 1.4 A.Ortigosa Sistema Operativo Procesador (CPU cuando sólo hay uno) Memoria principal 3 almacena datos y programas = memoria real = memoria primaria volátil Módulos E/S: transportan datos entre procesador y dispositivos de memoria secundaria equipos de comunicación terminales Interconexión de sistemas (buses) Tema 1 - Lección 1 Comunicación entre procesadores, memoria principal y módulos E/S A.Ortigosa Componentes (alto nivel) Tema 1 - Lección 1 4 Registros del procesador Memoria principal CPU Bus del sistema Registros visibles al usuario Instrucción Instrucción Instrucción Datos Datos Datos Datos Unidad de ejecución PC IR MAR MBR I/O AR I/O BR = = = = = = Contador de programa Registro de instrucciones Registro de direcciones de memoria Registro intermedio de memoria Registro de direcciones de E/S Registro intermedio de E/S Figura 1.1. Componentes de un ordenador: visión de alto nivel Tema 1 - Lección 1 Permiten al programador minimizar referencias a memoria principal, optimizando el uso de estos registros Ej: registro de datos Registros de control y de estado Módulos de E/S A.Ortigosa 2 Elementos básicos de S.I. Explota los recursos del Hardware de uno o más procesadores para Ofrece un conjunto de servicios a los usuarios del sistema Gestiona memoria secundaria y dispositivos E/S A.Ortigosa Tema 1 - Lección 1 5 Usados por el procesador para controlar las operaciones del procesador Usados por las rutinas del SO para controlar la ejecución de los programas Ej: contador del programa A.Ortigosa Tema 1 - Lección 1 6 1 Registros visibles al usuario Registros visibles al usuario Registros de direcciones (de instrucciones o de datos). Ejemplos: Pueden ser referenciados mediante lenguaje máquina Disponibles para todos los programas (de aplicación y del sistema) Tipos de registros Registro de índice Puntero de segmento Datos Direcciones (de memoria principal) De instrucciones De datos A.Ortigosa 7 Cuando la memoria se divide en segmentos, se referencia mediante referencia al segmento particular + desplazamiento dentro del segmento Puntero de pila Tema 1 - Lección 1 Implica sumar un índice a un valor base para obtener la dirección efectiva Apunta a la cima (tope) de la pila A.Ortigosa Registros de control y de estado Fase de búsqueda Contiene la dirección de la instrucción a ser leída Registro de instrucción (IR) Contiene la última instrucción leída INICIO Palabra de estado del programa (PSW) Códigos de condición (flags) Ejecutar instrucción FIN Fase de búsqueda: procesador busca instrucción de memoria Contador de programa (PC) mantiene dirección de la siguiente instrucción a leer => se incrementa después de cada lectura Activados por el Hw como resultado de operaciones Programa puede leerlos, pero no modificarlos Ejs: resultado positivo, resultado negativo, cero (zero), desbordamiento (overflow) Bit para habilitar/deshabilitar interrupciones Bit indicando modo supervisor/usuario A.Ortigosa Tema 1 - Lección 1 9 Registro de instrucción (IR) Memoria Paso 1 Se transfieren datos entre ambos (en cualquier dirección) Memoria Procesador-E/S Tratamiento de datos Control Operaciones aritméticas o lógicas sobre los datos Registros de CPU Paso 2 Registros de CPU Memoria Registros de CPU Memoria Paso 4 Registros de CPU Memoria Registros de CPU Altera la secuencia de la ejecución (saltos) Tema 1 - Lección 1 10 Ciclo 2 (lectura + ejecución) Paso 3 Ciclo 3 (lectura + ejecución) Paso 5 A.Ortigosa Registros de CPU Memoria Se transfieren datos desde o hacia un dispositivo periférico (a través del módulo E/S) Tema 1 - Lección 1 Ciclo 1 (lectura + ejecución) Procesador-memoria A.Ortigosa Ejemplo de ejecución de programa En él se coloca la instrucción leída Tipos de instrucciones Buscar instrucción siguiente Fase de ejecución Contiene información de estado 8 Ciclo básico de instrucción Contador del programa (PC) Tema 1 - Lección 1 11 A.Ortigosa Paso 6 Tema 1 - Lección 1 12 2 Ejemplo de ejecución de programa Procesadores modernos: instrucciones con más de una dirección => ejecución puede involucrar a varias referencias a memoria A.Ortigosa Tema 1 - Lección 1 Interrupciones Interrupción de la secuencia normal de ejecución Suspensión de un proceso causada por un evento externo al mismo de forma que el proceso podrá ser retomado Mejora la eficiencia del procesamiento Permite al procesador ejecutar otras instrucciones durante E/S 13 A.Ortigosa Clases de interrupciones El control se transfiere a este programa Determina la naturaleza de la interrupción y realiza las acciones necesarias (detener proceso, …) Generalmente es una rutina parte del SO Desbordamiento aritmético División por cero Intento de ejecutar instrucción ilegal Referencia a zona de memoria fuera del espacio de trabajo del usuario De reloj: para funciones periódicas De E/S: para indicar normalidad/error Fallo de Hw: cortes de energía, errores de paridad de memoria, etc. A.Ortigosa Programa de usuario Tema 1 - Lección 1 Programa de E/S Programa de usuario 15 Programa Programa de de E/S usuario 14 Manejador de interrupciones De programa Tema 1 - Lección 1 A.Ortigosa Tema 1 - Lección 1 16 Programa de E/S Ciclo de interrupción Orden de E/S ESCRIBIR ESCRIBIR Orden de E/S ESCRIBIR Orden de E/S Ciclo de búsqueda Ciclo de ejecución Ciclo de interrupción FIN Rutina de tratamiento de interrupc. Rutina de tratamiento de interrupc. ESCRIBIR ESCRIBIR ESCRIBIR FIN ESCRIBIR ESCRIBIR (a) Sin interrupciones Interrupciones deshabilitadas INICIO FIN Buscar instrucción siguiente Ejecutar instrucción FIN ESCRIBIR (b) Con interrupciones y corta espera E/S Comprobar interrupción; Inicia manejador Interrup. de interrupción habilitadas (c) Con interrupciones y larga espera de E/S Figura 1.7. Ciclo de instrucción con interrupciones Figura 1.5. Flujo de control del programa con y sin interrupciones A.Ortigosa Tema 1 - Lección 1 17 A.Ortigosa Tema 1 - Lección 1 18 3 Ciclo de interrupciones Interrupciones múltiples Programa del usuario Procesador comprueba si hay interrupciones Si no, lee la siguiente instrucción del programa Si hay interrupción pendiente, suspende ejecución del programa y ejecuta el manejador de interrupciones Rutina X de tratamiento de int. 2 posibilidades: Deshabilitar interrupciones Definir prioridades Rutina Y de tr.int. (a) Tratamiento de interrupciones secuencial Programa del usuario Rutina X de tratamiento de int. Rutina Y de tr.int. (b) Tratamiento de interrupciones anidado A.Ortigosa Tema 1 - Lección 1 19 A.Ortigosa Interrupciones múltiples. Orden secuencial Interrupciones múltiples. Prioridades Se deshabilitan interrupciones para que el procesador complete la tarea Interrupciones quedan pendientes hasta que el procesador habilita interrupciones Cuando el manejador de interrupciones termina, el procesador comprueba si hay interrupciones adicionales antes de retomar la tarea inicial Limitación: prioridades o necesidades críticas de tiempo A.Ortigosa Tema 1 - Lección 1 21 Interrupción de mayor prioridad hace esperar a las de menor prioridad Provoca la parada del manejador de interrupciones de menor prioridad Ejemplo: entrada por línea de comunicaciones, necesita ser procesada rápido para hacer espacio para las siguientes A.Ortigosa Multiprogramación Tema 1 - Lección 1 Tema 1 - Lección 1 22 Para la próxima clase Procesador tiene más de un programa a ejecutar La secuencia de ejecución de programas depende de su prioridad relativa y de si están esperando E/S Después del procesamiento de una interrupción, el control puede no volver al programa que se ejecutaba cuando se recibió la interrupción, sino a otro pendiente de mayor prioridad A.Ortigosa Figura 1.12. de control con múltiples interrupciones Tema 1 -Transferencia Lección 1 20 23 Secciones 2.1 y 2.2 del Stallings A.Ortigosa Tema 1 - Lección 1 24 4