Sistemas operativos modernos
porta el número de procesos ni el número y tipo de los recursos poseídos y solicitados. Este re sultado es válido para cualquier clase de recursos, tanto de hardware como de software. 3.2.1 Condiciones para el bloqueo irreversible Coffman et al. (1971) demostraron que deben cumplirse cuatro condiciones para que haya un bloqueo irreversible: 1. Condición de exclusión mutua. Cada recurso está asignado a exactamente un proceso, o está disponible. 2. Condición de retención y espera. Los procesos que tienen recursos previamente otor gados pueden solicitar otros recursos. 3. Condición de no expropiación. Los recursos ya otorgados no pueden arrebatarse al pro ceso que los tiene; éste debe liberarlos en forma explícita. 4. Condición de espera circular. Debe haber una cadena circular de dos o más procesos, cada uno de los cuales está esperando un recurso que está en manos del siguiente miembro de la cadena. Deben existir estas cuatro condiciones para que ocurra un bloqueo irreversible. Si falta alguna de ellas, no podrá ocurrir. Vale la pena señalar que todas estas condiciones se relacionan con una política que un sis tema puede tener o no tener. ¿Puede asignarse un recurso dado a más de un proceso a la vez? ¿Un proceso puede retener un recurso y pedir otro? ¿Los recursos pueden expropiarse? ¿Puede haber esperas circulares? Más adelante veremos cómo pueden atacarse los bloqueos irre versibles tratando de anular una o más de estas condiciones. 3.2.2 Modelado de bloqueos irreversibles Holt (1972) mostró cómo pueden modelarse estas cuatro condiciones empleando grafos di rigidos. Éstos tienen dos tipos de nodos: procesos, que se representan con círculos, y recur sos, que se representan con cuadrados. Un arco que va de un nodo de recurso (cuadrado) a un nodo de proceso (círculo) implica que el recurso fue solicitado previamente por ese proceso, se le concedió y ahora está en sus manos. En la figura 3-3a, el recurso R está asignado al pro ceso A. Un arco que va de un proceso a un recurso implica que el proceso está bloqueado en espe ra de ese recurso. En la figura 3-3b, el proceso B está esperando el recurso S. En la figura 3-3c vemos un bloqueo irreversible: el proceso C está esperando el recurso T, que está en manos del proceso D. Éste no va a soltar el recurso T porque está esperando el recurso U, que está en manos de C. Ambos procesos esperarán por tiempo indefinido. Un ciclo en el grafo implica que hay un bloqueo irreversible en el que intervienen los procesos y recursos del ciclo (suponien do que sólo hay un recurso de cada clase). En este ejemplo, el ciclo es C-T-D-U-C.
RkJQdWJsaXNoZXIy MjI4NDcx