Sistemas operativos modernos
Un posible algoritmo de asignación sería dársela al proceso que va a imprimir el archivo más pequeño (suponiendo que se cuenta con esa información). Tal estrategia produce el máxi mo de clientes contentos y parece equitativa, pero pensemos en lo que sucedería en un sistema muy ocupado si un proceso quiere imprimir un archivo enorme. Cada vez que se desocupe la impre sora, el sistema analizará la situación y escogerá el proceso que quiere imprimir el archivo más pequeño. Si hay un flujo constante de procesos con archivos pequeños, el proceso con el archi vo gigante nunca recibirá la impresora y “morirá de hambre” (se pospondrá por tiempo indefi nido, aunque no está bloqueado). La inanición puede evitarse utilizando una política de asignación de recursos tipo primero que llega, primero que se atiende. Así, el proceso que ha esperado más tiempo será el que re ciba servicio a continuación. Tarde o temprano, todo proceso llegará a ser el más antiguo y ob tendrá el recurso requerido. 3.8 INVESTIGACION SOBRE BLOQUEOS IRREVERSIBLES Si algún tema fue investigado hasta el cansancio durante los primeros años de los sistemas ope rativos, fue el de los bloqueos irreversibles. El motivo es que la detección de éstos es un bonito problema de teoría de grafos que un estudiante de posgrado con inclinaciones matemáticas puede tratar de resolver durante tres o cuatro años. Se ideó todo tipo de algoritmos, cada uno más exótico y menos práctico que el anterior. Las investigaciones en este campo casi han ce sado, y muy de vez en cuando se publica un artículo nuevo (como Karacali et a l, 2000). Si un sistema operativo quiere detectar o prevenir los bloqueos irreversibles, y a casi ninguno le in teresa hacerlo, utiliza alguno de los métodos que vimos en este capítulo. No obstante, se sigue investigando un poco la detección de bloqueos irreversibles distribui dos. No trataremos aquí ese tema porque 1) rebasa el alcance del libro, y 2) ninguno de los mé todos resulta ni remotamente práctico en sistemas reales. Al parecer, su función principal es evitar que los teóricos de grafos, de otra forma desempleados, anden vagando por las calles. 3.9 RESUMEN Los bloqueos irreversibles son un problema que puede presentarse en cualquier sistema opera tivo. Ocurren cuando a cada proceso de un grupo se le ha otorgado acceso exclusivo a ciertos recursos, y cada uno quiere aún más recursos que están en manos de otro proceso del grupo. Todos los procesos están bloqueados y ninguno podrá ejecutarse jamás. Los bloqueos irreversibles pueden evitarse determinando cuáles estados son seguros y cuá les no. Un estado seguro es aquel en el que existe una serie de sucesos que garantiza que todos los procesos podrán terminar. Un estado inseguro no ofrece tal garantía. El algoritmo del ban quero evita los bloqueos irreversibles al no conceder un recurso solicitado si ello colocara al sistema en un estado inseguro. Los bloqueos irreversibles pueden prevenirse desde el punto de vista estructural, diseñan do el sistema de tal modo que nunca puedan presentarse de manera deliberada. Por ejemplo, si sólo se permite a un proceso retener un recurso en cualquier instante dado, se romperá la con
RkJQdWJsaXNoZXIy MjI4NDcx