Manejo de Interrupciones

Manejo de Interrupciones - Manejo de interrupciones...

Info iconThis preview shows page 1. Sign up to view the full content.

View Full Document Right Arrow Icon
This is the end of the preview. Sign up to access the rest of the document.

Unformatted text preview: Manejo de interrupciones interrupciones Conceptos clave Conceptos Concepto de interrupción Manejo de interrupciones Cambio de contexto Casos de estudio: Caso IBM Caso DOS Interrupciones Interrupciones ¿Qué es una interrupción?: Señal (de voltaje) que recibe el CPU, que altera la secuencia en que el procesador ejecuta instrucciones. procesador Antes . . . . . Disco duro Impresora CPU Lectora Cinta magnética Pantalla Técnica de Polling: El CPU pregunta constantemente a los El dispositivos si necesitan atención. dispositivos Ahora . . . . . Disco duro Impresora CPU Lectora Cinta magnética Pantalla Técnica de Interrupciones: Técnica Los dispositivos “interrumpen” al CPU cuando Los necesitan atención. necesitan Interrupciones Interrupciones En concreto: Una interrupción es un mecanismo de bajo overhead para Una ganar u obtener la atención del CPU. ganar El CPU tiene uno o dos cables llamados “Interrupt-request El lines”, que el CPU revisa después de ejecutar cada instrucción. Cuando el CPU detecta que el controlador de un dispositivo mandó una señal por el “Interrupt-request line”, salva la información del proceso actual y salta a la dirección de la rutina Manejadora de Interrupciones (que forma parte del Kernel del S.O). forma Uno de los “interrupt-request line” se usa para determinar Uno que interrupciones pueden ser deshabilitadas y el otro para las que no pueden deshabilitarse. para Características de un Manejador de Características Interrupciones Interrupciones 1. Debe tener la capacidad de diferir el manejo de una Debe interrupción cuando se está procesando algo crítico. interrupción 2. Requiere contar con una forma eficiente de llamar al Requiere manejador de interrupciones adecuado para cada dispositivo o tipo de interrupción, sin tener que verificar a todos los dispositivos para ver cual envió la interrupción. interrupción. 3. Necesita manejar múltiples niveles de interrupción, Necesita para poder distinguir entre interrupciones de alta y baja prioridad y así poder responder con el grado adecuado de urgencia. de En Sistemas Operativos modernos, estas tres características son soportadas por hardware, a través del CPU y del controlador de interrupciones. 7 Manejo de interrupciones Manejo Cuando ocurre una interrupción se producen llas siguientes actividades (en orden cronológico): as (en 1. 2. 3. El HW pasa el control al S. O., después de salvar ell contenido de los registros del CPU (saca la e “fotografía” del proceso que se está ejecutando). “fotografía” El S. O. manda llamar a la rutina manejadora de interrupciones “adecuada”. interrupciones Se procesa la interrupción. Manejo de interrupciones Manejo 1. Se continúa la ejecución del proceso que se estaba ejecutando al momento de la que interrupción o de otro proceso distinto. (se restaura la “fotografía” del proceso con que se va a continuar la ejecución). (se Manejo de interrupciones Manejo Cambio de contexto (context switching): Cambio (context Así se denomina al conjunto de actividades Así que realiza el S. O. para intercambiar al proceso que está corriendo (utilizando el CPU) por otro proceso. CPU) otro No todas las interrupciones causan un cambio No de contexto (Ej. Llega un proceso de menor prioridad a la cola de listos). prioridad Interrupciones Interrupciones El S.O. se encarga de crear la abstracción de proceso. El S.O. se activa al prender la máquina, pero una vez El hechas las iniciaciones correspondientes: pasa el control al primer proceso que creó en esta fase inicial y a partir de este momento se convierte en una entidad pasiva que ofrece servicios a los procesos, que son las únicas entidades activas del sistema. entidades Son los procesos los que ejecutan el código del S.O. como Son si éste fuera una gran biblioteca de servicios dirigida por eventos. eventos. 11 Interrupciones Interrupciones Típicamente se pueden distinguir 4 tipos de interrupciones: interrupciones: Interrupciones de dispositivos. Excepciones (errores de ejecución. Por ejemplo, división entre cero). Llamadas al Sistema operativo (Traps o trampas) Interrupciones de Software Las llamadas al sistema y las excepciones tienen carácter síncrono con el proceso, ya que fue el proceso el que solicitó la llamada o causó la excepción. solicitó Las interrupciones de los dispositivos y las interrupciones Las de software son de carácter asíncrono con el proceso (porque éste ni la solicitó ni la causó). (porque 12 Diagrama de estados básicos de un proceso un Cola de procesos listos Cola de procesos bloqueados Despertar Bloqueado Listo Tiempo excedido Bloqueo (E/S) Proceso terminado Despacho Corriendo CPU Programa A en ejecución Programa A ocioso Sistema operativo Programa B Interrupción . . . . . . . . . . . . . . . . . . Salvar registros . . . Restaurar registros . . . . . . . . . . Programa B en ejecución Interrupción Salvar . registros . . Restaurar registros en ejecución Manejo de interrupciones Programa B ocioso . . . . . . . . . . Programa B ocioso Interrupciones Interrupciones Con una política no-apropiativa (non Con preemptive) de asignación del CPU a los procesos, el proceso activo al momento de ocurrir la interrupción continua su ejecución al terminar de atenderse la interrupción. atenderse Interrupciones Interrupciones Si la política de asignación del CPU a llos procesos es apropiativa (preemptive), os el proceso que se interrumpió se forma en la cola de listos, a esperar que le sea asignado nuevamente el procesador. asignado Casos de estudio: Casos Caso IBM Caso DOS Caso IBM Tipo de interrupción Originada por: SVC (Supervisor call) Software I/O Hardware External Hardware Restart Hardware Program check Hardware Machine check Hardware IBM IBM PSW (program status word) registro PSW registro especial de hardware en computadoras IBM que se localiza en el CPU. Uno de sus campos es el Program Uno Counter, que almacena la dirección de la siguiente instrucción a ejecutar. siguiente ejecutar. PSW ’S viejos SVC 2 1 I/O External Restart Program check Machine check MEMORIA REAL PSW ’S nuevos SVC I/O Dir. Sig. Instr. a Ej. PSW Actual CPU Hardware External Restart Program check Machine check MEMORIA REAL Intercambio de PSW’S al procesar interrupciones (MAINFRAME’S IBM) Memoria real CPU 10004 Old PSW / SVC Old PSW / I/O . . . New PSW / SVC (5000) Rutina manejadora de interrupciones de SVC Rutina manejadora de 5500 interrupciones de I / O 5000 10000 10004 PSW Actual Existe uno de estos, para (5500) cada clase de interrupción (un Old y un New PSW) New PSW / I/O 9900 . . . . . . Código de proceso A Código que dará servicio a las interrupciones del tipo SVC Código que dará servicio a las interrupciones del tipo I/O Programa que se está ejecutand Estado actual de la memoria y el CPU Memoria real Old PSW / SVC Old PSW / I/O 4 (10004) . . . 1 2 New PSW / SVC (5000) New PSW / I/O (5500) 5000 5500 10000 10004 PSW actual 10004 5000 10004 Rutina manejadora de interrupciones de SVC Rutina manejadora de interrupciones de I / O 3 Se ejecuta el código que procesa las interrupciones del tipo SVC Código de proceso A 5 Continúa la ejecución del programa que se interrumpió . . . 9900 CPU Si suponemos que ocurre un SVC (supervisor call) Caso DOS Caso Vector de interrupciones Cada interrupción tiene asociado un código ada único (código de la interrupción) que se utiliza como subíndice para accesar un elemento específico del vector de interrupciones. interrupciones. Cada elemento del vector de interrupciones Cada almacena la dirección de la rutina del Sistema Operativo que procesa esa interrupción específica. interrupción Vector de Interrupciones Intel Pentium Processor Vector number Description 0 Divide error 1 Debug exception 2 Null interrupt 3 Breakpoint 4 INTO-detected overflow 5 Bound range exception 6 Invalid opcode 7 Device not available 8 Double fault 9 Coprocessor segment overrun (reserved) 10 Invalid task state segment 11 Segment not present 12 Stack fault 13 General protection 14 Page fault 15 (Intel reserved, do not use) 16 Floating-point error 17 Alignment check 18 Machine check 19-31 (Intel reserved, do not use) 32-255 Makable interrupts 24 24 Memoria real Códig o único 0 1 2 Vector de interrupcio nes Stack 1000 2000 3750 . . . . . . CPU Program counter 10004 1000Rutina de interrupciones 2000tipo 0 Rutina de interrupciones tipo 1 3750 Rutina de interrupciones tipo 2 . . . . 10000 10004 Proceso B Proceso A Estado actual de la memoria y el CPU (MS / DOS) Memoria real Códig o único 0 1 2 Vector de interrupcio nes CPU Stack 1000 2000 3750 . 10004 . . . . . 1 4 2 Program counter 10004 2000 1000Rutina de interrupciones 10004 2000tipo 0 3 que procesa las Rutina de interrupciones tipo 1 Se ejecuta el código 3750 Rutina de interrupciones tipo 2 interrupciones . . del tipo 1 . . 10000 10004 Proceso B Proceso A 5 Continúa la ejecución del programa que se interrumpió Si suponemos que ocurre una interrupción tipo 1 Muchas Gracias ...
View Full Document

This note was uploaded on 09/30/2011 for the course SISTEMAS O 1 taught by Professor Garza during the Spring '11 term at ITESM.

Ask a homework question - tutors are online