Sistemas operativos modernos
Por ejemplo, para quitarle una impresora láser al proceso que la tiene, el operador puede recoger todas las hojas que ya se imprimieron y colocarlas en una pila. Luego puede suspen derse el proceso (marcarse como no ejecutable). Ahora la impresora puede asignarse a otro proceso. Cuando éste termine, la pila de hojas ya impresas puede colocarse otra vez en la ban deja de salida de la impresora y reiniciarse el proceso original. La capacidad para arrebatarle un recurso a un proceso, dejar que otro proceso lo use y de volverlo sin que el proceso se percate de ello, depende mucho de la naturaleza del recurso. Esta forma de recuperación suele ser difícil o imposible. La selección del proceso a suspender de pende en gran medida de cuáles procesos tienen recursos que pueden quitarse con facilidad. Recuperación medíante reversión Si los diseñadores del sistema y los operadores de la máquina saben que hay una probabilidad elevada de bloqueos irreversibles, pueden disponer que los procesos pasen por puntos de ve- rifícación en forma periódica. En un punto de verificación, el estado del proceso se graba en un archivo para poder reiniciarlo más tarde. El punto de verificación no sólo contiene la ima gen de memoria, sino también el estado de los recursos; es decir, cuáles están asignados en la actualidad al proceso. Para que sean más eficaces, los puntos de verificación nuevos no debe rán sobrescribir a los viejos, sino que deberán grabarse en archivos nuevos; así, conforme se ejecuta el proceso se va acumulando una sucesión de archivos de puntos de verificación. Cuando se detecta un bloqueo irreversible, es fácil ver qué recursos se necesitan. Para efectuar la recuperación, un proceso que tiene un recurso requerido se revierte hasta un mo mento anterior a la adquisición del recurso, iniciando uno de sus puntos de verificación pre vios. Todo el trabajo realizado desde el punto de verificación se pierde (por ejemplo, las hojas que se imprimieron desde ese punto de verificación en adelante deberán desecharse, porque van a volver a imprimirse). En efecto, el proceso se restablece a un momento anterior en el que no tenía el recurso, el cual ahora se asigna a uno de los procesos que ha caído en un bloqueo irre versible. Si el proceso reiniciado trata de adquirir otra vez el recurso, tendrá que esperar has ta que esté disponible. Recuperación por eliminación de procesos La forma más burda, pero eficaz, de romper un bloqueo irreversible es eliminar uno o más pro cesos. Una posibilidad sería eliminar un proceso del ciclo. Con un poco de suerte, los demás procesos podrán continuar. Si esto no ayuda, podrida repetirse hasta romper el ciclo. Como alternativa, podría escogerse como víctima un proceso que no esté en el ciclo, a fin de liberar sus recursos. En este esquema, el proceso a eliminar se escoge con mucho cuidado porque está reteniendo recursos que algún proceso del ciclo necesita. Por ejemplo, un proce so podría tener una impresora y querer un graficador, mientras que otro proceso tiene un gra- ficador y quiere una impresora. Los dos han caído en un bloqueo irreversible. Un tercer proceso podría estar ejecutándose muy contento, ocupando una impresora idéntica y un grafi cador idéntico. La eliminación del tercer proceso liberará estos recursos y romperá el bloqueo irreversible en el que estaban los dos primeros.
RkJQdWJsaXNoZXIy MjI4NDcx