1. Sistemas Operativos
Recursos No Apropiables y Apropiables
• Apropiables:
• El sistema puede decidir quitarselo a un proceso.
Sistemas Operativos Profesor:
Your picture here • No es de uso exclusivo, es decir puede ser compartido
Ciclo 2012-1 Diaz Muñante Jorge por muchos procesos en concurrentemente.
• Ejemplo: La memoria
•No apropiables:
• El recurso no puede ser quitado del proceso que lo esta
utilizando sin causarle un daño.
Abrazo Mortal • Ejemplo: La impresora.
En general los bloqueos se producen con recursos
no apropiables
Interbloqueo Ejemplo
P1
P2
Recurso 1
Proceso 1 Proceso 2
Situación en la que se encuentran un conjunto de procesos,(al menos dos),
tal que cada proceso del conjunto espera la ocurrencia de un evento que sólo
puede ser provocado por otro proceso del mismo conjunto. Recurso 2
Modelo de Holt
Condiciones para el interbloqueo Aleatoriedad del interbloqueo
Condición Explicación
Exclusión mutua Solo un proceso a la vez puede accesar a un recurso
A B C
… … …
Esperando por Un proceso retiene al menos un recurso y esta pedir (R); pedir (S); pedir (T);
esperando para adquirir un recurso adicional que otro pedir (S); pedir (T); pedir (R);
proceso lo tiene … … …
liberar (R); liberar (S); liberar (T);
No apropiación Un recurso solo es liberado voluntariamente por el
liberar (S); liberar (T); liberar (R);
proceso, cuando este finaliza su tarea … … …
Espera Circular existe una cadena circular de procesos en la que
cada proceso tiene uno o más recursos que son
requeridos por el siguiente proceso en la cadena A R
B S
C T
Diaz Muñante Jorge 1
2. Sistemas Operativos
Aleatoriedad del interbloqueo Enfoques de manejo del Interbloqueo
En general, los interbloqueos no son sencillos de detectar, pues aun
existiendo la posibilidad de que se produzcan, el sistema puede sobrevivir
A B C durante largo tiempo sin que éste se manifieste.
… … …
pedir (R); pedir (S); pedir (T); Enfoque Descripción
pedir (S); pedir (T); pedir (R);
Prevención Asegura que no ocurre fijando reglas
… … …
Infrautilización de recursos
liberar (R); liberar (S); liberar (T);
liberar (S); liberar (T); liberar (R); Evitar Analiza el estado de los recursos para determinar si la
… … … concesión de un recurso podría llevar al interbloqueo
Detectar y Analiza el estado de los recursos para detectar el interbloqueo
recuperar Costo del algoritmo de la detección
A R Perdida de trabajo realizado
B S Ignorar Utilizada por la mayoría de los SSOO. Incluyendo el UNIX
Dado la baja probabilidad que ocurra y el costo de
implementación de un algoritmo para evitarlo
C T
Prevención del Interbloqueo
Havender (Hv68)
– Negación de la condición de no apropiación
• Cada proceso debe de hacer todas sus requisiciones de recursos y
no puede continuar hasta que todo le haya sido otorgado.
– Negación de la condición de posesión y espera
• Si a un proceso que retiene recursos asignados se le negó un
recurso, éste debe de liberar todos los que tenía. Si es necesario los
puede pedir después.
Negación de la espera circular
• Imponer un orden lineal de los tipos de recursos en todos los
procesos. Por ejemplo, si un proceso tiene asignados recursos de
un determinado tipo, éste sólo puede pedir recursos de tipos
posteriores en el ordenamiento.
Evitando el interbloqueo el algoritmo Estado Seguro
Un estado seguro es un estado en el cual el sistema puede asignar
Propuesto por Dijkstra.Banquero: recursos a los procesos (hasta su máximo) en alguna secuencia, y evitar
Involucra un banquero que realiza prestamos y abrazo mortal. Más formalmente, un estado es seguro sólo si existe una
recibe pagos de una determinada fuente de secuencia segura
capital.
Para autorizar un préstamo es necesario que el
cliente sea soluble y que no deje en banca rota al
banco.
Objetivo algoritmo:
Dejar al sistema en un estado seguro después de
asignar recursos
Diaz Muñante Jorge 2
3. Sistemas Operativos
Estado Seguro Estado inseguro
Un estado inseguro no necesariamente implica que se va a producir
abrazo mortal, pero se corre el riesgo.
En cambio, mientras el sistema esté en un estado seguro, no puede
haber abrazo mortal. La clave entonces es no pasar a un estado inseguro
Secuencia segura : P2, P1, P3
Estado No Seguro Banquero con varios recursos
ProcesoU.Cinta Plot er Impres. Cd-Rom Proceso U.Cinta Plotter Impres Cd-Rom
A 3 0 1 1 A 1 1 0 0
B 0 1 0 0 B 0 1 1 2
C 1 1 0 1 C 0 0 1 0
D 1 1 1 0 D 3 1 0 0
E 0 0 0 0 E 2 1 1 0
Posesión Faltantes
16
Ejemplo
Banquero con varios recursos
Hay 3 tipos de recursos diferentes (A=10, B=5, C=7) y 5 procesos:
Recursos Existentes (E),en posesión (P) y disponbles (D)
Se emplea vectores como E=(6342), P=(5322) y D=(1020)
Asignado Maximo Faltante
A B C A B C A B C
1. Buscar una Fila F, cuyas nececisidades de recursos sean menores
P0 0 1 0 7 5 3 7 4 3
o iguales a D. Si no existe tal fila, el sistema puede interbloquearse,
ya que ningún proceso puede ejecutarse hasta el final. P1 2 0 0 3 2 2 1 2 2
P2 3 0 2 9 0 2 6 0 0
2. Suponer que el proceso de la fila seleccionada solicita todos los
recursos que necesita, y termina. Marcar el proceso como terminado P3 2 1 1 2 2 2 0 1 1
y añadir sus recursos al vector D.
P4 0 0 2 4 3 3 4 3 1
3. Repetir los pasos 1 y 2 hasta que se vayan marcando todos los Disponible 3 3 2
procesos como terminados o hasta que llegue a una situacion de
interbloqueo.
Estado seguro: <P1,P3,P4,P2,P0>
Diaz Muñante Jorge 3
4. Sistemas Operativos
Bankers Algorithm (cont’d) Bankers Algorithm (cont’d)
<P1,P3,P4,P2,P0> <P1,P3,P4,P2,P0>
Todos los requerimientos de P1 pueden ser atendidos
P1 finaliza, P3 puede continuar
Asignado Maximo Faltante
A B C A B C A B C Asignado Maximo Faltante
P0 0 1 0 7 5 3 7 4 3 A B C A B C A B C
P1 2 0 0 3 2 2 1 2 2 * P0 0 1 0 7 5 3 7 4 3
P2 3 0 2 9 0 2 6 0 0 P1 2 0 0 3 2 2 1 2 2
P3 2 1 1 2 2 2 0 1 1 P2 3 0 2 9 0 2 6 0 0
*
P4 0 0 2 4 3 3 4 3 1 P3 2 1 1 2 2 2 0 1 1 *
Disponible 3 3 2 P4 0 0 2 4 3 3 4 3 1 *
Disponible 5 3 2
Bankers Algorithm (cont’d) Bankers Algorithm (cont’d)
<P1,P3,P4,P2,P0> <P1,P3,P4,P2,P0>
Despues que P3 finaliza, P4 puede continuar Despues P4 finaliza, P2 puede continuar
Asignado Maximo Faltante Asignado Maximo Faltante
A B C A B C A B C A B C A B C A B C
P0 0 1 0 7 5 3 7 4 3 * P0 0 1 0 7 5 3 7 4 3 *
P1 2 0 0 3 2 2 1 2 2 P1 2 0 0 3 2 2 1 2 2
P2 3 0 2 9 0 2 6 0 0 P2 3 0 2 9 0 2 6 0 0 *
*
P3 2 1 1 2 2 2 0 1 1 P3 2 1 1 2 2 2 0 1 1
P4 0 0 2 4 3 3 4 3 1 P4 0 0 2 4 3 3 4 3 1
*
Disponible Disponible 7 4 5
7 4 3
Bankers Algorithm (cont’d)
Tratamiento del interbloqueo
<P1,P3,P4,P2,P0>
Despues P2 finaliza, P0 puede continuar Mayoría lo ignora o no da una solución general
Distinción entre dos tipos de recursos:
Asignado Maximo Faltante
– Recursos internos (propios del S.O.)
A B C A B C A B C • • Usados por un proceso en modo sistema
P0 0 1 0 7 5 3 7 4 3 * • • Uso restringido a ejecución de una llamada
P1 2 0 0 3 2 2 1 2 2 • • Ej. semáforo interno para acceder a t. de procesos o buffer
P2 3 0 2 9 0 2 6 0 0 • • Interbloqueo puede causar colapso del sistema
P3 2 1 1 2 2 2 0 1 1
– Recursos de usuario
P4 0 0 2 4 3 3 4 3 1
• • Usados por un proceso en modo usuario
Disponible 10 4 7
• • Uso durante tiempo impredecible
• • Ej. dispositivo dedicado o semáforo de aplicación
• • Interbloqueo afecta a procesos y recursos involucrados
Diaz Muñante Jorge 4
5. Sistemas Operativos
Tratamiento de interbloqueo
Tratamiento de recursos internos
– Código del S.O. es algo que apenas se modifica
• • Se puede estudiar a priori uso de recursos
• – Interbloqueo → error de programación de S.O.
– Uso de estrategias de prevención es adecuado
• • Dado que tiempo de uso es breve y acotado
Tratamiento de recursos de usuario
– Código de procesos que usan recursos es impredecible
– No hay tratamiento general para todos los recursos
– Prevención → Infrautilización
– Predicción → Dificultad de conocer información a priori
– Detección y recuperación → Demasiada sobrecarga
• • Puede usarse para un único recurso
• • P.ej. En 4.4BSD se usa para cerrojos sobre archivos
Diaz Muñante Jorge 5