1 SISTEMAS OPERATIVOS I SISTEMAS OPERATIVOS I UNIDAD 3 UNIDAD 3 Bloqueo Mutuo Bloqueo Mutuo 2013 2013
11
SISTEMAS OPERATIVOS ISISTEMAS OPERATIVOS ISISTEMAS OPERATIVOS ISISTEMAS OPERATIVOS IUNIDAD 3UNIDAD 3
Bloqueo MutuoBloqueo Mutuo
20132013
22
Bloqueo Mutuo o InterbloqueoBloqueo Mutuo o Interbloqueo
Para que se de una situación de interbloqueo o bloqueo Para que se de una situación de interbloqueo o bloqueo mutuo se deben de cumplir de forma simultánea las mutuo se deben de cumplir de forma simultánea las cuatro condiciones siguientes:cuatro condiciones siguientes:
Exclusión mutua. Exclusión mutua. Los procesos exigen un control Los procesos exigen un control exclusivo de los recursos que necesitan.exclusivo de los recursos que necesitan.
Ocupar y esperar. Ocupar y esperar. Los procesos retienen los Los procesos retienen los recursos que han adquirido mientras esperan para recursos que han adquirido mientras esperan para adquirir otros.adquirir otros.
No apropiación. No apropiación. Los recursos no pueden arrebatarse Los recursos no pueden arrebatarse a los procesos hasta que terminen su utilización.a los procesos hasta que terminen su utilización.
Espera circular. Espera circular. Cadena circular de procesos en la Cadena circular de procesos en la que cada uno retiene al menos un recurso que se que cada uno retiene al menos un recurso que se solicita por el siguiente.solicita por el siguiente.
33
MétodosMétodos
Se dispone de varias formas para tratar el problema del Se dispone de varias formas para tratar el problema del interbloqueo o bloqueo mutuo:interbloqueo o bloqueo mutuo:
Evitar que se llegue al interbloqueo. Evitar que se llegue al interbloqueo.
Prevención de los interbloqueosPrevención de los interbloqueos
Evitación de los interbloqueosEvitación de los interbloqueos
Permitir que ocurra y recuperarse de él. Permitir que ocurra y recuperarse de él. Detección del interbloqueoDetección del interbloqueoRecuperación del interbloqueoRecuperación del interbloqueo
44
Detección del InterbloqueoDetección del Interbloqueo
Se utiliza en aquellos sistemas en los que se permite Se utiliza en aquellos sistemas en los que se permite que se produzca el interbloqueo, comprobando que se produzca el interbloqueo, comprobando periódicamente si se ha producido. En los Sistemas periódicamente si se ha producido. En los Sistemas deTiempo Real no debe llegarse a una situación de deTiempo Real no debe llegarse a una situación de Bloqueo Mutuo.Bloqueo Mutuo.
Inconvenientes:Inconvenientes: Sobrecarga del SO para mantener la información Sobrecarga del SO para mantener la información
necesaria y el algoritmo de detección.necesaria y el algoritmo de detección. Posibles pérdidas en el intento de recuperar el Posibles pérdidas en el intento de recuperar el
sistema.sistema.
55
Detección del InterbloqueoDetección del InterbloqueoGrafos de asignación de recursosGrafos de asignación de recursos
Se suele utilizar un grafo dirigido que indica las asignaciones de los recursos Se suele utilizar un grafo dirigido que indica las asignaciones de los recursos a los procesos y las peticiones que éstos realizan. Cada arco conecta el a los procesos y las peticiones que éstos realizan. Cada arco conecta el nodo de un proceso con el nodo de un recurso.nodo de un proceso con el nodo de un recurso.
Si sólo hay un elemento por cada tipo de recurso, la existencia de un ciclo es Si sólo hay un elemento por cada tipo de recurso, la existencia de un ciclo es una condición necesaria y suficiente para que haya un interbloqueo.una condición necesaria y suficiente para que haya un interbloqueo.
Si cada tipo de recurso tiene varios elementos, la condición de existencia de Si cada tipo de recurso tiene varios elementos, la condición de existencia de un ciclo es necesaria pero no suficiente para asegurar que existe un un ciclo es necesaria pero no suficiente para asegurar que existe un interbloqueo. interbloqueo.
Una condición suficiente es la existencia de un ciclo en el que no hay ningún Una condición suficiente es la existencia de un ciclo en el que no hay ningún camino que salga de alguno de los nodos que lo forman que a su vez no sea camino que salga de alguno de los nodos que lo forman que a su vez no sea ciclo.ciclo.
66
Detección del InterbloqueoDetección del Interbloqueo
77
Detección del InterbloqueoDetección del Interbloqueo
Método de reducción del grafoMétodo de reducción del grafo
Se determinan los procesos a los que se les pueden Se determinan los procesos a los que se les pueden conceder todos los recursos que tienen solicitados y se conceder todos los recursos que tienen solicitados y se quitan los arcos. quitan los arcos.
Si el grafo puede reducirse para todos los procesos, no Si el grafo puede reducirse para todos los procesos, no existe interbloqueo. existe interbloqueo.
En caso contrario, los procesos En caso contrario, los procesos irreduciblesirreducibles constituyen constituyen el conjunto de procesos interbloqueados.el conjunto de procesos interbloqueados.
88
Detección del InterbloqueoDetección del Interbloqueo
99
Recuperación del InterbloqueoRecuperación del InterbloqueoSe tienen dos opciones básicas para la recuperación del bloqueo mutuo:Se tienen dos opciones básicas para la recuperación del bloqueo mutuo:
ReiniciarReiniciar uno o más de los procesos bloqueados. Factores a tener uno o más de los procesos bloqueados. Factores a tener en cuenta con el fin de elegir aquellos procesos cuya reiniciación en cuenta con el fin de elegir aquellos procesos cuya reiniciación resulte menos traumáticresulte menos traumática:a:
Prioridad del proceso (Prioridad del proceso (Se reinicia el de menor prioridadSe reinicia el de menor prioridad)) Tiempo de procesamiento utilizado y tiempo Tiempo de procesamiento utilizado y tiempo
restante (restante (Se reinicia proceso de mayor tiempo restanteSe reinicia proceso de mayor tiempo restante)) Tipo y número de recursos que posee (Tipo y número de recursos que posee (Se reinicia Se reinicia
proceso que tenga mas recursos asignadosproceso que tenga mas recursos asignados)) Número de recursos que necesita para finalizar. Número de recursos que necesita para finalizar.
((Se reinicia proceso que necesite mas recursosSe reinicia proceso que necesite mas recursos)) Número de procesos que se verían involucrados Número de procesos que se verían involucrados
con su reiniciación (con su reiniciación (Se reinicia aquel que afecte a menos Se reinicia aquel que afecte a menos
procesosprocesos))
1010
Recuperación del InterbloqueoRecuperación del Interbloqueo ExpropiarExpropiar los recursos de algunos de los procesos los recursos de algunos de los procesos
bloqueados de forma sucesiva hasta que se bloqueados de forma sucesiva hasta que se consiga salir del interbloqueo, siguiendo criterios consiga salir del interbloqueo, siguiendo criterios similares a los aplicados en la reiniciación de similares a los aplicados en la reiniciación de procesos.procesos.
Hay que tener en cuenta, además, el estado al Hay que tener en cuenta, además, el estado al que se pasan los procesos expropiados.que se pasan los procesos expropiados.
La solución sería volverlos a un estado anterior La solución sería volverlos a un estado anterior en el que el bloqueo se rompa. en el que el bloqueo se rompa.
Para que ésto sea posible, se necesita que el Para que ésto sea posible, se necesita que el sistema disponga de una utilidad que registre los sistema disponga de una utilidad que registre los estados de los distintos procesos en tiempo de estados de los distintos procesos en tiempo de ejecución, con la consiguiente carga adicional ejecución, con la consiguiente carga adicional sobre el SO.sobre el SO.
1111
Evitación del InterbloqueoEvitación del Interbloqueo
Impone condiciones menos restrictivas que el método de Impone condiciones menos restrictivas que el método de la prevención. En el momento de asignar un recurso, si la prevención. En el momento de asignar un recurso, si se prevé la posibilidad de que se produzca un bloqueo, se prevé la posibilidad de que se produzca un bloqueo, el recurso no se concede.el recurso no se concede.
El El algoritmo del banqueroalgoritmo del banquero de Dijkstra asegura que el de Dijkstra asegura que el número de recursos asignados a todos los procesos número de recursos asignados a todos los procesos nunca puede exceder del número de recursos del nunca puede exceder del número de recursos del sistema. sistema.
Además, nunca se pueden asignar recursos de modo Además, nunca se pueden asignar recursos de modo que no queden suficientes para satisfacer las que no queden suficientes para satisfacer las necesidades de todos los procesos.necesidades de todos los procesos.
1212
Evitación del InterbloqueoEvitación del Interbloqueo
Cuando se crean los procesos, éstos declaran que en Cuando se crean los procesos, éstos declaran que en cualquier instante no podrán necesitar más de cualquier instante no podrán necesitar más de xx recursos. Se construye una tabla para llevar la cuenta recursos. Se construye una tabla para llevar la cuenta de los recursos disponibles y de los necesitados.de los recursos disponibles y de los necesitados.
Proceso Usados Posibles necesarios
Máximos necesarios
P1P2P3
213
351
564
Total disponibles 4 (de 10)
1313
Evitación del InterbloqueoEvitación del Interbloqueo
Un estado se considera Un estado se considera seguro seguro si todos los procesos que si todos los procesos que ya tienen concedidos recursos tienen la posibilidad de ser ya tienen concedidos recursos tienen la posibilidad de ser completados en algún orden determinado, incluso con la completados en algún orden determinado, incluso con la posibilidad de que cada uno de los procesos utilizase el posibilidad de que cada uno de los procesos utilizase el máximo de los recursos declarados.máximo de los recursos declarados.
1414
Evitación del InterbloqueoEvitación del Interbloqueo
En el algoritmo del banquero:En el algoritmo del banquero:
Se permiten las condiciones de exclusión mutua, Se permiten las condiciones de exclusión mutua, retención y espera y de no existencia de expropiación.retención y espera y de no existencia de expropiación.
Los procesos solicitan el uso exclusivo de los recursos Los procesos solicitan el uso exclusivo de los recursos que necesitan. Mientras esperan alguno, se les que necesitan. Mientras esperan alguno, se les permite mantener los recursos de que disponen sin que permite mantener los recursos de que disponen sin que se les puedan expropiar.se les puedan expropiar.
Los procesos piden los recursos al SO de uno en uno.Los procesos piden los recursos al SO de uno en uno. El sistema puede conceder o rechazar cada petición.El sistema puede conceder o rechazar cada petición. Una petición que no conduce a un estado seguro se Una petición que no conduce a un estado seguro se
rechaza y cada petición que conduce a un estado rechaza y cada petición que conduce a un estado seguro se concede.seguro se concede.
1515
Evitación del InterbloqueoEvitación del Interbloqueo
Inconvenientes:Inconvenientes: La gestión de los recursos suele ser conservadora, ya La gestión de los recursos suele ser conservadora, ya
que los estados inseguros constituyen un conjunto que los estados inseguros constituyen un conjunto grande de estados dentro del cual se encuentra el grande de estados dentro del cual se encuentra el subconjunto de los estados que realmente producen subconjunto de los estados que realmente producen interbloqueos.interbloqueos.
El algoritmo requiere que los procesos conozcan por El algoritmo requiere que los procesos conozcan por adelantado sus necesidades máximas.adelantado sus necesidades máximas.
1616
Prevención del InterbloqueoPrevención del Interbloqueo
Basta con evitar una de las cuatro condiciones necesarias para Basta con evitar una de las cuatro condiciones necesarias para ocurrencia del bloqueo mutuo.ocurrencia del bloqueo mutuo.No obstante, la condición de exclusión mutua se debe mantener.No obstante, la condición de exclusión mutua se debe mantener.
Prevención de la Retención y EsperaPrevención de la Retención y Espera Para evitarla, basta con garantizar que un proceso que posee Para evitarla, basta con garantizar que un proceso que posee
un recurso no pueda pedir otro, haciendo que la petición de un recurso no pueda pedir otro, haciendo que la petición de todos los recursos que necesita un proceso se realice bajo la todos los recursos que necesita un proceso se realice bajo la premisa de todos o ninguno.premisa de todos o ninguno.
Problemas:Problemas:Pobre uso de los recursos, ya que puede haber recursos Pobre uso de los recursos, ya que puede haber recursos
retenidos que no estén en uso y otros que, aunque no estén retenidos que no estén en uso y otros que, aunque no estén retenidos, no se puedan asignar por ser requeridos junto con retenidos, no se puedan asignar por ser requeridos junto con otros que sí lo están.otros que sí lo están.
Puede resultar difícil que un conjunto de recursos se Puede resultar difícil que un conjunto de recursos se encuentren disponibles a la vez, lo que puede producir una encuentren disponibles a la vez, lo que puede producir una espera indefinida del proceso que los necesita.espera indefinida del proceso que los necesita.
1717
Prevención del InterbloqueoPrevención del Interbloqueo
Prevención de la No existencia de la expropiaciónPrevención de la No existencia de la expropiación Se puede permitir la expropiación mediante dos estrategias:Se puede permitir la expropiación mediante dos estrategias:
Si un proceso que tiene uno o más recursos solicita otro que Si un proceso que tiene uno o más recursos solicita otro que esté en uso, debe esperar y permite que los recursos de que esté en uso, debe esperar y permite que los recursos de que dispone se puedan expropiar. El proceso libera, de forma dispone se puedan expropiar. El proceso libera, de forma implícita, los recursos de que dispone y se añaden a la lista implícita, los recursos de que dispone y se añaden a la lista de recursos disponibles y, a la vez, a la lista de recursos de recursos disponibles y, a la vez, a la lista de recursos solicitados por éste. El proceso sólo se puede volver a solicitados por éste. El proceso sólo se puede volver a activar cuando pueda ganar el acceso a todos los recursos activar cuando pueda ganar el acceso a todos los recursos que necesita.que necesita.Si un proceso solicita algunos recursos que están asignados Si un proceso solicita algunos recursos que están asignados a otros procesos, se mira si éstos están esperando, en cuyo a otros procesos, se mira si éstos están esperando, en cuyo caso se expropian. Si hay algún recurso que no está libre o caso se expropian. Si hay algún recurso que no está libre o que no puede ser expropiado, el proceso se suspende y no que no puede ser expropiado, el proceso se suspende y no puede volver a ejecución hasta que no disponga de todos puede volver a ejecución hasta que no disponga de todos los recursos.los recursos.
Inconveniente: Puede llevar a que haya procesos que se vean Inconveniente: Puede llevar a que haya procesos que se vean relegados durante un tiempo excesivamente grande.relegados durante un tiempo excesivamente grande.
1818
Prevención del InterbloqueoPrevención del Interbloqueo
Prevención de la Espera CircularPrevención de la Espera Circular Para evitarla, se ordenan los recursos asignándoles a cada tipo Para evitarla, se ordenan los recursos asignándoles a cada tipo
de ellos un número entero y se impone que se pidan en orden de ellos un número entero y se impone que se pidan en orden ascendente. ascendente.
Además, las peticiones de todos los recursos perteneciente a un Además, las peticiones de todos los recursos perteneciente a un mismo tipo deben realizarse con una única petición y no mismo tipo deben realizarse con una única petición y no incrementalmente.incrementalmente.
Desventaja: Desventaja: Los recursos no se piden en el orden que se necesitan, sino Los recursos no se piden en el orden que se necesitan, sino
en el que se ha establecido. en el que se ha establecido. Los procesos pueden verse obligados a pedir los recursos Los procesos pueden verse obligados a pedir los recursos
antes de necesitarlos , acaparándolos innecesariamente.antes de necesitarlos , acaparándolos innecesariamente.
1919
Estrategias CombinadasEstrategias Combinadas
En algunos sistemas de tiempo real el interbloqueo En algunos sistemas de tiempo real el interbloqueo puede tener resultados inaceptables, por lo que no se puede tener resultados inaceptables, por lo que no se puede permitir que se presente dicha situación.puede permitir que se presente dicha situación.En otros sistemas se rechaza el interbloqueo, aunque En otros sistemas se rechaza el interbloqueo, aunque fuera aceptable, por el costo en tiempo y medios que fuera aceptable, por el costo en tiempo y medios que conlleva la recuperación.conlleva la recuperación.Se puede obtener una mayor eficacia combinando los Se puede obtener una mayor eficacia combinando los distintos métodos para aprovechar sus ventajas:distintos métodos para aprovechar sus ventajas: Agrupar los recursos del sistema en clases disjuntas.Agrupar los recursos del sistema en clases disjuntas. Para evitar el interbloqueo entre las clases, se Para evitar el interbloqueo entre las clases, se
ordenan para evitar la espera circular.ordenan para evitar la espera circular. Usar en cada clase el método más apropiado de Usar en cada clase el método más apropiado de
evitar en ella el interbloqueoevitar en ella el interbloqueo
2020
Ejemplos GeneralesEjemplos Generales
Clase de recurso Métodos más adecuado Motivo
Espacio de intercambio
* Prevención del interbloqueo por el método usado para evitar la condición de retención y espera.
* Evitación del interbloqueo.
Se conoce de antemano lacapacidad máxima dealmacenamiento necesitada porcada proceso.
Recursos de los procesos (impresoras, ficheros, discos, cintas)
* Evitación de interbloqueos.* Ordenación de recursos.
Los procesos declaran losrecursos de una determinadaclase que van a necesitar.
Memoria principal * Prevención mediante expropiación
El proceso expropiado se pasa amemoria secundaria.
Recursos internos (canales E/S, etc.)
* Prevención por ordenación de recursos
No suele ser necesario realizarninguna elección en tiempo deejecución entre las peticionespendientes.