Sistemas operativos
Sistemas operativos
Sistemas operativos
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