2. objetivos Este trabajo se hace con el objetivo principal de conocer todo lo referente a los bloqueos mutuos. su definición, como cada proceso puede entrar en un interbloqueo, que hacer o que usar para evitarlos o solucionarlos, como funcionan al llamado de algoritmos..etc. conocer todo este tema y manejarlo con propiedad nos permite avanzar en nuestra carrera de sistemas.
3. BLOQUEOSMUTUOS también conocido como interbloqueo, traba mortal, deadlock, abrazo mortal). Es el bloqueo de un grupo de procesos o hilos que compiten por la asignación de un recurso. Estos bloqueos surgen de necesidades que no pueden ser satisfechas, por parte de dos o más procesos.
4. Grafo de asignación de Recursos Vértices. V {p Recursos.} Aristas {PR : cuando la arista sale hacia un recurso se le llama arista de solicitud R P : cuando el proceso se le da un recurso se le llama arista de asignación.
10. Ejemplo de grafo con ciclo Aquí el sistema tiene ciclo pero no hay bloqueo mutuo. * * p2 p1 p3 * * p4
11. En este ejemplo podemos observar que no hay ciclo. Cuando el sistema no esta en un ciclo, (ciclo quiere decir que si seguimos el curso de la flecha y llega a este mismo proceso ) ósea que esta en estado seguro.
12. Condiciones para el bloqueo. Estas son condiciones necesarias para que se presente el interbloqueo. Condición Descripción Exclusión Mutua. Los recursos son de uso exclusivo. sólo un proceso puede hacer uso de un recurso Retención y Espera El proceso mantiene la posesión del recurso mientras espera recursos adicionales. No apropiación El proceso no suelta el recurso hasta que termine su uso. Espera Circular. Los proceso tiene uno o mas recursos que son requeridos por el siguiente proceso.
13. Métodos para manejar bloqueos mutuos 1. PREVENIR: protocolo o algo especial para prevenir que alguna de las cuatro características anteriormente dadas. 2. EVITAR: para evitar los bloqueos mutuos se invoca a una serie de algoritmos. 3. NO HAER NADA. Actualmente se usa evitar por medio de un algoritmo.
14. Algoritmos para solucionar el bloqueo Algoritmo de seguridad de no bloqueo Del grafo de asignación de recursos que el similar al simplex pero en cada uno de los pasos del proceso y El algoritmo del banquero que indica como mediante el un proceso no se puede bloquear nunca, ya que sólo permite la interacción de dicha llamada si el paso se hace de forma segura, sino es así espera a que se liberen recursos suficientes en el sistema para que se realice el proceso. Éste algoritmo tiene un problema y es que siempre pone como condicional inicial el hecho de tener recursos ilimitados para realizar los procesos, cosa que no siempre es cierta, por lo que cuando halla un proceso que sea más grande que la capacidad de procesamiento, éste algoritmo del banquero bloquearía siempre el proceso al no poder hacerse nunca de forma segura sin quedar en bloqueo mutuo.
15. Algoritmo de banquero AsignaciónMax necesidad disponible A B C A B C A B C A B C P0 0 1 0 7 5 3 7 4 3 3 3 2 P1 2 0 0 3 2 2 1 2 2 2 1 0 P2 3 0 2 9 0 2 6 0 0 5 3 2 P3 2 1 1 2 2 2 0 1 1 5 2 1 P4 0 0 2 4 3 3 4 3 1 7 4 3 3 1 2 Recursos: necesidad= Max- asignación 7 4 5 A10 disponible= sumatoria de cada uno de los 0 0 2 B5 recursos asignados - los recursos en total 7 5 5 C7 así: A=10-7=3 1 5 5 10 5 5 B=5-2=3 C=7-5=2
16. ejemplos Tomamos los procesos de acuerdo ala disponibilidad tenemos, los usamos y los liberamos. <p1,p3,p4,p0,p2> cuando concluimos podemos observar que hay estado seguro, por que el resultado del algoritmo es igual a la cantidad de recursos.