Sistemas operativos modernos

muy real, de que habiendo bloqueado la cuenta x, un proceso no pueda bloquear la cuenta>»porque otro proceso, que está esperando para bloquear a x, ya bloqueó y. Idee un plan que evite bloqueos irre­ versibles. No libere un registro de cuenta antes de haber terminado las transacciones. (O sea, no se per­ miten soluciones que bloqueen una cuenta y luego la liberen de inmediato si la otra ya está bloqueada.) 25. Una forma de prevenir bloqueos irreversibles consiste en eliminar la condición de retener y esperar. En el texto se propuso que antes de pedir un recurso nuevo, los procesos deben liberar los que tengan (suponiendo que sea posible). Sin embargo, esto introduce el peligro de que un proceso obtenga el recurso nuevo pero pierda algunos de los que tenía antes porque procesos competidores se quedaron con ellos. Proponga una forma de mejorar este esquema. 26. Un estudiante de ciencias de la computación a quien se dejó un trabajo sobre bloqueos irreversibles tiene una idea brillante para eliminarlos. Cuando un proceso solicite un recurso, deberá especificar un límite de tiempo. Si el proceso se bloquea porque el recurso no está disponible, se pone en mar­ cha un cronómetro. Si se excede el límite de tiempo, el proceso se libera y se le permite ejecutarse otra vez. Si usted fuera el profesor, ¿qué calificación daría a esta propuesta y por qué? 27. Cenicienta y el Príncipe se van a divorciar. Para dividir sus propiedades, han convenido en el algo­ ritmo siguiente. Cada mañana, los dos podrán enviar una carta al abogado del otro, solicitando una posesión. Puesto que la entrega de una carta tarda un día, se ha acordado que si ambos descubren que han solicitado el mismo objeto el mismo día, al siguiente enviarán una carta cancelando la soli­ citud. Entre sus posesiones está un perro. Nerón, la casita de Nerón, un canario. Piolín, y la jaula de Piolín. Los animales aman sus casas, por lo que se ha convenido que ningún reparto de propiedades que separe a un animal de su casa será válido, y habrá que iniciar otra vez el reparto desde el prin­ cipio. Tanto Cenicienta como el Príncipe ansian desesperadamente quedarse con Nerón. A fin de po­ der irse de vacaciones (cada quién por su lado), los cónyuges han programado una computadora personal que se encargue de la negociación. Cuando regresan de sus vacaciones, se encuentran con que las computadoras siguen negociando. ¿Por qué? ¿Puede haber un bloqueo irreversible? ¿Puede haber inanición? Explique. 28. Un estudiante de antropología con especialidad en computación ha emprendido un proyecto para averiguar si es posible enseñar a los babuinos africanos qué es un bloqueo irreversible. Localiza una cañada profunda y tiende una cuerda de un lado al otro para que los babuinos puedan cmzar colgan­ do de la misma. Varios de ellos pueden cruzar al mismo tiempo, siempre y cuando todos vayan en la misma dirección. Si los babuinos que se dirigen al este y los que se dirigen al oeste se enconü-aran en la cuerda al mismo tiempo, se presentaría un bloqueo irreversible (se atorarían a la mitad) porque uno no podría trepar sobre otro mientras ambos cuelgan sobre la cañada. Si un babuino quiere cru­ zar la cañada, deberá comprobar que ningún otro esté cruzando en la dirección opuesta. Escriba un programa empleando semáforos que evite bloqueos irreversibles. No se preocupe porque los babui­ nos que van hacia el este detengan en forma indefinida a los que van al oeste. 29. Repita el problema anterior, pero ahora evite la inanición. Cuando un babuino que quiere cruzar ha­ cia ei este llega a la cuerda y descubre otros cmzando hacia el oeste, espera hasta que la cuerda se vacíe, pero no se permite a más babuinos cmzar hacia el oeste hasta que al menos uno haya cruza­ do en la otra dirección. 30. Programe una simulación del algoritmo del banquero. Su programa deberá tener un ciclo que pida una solicitud a cada cliente por tumo y determine si es segura o insegura. Debe generarse un registro de solicitudes y decisiones en un archivo.

RkJQdWJsaXNoZXIy MjI4NDcx