Sistemas operativos modernos
describir. Situaciones más complicadas podrían dar pie a bloqueos irreversibles en los que par ticipan tres, cuatro o más dispositivos y usuarios. Los bloqueos irreversibles pueden ocurrir en diversas situaciones, no sólo cuando se soli citan dispositivos de E7S dedicados. Por ejemplo, en un sistema de bases de datos un progra ma podría verse obligado a bloquear varios registros que esté usando, para evitar condiciones de competencia. Si el proceso A bloquea el registro E l y el proceso B bloquea el registro E2, y luego cada uno de estos procesos trata de bloquear el registro del otro, ocurrirá un bloqueo irreversible. Así pues, los bloqueos irreversibles pueden presentarse con recursos de hardware o de software. En este capítulo examinaremos más de cerca los bloqueos irreversibles, veremos cómo sur gen y estudiaremos algunas formas de prevenirlos o evitarlos. Aunque este material trata los bloqueos irreversibles en el contexto de los sistemas operativos, también se dan en los sistemas de bases de datos y en muchos otros contextos en computación, así que en realidad este mate rial puede aplicarse a una amplia variedad de sistemas multiprocesos. Se ha escrito mucho acerca de los bloqueos irreversibles. En Operating Systems Review (Newton, 1979; y Zobel, 1983) hay dos bibliografías sobre el tema y quienes busquen referencias deberán consultarlas. Aunque estas bibliografías no son recientes, casi todos los trabajos sobre bloqueos irreversibles se publicaron antes de 1980, por lo que siguen siendo útiles. 3.1 RECURSOS Los bloqueos irreversibles pueden ocurrir cuando se ha otorgado a los procesos acceso exclu sivo a dispositivos, archivos, etc. Para que nuestro tratamiento sobre los bloqueos irreversibles sea lo más general posible, llamaremos recursos a los objetos concedidos. Un recurso puede ser un dispositivo de hardware (por ejemplo, una unidad de cinta) o información (por ejemplo, un registro bloqueado de una base de datos). Las computadoras generalmente tienen muchos recursos que pueden obtenerse. En el caso de algunos, podría haber varias instancias, como tres unidades de cinta. Si se cuenta con varias copias de un recurso, cualquiera de ellas puede uti lizarse para atender una solicitud de ese recurso. En resumen, un recurso es cualquier cosa que sólo un proceso puede usar en un instante dado. 3.1.1 Recursos expropiables y no expropiables Hay dos tipos de recursos: expropiables y no expropiables. Un recurso expropiable es uno que se le puede quitar al proceso que lo tiene sin causar daños. La memoria es un ejemplo de re curso expropiable. Por ejemplo, consideremos un sistema con 32 MB de memoria de usuario, una impresora y dos procesos de 32 MB que quieren imprimir algo. El proceso A solicita y ob tiene la impresora, y luego comienza a calcular los valores que imprimirá. Antes de terminar los cálculos, el proceso excede su cuanto de tiempo y es intercambiado a disco. Ahora se ejecuta el proceso B y trata, sin éxito, de adquirir la impresora. Ésta es una situa ción de bloqueo irreversible, porque A tiene la impresora y B tiene la memoria, y ninguno pue-
RkJQdWJsaXNoZXIy MjI4NDcx