Académique Documents
Professionnel Documents
Culture Documents
5 de noviembre de 2012
c Gustavo Romero
Indice
Gesti on de recursos Tipos de recursos Protocolo de utilizaci on Gesti on de interbloqueos Denici on de interbloqueo Resoluci on de interbloqueos
Prevenir Evitar Detectar y recuperar Ignorar
c Gustavo Romero
Lecturas recomendadas
Operating Systems (11, 18) Fundamentos de Sistemas Operativos (7) Sistemas Operativos (6) Sistemas Operativos Modernos (3)
c Gustavo Romero
Gesti on de recursos
c Gustavo Romero
Motivaci on
Los procesos pueden utilizar los recursos de los que dispone la m aquina sobre las que se ejecutan. Los recursos pueden ser de distinta naturaleza:
Hardware. Software.
La forma de utilizar esos recursos puede conducir a situaciones en las que el progreso de los procesos involucrados es imposible = bloqueo irreversible o interbloqueo.
Hardware:
A: adquiere el esc aner y adem as la unidad de cd. B: adquiere la unidad de cd y adem as el esc aner.
Software:
A: bloquea registro X y Z de una BD B: bloquea registro Z y X de una BD.
Software:
b ufer cheros directorio ...
Recursos expropiables y no expropiables Un recurso se dice expropiable si puede serle retirado al proceso que lo posee sin causarle da no alguno, ej: memoria. Un recurso se dice no expropiable si no puede serle retirado al propietario sin hacer que falle, ej: unidad de cd, impresora. En los interbloqueos suelen intervenir recursos no expropiables.
c Gustavo Romero Gesti on de recursos: interbloqueo e inanici on (7/44)
Protocolo de utilizaci on de recursos (1) Para utilizar un recurso se sigue este protocolo: solicitar el recurso. utilizar el recurso. liberar el recurso. Ante una solicitud de recurso que no pueda ser atendida podemos hacer dos cosas: bloquear el proceso hasta que el recurso quede disponible de nuevo. hacer que la solicitud falle y comunicarlo devolviendo un c odigo de error.
c Gustavo Romero Gesti on de recursos: interbloqueo e inanici on (8/44)
La utilizaci on de un recurso es parecida a la gesti on de una secci on cr tica: asignar entrar secci on cr tica liberar salir secci on cr tica
c Gustavo Romero
EL segundo proceso/hebra debe esperar a que el primero acabe de utiliza el recurso y lo libere. S olo entonces el segundo podr a nalizar la asignaci on del recurso antes de poder utilizarlo.
c Gustavo Romero Gesti on de recursos: interbloqueo e inanici on (10/44)
c Gustavo Romero
c Gustavo Romero
Gesti on de recursos: recursos exclusivos Un recurso se dice exclusivo cuando se asigna como una unidad u nica e indivisible. Un gestor de recursos exclusivos podr a implementarse como un monitor con dos operaciones: asignar(recurso) liberar(recurso) Existe un gran parecido entre la gesti on de recursos exclusivos y las secciones cr ticas ejecutadas en exclusi on mutua.
c Gustavo Romero Gesti on de recursos: interbloqueo e inanici on (14/44)
Un gestor de recursos divisibles tambi en podr a implementarse como un monitor, pero con dos operaciones ligeramente diferentes:
asignar(recurso,cantidad,localizaci on) liberar(recurso,cantidad,localizaci on)
Este tipo de recursos pueden asignarse por partes, con lo que deberemos especicar tanto la cantidad como la localizaci on de cada una de las partes.
c Gustavo Romero
Gesti on de recursos
c Gustavo Romero
Gesti on de interbloqueos
c Gustavo Romero
Denici on de interbloqueo Denici on: Un conjunto de procesos/hebras se encuentra interbloqueado si cada uno de ellos est a esperando un suceso que s olo otro proceso del conjunto puede causar. Habitualmente el suceso esperado es la liberaci on de alg un tipo de recurso o secci on cr tica. Ninguno de los procesos puede...
ejecutarse liberar un recurso o secci on cr tica ser despertado (desbloqueado)
c Gustavo Romero Gesti on de recursos: interbloqueo e inanici on (18/44)
a) El recurso R1 ha sido asignado al proceso P1. b) El proceso P2 espera a que el recurso R2 le sea asignado. c) Interbloqueo.
c Gustavo Romero Gesti on de recursos: interbloqueo e inanici on (20/44)
Resoluci on de interbloqueos Prevenir: anular una de las cuatro condiciones necesarias para la aparici on de un interbloqueo. Evitar: asignar recursos de forma cuidadosa para que no pueda aparecer el interbloqueo. Detectar y recuperar: intentar detectar el interbloqueo y tomar medidas para resolverlo en caso de que aparezca. Ignorar: no hacer nada con la esperanza de que no aparezca el interbloqueo.
c Gustavo Romero Gesti on de recursos: interbloqueo e inanici on (21/44)
Prevenir: atacar la condici on de exclusividad Algunos recursos necesitan ser utilizados de forma exclusiva, ej: impresora, teclado, pila,... Con algunos de estos recursos podemos hacer spooling:
todo proceso cree utilizar de forma inmediata y exclusiva el recurso. s olo el demonio del recurso lo utiliza realmente. no aplicable a todos los recursos, ej: tabla de procesos.
Tanto el spooling como la virtualizaci on introducen nuevos problemas en el sistema, ej: competici on por espacio en memoria y/o disco.
c Gustavo Romero Gesti on de recursos: interbloqueo e inanici on (22/44)
Prevenir: atacar la condici on de retener y esperar El proceso debe solicitar por adelantado todos los recursos que va a necesitar. Si consigue todos los recursos podr a nalizar y devolverlos. Si no puede conseguirlos todos simult aneamente deber a esperar. Inconvenientes:
Todo proceso debe conocer por adelantado que recursos va a necesitar. No se hace un uso optimo de los recursos. La espera para poder disponer de todos los recursos puede ser larga.
c Gustavo Romero Gesti on de recursos: interbloqueo e inanici on (23/44)
La expropiaci on requiere la capacidad de almacenar el estado del recurso expropiado para su posterior devoluci on no siempre posible. La expropiaci on de alguno recursos puede producir resultados err oneos, ej: impresora. Se le ocurre alguna forma de hacer una impresora expropiable?
c Gustavo Romero Gesti on de recursos: interbloqueo e inanici on (24/44)
Prevenir: atacar la condici on de espera circular 1a soluci on: permitir a cada proceso la asignaci on de un u nico recurso demasiado restrictiva. 2a soluci on: imponer un orden estricto entre recursos para su asignaci on:
Una vez que un proceso recibe un recurso i , puede volver a solicitar otros si y s olo si su n umero de orden j es mayor, j > i . Aplicable a m ultiples procesos: el que tenga el recurso con el mayor n umero de orden siempre podr a nalizar. Puede ser imposible encontrar una ordenaci on que satisfaga a todo el mundo.
De esta forma en el grafo de asignaci on de recurso nunca podr a aparecer un ciclo con lo que nunca se producir a un interbloqueo.
c Gustavo Romero Gesti on de recursos: interbloqueo e inanici on (25/44)
Viabilidad de la prevenci on condici on estrategia exclusividad multiplexaci on retener y esperar solicitar recursos por adelantado no expropiaci on expropiar recursos espera circular ordenaci on de recursos
Soluci on demasiado restrictiva, ej: asignaci on en orden. Utilizaci on de recursos demasiado baja, ej: solicitar al principio y no poder liberar hasta la nalizaci on. Demasiada sobrecarga, ej: la expropiaci on requiere tiempo y espacio para almacenar y restaurar. Consecuencia ninguna de estas soluciones se emplea en sistemas comerciales.
c Gustavo Romero Gesti on de recursos: interbloqueo e inanici on (26/44)
Siempre hemos de tener en cuenta el peor caso posible. La mayor restricci on es conocer por adelantado los recursos que va a necesitar un proceso.
c Gustavo Romero Gesti on de recursos: interbloqueo e inanici on (27/44)
Modelo te orico para evitar interbloqueos (2) Invariantes y restricciones: Los recursos o bien est an disponibles o bien han sido asignados:
n
Ri = Di +
k =1
Aki
Ninguna hebra solicita m as recursos de los que posee el sistema: Ski Ri k , i Ninguna hebra recibe m as recursos de los que solicita: Aki Ski k , i
c Gustavo Romero Gesti on de recursos: interbloqueo e inanici on (29/44)
Modelo te orico para evitar interbloqueos (3) Iniciar una nueva hebra o asignar un nuevo recurso si y s olo si:
n
Ri Sn+1,i +
Ski
k =1
Esta pol tica es muy pesimista porque asume que todas las hebras solicitar an sus recursos al mismo tiempo. En la pr actica sin embargo suele pasar que...
Algunos de los recursos nunca son solicitados. Pocas hebras necesitar an todos sus recursos a la vez.
c Gustavo Romero
c Gustavo Romero
c Gustavo Romero
c Gustavo Romero
Estado seguro
Denici on: El estado de un sistema con n hebras es seguro mientras exista al menos una secuencia de ejecuci on que permita a todas nalizar. Formalmente: El estado del sistema es seguro si y s olo si existe una permutaci on < Hki , Hk2 , Hkn > dentro de {H1 , H2 , Hn } i {1, 2, n} : o i {1, 2, n} : Ski Aki Ri
s =1
Ski Aki Di +
i 1
Aks
s =1 n
Aks
c Gustavo Romero
O(n2 m)
respuesta_t banquero() { respuesta t respuesta = desconocida; hebra HI[N] = H; // hebras interbloqueadas, inicialmente todas for(int i = 0; i < N; ++i) // para cada hebra if (H[i] pertenece HI && S[i,*] - A[i,*] < D[*]) // asignable? { sacar H[i] de HI[i]; // sacar hebra de interbloqueadas D[*] = D[*] - A[i,*]; // actualizar recursos disponibles if (HI vacio) respuesta = seguro; } else { respuesta = inseguro; } return respuesta; }
c Gustavo Romero Gesti on de recursos: interbloqueo e inanici on (36/44)
Detecci on de interbloqueos (1) Como parece que prevenir o evitar los interbloqueos no funciona demasiado bien, vamos a intentar detectarlos para poder deshacerlos. Una soluci on es modicar el algoritmo del banquero para relajar sus condiciones y hacerlo m as eciente:
P[n][m]: matriz de solicitudes de recursos pendientes de asignar. if(H[i] HI && P[i,*] D[*])...
(a) Estudie los recursos asignados y solicitados. (b) Ciclo descubierto en el grafo de recursos interbloqueo.
c Gustavo Romero Gesti on de recursos: interbloqueo e inanici on (38/44)
Uso del algoritmo de detecci on de interbloqueos Cu ando y con qu e frecuencia utilizar el algoritmo de detecci on? En el caso extremo de que una solicitud de recurso no pueda ser atendida
Qu e coste tendr a esto para el sistema? Cu anto incrementar a la complejidad del sistema? C omo afecta a la temporizaci on?
c Gustavo Romero
Recuperaci on de un interbloqueo (1) Qu e hacer una vez detectado un interbloqueo? nalizar procesos Finalizar todos los procesos interbloqueados.
Es r apido pero desperdicia mucho trabajo.
Expropiar recursos.
De qu e forma seleccionar el proceso v ctima? Permite el sistema volver atr as y recuperarse a un proceso de una expropiaci on? C omo protegernos de la inanici on?
c Gustavo Romero Gesti on de recursos: interbloqueo e inanici on (40/44)
c Gustavo Romero
Recuperaci on de un interbloqueo (3) Criterios para elegir el proceso a nalizar: Tama no de las peticiones pendientes. Cantidad de recursos asignados. Prioridad. Nivel del proceso: usuario/sistema. Tiempo de ejecuci on acumulado. Tiempo de ejecuci on restante. Escriba el que m as le guste.
c Gustavo Romero
Ignorar los interbloqueos El algoritmo del avestruz: Suponer que no existe el problema del interbloqueo. Razonable si...
los interbloqueos suceden muy raramente. el coste de la prevenci on y la evitaci on es demasiado alto.
Linux y Windows utilizan este m etodo. Es un compromiso entre conveniencia y correcci on.
c Gustavo Romero Gesti on de recursos: interbloqueo e inanici on (43/44)
Pol ticas combinadas Los enfoques anteriores pueden combinarse: Agrupar los recursos en un cierto n umero de categor as y ordenarlas, ej:
area de intercambio recursos de proceso: dispositivos de E/S, cheros,... memoria principal
Utilizar prevenci on de cola circular para evitar interbloqueos entre estas categor as de recursos. Utilizar el m etodo m as apropiado contra interbloqueos dentro de cada categor a de recursos.
c Gustavo Romero Gesti on de recursos: interbloqueo e inanici on (44/44)