Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
[1]
Interbloqueo de Procesos
Principios Generales
Interbloqueo.- Bloqueo permanente de un conjunto de procesos que,
o compiten por recursos del sistema o se comunican entre s.
[2]
Interbloqueo de Procesos
Procesos con Interbloqueo
[3]
Interbloqueo de Procesos
Procesos sin Interbloqueo
[4]
Interbloqueo de Procesos
Recursos Reutilizables y Consumibles
[5]
Interbloqueo de Procesos
Condiciones para el Interbloqueo
1. Exclusin Mutua.- Solo un proceso puede utilizar un recurso en cada momento. Ningn
proceso puede acceder a una unidad de un recurso que ha sido asignado a otro
proceso.
2. Retencin y Espera.- Un proceso puede mantener los recursos asignados mientras
espera la asignacin de otros recursos.
3. Sin Expropiacin.- No se puede forzar la expropiacin de un recurso a un proceso que lo
posee.
4. Espera Circular.- Existe una lista cerrada de procesos, de tal manera que cada proceso
posee al menos un recurso necesitado por el siguiente proceso de la lista.
[6]
Interbloqueo de Procesos
Prevencin del Interbloqueo
La estrategia de prevencin consiste en disear un sistema que excluya la
posibilidad de Interbloqueo relacionadas a cada una de las 4 condiciones:
Exclusin Mutua: En general, esta condicin no puede eliminarse. Si el acceso a
un recurso requiere Exclusin Mutua, el SO debe proporcionarlo.
Retencin y Espera: Puede eliminarse estableciendo que un proceso debe
solicitar al mismo tiempo todos sus recursos requeridos, bloquendose hasta
que se le puedan conceder simultneamente todas las peticiones.
Sin Expropiacin: Esta estrategia solo es prctica cuando se aplica a recursos
cuyo estado se puede salvar y restaurar ms tarde, como es el caso de un
procesador.
Espera Circular: Definiendo un orden lineal entre los distintos tipos de recursos.
[7]
Interbloqueo de Procesos
Prediccin del Interbloqueo
Permite las tres condiciones necesarias para el Interbloqueo de procesos, pero se
toman decisiones razonables para asegurar que nunca se alcance el punto de
Interbloqueo. Las tcnicas son:
DENEGACIN DE INICIACIN DEL PROCESO: Solo puede iniciarse un proceso
si se pueden satisfacer las necesidades mximas de todos los procesos
actuales ms las del nuevo proceso. Esta estrategia no es ptima, ya que
asume el peor de los casos: todos los procesos solicitarn sus necesidades
mximas simultneamente.
DENEGACIN DE ASIGNACIN DE RECURSOS: Denominada tambin
Algoritmo del Banquero. Cuando un proceso solicite un conjunto de recursos,
se evala el estado del sistema bajo las condiciones solicitadas. Si el estado es
SEGURO, se concede la peticin. En caso contrario, se bloquea el proceso
hasta que sea seguro conceder la peticin.
[8]
Interbloqueo de Procesos
Prediccin del Interbloqueo DENEGACIN DE INICAICN DEL PROCESO
Considere un sistema con n procesos y m tipos diferentes de recursos.
Definimos los siguientes vectores y matrices:
(Necesidad)
(Asignacin)
[9]
Interbloqueo de Procesos
Prediccin del Interbloqueo DENEGACIN DE INICAICN DEL PROCESO
Se cumplen las siguientes relaciones:
[10]
Interbloqueo de Procesos
Prediccin del Interbloqueo DENEGACIN DE INICAICN DEL PROCESO
Se puede establecer una Poltica de Prediccin de Interbloqueo que rechace
iniciar un nuevo proceso si sus requisitos de recursos pusiesen conducir a un
Interbloqueo.
[11]
Interbloqueo de Procesos
Deteccin del Interbloqueo
Un Algoritmo usual para la deteccin de Interbloqueo es el siguiente.
Definimos:
[12]
Interbloqueo de Procesos
Deteccin del Interbloqueo - Algoritmo
El Algoritmo acta marcando los procesos que no estn en un Interbloqueo.
Inicialmente todos los procesos estn sin marcar. A continuacin, se lleva a cabo
los siguientes pasos:
1. Se marca cada proceso que tenga una fila de la matriz de Asignacin
completamente a cero.
2. Se inicia un vector temporal T asignndole el vector Disponibles (Availables).
3. Se busca un ndice i tal que el proceso i no est marcado actualmente y la fila
i-sima de S sea menor o igual que T. Es decir, Sik <= Tk, para 1 <= k <= m. Si no
se encuentra ninguna fila, el algoritmo termina.
4. Si se encuentra una fila que lo cumpla, se marca el proceso i y se suma la fila
correspondiente de la matriz de asignacin a T. Es decir, se ejecuta: Tk=Tk+Aik,
para 1 <= k <= m. A continuacin, se vuelve al tercer paso.
[13]
Interbloqueo de Procesos
Recuperacin luego del Interbloqueo
1. Abortar todos los procesos en Interbloqueo
2. Retroceder cada proceso en Interbloqueo a algn punto de control
(checkpoint) previamente definido, y rearrancar todos los procesos.
3. Abortar sucesivamente los procesos en el Interbloqueo hasta que este
deje de existir.
4. Expropiar sucesivamente los recursos hasta que el Interbloqueo deje
de existir.
[14]
Interbloqueo de Procesos
Estrategias Integradas para evitar el Interbloqueo
Usar estrategias diferentes en distintas situaciones. Sugiere la siguiente
tcnica:
Agrupar recursos en clases.
Utilizar estrategia de orden lineal (usada para prevenir espera circular)
Dentro de cada clase de recursos, usar el algoritmo ms apropiado para
la clase (prevencin, prediccin o deteccin).
[15]
[16]