Beruflich Dokumente
Kultur Dokumente
Modelo del Sistema Caracterizacin de Bloqueos Mutuos Mtodos para Manejar Bloqueos Mutuos Prevencin de Bloqueos Mutuos Como Evitar Bloqueos Mutuos Deteccin de Bloqueos Mutuos Recuperacin de un Estado de Bloqueo Mutuo Aproximacin Combinada para el Manejo de Bloqueos Mutuos
Ejemplo:
Los semforos A y B, inicializados a 1
P1 wait(B) wait(A)
Trafico solo en una direccin. Cada seccin del puente puede ser visto como un recurso. Si un bloqueo mutuo ocurre, este puede ser resuelto si un carro retrocede (renuncie a recursos). Varios carros pueden tener que retroceder si el bloqueo mutuo ocurre. La inanicin es posible.
Bloqueo Mutuo
El bloqueo mutuo es mas serio que la inanicin (posposicin indefinida) porque afecta mas de un trabajo (la totalidad del sistema, eventualmente). Los bloqueos mutuos eran poco frecuentes en los primeros sistemas en batch porque los trabajos incluan una lista completa de los recursos que necesitaban para ejecutarse y el sistema operativo se aseguraba que estos estuvieran libres y asignados antes de poner, al trabajo, en la cola de LISTOS. Los bloqueos mutuos se hicieron mas frecuentes con los sistemas interactivos, porque estos son mas flexibles y mejoran el uso de recursos al compartirlos en forma dinmica.
Cada tipo de recurso Ri tiene Wi instancias. Cada proceso utiliza el recurso como sigue:
solicitud uso liberacin
Hechos Bsicos
Si un grfico no contiene ciclos no existe bloqueo mutuo. Si un grfico contiene un ciclo
Si solo hay una instancia por tipo de recurso, entonces se da el bloqueo mutuo. Si hay varias instancias por tipo de recurso, entonces se da la posibilidad de bloqueo mutuo.
Nota: O bien los recursos se liberan antes que ocurra el bloqueo mutuo; esto en sistemas donde solo hay una instancia de cada tipo de recurso.
El estado (Tabla) de asignacin de recursos es definido por el nmero de recursos disponibles y de recursos asignados, y por la mxima demanda de los procesos.
Estado Seguro
Cuando un proceso solicita un recurso disponible, el sistema deber decidir si la asignacin inmediata deja al sistema en un estado seguro. Un sistema esta en estado seguro si existe una secuencia segura de todos los procesos. La secuencia <P1, P2, , Pn> es segura si para cada Pi, los recursos que Pi puede an solicitar pueden ser satisfechos por los recursos disponibles actualmente + los recursos retenidos por todos los otros Pj, con j<I.
Si Pi necesita recursos que no estn inmediatamente disponibles, entonces Pi debe de esperar hasta que todos los Pj hayan terminado. Cuando Pj esta terminando, Pi puede obtener recursos necesarios, ejecutar, regresar recursos asignados, y terminar. Cuando Pi termina, Pi+1 puede obtener sus recursos necesarios, y as sucesivamente.
Hechos Bsicos
Si un sistema esta en estado seguro no se dan los bloqueos mutuos. Si un sistema esta en estado inseguro existe la posibilidad de bloqueos mutuos (candidato excelente). Si existe evitacin aseguramos que el sistema nunca caer en estado inseguro.
Algoritmo de Seguridad
1. Work y Finish son vectores de longitud m y n, respectivamente. Inicializamos:
Work = Available Finish [i] = false for i - 1,3, , n.
3. Work = Work + Allocationi Finish[i] = true go to 2. 4. If Finish [i] == true para toda i, then el sistema se encuentra en estado seguro.
Ejemplo (Cont.)
El contenido de la matriz Need esta definido por: Max Allocation. Need ABC 743 P0 122 P1 600 P2 011 P3 431 P4 El sistema se encuentra en estado seguro ya que la secuencia < P1, P3, P4, P2, P0> satisface el criterio de seguridad.
Peridicamente invoca un algoritmo que busca por un ciclo en la grfica . Un algoritmo para detectar un ciclo en una grfica requiere de n2 operaciones, donde n es el nmero de vrtices en la grfica.
Algoritmo de Deteccin
1. Work y Finish son vectores de longitud m y n, respectivamente; Inicializamos: (a) Work = Available (b) For i = 1,2, , n, if Allocationi 0, then Finish[i] = false; otherwise, Finish[i] = true. 2. Encuentre un ndice i tal que cumpla ambas : (a) Finish[i] == false (b) Requesti Work If no existe tal i , go to 4.
El algoritmo requiere del orden de O(m x n2) operaciones para detectar si el sistema se encuentra en estado de bloqueos mutuos
Ejemplo (Cont.)
P2 solicita una instancia adicional del tipo C. Request ABC P0 0 0 0 P1 2 0 1 P2 0 0 1 P3 1 0 0 P4 0 0 2 Estado del sistema?
Puede reclamar recursos retenidos por el proceso P0, pero son insuficientes para ejecutar las solicitudes de otros procesos. El bloqueo mutuo existe, consiste de los procesos P1, P2, P3, y P4.
Si el algoritmo de deteccin es invocado arbitrariamente, podr haber muchos ciclos en la grfica de recursos y as no estaramos en capacidad de decir cual de los muchos procesos en bloqueo mutuo causaron el bloqueo.
Es obvio que se requiere la intervencin exterior para eliminar el bloqueo mutuo: eliminar algn vehculo de la interseccin o hacer que una lnea retroceda
permitiendo el uso de la aproximacin optima para cada uno de los recursos en el sistema. Particin de recursos en clases ordenadas jerrquicamente.
Usar la tcnica ms apropiada para el manejo de bloqueos mutuos dentro de cada clase.
Resumen
El sistema operativo debe de asignar de manera dinmica un numero limitado de recursos y al mismo tiempo evitar los bloqueos mutuos y la inanicin Mtodos pata tratar los bloqueos mutuos.
Prevencin: impidiendo las cuatro condiciones se presenten eliminando, al menos, una de ellas Exclusin mutua Retencin de recursos No apropiatividad Espera circular Evitacin: al identificar Estados seguros e inseguros y mantener suficientes recursos en reserva para garantizar la terminacin de los trabajos activos Deteccin y recuperacin: se apoya en la seleccin de victimas (trabajos que deben de terminar antes de completar su ejecucin y reiniciar desde el principio