INTERBLOQUES
von Jorge Guerrero
1. Los recursos son de dos tipos: Apropiativos y no apropiativos. Un recurso apropiativo es uno que se puede quitar al proceso que lo posee sin efectos dañinos. La memoria es un ejemplo de un re- curso apropiativo. Por ejemplo, considere un sistema con 256 MB de memoria de usuario, una impresora y dos procesos de 256 MB, cada uno de los cuales quiere imprimir algo. Un recurso no apropiativo es uno que no se puede quitar a su propietario actual sin hacer que el cómputo falle. Si un proceso ha empezado a quemar un CD-ROM y tratamos de quitarle de manera repentina el grabador de CD y otorgarlo a otro proceso, se obtendrá un CD con basura
2. Que es un Recurso? Una clase principal de interbloqueos involucra a los recursos, para que el análisis sobre los interbloqueos sea lo más general posible, nos referiremos a los objetos otorgados como recursos . Un recurso puede ser un dispositivo de hardware (por ejemplo, una unidad de cinta) o una pieza de información (como un registro bloqueado en una base de datos). Por lo general, una computadora tendrá muchos recursos que se pueden adquirir. Para algunos recursos puede haber disponibles varias instancias idénticas, como tres unidades de cinta. Cuando hay disponibles varias copias de un recurso, se puede utilizar sólo una de ellas para satisfacer cualquier petición de ese recurso. En resumen, un recurso es cualquier cosa que se debe adquirir, utilizar y liberar con el transcurso del tiempo.
3. Una clase principal de interbloqueos involucra a los recursos, para que el análisis sobre los interbloqueos sea lo más general posible, nos referiremos a los objetos otorgados como recursos . Un recurso puede ser un dispositivo de hardware (por ejemplo, una unidad de cinta) o una pieza de información (como un registro bloqueado en una base de datos). Por lo general, una computadora tendrá muchos recursos que se pueden adquirir. Para algunos recursos puede haber disponibles varias instancias idénticas, como tres unidades de cinta. Cuando hay disponibles varias copias de un recurso, se puede utilizar sólo una de ellas para satisfacer cualquier petición de ese recurso. En resumen, un recurso es cualquier cosa que se debe adquirir, utilizar y liberar con el transcurso del tiempo.
4. Adquisición de Recursos: Para ciertos tipos de recursos, como los registros de una base de datos, es responsabilidad de los procesos de usuario administrar su uso. Una manera de permitir que los usuarios administren los recursos es asociar un semáforo con cada recurso. Estos semáforos se inicializan con 1. Se pueden utilizar mutexes de igual forma. Los tres pasos antes listados se implementan como una operación down en el semáforo para adquirir el recurso, usarlo y finalmente realizar una operación up en el recurso para liberarlo.
5. CONDICIONES PARA LOS INTERBLOQUEOS DE RECURSOS: 1. Condición de exclusión mutua. Cada recurso se asigna en un momento dado a sólo un proceso, o está disponible. 2. Condición de contención y espera. Los procesos que actualmente contienen recursos que se les otorgaron antes pueden solicitar nuevos recursos. 3. Condición no apropiativa. Los recursos otorgados previamente no se pueden quitar a un pro- ceso por la fuerza. Deben ser liberados de manera explícita por el proceso que los contiene. 4. Condición de espera circular. Debe haber una cadena circular de dos o más procesos, cada uno de los cuales espera un recurso contenido por el siguiente miembro de la cadena.
6. PREVENCION DE INTERBLOQUEOS: 1. Podemos emplear un protocolo para impedir o evitar los bloqueos, asegurando que el sistema nunca entre en estado de interbloqueo. 2. Podemos permitir que el sistema entre en estado de interbloqueo, detectarlo y realizar una recuperación. 3. Podemos ignorar el problema y actuar como si nunca se produjeran interbloqueos en el sistema., incluyendo UNIX y Windows .
7. INTERBLOQUE DE RECURSOS: El interbloqueo de recursos se puede evitar al llevar la cuenta de cuáles estados son seguros y cuáles son inseguros. Un estado seguro es uno en el que existe una secuencia de eventos que garan- tizan que todos los procesos pueden terminar; un estado inseguro no tiene dicha garantía. El algo- ritmo del banquero evita el interbloqueo al no otorgar una petición si ésta colocará al sistema en un estado inseguro.