Interbloqueo

ACTIVIDAD: TALLER DE INTERBLOQUEOS 1. Considere un interbloque entre vehículos mostrado en la figura: ➢ Demuestre que l

Views 104 Downloads 37 File size 215KB

Report DMCA / Copyright

DOWNLOAD FILE

Recommend stories

Citation preview

ACTIVIDAD: TALLER DE INTERBLOQUEOS 1. Considere un interbloque entre vehículos mostrado en la figura:

➢ Demuestre que las cuatro condiciones necesarias para que se produzca un interbloqueo se cumple en este ejemplo. ●

Exclusión mutua.- Todos los carros (procesos) esperan salir (ejecutarse).



Retener y esperar.- Cada proceso mantiene los recursos que ya le han sido asignados a la vez que espera a adquirir los demás. Sin desalojo. Significa que un recurso solo puede ser liberado de forma voluntaria por el proceso al que se le ha concedido su uso. Espera circular. Los procesos interbloqueados forman una cadena circular, de modo que cada proceso mantiene uno o más de los recursos que son solicitados por el siguiente proceso de la cadena.





➢ Enuncie una regla simple para evitar los interbloqueos ●

Estado seguro: si todos los procesos que ya tienen concedidos los recursos tienen la posibilidad de ser completados en algún orden determinado, incluso si cada uno de esos procesos utilizara todos los recursos a los que está autorizado.

2. Considere la situación de interbloqueo que podría producirse en el problema de la cena de los filósofos cuando cada uno de ellos toma un palillo cada vez. Explique como se cumplen las 4 condiciones necesarias de interbloqueo en esta situación. Explique como podrían evitarse los interbloqueos impidiendo que se cumpla cualquiera de las cuatro condiciones. ➢ Condiciones ● Exclusión mutua. Cada filósofo espera obtener un palillo. ● Retener y esperar. Cada filosofo tiene un palillo espera obtener otro. ● Sin desalojo. Un filósofo solamente puede deshacerse de un palillo solamente si él quiere. ● Espera circular. Cada filósofo tiene el palillo que otros filósofos quieren.



Evitar los interbloqueos ● Retener y esperar. Para asegurar que nunca se produzca, debemos garantizar que, cuando un proceso solicite un recuro, el proceso no esté reteniendo ningún otro recurso.

3. Una posible solución para evitar los interbloqueos es tener un único recurso de orden superior que bebe solicitarse antes de cualquier otro recurso. Por ejemplo, si varias hebras intentan acceder a los objeto de sincronización A….E, puede producirse un interbloqueo. Podemos impedir el interbloqueo añadiendo un sexto objeto F. Cuando una hebra quiera adquirir el bloqueo de sincronización de cualquier objeto A…E, primero deberá adquirir el bloqueo para el objeto D. Esta solución se conoce con el nombre de contención: Los bloqueos para los objetos A…E están contenidos dentro del bloqueo del objeto F. Compare este esquema de espera circular. ●

Si se usan estos dos protocolos, entonces la condición de espera circular no puede llegar cumplirse. Podremos demostrar este hecho suponiendo que existe una espera circular. Sea el conjunto de los procesos implicados en la espera circular A..E donde A espera acceder al recurso que está retenido por el proceso E. Entonces dado que el proceso E está reteniendo el recurso mientras solicita otro recurso tiene que cumplir que E (recurso1) < E (recurso2). Esta condición quiere decir que es imposible por tanto no puede existir una espera circular.

4. Compare el esquema de espera circular con los distintos esquemas de interbloqueo en lo que respecta a las cuestiones siguientes: ➢ Tiempo de ejecución adicional necesario •

El tiempo de ejecución varia debido a la complejidad del programa donde se quiera aplicar este esquema

➢ Tasa de procesamiento del sistema •

Todo esquema asegura que al menos una de las condiciones necesarias para que haya interbloqueo no se produzca y, por lo tanto que no puedan aparecer interbloqueos. Sin embargo, esta técnica de prevención de interbloqueos tiene algunos posibles efectos colaterales, como son una baja tasa de utilización de los dispositivos y una menor.

5. En una computadora real, ni los recursos disponibles ni las demandas de recursos de los procesos son homogéneos durante periodos de tiempo largos (meses); los recursos se averúan o se reemplazan, aparecen y desaparecen procesos nuevos, se compran y añaden al sistema recursos adicionales. SI conrolamos los interbloqueos mediante el algoritmo del banquero. ¿Cuáles de los siguientes cambios pueden realizarse de forma segura y bajo qué circunstancias? ➢ Aumentar el valor Available • Esto podría ser de forma segura cambiado sin ningún problema. ➢ Disminuir el valor Available • Esto podría tener un efecto sobre el sistema e introducir la posibilidad de estancamiento como la seguridad del sistema asume había un cierto número de recursos disponibles. ➢ Aumentar el valor Max para un proceso • Esto podría tener un efecto sobre la el sistema e introducir la posibilidad de estancamiento. ➢ Disminuir el valor Max de un proceso • Este podría ser cambiado de manera segura sin ningún problemas. ➢ Aumentar el número de procesos • Esto podría permitir suponiendo que los recursos se asignan al nuevo proceso (s) de tal manera que el sistema no entra en un estado inseguro.

➢ Disminuir el número de procesos • Esta seguridad puede ser cambiado sin ningún problema.

6. Considere un sistema que tiene cuatro recursos del mismo tipo, compartidos entre 3 procesos, cada procesos necesita como máximo dos recursos. Demostrar que sistema está libre de interbloqueos. ● Supongamos que el sistema se encuentra en un punto muerto. Esto implica que cada proceso es la celebración de un recurso y está esperando una más. Ya que hay son tres procesos y cuatro recursos, un proceso debe ser capaz de obtener dos recursos. Este proceso no requiere más recursos y, por lo tanto, devolverá sus recursos cuando haya terminado. 7. Considere un sistema que consta de m recursos del mismo tipo, compartidos por n procesos. Los procesos sólo pueden solicitar y liberar los recursos de un en uno. Demostrar que el sistema está libre de interbloqueos si se cumplen las dos condiciones siguientes: ➢ La necesidad de cada proceso está comprendida entre 1 y m recursos ➢ La suma de todas las necesidades máximas es menor que m + n. ●

Utilizando la terminología de la Sección 7.6.2, tenemos: n

a. ∑ = 1 Ma xi < m + n i

b. Ma xi ≥ 1 for all i Proof: Needi = Ma xi − Alloca tioni If there exists a deadlock state then: n

c. ∑ = 1 Alloca tioni = m i

Use a. to get: ∑ Needi + ∑ Alloca tioni = ∑Ma xi < m + n Use c. to get: ∑ Needi + m < m + n n

Rewrite to get: ∑ = 1 Needi < n i

Esto implica que existe un proceso Pi tal que Needi = 0. Como Ma xi ≥ 1 se deduce que Pi tiene al menos un recurso que se puede liberar. Por lo tanto el sistema no puede estar en un estado de interbloqueo. 8. Podemos obtener un algoritmo simplificado del banquero para un único tipo de recurso a partir del algoritmo general del banquero, simplemente reduciendo la dimensionalidad de las diversas matrices en 1. Demuestre mediante un ejemplo que el algoritmo del banquero para múltiple tipos de recursos no se puede implementar con solo aplicar individualmente a cada tipo de recurso el algoritmo simplificado para un único tipo de recurso. ● Considere un sistema con recursos A, B, y C y los procesos P0, P1, P2, P3, P4 y con los siguientes valores de la asignación:

Allocation A

B

C

P0

0

1

0

P1

3

0

2

P2

3

0

2

P3

2

1

1

P4

0

0

2

A

B

C

P0

7

4

3

P1

0

2

0

P2

6

0

0

P3

0

1

1

P4

4

3

1

Y el siguiente valor de la need:

Need

Si el valor del disponible es (2 3 0), podemos ver que una petición de proceso P0 (0 2 0) no puede ser satisfecha ya que esto reduce Disponible a (2 1 0) y sin proceso podría terminar de forma segura. Sin embargo, si tuviéramos que tratar a los tres recursos ya que tres de un solo recurso tipos de algoritmo del banquero, obtenemos lo siguiente: Para el recurso A (que tenemos disponibles 2).

Asignación

Necesidad

P0

0

7

P1

3

0

P2

3

6

P3

2

0

P4

0

4

Procesos podrían terminar de forma segura en el orden de P1, P3, P4, P2, P0. Para el recurso B (que ahora tenemos disponible como 1 2 fueron asumidos asignado para procesar P0), Asignación

Necesidad

P0

3

2

P1

0

2

P2

0

0

P3

1

1

P4

0

3

Procesos podrían terminar de forma segura en el orden de P2, P3, P1, P0, P4. Y, por último, para los recursos Para C (que tenemos disponibles 0). Asignación

Necesidad

P0

0

3

P1

2

0

P2

2

0

P3

1

1

P4

2

1

9.

A. B.

C.

Los valores de Need for procesos P0 a P4, respectivamente, son (0, 0, 0, 0), (0, 7, 5, 0), (1,0, 0, 2), (0, 0, 2, 0) y (0, 6, 4, 2). Sí. Con Disponible ser igual a (1,5, 2, 0), ya sea P0 proceso o P3 podían correr. Una vez P3 proceso se ejecuta, libera sus recursos que permiten a todos los demás procesos existentes a correr. Sí puede. Esto da como resultado el valor de Disponible ser (1, 1, 0, 0). Una orden de los procesos que pueden terminar es P0, P2, P3, P1 y P4.

10. ¿Cuál es la suposición optimista realizada en el algoritmo de detección de interbloqueos? ¿Cómo podría violarse esta suposición? ● La suposición optimista es que no habrá ninguna forma de espera circular en términos de recursos asignados y de los procesos de toma solicitudes de ellos. Esta hipótesis podría violarse si una espera circular en efecto, en la práctica.