La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

INTERRUPCIONES – ABRAZO MORTAL

Presentaciones similares


Presentación del tema: "INTERRUPCIONES – ABRAZO MORTAL"— Transcripción de la presentación:

1 INTERRUPCIONES – ABRAZO MORTAL
SISTEMAS OPERATIVOS INTERRUPCIONES – ABRAZO MORTAL ALATA REYNOSO MAYITT

2 INTERRUPCIONES Una interrupción es un mecanismo que permite ejecutar un bloque de instrucciones interrumpiendo la ejecución de un programa, y luego restablecer la ejecución del mismo sin afectarlo directamente. De este modo un programa puede ser interrumpido temporalmente para atender alguna necesidad urgente del computador y luego continuar su ejecución como si nada hubiera pasado.

3 LA GESTIÓN DE LAS INTERRUPCIONES TIENE LAS SIGUIENTES FASES:
Petición de interrupción. Cuando la CPU recibe una señal de petición de interrupción, la mantiene desatendida hasta que termina las instrucciones que estaba ejecutando. En ese momento atiende la petición de interrupción. Si se están ejecutando instrucciones del sistema operativo, puede detener la petición de interrupción hasta completar la tarea que desarrollaba. Si hubiera varias peticiones de interrupción pendientes, la CPU determina cuál es la prioridad de ejecución de esas interrupciones. Tratamiento de la interrupción. Una vez que se ha atendido la interrupción, se guarda en memoria la información que hay en la CPU relativa al programa interrumpido.

4 Ejecución del programa preferente
Ejecución del programa preferente. Comienza o continúa la ejecución del programa que solicitó la interrupción. Se termina la ejecución del programa que estaba atendiendo o se pasa a otra petición de interrupción que paraliza su ejecución. Ejecución de rutina de fin de interrupción. La rutina de fin de interrupción restaura desde la memoria a la CPU los valores que contenía antes de iniciar la interrupción. Paso del control al programa interrumpido. Una vez que la CPU ha restaurado los valores correspondientes al programa interrumpido continúa la ejecución de ese programa.

5 CLASES DE INTERRUPCIONES
De programa Generadas por alguna condición que se produce como resultado de la ejecución de una instrucción, como el desbordamiento aritmético, la división por cero, el intento de ejecutar una instrucción ilegal de la máquina o una referencia a una zona de memoria fuera del espacio permitido al usuario. De reloj Generadas por un reloj interno del procesador. Esto permite al sistema operativo llevar a cabo ciertas funciones con determinada regularidad. De E/S Generadas por un controlador de E/S, para indicar que una operación ha terminado normalmente o para indicar diversas condiciones de error por fallo de hardware. De error Generadas por fallos tales como un corte de energía o un error de paridad de la memoria.

6 INTERRUPCIONES INTERNAS DE HARDWARE
Las interrupciones internas son generadas por ciertos eventos que surgen durante la ejecución de un programa. Este tipo de interrupciones son manejadas en su totalidad por el hardware y no es posible modificarlas. Un ejemplo claro de este tipo de interrupciones es la que actualiza el contador del reloj interno de la computadora, el hardware hace el llamado a esta interrupción varias veces durante un segundo para mantener la hora actualizada.

7 INTERRUPCIONES EXTERNAS DE HARDWARE
Las interrupciones externas las generan los dispositivos periféricos, como pueden ser: teclado, impresoras, tarjetas de comunicaciones, etc. También son generadas por los coprocesadores. No es posible desactivar a las interrupciones externas. Estas interrupciones no son enviadas directamente a la UCP, sino que se mandan a un circuito integrado cuya función es exclusivamente manejar este tipo de interrupciones. El circuito, llamado PIC 8259A, si es controlado por la UCP utilizando para tal control una serie de vías de comunicación llamadas puertos.

8 INTERRUPCIONES DE SOFTWARE
Las interrupciones de software pueden ser activadas directamente por el ensamblador invocando al número de interrupción deseada con la instrucción INT. El uso de las interrupciones nos ayuda en la creación de programas, utilizándolas nuestros programas son más cortos, es más fácil entenderlos y usualmente tienen un mejor desempeño debido en gran parte a su menor tamaño.

9 Este tipo de interrupciones podemos separarlas en dos categorías: las interrupciones del sistema operativo DOS y las interrupciones del BIOS. La diferencia entre ambas es que las interrupciones del sistema operativo son más fáciles de usar pero también son más lentas ya que estas interrupciones hacen uso del BIOS para lograr su cometido, en cambio las interrupciones del BIOS son mucho más rápidas pero tienen la desventaja que, como son parte del hardware son muy específicas y pueden variar dependiendo incluso de la marca del fabricante del circuito. La elección del tipo de interrupción a utilizar dependerá únicamente de las características que le quiera dar a su programa: velocidad (utilizando las del BIOS) o portabilidad (utilizando las del DOS).

10 EXCEPCIONES Cuando la CPU intenta ejecutar una instrucción incorrectamente construida, la unidad de control lanza una excepción para permitir al SO ejecutar el tratamiento adecuado. Al contrario que en una interrupción, la instrucción en curso es abortada. Las excepciones al igual que las interrupciones deben estar identificadas.

11 CLASES DE EXCEPCIONES Las instrucciones de un programa pueden estar mal construidas por diversas razones: El código de operación puede ser incorrecto. Se intenta realizar alguna operación no definida, como dividir por cero. La instrucción puede no estar permitida en el modo de ejecución actual. La dirección de algún operando puede ser incorrecta o se intenta violar alguno de sus permisos de uso.

12 ABRAZO MORTAL Un conjunto de procesos está en un abrazo mortal cuando todos los procesos en ese conjunto están esperando un evento que sólo puede ser causado por otro proceso en el conjunto. Los eventos a los cuales nos estamos refiriendo son concernientes con la asignación y liberación de recursos principalmente. Sin embargo, otro tipo de eventos pueden llevar a la existencia de abrazos mortales. En la teoría de los sistemas operativos, se puede definir el problema del Abrazo Mortal como la situación de un conjunto de procesos en un estado de espera tal que ninguno de ellos tiene suficientes criterios para continuar su ejecución.

13 CONDICIONES NECESARIAS PARA QUE OCURRA UN ABRAZO MORTAL
Existen cuatro condiciones que deben cumplirse para que haya estancamiento. Una situación de abrazo mortal puede surgir sí y solo sí las siguientes cuatro condiciones ocurren simultáneamente en un sistema: 1. Exclusión Mutua. Los procesos reclaman control exclusivo de los recursos que pide. Al menos un recurso es mantenido en un modo no-compartible.

14 2. Retener y Esperar. Los procesos que regularmente contienen recursos otorgados antes pueden solicitar nuevos recursos. Debe existir un proceso que retenga al menos un recurso y esté esperando para adquirir recursos adicionales que están siendo retenidos por otros procesos. 3. No existe el derecho de desasignar. Los recursos no pueden ser desasignados; esto es, un recurso sólo puede ser liberado voluntariamente por el proceso que lo retiene, después de que el proceso ha terminado su tarea. 4. Espera Circular. Debe haber una cadena de dos o más procesos, cada uno de los cuales esté esperando un recurso contenido en el siguiente miembro de la cadena.

15 CONCLUSIÓN El abrazo mortal es un conjunto de procesos en un estado de espera tal que ninguno de ellos tiene suficientes criterios para continuar su ejecución. Cuando cada proceso del conjunto esta esperando por un evento que solo puede ser causado por otro proceso que esta dentro de este conjunto. Entre las condiciones para que se produzca un abrazo mortal tenemos, exclusión mutua, retener y esperar, no existe el derecho de designar y espera circular. Estas cuatro condiciones deben de cumplirse para que pueda ocurrir un abrazo mortal.


Descargar ppt "INTERRUPCIONES – ABRAZO MORTAL"

Presentaciones similares


Anuncios Google