jueves, 4 de marzo de 2010

P03 Bloqueos/Deadlocks

Definiciòn:
En sistemas operativos, el bloqueo mutuo (también conocido como interbloqueo, traba mortal, deadlock, abrazo mortal) es el bloqueo permanente de un conjunto de procesos o hilos de ejecución 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 solución general para los interbloqueos.

Características:

-El sistema tiene recursos de varios tipos: memoria, archivos, grabadores, impresoras, etc. Podemos tener más de un ejemplar de un tipo de recurso (e.g., tres impresoras). Cada uno de los ejemplares pueden satisfacer un solicitud de un proceso para el recurso.
-Los recursos son compartibles y permiten acceso a muchos procesos (e.g., los archivos de sólo lectura) o no compartibles (e.g., un grabador).
-Ejemplo: Tres procesos en un sistema con tres grabadores, cada proceso tiene un grabador y cada uno necesita uno más.
-Condiciones necesarias de deadlock:
o Exclusión mutua. Por lo menos un recurso debe retenerse no compartido. ¿Por qué?
o Retención y espera. Debe haber un proceso que retenga por lo menos un recurso y espere adquirir más recursos retenidos por otros.
o No apropiación. Los recursos no se pueden expropiar. Los procesos liberan recursos sólo voluntariamente.
o Espera circular. Debe haber un conjunto {P0, P1, ..., Pn} de procesos en espera tales que P0 espere un recurso de P1, P1 un recurso de P2, ..., y Pn un recurso de P0.
-Podemos usar un grafo de asignación de recursos para describir deadlock. Tenemos procesos (círculos), recursos (rectángulos con un punto para cada ejemplar), aristas de solicitud y de asignación (cambio instantáneamente).
-Un grafo sin ciclos implica que no hay deadlock. Si hay un ciclo, es posible que exista deadlock. Un ciclo es una condición necesaria pero no suficiente para deadlock.

Objetivos:

-Descripción del problema que le impide a un conjunto de procesos completar sus misiones.
-Presentar varios métodos para prevenir o evitar deadlocks en sistemas computacionales.

Aliniamiento a Presentar:

-Conceptos de Recursos.
-Bloqueos y condiciones necesarias para el bloqueo.
-Modelaciòn de Bloqueos.
-Areas Principales en la Investigaciòn de Bloqueos.

No hay comentarios:

Publicar un comentario