Welcome to Scribd, the world's digital library. Read, publish, and share books and documents. See more
Download
Standard view
Full view
of .
Look up keyword
Like this
30Activity
0 of .
Results for:
No results containing your search query
P. 1
deadlock capitulo 8

deadlock capitulo 8

Ratings:

4.5

(10)
|Views: 3,919|Likes:
Published by shabedekam

More info:

Published by: shabedekam on May 17, 2008
Copyright:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as DOC, PDF, TXT or read online from Scribd
See more
See less

01/15/2013

pdf

text

original

 
CAPITULO 8: DEADLOCKS
Enun ambiente de multiprogramacn, varios procesos pueden competir por un numero finito derecursos. Un proceso solicita recursos y si estos no están disponibles en ese momento, el proceso entraen estado de espera.Puede ocurrir que procesos en espera nunca cambien de estado, pues los recursos que han solicitadohan sido tomados por otros procesos en espera. Por ejemplo, en un sistema con 4 unidades de cinta y 2procesos, cada uno de los cuales ha tomado 2 unidades de cinta pero necesitan 3, cada uno de ellosesperara que el otro libere las cintas. Esta situación se conoce como deadlock (abrazo mortal).Un sistema debe tomar acciones extremas para provenir un deadlock o recuperarse si ello sucede, talescomo liberación de todos los recursos de uno o mas procesos que han entrado en deadlock. En esteCapitulo se describen algunos de los varios métodos que los S.O. pueden usar para manejar el problemade los deadlocks.
8.1. EL PROBLEMA DEL DEADLOCK (ABRAZO MORTAL)
Este problema no es único de los S.O. Generalizando la interpretación de recursos y procesos, tenemossituaciones de deadlock en nuestra vida diaria. Por ejemplo, consideremos el cruce de un río a través depiedras. Para cruzarlo, una persona (en nuestro ejemplo un proceso) debe pisar una a una las piedras(recursos). Si dos personas de ambos lados del río comienzan el cruce, al llegar a lamitad se produce eldeadlock.Una solución seria que una de ellas retroceda. Esto, en el ambiente de S.O. se denomina rollback. Sivarias personas son las que cruzan, para solucionar el problema, puede que sea necesario que mas deuna de ellas retrocedan. La única manera de asegurar que el deadlock no ocurra, es poniéndose deacuerdo en un protocolo. Por ejemplo para iniciar el cruce se vea que de la otra orilla nadie ya lo hainiciado. Debemos hacer algunas observaciones a este protocolo:* Se debe determinar un mecanismo para saber si alguien este cruzando, el río. Si es posible saber elestado de todas las piedras, esta sola condición es suficiente, pero si no (por ejemplo que el río sea muyancho o
 
no se divise la otra orilla) debo implementar otro mecanismo.* Supongamos que simultáneamente 2 personas de orillas opuestas quieran cruzar el río. Nuestroprotocolo no especifica que se debe hacer. Si ambos cruzan, tengo deadlock. Si cada una espera por laotra a comenzar, estamos también en otra forma de deadlock. Una solución seria asignar a una de lasorillas mayor prioridad: por ejemplo la persona de la costa Este cruzara primero, mientras la otra deberáesperar.* Si aplicamos lo anterior, una o mas personas pueden esperar indefinidamente para cruzar. Estasituación se conoce como inanición. Sería el caso que una fila continua de gente cruce del Este (demayor prioridad). Para evitar esto debo extender mi protocolo. Por ejemplo, definiendo un algoritmo quealterne la dirección de cruce.
8.1.1. MODELO DE UN SISTEMA
Unsistema consiste en un numero finito de recursos a ser distribuidos entre un numero de procesos encompetencia. Los recursos se particionan en distintos tipos, cada uno de los cuales se llaman"Instancias".Como ejemplo de tipos de recursos tengo ciclos de CPU, espacio de memoria, archivos, dispositivos deE/S (impresoras, unidades de cintas etc.).
 
Si el sistema tiene 2 CPU, entonces este tipo de recurso tiene 2 instancias. Si un proceso solicita unainstancia de algún tipo de recurso, la asignación de cualquier instancia satisface el pedido. Sí no sucedeasí, entonces las instancias no son idénticas, y por lo tanto no han sido definidas correctamente lasclases de tipo de recursos. Por ejemplo, si un sistema tiene 2 impresoras, estas pueden definirse dentrodel mismo tipo de recurso, si es indiferente por donde se imprima una salida. Sin embargo, si unaimpresora esta en el piso 9 y la otra en el sótano de un edificio, evidentemente los usuarios del piso 9 noverán ambas impresoras como equivalentes y por lo tanto debo definir ambas como distintos tipos derecursos.Un proceso debe solicitar un recurso antes de usarlo, y liberarlo luego. El proceso puede solicitar tantosrecursos como requiera la tarea a realizar.Obviamente, el numero de recursos solicitados no puede superar el numero de recursos disponibles en elsistema.Bajo condiciones normales de trabajo, un proceso puede utilizar un recurso solo en la secuenciasiguiente:1.- Pedido o solicitud: si el pedido no puede ser cumplido (por ejemplo por estar siendo usado por otroproceso, el proceso debe esperar hasta que este disponible.2.- Uso: El proceso puede operar el recurso.3.- Liberación: El proceso libera el recurso.El pedido y liberación de recursos son llamadas al sistema. Ejemplos: Asignación / Liberación dememoria, Apertura / Cierre de archivos, Pedido / Liberación de dispositivos.El uso de los recursos solamente se realiza a través de llamadas al sistema (por ejemplo leer o escribir un archivo o dispositivo de E / S). Por lo tanto, en cada pedido de uso, el SO chequea que el procesohaya pedido el recurso y se le haya asignado el mismo. Una tabla del sistema tiene registrado si unrecurso esta libre o no, y de no estarlo, a que proceso ha sido asignado.Si un proceso pide un recurso que esta siendo usado por otro, entonces se agrega a una cola deprocesos en espera por ese recurso.
8.1.2. DEFINICION DE DEADLOCK
Un conjunto de procesos esta en estado de deadlock cuando cada proceso del mismo esta esperando unevento que solo puede ser causado por otro proceso que pertenece a ese conjunto.Los eventos que nos interesan para nuestro estudio son los de asignación y liberación de recursos delsistema. (Otros eventos también pueden causar un deadlock). Por ejemplo, en un sistema con 3unidades de cinta, donde existen 3 procesos, cada uno de ellos con una unidad asignada. Si cadaproceso solita una segunda unidad, los 3 procesos estarán en estado de deadlock. Este ejemplo, ilustraprocesos compitiendo por el mismo tipo de recurso. Pero también puede producirse deadlocks dondeintervengan distintos tipos de recursos. Por ejemplo un sistema con una impresora y una lectora detarjetas. Supongamos que el proceso P tiene asignada la lectora de tarjetas y el proceso Q la impresora.Si P solicita la Impresora y Q la lectora, se produce un deadlock.
8.2.- CARACTERIZACION DE UN DEADLOCK
Es obvio que un deadlock no es deseable. En este estado los procesos nunca terminan su ejecución ylos recursos del sistema nunca se liberan, haciendo que otros procesos no puedan iniciar su ejecución.
 
8.2.1. CONDICIONES NECESARIAS
Una situación de deadlock puede producirse si y solo si las siguientes 4 condiciones se dansimultáneamente en un sistema.1)Exclusión mutua: al menos un recurso esta asignado en modo no compartido, es decir que soloun proceso por vez puede usar dicho recurso. Si otro proceso solicita ese recurso, debe esperar hasta que el recurso sea liberado.2)Retención y espera: debe existir un proceso que tenga asignado por lo menos un recurso y esteesperando por la asignación de otros recursos adicionales que están tomadas por otros procesos.3)Sin liberación forzada: los recursos no pueden ser "robados", es decir que un recurso solo puedeser liberado voluntariamente por el proceso al que esta asignado, luego que este haya terminadosu tarea.4)Espera circular: debe existir un conjunto de procesos P0, P1 ...Pn en estado de espera: P0 esperaun recurso asignado a P1; P1 espera un recurso asignado a P2 .... Pn-1 espera uno asignado aPn y Pn espera un recurso asignado a P0.Remarcamos que estas 4 condiciones deben darse para un deadlock. La cuarta condición implica lasegunda, por lo que las mismas son interdependientes. Sin embargo veremos en 8.3. que es útilconsiderarlas por separado. Podemos ver las condiciones en el ejemplo del cruce del río. Un deadlock ocurre si y solo si 2 personasque cruzan desde orillas opuestas se encuentran en el medio del río. La condición de exclusión mutuaaparece, ya que cada piedra solo puede ser pisada por una persona a la vez. La condición de retención yespera aparece pues cada persona pisa una piedra y espera pisar la próxima piedra luego. La terceracondición sucede, pues nadie puede remover una piedra que es pisada por la otra persona. La cuartacondición se da pues la persona que viene del Este espera a la que viene del Oeste y viceversa. Ningunade las 2 puede continuar y cada una espera que la otra saque el pie de la piedra. 
8.2.2. GRAFICO DE ASIGNACION DE RECURSOS
 Un deadlock puede ser descripto mas precisamente usando un gráfico de asignación de recursos delsistema. Consiste en pares G = (V , E); donde V es un conjunto de nodos y E es un conjunto de flechas.El conjunto de nodos se divide en 2 tipos: P = (p1, p2, ... , pn), conjunto de todos los procesos delsistema y R = (r1, r2, ... rm), conjunto de los tipos de recursos del sistema.Cada elemento del conjunto E es un par ordenado (pi, rj) o (rj, pi).(pi, rj) implica que el proceso pi ha solicitado una instancia del tipo de recurso rj y actualmente estaesperando la asignación.(rj, pi) implica que una instancia del tipo de recurso rj ha sido asignada al proceso pi.A la primera se la llama flecha de pedido y a la segunda flecha de asignación.Representamos los procesos como círculos y los tipos de recursos como rectángulos, donde cadainstancia aparece como un punto. Notemos que cada flecha de pedido apunta solo a un tipo de recursomientras que cada flecha de asignación nace de una instancia. Del gráfico de la Fig. 8.3, puede mostrarse fácilmente que aquel que no contenga ciclos no está endeadlock. Por el contrario, si el gráfico contiene un ciclo, entonces puede existir un deadlock. Si cada tipode recurso tiene exactamente una instancia, luego un ciclo implica que un deadlock ha ocurrido. Si cadarecurso tiene varias instancias, un ciclo no necesariamente implica un deadlock. Es solo una condiciónnecesaria pero no suficiente. Para ilustrar este concepto, volvamos a la figura 8.3. Supongamos que el proceso p3 pido una instanciadel tipo de recurso r2. Debido a que no existe una instancia disponible, agrego una flecha (p3, r2) algráfico. (figura 8.4). Acá existen 2 ciclos mínimos en el grafico:

Activity (30)

You've already reviewed this. Edit your review.
1 hundred reads
1 thousand reads
Jairo Galeas liked this
Ivette Laian liked this
Wilder Prado liked this
Diaxz Salgado liked this
Yina Palmar liked this

You're Reading a Free Preview

Download
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->