diagrama de actividades!
DESCRIPTION
como son los diagramas de actividadesTRANSCRIPT
INTERRUPCIONES –ABRAZO MORTAL
ALATA REYNOSO MAYITT
SISTEMAS OPERATIVOS
INTERRUPCIONESUna 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.
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.
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.
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.
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.
INTERRUPCIONES INTERNAS 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.
INTERRUPCIONES EXTERNAS DE HARDWARE
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.
INTERRUPCIONES DE SOFTWARE
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).
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.
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.
CLASES DE EXCEPCIONES
ABRAZO MORTALUn 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.
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.
CONDICIONES NECESARIAS PARA QUE OCURRA UN ABRAZO MORTAL
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.
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.
CONCLUSIÓN