Bloqueo muto

20
1 SISTEMAS OPERATIVOS I SISTEMAS OPERATIVOS I UNIDAD 3 UNIDAD 3 Bloqueo Mutuo Bloqueo Mutuo 2013 2013

Transcript of Bloqueo muto

Page 1: Bloqueo muto

11

SISTEMAS OPERATIVOS ISISTEMAS OPERATIVOS ISISTEMAS OPERATIVOS ISISTEMAS OPERATIVOS IUNIDAD 3UNIDAD 3

Bloqueo MutuoBloqueo Mutuo

20132013

Page 2: Bloqueo muto

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.

Page 3: Bloqueo muto

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

Page 4: Bloqueo muto

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.

Page 5: Bloqueo muto

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.

Page 6: Bloqueo muto

66

Detección del InterbloqueoDetección del Interbloqueo

Page 7: Bloqueo muto

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.

Page 8: Bloqueo muto

88

Detección del InterbloqueoDetección del Interbloqueo

Page 9: Bloqueo muto

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))

Page 10: Bloqueo muto

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.

Page 11: Bloqueo muto

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.

Page 12: Bloqueo muto

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)

Page 13: Bloqueo muto

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.

Page 14: Bloqueo muto

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.

Page 15: Bloqueo muto

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.

Page 16: Bloqueo muto

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.

Page 17: Bloqueo muto

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.

Page 18: Bloqueo muto

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.

Page 19: Bloqueo muto

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

Page 20: Bloqueo muto

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.