Bloqueo
• • En un medio ambiente de multiprogramación, varios procesos pueden competir por un número finito de recursos. Los recursos de un sistema son particionados en varios tipos (espacio de memoria, ciclos de CPU, archivos, dispositivos de E/S), cada uno de los cuales consiste de un número de instancias idénticas. Si un proceso requiere una instancia de un tipo de recurso, laasignación de cualquier instancia del tipo satisface el requerimiento. Cuando un proceso requiere un recurso que no está disponible pasa a un estado de espera. Puede suceder que un proceso en espera nunca pueda cambiar de estado porque el recurso que ha requerido esta retenido por otro proceso en espera, esta situación es llamada bloqueo mutuo. Los bloqueos mutuos pueden describirse más precisamente pormedio de un grafo de asignación de recursos. Hay una variedad de situaciones de bloqueo:
– – un proceso Pi requiere una instancia de un recurso tipo R1 retenida por otro proceso Pj que se encuentra en espera y bloqueado. dos procesos Pi y Pj retienen una instancia de un recurso tipo R1 y R2 respectivamente. Pi requiere una instancia del recurso tipo R2 y Pj una instancia del recurso tipo R1. en ungrupo de procesos, cada uno está esperando un evento que puede ser causado solo por otro proceso del grupo.
•
• •
• •
–
Condiciones necesarias para el bloqueo mutuo
• • • • Exclusión mutua Retención y espera No apropiación Espera circular Estas condiciones deben darse simultáneamente.
Sistemas Operativos y Redes -Sistemas Operativos - Bloqueo Mutuo
1
Métodos para el manejode bloqueos mutuos
Hay tres métodos para tratar el problema del bloqueo • Usar un protocolo para asegurar que el sistema nunca entrará en un estado de bloqueo.
– Prevenir del bloqueo
• asegura que al menos una de las condiciones para el bloqueo no se cumplirá. • establece restricciones sobre como pueden solicitarse los recursos.
– Evitar el bloqueo
• el S.O. necesita conocer conanticipación que recursos requerirá un proceso durante su tiempo de vida. • con esa información, el S.O. puede decidir para cada requerimiento si el proceso debe esperar o no. • la decisión se realiza en función de los recursos actualmente disponibles, los actualmente asignados a cada proceso, y los requerimientos y liberaciones futuras de cada proceso.
•
Permitir entrar a un estado de bloqueo y luegorecuperarse.
– Un algoritmo examina el estado del sistema para determinar si ha ocurrido un bloqueo. – Otro algoritmo maneja la recuperación desde el bloqueo.
•
Ignorar el problema.
– Ante un bloqueo el sistema sufrirá un deterioro en su perfomance – Eventualmente el sistema se detendrá y necesitará reinicio manual. – Es usado en algunos sistemas operativos.
Sistemas Operativos y Redes-Sistemas Operativos - Bloqueo Mutuo
2
Prevención del bloqueo
Asegurando que al menos una de las condiciones para bloqueo no se cumpla, podemos prevenir su ocurrencia. • Exclusión mutua
– – Los recursos compartibles no estarán involucrados en un bloqueo dado que no requieren acceso exclusivo. En general no es posible prevenir los bloqueos relegando la condición de exclusión mutua, dadoque hay recursos que son intrínsecamente no compartibles. Garantizar que, siempre que un proceso requiere un recurso, no tiene otro retenido. Pueden usarse dos protocolos:
• • cada proceso debe requerir y recibir todos sus recursos antes de comenzar su ejecución. cada proceso puede requerir algunos recursos y usarlos, pero cuando requiere otro recurso adicional, antes debe liberar los recursos quetiene asignados.
•
Retención y espera
– –
– –
Estos protocolos producen baja utilización de los recursos. Puede ocasionar inanición de algunos procesos. Alternativa 1:
• Si un proceso que está reteniendo algunos recursos, requiere otro recurso que no se le puede asignar inmediatamente, entonces todos los recursos que tiene retenidos le son apropiados. Los recursos apropiados son...
Regístrate para leer el documento completo.