Sistemas operativos modernos

Esta lógica también es válida con múltiples procesos. En todo momento, uno de los recur­ sos asignados tendrá el número más alto. El proceso que tiene ese recurso nunca pedirá un re­ curso que ya se asignó. Este proceso terminará o, en el peor de los casos, solicitará recursos con números mayores, los cuales estén disponibles. En algún momento terminará y liberará sus recursos. En ese punto, algún proceso tendrá el recurso de número más alto y también podrá terminar. En síntesis, existe una situación potencial en la que todos los procesos terminan, así que no habrá bloqueo irreversible. Una variación menor de este algoritmo no exige que los recursos se adquieran en orden es­ trictamente ascendente: sólo insiste en que ningún proceso solicite un recurso cuyo número sea menor que el de alguno que ya posea. Si un proceso solicita al principio los recursos 9 y 10, y luego los libera, en realidad está volviendo a empezar, así que no hay motivo para prohibirle ahora que solicite el recurso 1 . Aunque ordenar los recursos en forma numérica elimina el problema de los bloqueos irre­ versibles, podría ser imposible hallar un ordenamiento que satisfaga a todo mundo. Si los re­ cursos incluyen ranuras de la tabla de procesos, espacio para spooling en disco, registros de base de datos bloqueados y otros recursos abstractos, el número de posibles recursos y de sus usos podría ser tan grande que ningún ordenamiento pueda funcionar. En la figura 3-14 se resumen los diversos enfoques para prevenir bloqueos irreversibles. Condición Estrategia Exclusión mutua Poner todo en spooling Retener y esperar Solicitar todos los recursos al principio No expropiación Arrebatar recursos Espera circular Ordenar recursos en forma numérica Figura 3*14. Resumen de enfoques para prevenir bloqueos irreversibles. 3.7 OTROS ASPECTOS En esta sección trataremos diversas cuestiones relacionadas con los bloqueos irreversibles, que in­ cluyen los bloqueos de dos fases, los bloqueos irreversibles que no son por recursos y la inanición. 3.7.1 Bloqueos de dos fases Aunque ni la evitación ni la prevención prometen mucho en el caso general, se conocen mu­ chos algoritmos excelentes para aplicaciones específicas. Por ejemplo, en muchos sistemas de bases de datos, una operación que se presenta con frecuencia es solicitar bloqueos para varios registros y luego actualizar todos esos registros. Si se están ejecutando varios procesos al mis­ mo tiempo, el peligro de un bloqueo irreversible es muy real.

RkJQdWJsaXNoZXIy MjI4NDcx