11.05.2013 Views

Sistemas operativos

Sistemas operativos

Sistemas operativos

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

<strong>Sistemas</strong> <strong>operativos</strong><br />

Tema 6: Interbloqueo ( (deadlock deadlock)


Concurrencia de procesos<br />

►Conceptos Conceptos de concurrencia y exclusión exclusi n<br />

mutua.<br />

►Herramientas Herramientas de sincronización.<br />

sincronizaci n.<br />

►Comunicaci<br />

Comunicación n entre procesos.<br />

►Interbloqueo.<br />

Interbloqueo.


Interbloqueo<br />

► Procesos acceden a recursos compartidos según seg n<br />

un protocolo de solicitud, uso y liberación. liberaci<br />

► Quienquiera que gestione los recursos decide si las<br />

solicitudes se conceden o, por el contrario, los<br />

procesos han de esperar. esperar<br />

► Un conjunto de procesos está est en interbloqueo si<br />

cada uno está est esperando por recursos que sólo s lo<br />

pueden liberar otros procesos del conjunto.<br />

Situación Situaci n indeseable: los procesos no avanzan y los<br />

recursos permanecen retenidos.


Estado de asignación asignaci n de recursos<br />

► El gestor de los recursos registra si están est n libres, o<br />

asignados a un proceso concreto.<br />

► Dicha información informaci n se puede representar en un<br />

grafo de asignación asignaci n de recursos. recursos<br />

{P 1, , P 2, , …, , Pn} } denota el conjunto de procesos<br />

(círculos). (c rculos).<br />

{R 1, , R 2, , …, , Rm} } denota el conjunto de recursos<br />

(rectángulos), (rect ngulos), con uno o varios ejemplares (puntos).<br />

Asignación:<br />

Asignaci n: Pi Rj. Solicitud (espera): Pi Rj.


Grafo de asignación asignaci n de recursos<br />

R 1<br />

R 3<br />

P 2<br />

P 1<br />

P 3<br />

R 2<br />

► El grafo permite<br />

identificar situaciones<br />

de interbloqueo.<br />

► La pregunta es:<br />

¿Podr Podrían an concederse las<br />

solicitudes actuales con<br />

los recursos disponibles<br />

más s los que liberarían liberar an<br />

los procesos que no<br />

están est n esperando?


Grafos e interbloqueo<br />

►Interbloqueo<br />

Interbloqueo ciclos en el grafo.<br />

R 1<br />

R 3<br />

P 2<br />

P 1<br />

P 3<br />

R 2<br />

Hay interbloqueo No hay interbloqueo<br />

R 1<br />

R 3<br />

P 2<br />

P 1<br />

P 3<br />

R 2


Condiciones de interbloqueo<br />

► 4 condiciones necesarias, en conjunto suficientes:<br />

Exclusión Exclusi n mutua en el acceso a los recursos.<br />

Retención Retenci n y espera: los procesos retienen los recursos que tienen<br />

asignados mientras esperan a que se les asignen otros.<br />

No expropiación:<br />

expropiaci n: los recursos se liberan sólo s lo cuando los procesos<br />

han terminado de usarlos.<br />

Espera circular: existe una secuencia de procesos<br />

(p0, , p 1, , …, , pj, , p0) ) tal que cada uno está est esperando por recursos<br />

que sólo lo pueden liberar los siguientes.<br />

► Las 3 primeras son condiciones estáticas est ticas (características (caracter sticas de<br />

los recursos y política pol tica de asignación).<br />

asignaci n).<br />

► La cuarta condición condici n va ligada a la dinámica din mica de ejecución ejecuci n de<br />

los procesos.


Gestión Gesti n del interbloqueo<br />

► Tres opciones:<br />

Garantizar que nunca se llega a situación situaci n de<br />

interbloqueo.<br />

►Prevención: Prevenci n: negar al menos una de las condiciones necesarias.<br />

►Evasión Evasi n (evitación):<br />

(evitaci n): denegar solicitudes aún a n con recursos<br />

disponibles, para tener controlado el riesgo de interbloqueo.<br />

Conceder todas las solicitudes mientras haya recursos<br />

suficientes, y tomar medidas si se llega a interbloqueo.<br />

►Detección Detecci n y recuperación.<br />

recuperaci<br />

No hacer nada. nada<br />

►Muchas Muchas veces, el interbloqueo afecta a procesos que forman<br />

parte de una misma aplicación. aplicaci n.<br />

►La La responsabilidad se deja en manos del programador.


Prevención Prevenci n de<br />

interbloqueos


Prevención Prevenci n de interbloqueos<br />

► Hacer imposible el interbloqueo, negando alguna<br />

de las condiciones necesarias.<br />

Negar la exclusión exclusi n mutua. mutua<br />

►Imposible Imposible con recursos no compartibles (e.g ( e.g. . impresoras).<br />

Negar la no expropiación.<br />

expropiaci<br />

►Sólo lo para recursos que pueden recuperar su estado (e.g ( e.g. .<br />

memoria o CPU).<br />

►Un Un proceso que tiene que esperar pierde los recursos que le<br />

fueron asignados, y pasa a esperar también tambi n por ellos.<br />

►Alternativamente, Alternativamente, se demora la expropiación expropiaci n hasta que algún alg n<br />

otro proceso necesite dichos recursos.<br />

►Riesgo Riesgo de inanición.<br />

inanici


Prevención Prevenci n de interbloqueos<br />

► Las demás dem s posibilidades pasan por limitar las<br />

solicitudes.<br />

Negar la retención retenci n y espera. espera<br />

►Obligar Obligar a solicitar todos los recursos que vaya a necesitar cada<br />

proceso al inicio de su ejecución. ejecuci n.<br />

Problema: un proceso puede no conocer por adelantado todos los<br />

recursos que va a necesitar (e.g ( e.g. . trabajos interactivos).<br />

►Como Como alternativa, sólo s lo permitir solicitudes si los procesos no<br />

tienen ningún ning n recurso asignado.<br />

►Política Pol tica conservadora:<br />

Restringe escenarios sin riesgo de interbloqueo.<br />

Infrautilización: Infrautilizaci n: recursos asignados que no se utilizan.<br />

►Riesgo Riesgo de inanición.<br />

inanici


Prevención Prevenci n de interbloqueos<br />

►Tambi También n limitando las solicitudes:<br />

Negar la espera circular. circular<br />

►Ordenar Ordenar los recursos y exigir que se soliciten en<br />

orden creciente.<br />

►Alternativamente, Alternativamente, siendo i≤j, , exigir que un proceso<br />

libere los ejemplares que tenga asignados de Rj antes de solicitar ejemplares de Ri. ►Pol Política tica conservadora:<br />

Restringe escenarios sin riesgo de interbloqueo.<br />

Infrautilización: Infrautilizaci n: recursos asignados que no se utilizan.<br />

►La La ordenación ordenaci n de los recursos es crucial para las<br />

prestaciones.


Evasión Evasi n de interbloqueos


Evasión Evasi n de interbloqueos<br />

► Impedir que se llegue a interbloqueo, explotando<br />

información<br />

informaci n a a priori priori sobre las necesidades de los procesos.<br />

El mecanismo más m s sencillo requiere conocer las necesidades<br />

máximas ximas de los procesos.<br />

Tal información informaci n no está est disponible en un caso general.<br />

► Denegar solicitudes que se podrían podr an conceder, para no<br />

depender de la dinámica din mica de ejecución ejecuci n de los procesos. procesos<br />

Se evitan las condiciones de retención retenci n y espera y/o espera circular. circular<br />

► Política Pol tica ligeramente menos conservadora que la<br />

prevención.<br />

prevenci n.


Estados seguros<br />

► Para un sistema dado, existirán existir n un conjunto de estados en<br />

los que el sistema está est en situación situaci n de interbloqueo.<br />

► Para evitar llegar a ellos, se fuerza la evolución evoluci n por estados<br />

seguros. seguros<br />

Análisis An lisis de caso peor: un estado es seguro si es posible encontrar<br />

un orden para satisfacer las necesidades máximas ximas de todos los<br />

procesos.<br />

Para un estado dado, una secuencia de procesos<br />

(p 1, , p 2, , …, , pn) ) es una secuencia segura si las necesidades máximas m ximas<br />

de pj en ese momento pueden satisfacerse con los recursos libres<br />

más s los que tienen asignados los procesos pi, , con i


Estados seguros e inseguros<br />

►En En un estado seguro: seguro<br />

No hay interbloqueo.<br />

Se puede encontrar un orden para satisfacer las<br />

necesidades máximas m ximas de todos los procesos.<br />

►En En un estado no seguro (inseguro): (inseguro)<br />

Puede haber interbloqueo o no.<br />

De no haberlo ya, el que se llegue o no a<br />

interbloqueo depende de cómo c mo se sucedan las<br />

solicitudes de recursos.


Ejemplo<br />

► Un único nico recurso con 12 ejemplares.<br />

► 3 procesos:<br />

P 1<br />

P 2<br />

P 3<br />

Necesidad máxima<br />

10<br />

► El sistema se encuentra en un estado seguro.<br />

Secuencia segura: (P 2,P ,P1,P ,P3). 4<br />

9<br />

Asignación actual<br />

5<br />

2<br />

2


Estados seguros e inseguros<br />

Solicitudes, asignaciones<br />

y liberaciones<br />

Estados seguros<br />

Estado<br />

inicial<br />

Asignaciones<br />

Liberaciones<br />

Estados inseguros<br />

Estados<br />

de interbloqueo<br />

Solicitudes, asignaciones<br />

y liberaciones


Algoritmos para evitar interbloqueos<br />

► Demorar las asignaciones que, aún a n pudiendo<br />

efectuarse por haber recursos disponibles,<br />

llevarían llevar an al sistema a un estado inseguro.<br />

► Para cada asignación asignaci n que se plantee:<br />

¿Existen Existen recursos libres para efectuarla?<br />

►NO: NO: el proceso espera.<br />

►SÍ: : simular que se realiza la asignación. asignaci n.<br />

¿El El estado resultante es seguro?<br />

► NO: el proceso espera.<br />

► SÍ: : el proceso obtiene los recursos.<br />

► Se necesita un algoritmo para determinar si un<br />

estado es seguro (algoritmo de seguridad).<br />

seguridad)


Ejemplo (continúa) (contin a)<br />

► ¿Qu Qué pasa si P 3 solicita un nuevo ejemplar?<br />

Aunque hay ejemplares libres, antes de asignar hay que<br />

verificar el estado al que se llegaría: llegar a:<br />

P 1<br />

P 2<br />

P 3<br />

Necesidad máxima<br />

10<br />

4<br />

9<br />

Asignación actual<br />

Sería Ser a un estado inseguro, desde el que P 1 y P 3 podrían podr an<br />

llegar a bloquearse mutuamente.<br />

Por tanto, P3 tiene que esperar. esperar<br />

5<br />

2<br />

3


Algoritmos de seguridad<br />

► Se trata de ver si existe una secuencia segura<br />

para un estado determinado.<br />

► Si sólo s lo existe 1 ejemplar de cada recurso:<br />

Detección Detecci n de ciclos sobre grafos de asignación asignaci n con<br />

flechas de reserva (de puntos), que indican que un<br />

proceso puede solicitar un determinado recurso.<br />

►Para Para simular que se atiende una solicitud, se cambian las<br />

flechas de reserva correspondientes por flechas de asignación. asignaci n.<br />

►Si Si aparecen ciclos, el estado es inseguro.<br />

►Complejidad Complejidad O(n 2 ), con n el número n mero de procesos.


P 1<br />

R 1<br />

R 2<br />

P 2<br />

P 1 y P 2 pueden solicitar R 1 y R 2<br />

P 1<br />

R 1<br />

R 2<br />

P 2<br />

P 2 solicita R 2<br />

Aparece un ciclo P 2 espera<br />

Ejemplo<br />

P 1<br />

P 1<br />

R 1<br />

R 2<br />

R 1<br />

R 2<br />

P 2<br />

P 1 solicita R 1<br />

No aparecen ciclos R 1 se asigna a P 1<br />

P 2<br />

P2 espera<br />

Se le asignará R2 cuando P1 libere R1


Algoritmos de seguridad<br />

►Si Si existe más m s de 1 ejemplar de algún alg n<br />

recurso: algoritmo del banquero. banquero<br />

Analogía: Analog a: nunca asignar efectivo disponible si<br />

hay riesgo de no poder satisfacer las<br />

necesidades de todos los clientes.<br />

Esencialmente el mismo procedimiento que en<br />

la detección detecci n de ciclos, pero sobre una<br />

representación representaci n matricial. matricial<br />

Complejidad O(m·n O(m 2 ), con m el número n mero de<br />

recursos y n el número n mero de procesos.


Algoritmo del banquero<br />

► Vectores de longitud m:<br />

Libres[j] Libres[j = número n mero de ejemplares no asignados del<br />

recurso Rj. Máxima ximak [j] [j = número n mero máximo m ximo de ejemplares del<br />

recurso Rj que puede necesitar simultáneamente simult neamente el<br />

proceso Pk. Asignación Asignaci k [j] [j = número n mero de ejemplares del recurso Rj que tiene asignados el proceso Pk. Solicitud k [j] [j = número n mero de ejemplares del recurso Rj que<br />

solicita el proceso Pk. ► Conceder una solicitud implica:<br />

Libres = Libres – Solicitud k<br />

Asignación Asignaci k = Asignación Asignaci k + Solicitud<br />

Solicitud k


Algoritmo del banquero<br />

► La verificación verificaci n del estado trata de construir una secuencia segura.<br />

En evasión evasi n simulamos el caso peor Solicitud k = Máxima ximak – Asignación Asignaci k .<br />

El vector Disponibles, Disponibles,<br />

de longitud m, acumulará acumular los recursos libres y los<br />

asignados a los procesos anteriores en la secuencia segura.<br />

El vector Incluido, Incluido,<br />

de n componentes booleanas, booleanas,<br />

indicará indicar si los distintos<br />

procesos ya se han incluido en la secuencia segura.<br />

Procedimiento:<br />

► Disponibles = Libres<br />

► Incluido = {falso, falso, falso,<br />

…, , falso}<br />

► Repetir por siempre:<br />

Buscar k tal que<br />

► (Incluido[k Incluido[k] ] = falso) Y<br />

► (Solicitud Solicitudk [j]<br />

≤ Disponibles[j], Disponibles[j],<br />

1≤j≤m) 1 m)<br />

Si existe ese k, entonces<br />

► Incluido[k] Incluido[k]<br />

= verdadero<br />

► Disponibles = Disponibles + Asignaci<br />

Si no, salir del bucle<br />

Asignación k<br />

► Si existe k tal que Incluido[k] Incluido[k]<br />

= falso, el estado es inseguro.<br />

► En caso contrario, es seguro.


Detección Detecci n de<br />

interbloqueos


Detección Detecci n de interbloqueos<br />

► Conceder todas las solicitudes mientras haya recursos para atenderlas, atenderlas,<br />

y tomar medidas si se detecta interbloqueo.<br />

No se restringen escenarios sin riesgo de interbloqueo.<br />

No hay infrautilización infrautilizaci n de recursos.<br />

► Para la detección detecci n se usan los mismos algoritmos de seguridad que en<br />

la evasión, evasi n, teniendo en cuenta las solicitudes reales (no el caso peor).<br />

► ¿Cu Cuándo ndo ejecutar el algoritmo de detección? detecci n?<br />

Con cada solicitud que no se puede satisfacer inmediatamente.<br />

► La detección detecci n más m s rápida. r pida.<br />

► Permite identificar al proceso que causa causa el interbloqueo.<br />

► Puede suponer un coste excesivo.<br />

Periódicamente.<br />

Peri dicamente.<br />

► Dificultad de elegir el periodo más m s adecuado.<br />

Cuando se detecte una degradación degradaci n de las prestaciones del sistema (e.g ( e.g. .<br />

un factor de utilización utilizaci n de la CPU bajo).


Recuperación<br />

Recuperaci<br />

► Abortar procesos, procesos,<br />

dejando libres los recursos que retienen.<br />

Todos los procesos que participan en el interbloqueo (drástico). (dr stico).<br />

Un proceso tras otro, otro,<br />

comprobando si se resuelve el problema.<br />

► Selección Selecci n en base a prioridades, número n mero y tipo de recursos<br />

consumidos, etc.<br />

► Expropiar recursos:<br />

Selección Selecci n de procesos víctima v ctima (como arriba).<br />

Selección Selecci n de recursos.<br />

► No todos se pueden expropiar.<br />

Retroceso: devolver los procesos a un punto anterior de su<br />

ejecución. ejecuci n.<br />

► Solución Soluci n más m s drástica dr stica y simple: abortar y reiniciar.<br />

Hay que considerar los procesos afectados en el pasado para no<br />

causar inanición.<br />

inanici


Fin

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!