U8 - Interrupciones y excepciones Flashcards
Quienes las causan en general?
Acontecimientos causados tanto por los dispositivos de E/S como por el programa que se ejecuta en el microprocesador
Interrupciones internas/software.
CARAC
Suspensión momentánea que bifurca el servicio.
Ejecuta tabla IDT y retoma el programa interrumpido
Convocadas por el programa
Interrupciones externas/hardware
CARAC
Residentes en memoria principal
No dependen del programa
INT EXTERNA NO ENMASCARABLE
Asociada por la señal de control NMI, la patita activa la entrada 2 de la IDT
Atendidas siempre, máxima importancia
INT EXTERNA ENMASCARABLE
Avisada por la señal INTR
No debe ser siempre atendida, se consulta la bandera de habilitación de interrupción
IF = 0 -> Sigue
IF =1 -> CPU suspende de forma momentánea la ejecución del programa y ejecuta la interrupción
INT INTERNA (NO ENMASCARABLE)
Se producen por la ejecución de una instrucción especifica dentro de un programa para solicitar una interrupción que limpia una función determinada.
INT #
Excepciones
DEFINICIÓN
Anomalías que se producen y detectan durante la ejecución del programa y a causa de ella
Excepciones
TIPOS
- Faltas/errores: Se pueden detectar y corregir antes de que se produzca la ejecución de una instrucción determinada
- Trampas: Se detectan una vez ejecutada la instrucción que las provoca
- Aborto: Se detectan sin localizar la instrucción que las provocan abortando la ejecución del programa
Tres pasos luego de que se detecte la interrupción
CUALES SON
- Programa en ejecución
- Presentación de la interrupción: Resguardo de contexto de la CPU en la pila. Ejecución del servicio de atención de interrupción y restauración del contexto de CPU.
- Programa nuevamente en ejecución
Con que se manejan las interrupciones?
La IDT, tabla de vectores de interrupción, posee la información en cada entrada de vector.
Entrada de vector:
Cuantos bytes tiene?
4 bytes para encontrar la dirección de memoria que corresponde a la interrupción Driver.
IDT
Que es y cuales son sus características?
Es una tabla para manejar las interrupciones u excepciones
*256 entradas donde especifica la dirección de comienzo de la rutina que atiende la causa que la provocó y soluciona el problema
Puede estar en cualquier sitio del espacio de dir. lineales
Se la localiza mediante el IDTR
IDT
Que numero de vectores pertenecen a cada sección?
0-19: Intel
20-31: CPU
Resto: usuario
IDTR
Que es?
En modo protegido
La tabla IDT ocupa un segmento cuya base y limite están contenidos en el Registro de Tabla de Descriptores de Interrupciones
32 bits base y 16 limite.
Instrucciones de la IDTR
LIDT -> Carga la base y limite ejecutada cuando el CPL= 0
SIDT -> Hace copia en memoria de la base y limite almacenado en la IDTR
Código de error de interrupciones
Cuando se genera?
Mecanismo de uso?
Se genera cuando el procesador está atendiendo una interrupción/excepción y se detecta una nueva.
El código de error es apilado en la pila de gestor de la excepción
Antes de terminar el proceso de la interrupción/excepción con IRET. Desapila los errores que se han producido y los atiende.
Ejecuta IRET y vuelve.
Codigo de error de interrupción
Formato
31-16: No usado
15-3: Índice -> Selector donde se produjo el error
3-2: TI -> En que tabla se encuentra el error GDT(0) o LDT(1)
2-1: IDT -> =1 sí =0 no
1-0: EXT -> Origen del error. =1 (Externo) =0 (Interno)
Interrupciones en Modo real
Cambia el tipo de entrada que dispone la IDT.
Descriptor 64bits
Entradas de 32 bits (Es la que posee el código que ha de saltar para ejecutar la interrupción. CS:IP)
Interrupciones en Modo Protegido
Debe tener la IDT en memoria principal
Descriptores de 8 bytes -> Tabla máx. de 2k.
Pasos de atención de una interrupción
- Analizar si hay mas de una interrupción pendiente. Si hay, seleccionar la solicitud de mayor prioridad.
- Se guarda en la pila el contenido del CS, IP y el registro de estado E-FLAGS
- Busca el vector predefinido en la IDT
Si no está predefinido viene dado por la instrucción INTR en los bits de menos peso del bus de direcciones (D0-D7) - Cuando finaliza la rutina de la interrupción, con la instrucción IRET se sacan de la pila los datos resguardados para continuar lo que estaba haciendo la CPU.
Como se denomina la señal de reconocimiento de una interrupción enviada a un dispositivo externo desde el procesador
(DEFINICION INTA, INTR, APIC)
INTA (Interrupt Acknowledge)
INTR es el pedido de interrupción que se envía a la APIC (Interrupt request)
Como se llama la capacidad de atender acontecimientos causados por otros dispositivos
Control de interrupciones
Que modulo especial gestiona las señales provenientes de dispositivos?
Modulo E/S – APIC
¿Como se denomina el evento que genera la falta de un segmento? ¿Qué modulo del microprocesador genera la señal que indica que esta se produjo?
Segment fault
MMU
Indique la denominación genérica para las peticiones de interrupción de los periféricos PIC q permiten determinar la prioridad de este para ser atendidos
IRQ
Tipo de excepción que surge cuando el procesador detecta anomalías como el intento de transferencia de la ejecución a un segmento marcado como no ejecutable
Excepción de protección