Bloqueos Mutuos

Bloqueos Mutuos  También llamado deadlock o abrazo mortal.  Varios procesos bloqueados en espera de un evento (por eje

Views 177 Downloads 9 File size 258KB

Report DMCA / Copyright

DOWNLOAD FILE

Recommend stories

Citation preview

Bloqueos Mutuos  También llamado deadlock o abrazo mortal.  Varios procesos bloqueados en espera de un evento (por ejemplo, la obtención de un recurso) que es imposible que ocurra. Procesos bloqueados: no están en ejecución, nunca terminan, tienen asignados recursos que no pueden usar (puesto que no están en ejecución) y nunca devuelven los recursos porque nunca acaban.  Baja la eficiencia del sistema.

1 Modelo del Sistema  Los procesos compiten en el Sistema informático para la adquisición de recursos con los que completar sus tareas.  Los recursos son de varios tipos, cada tipo puede contener uno o varios ejemplares idénticos.  Un proceso solicita un recurso al SO antes de usarlo, y lo libera cuando no lo necesita más: solicitud uso liberación  n conjunto de procesos está en un estado de BM (Bloqueo Mutuo), si cada uno de los procesos del conjunto está esperando (bloqueado) un suceso que sólo puede causar otro de los procesos de ese conjunto (también bloqueado).

2 Características del BM 2.1 Condiciones necesarias  Las Cuatro Condiciones Necesarias:. o Un sistema que esté en BM cumple en un determinado momento todas y cada una de las condiciones. o Que se cumplan todas y cada una de las condiciones, no quiere decir que necesariamente esté en una situación de BM. 1.- Exige el uso de un recurso en Exclusión Mutua. 2.- Espera y Retención: mientras espera (bloqueado) la obtención de un recurso adicional, no libera los que ya posee. 3.- No apropiación: un recurso sólo puede ser liberado voluntariamente por el proceso que lo tiene asignado. 4.- Espera Circular. Las Cuatro Condiciones no son independientes o La cuarta, espera circular, implica las otras tres. o Se mantienen las 4 porque permite establecer claramente mecanismos de prevención.

2.2 Grafo de asignación de recursos o o o o

Permiten describir con precisión los BM. Constan de: Dos tipos de vértices: Procesos. Recursos Dos tipos de arcos:

De petición: Proceso Recursos De asignación: Recurso proceso. o

Gráficamente: o Procesos son globos con su nombre dentro. o Recursos: cajas cuadradas con tantos puntos o marcas como ejemplares del recurso. o Los arcos de petición van al cuadrado del recurso que se pide. o Los arcos de asignación van de la instancia al proceso.

o

Dada la definición del grafo, se puede demostrar que: o Si el grafo no contiene ciclos, no hay procesos en BM. o Si hay un único ejemplar de cada recurso, y hay uno o más ciclos en el grafo, entonces hay BM. En este caso, la existencia de un ciclo es necesaria y suficiente para un BM. o Si cada tipo de recurso tiene más de un ejemplar, la existencia de ciclos no garantiza la existencia de BM.

3 Métodos para manejar el BM  Obviamente, hay que tratar el problema o Hay procesos bloqueados no avanzan en su ejecución tienen asignados recursos que no usan recursos que podrían utilizar otros procesos. o Peligroso, por ejemplo en las tareas de control. o Baja eficiencia.  Opciones: o No hacer nada sencillo pero ineficiente. o Usar un protocolo en la asignación / liberación de recursos que asegure que nunca se va a llegar a una situación de BM. Prevención. poca información sobre los procesos Evitación. recurso se le asigna a un proceso que lo pide, o si debe esperar hasta que se le pueda dar.

o Permitir que se pueda llegar a una situación de BM. Esto sucede cuando no se hace nada para prevenir ni evitar. Detectarlo Recuperar el sistema (eliminarlo).

4 Prevención  Basada en que si existe BM se deben cumplir simultáneamente las cuatro condiciones. Negando al menos alguna de ellas mediante la adopción de un protocolo de asignación y liberación, se estará impidiendo que exista BM.  Negar Exclusión Mutua.  o No es admisible, pues muchos de los recursos del Sistema Informático requieren para su uso la exclusión mutua.  Negar Retención y Espera.  Siempre que un proceso solicite un recurso, debe ocurrir que no tiene concedidos ninguno otro. Pidiendo todos los recursos que va a usar al inicio de su ejecución. De forma equivalente, un proceso puede tener recursos asignados, y cuando pida uno adicional, previamente libera todos los que tenía asignados, y si es necesario, vuelve a pedir todos los que tenía asignados hasta el momento, incluyendo el nuevo.  Desventajas: Baja eficiencia en la utilización de recursos: tener asignado un recurso desde el inicio de la ejecución del proceso, si sólo lo va a usar al final, impide su uso por otros procesos. Puede haber inanición: un proceso que pide varios recursos “populares”, quizás se deberá quedar esperando un tiempo largo indefinido hasta que estén todos libres.  Negar No Expropiación. o Si un proceso tiene unos recursos asignados, y solicita uno nuevo que no está disponible (y por lo tanto se queda bloqueado a la espera), implícitamente libera todos los recursos que poseía (antes de bloquearse), es decir, los “pone a disposición por si acaso alguien los necesita”. Este proceso que se ha bloqueado, sólo se despertará cuando todos los recursos que ha liberado y el nuevo que pedía estén disponibles. o Otra alternativa: cuando un proceso P solicita un recurso y no está libre, el SO examina si dicho recurso lo posee un proceso que también se halla esperando la asignación de un recurso. Si es así, el sistema se apropia de dichos recursos y se los ofrece P. o Es un procedimiento que se aplica a recursos expropiables, es decir, que su estado se puede guardar y recuperar más tarde (p.ej. memoria, registros de CPU...) Negación de la Espera Circular. o Imponer un orden total en todos los tipos de recurso, y exigir que cada proceso solicite los recursos en orden creciente. Ej.: R1 (cinta), R2 (disco), R3 (Impresora). Un proceso puede pedir R1 y luego R3, pero no R2 y luego R1. (Si hay varias cintas, y un proceso quiere utilizar más de una, las debe de pedir todas a la vez). Cuando un proceso necesite un Ri cuando ya ha adquirido un Rk (i