Sistemas operativos modernos

de avanzar sin el recurso que tiene el otro. Por fortuna, es posible quitarle a ß la memoria in­ tercambiándolo a disco y trayendo A del disco. Ahora A puede ejecutarse, imprimir y liberar la impresora. No hay bloqueo irreversible. Un recurso no expropíable, en cambio, no puede quitársele a su actual dueño sin hacer que el cómputo falle. Si un proceso ha comenzado a quemar un CD-ROM y se le quita repen­ tinamente la grabadora de CD para dársela a otro proceso, el CD quedará inservible. Las gra­ badoras de CD no pueden expropiarse en forma arbitraria. En general, en los bloqueos irreversibles intervienen recursos no expropiables. Por lo ge­ neral, los bloqueos irreversibles potenciales en los que intervienen recursos expropiables pue­ den resolverse quitando recursos a un proceso y reasignándolos a otro. Por ello, nuestro tratamiento se concentrará en los recursos no expropiables. A continuación se da en forma abstracta la secuencia de sucesos necesarios para usar un recurso: 1. Solicitar el recurso. 2. Usar el recurso. 3. Liberar el recurso. Si el recurso no está disponible cuando se solicita, el proceso solicitante se ve obligado a es­ perar. En algunos sistemas operativos, el proceso se bloquea en forma automática cuando falla una solicitud de recurso, y se activa cuando el recurso vuelve a estar disponible. En otros sis­ temas, la solicitud falla y devuelve un código de error, por lo que el proceso invocador esperar un poco e intentarlo de nuevo. Por lo general, un proceso cuya solicitud de un recurso acaba de ser rechazada realizará ciclos solicitando el recurso, desactivándose e intentándolo otra vez. Aunque este proceso no está bloqueado, en la práctica es como si lo estuviera, porque no puede hacer ningún trabajo útil. En el resto de nuestro tratamiento, supondremos que cuando a un proceso se le niega un recurso solicitado, se desactiva. La naturaleza exacta de la solicitud de un recurso depende mucho del sistema. En algunos casos, se cuenta con una llamada al sistema request, la cual permite a los procesos pedir re­ cursos de manera explícita. En otros, los únicos recursos de los que tiene conocimiento el sis­ tema operativo son los archivos especiales, que sólo un proceso puede tener abiertos en un momento dado. Éstos se abren con la llamada open normal. Si el archivo ya está en uso, el in­ vocador se bloquea hasta que el dueño actual cierre el archivo. 3.1.2 Adquisición de recursos El uso de algunos tipos de recursos, como los registros de un sistema de bases de datos, es ad­ ministrado por los procesos de usuario. Una forma de permitir a los usuarios administrar los recursos es asociar un semáforo con cada recurso. Todos estos semáforos al principio tienen el valor L También pueden usarse mutexes. Luego se implementan los tres pasos que dimos an

RkJQdWJsaXNoZXIy MjI4NDcx