Sistemas operativos modernos

En una sección posterior del capítulo estudiaremos un algoritmo detallado para tomar de­ cisiones de asignación que no conduzcan a bloqueos irreversibles. Por el momento, lo que hay que entender es que los grafos de recursos son una herramienta que nos permite ver si una sucesión dada de solicitudes/liberaciones conduce a un bloqueo irreversible. Simplemente modelamos las solicitudes y liberaciones paso por paso, y después de cada paso revisamos el grafo para ver si contiene ciclos. De ser así, tendremos un bloqueo irreversible; de lo contrario, no lo habrá. Aunque nuestro tratamiento de los grafos de recursos sólo se ha ocupado del caso en que nada más hay un recurso de cada tipo, es posible generalizarlos para manejar múltiples recursos del mismo tipo (Holt, 1972). En general, se usan cuatro estrategias para manejar bloqueos irreversibles. 1. Simplemente ignorar el problema. Quizá si nos olvidamos de él, él se olvidará de nosotros. 2. Detección y recuperación. Dejar que se presenten bloqueos irreversibles, detectarlos y tomar medidas. 3. Evitación dinámica mediante una asignación cuidadosa de recursos. 4. Prevención, anulando en forma estructural una de las cuatro condiciones necesarias pa­ ra que haya un bloqueo irreversible. Examinaremos por turno cada uno de estos métodos en las cuatro próximas secciones. 3.3 EL ALGORITMO DEL AVESTRUZ La estrategia más sencilla es el algoritmo del avestruz: meter la cabeza en la arena y hacer co­ mo si no existiera ningún problema."^ Las personas reaccionan ante esta estrategia de diferentes maneras. A los matemáticos les parece inaceptable por completo y dicen que los bloqueos irre­ versibles deben prevenirse a toda costa. Los ingenieros preguntan con qué frecuencia cabe es­ perar que se presente el problema, qué tan a menudo se cae el sistema por otros motivos y qué tan grave es un bloqueo irreversible. Si los bloqueos irreversibles se dan una vez cada cinco años en promedio, pero las caídas del sistema debidas a fallos de hardware, del compilador y del sis­ tema operativo ocurren una vez a la semana, pocos ingenieros estarán dispuestos a sacrificar mu­ cho el desempeño o la comodidad con el fin de eliminar tales bloqueos. Para hacer este contraste más específico, la mayoría de los sistemas operativos puede pa­ decer bloqueos irreversibles que ni siquiera se detectan, mucho menos se truncan en forma au­ tomática. El número total de procesos en un sistema lo determina el número de entradas en la tabla de procesos. Por lo tanto, las ranuras de la tabla de procesos son un recurso finito. Si una llamada fork falla porque la tabla está llena, una estrategia razonable para el programa que emi­ tió la llamada sería esperar un tiempo aleatorio e intentarlo otra vez. t En realidad, esto que se dice de las avestruces es absurdo. Éstas pueden correr a 60 km/h y su patada es lo bastante violenta como para matar a cualquier león que esté pensando en cenar pollo gigante.

RkJQdWJsaXNoZXIy MjI4NDcx