Bloqueos mutuos

En sistemas operativos, el bloqueo mutuo es también el bloqueo permanente de un conjunto de procesos o hilos de ejecución en un sistema concurrente que compite por los recursos del sistema o bien se comunican entre ellos. . Una diferencia de otros problemas de concurrencia de procesos, no existe una solución general para los interbloqueos.
Todos los interbloqueos surgen de necesidades que no pueden ser satisfechas, por parte de dos o más procesos. En la vida real, un ejemplo puede ser el de dos niños que intentan jugar al arco y la flecha, uno toma el arco, el otro la flecha. Ninguno puede jugar hasta que alguno libere lo que tomó.
En el siguiente ejemplo, dos procesos compiten por dos recursos que funcionen para que funcionen, que sólo se puedan utilizar para un proceso a la vez. El primer proceso se obtiene el permiso de utilizar uno de los recursos. El segundo proceso toma el bloqueo del otro recurso, y luego intenta utilizar el recurso ya utilizado para el primer proceso, por lo tanto queda en espera. Cuando se trata de un primer proceso, se intenta utilizar el otro recurso, se produce un interbloqueo, donde los dos procesos esperan la liberación del recurso que utiliza el otro proceso.
CONDICIONES
· Condición de exclusión mutua: existencia de al menos de un recurso compartido por los procesos, al cual solo puede acceder uno simultáneamente.
· Condición de retención y espera: al menos un proceso Pi ha adquirido un recurso Ri, y lo retiene mientras espera al menos un recurso Rj que ya ha sido asignado a otro proceso.
· Condición de no expropiación: los recursos no pueden ser expropiados por los procesos, es decir, los recursos sólo son liberados voluntariamente por sus propietarios.
· Condición de espera circular: dado el conjunto de procesos P0 ... Pm (subconjunto del total de procesos originales), P0 está esperando un recurso adquirido por P1, que está esperando un recurso adquirido por P2, ..., que está esperando un recurso adquirido por Pm, que está esperando un recurso adquirido por P0. Esta condición implica la condición de retención y espera.

PREVENCION
Los bloqueos mutuos pueden prevenirse asegurándonos de que no hayas tenido éxito.
· Eliminación de la exclusión mutua: ningún proceso puede tener acceso exclusivo a un recurso. Esto es imposible para los procesos que no pueden ser encolados, e incluso con colas también pueden ocurrir interbloqueos.
· La condición de posesión y espera puede ser eliminada haciendo que los procesos pidan todos los recursos que van a necesitar antes de empezar. Este conocimiento por adelantado muchas veces es imposible nuevamente. Otra forma es que se requiera. Esto también es poco práctico en general.
· La condición de no expropiación puede ser también imposible de eliminar, dado que un proceso debe tener un recurso por un cierto tiempo o el procesamiento puede quedar inconsistente.

· La condición de espera circular es más fácil de atacar. Se puede permitir que un proceso se convierta en un proceso en un momento determinado, o en una jerarquía que no sea posible.

No hay comentarios.:

Publicar un comentario