Professional Documents
Culture Documents
Diplomado en Computacin Empresarial Curso: Sistemas Operativos Profesor: James Temple Palmer
Telfono: 88195692
jameswaltert@gmail.com Magister en Informtica y Computacin (UCR) Septiembre 2011
interbloqueo
En sistemas operativos, el bloqueo mutuo (tambin conocido como interbloqueo, traba mortal, deadlock, abrazo mortal) es el bloqueo permanente de un conjunto de procesos o hilos de ejecucin en un sistema concurrente que compiten por recursos del sistema o bien se comunican entre ellos. A diferencia de otros problemas de concurrencia de procesos, no existe una solucin general para los interbloqueos.
Todos los interbloqueos surgen de necesidades que no pueden ser satisfechas, por parte de dos o ms procesos. Dos procesos compiten por dos recursos que necesitan para funcionar, que slo pueden ser utilizados por un proceso a la vez.
ejemplo de interbloqueo
Cuatro coches llegan aproximadamente en el mismo instante a un cruce de cuatro caminos. El coche que va hacia el norte necesita los cuadrantes 1 y 2. El coche que va hacia el oeste necesita los cuadrantes 2 y 3. El coche que va hacia el sur necesita los cuadrantes 3 y 4. El coche que va hacia el este necesita los cuadrantes 4 y 1.
ejemplo de interbloqueo
La norma ms habitual en la carretera es que un coche en un cruce de cuatro caminos debe ceder el paso al coche que est a su derecha. En una carretera de dos direcciones, donde en un determinado cruce con la va del ferrocarril, se ha construido un puente que solo deja pasar vehculos en un solo sentido. El bloqueo ocurre cuando dos carros intentan pasar por el puente al mismo tiempo.
ejemplo de interbloqueo
Dos procesos desean imprimir cada uno un enorme archivo en cinta. El proceso A solicita el permiso para utilizar la impresora, el cual se le concede. Es entonces cuando el proceso B solicita permiso para utilizar la unidad de cinta y se le otorga. El proceso A solicita entonces la unidad de cinta, pero la solicitud es denegada hasta que B la libere. Por desgracia, en este momento, en vez de liberar unidad de cinta, B solicita la impresora. Los procesos se bloquean en ese momento y permanecen as por siempre.
recursos
Un sistema se compone de un nmero finito de recursos que se distribuyen entre varios tipos: Fsicos: Ciclo de CPU, espacio en memoria, dispositivos de e/s (impresoras, unidades de cinta, etc.) Lgicos: Ficheros, tablas del sistemas, semforos. Los recursos son de dos tipos: Apropiable: Un recurso apropiable es aquel que se puede tomar del proceso que lo posee sin efectos dainos. La memoria es un ejemplo de recurso apropiable.
No apropiables: Un recurso no apropiable, es aquel que no se puede tomar de su poseedor activo sin provocar un fallo de clculo.
recursos
Los interbloqueos se relacionan con los recursos no apropiables. Lo usual es que los bloqueos asociados a recursos apropiables se pueden resolver, mediante la reasignacin de recursos de un proceso a otro. La secuencia de eventos necesaria para utilizar un recurso es: Solicitar el recurso Utilizar el recurso Liberar el recurso El interbloque se puede definir entonces de la siguiente forma: Un conjunto de procesos se encuentra en estado de interbloqueo cuando cada uno de ellos espera un suceso que solo puede originar otro proceso del mismo conjunto.
Condicin de no apropiacin: Los recursos otorgados con anterioridad no pueden ser forzados a dejar un proceso. El proceso que los posee debe liberarlos en forma explcita.
Las tres primeras condiciones son necesarias, pero no suficientes, para que exista interbloqueo. La cuarta condicin es, en realidad, una consecuencia potencial de las tres primeras.
No conceder una solicitud de incrementar los recursos de un proceso si esta asignacin puede llevar a interbloqueo.
Los tubos, los mensajes y la memoria compartida brindan un medio de comunicacin de datos entre procesos, mientras que los semforos y las seales se utilizan para provocar acciones en otros procesos.
Semforos Las llamadas al sistema para semforos en el UNIX Versin V son una generalizacin de las primitivas "wait y signal", en estas se pueden realizar conjuntamente varias operaciones y los incrementos y disminuciones pueden ser valores mayores que 1.
Mecanismos de concurrencia en Windows Windows 2000 (W2K) ofrece sincronizacin entre los hilos como parte de la arquitectura de objetos. El mecanismo usado por el ejecutor de W2K para implementar los servicios de sincronizacin es la familia de objetos de sincronizacin: Proceso. Hilo. Archivo. Entrada de consola. Notificacin de cambio de archivo. Mutante. Semforo. Suceso. Temporizador.
Mecanismos de concurrencia en Windows Cada caso de objeto de sincronizacin puede estar en estado sealizado o no sealizado. Un hilo puede estar suspendido por un objeto en estado no sealizado. El mecanismo es sencillo: un hilo genera una solicitud de espera al ejecutor de W2K por medio del descriptor (handle) del objeto de sincronizacin. El objeto mutante se utiliza para hacer cumplir la exclusin mutua en el acceso a un recurso, permitiendo que slo un objeto hilo obtenga el acceso en cada instante. Por lo tanto, funciona como un semforo binario. Cuando el objeto mutante pasa a estado sealizado, slo se libera uno de los hilos que esperan.
Muchas gracias