1 concurrencia: interbloqueo e inanición capítulo 3b

23
1 Concurrencia: interbloqueo e inanición Capítulo 3b

Upload: mauricio-rabago

Post on 27-Jan-2016

233 views

Category:

Documents


6 download

TRANSCRIPT

Page 1: 1 Concurrencia: interbloqueo e inanición Capítulo 3b

1

Concurrencia: interbloqueo e inanición

Capítulo 3b

Page 2: 1 Concurrencia: interbloqueo e inanición Capítulo 3b

Interbloqueo

2

Recurso

A

Recurso

B

Solicitado

Retenido por

Retenido por

Solicitado

ProcesoP1

ProcesoP2

Page 3: 1 Concurrencia: interbloqueo e inanición Capítulo 3b

3

Interbloqueo

• Bloqueo permanente de un conjunto de procesos que compiten por los recursos o bien se comunican unos con otros.

• No existe una solución eficiente.

• Suponen necesidades contradictorias de recursos por parte de dos o más procesos.

1. Definición de interbloqueo

Solicitar (D)

Bloquear (D)

Solicitar (T)

Bloquear (T)

Realizar función

Desbloquear (D)

Desbloquear (T)

Solicitar (D)

Proceso P Proceso Q

Paso Acción Paso Acción

p0 Solicitar (D)

p1 Bloquear (D)

p2 Solicitar (T)

p3 Bloquear (T)

p4 Realizar función

p5 Desbloquear (D)

p6 Desbloquear (T)

q0 Solicitar (T)

q1 Bloquear (T)

q2 Solicitar (D)

q3 Bloquear (D)

q4 Realizar función

q5 Desbloquear (T)

q6 Desbloquear (D)

Page 4: 1 Concurrencia: interbloqueo e inanición Capítulo 3b

4

Interbloqueo

• Recurso: Dispositivo hardware o información de la que los procesos solicitan su uso y acceden. De cada recurso pueden existir varias copias. El interbloqueo se produce si cada proceso retiene un recurso y solicita el otro. Procesadores, canales de E/S, memoria principal y secundaria, archivos, bases de datos y semáforos.

• Tipos: Exclusivos: No admiten requisa sin causar problemas al objeto requisado. No exclusivos.

• Secuencia de acceso a un recurso: Reserva + bloqueo. Uso. Liberación.

• Casos de acceso. Caso A:

• Los procesos que solicitan un recurso, si este no está libre, se bloquean en espera.• La liberación del recurso puede despertar el proceso.

Caso B:• El S.O. Ejecuta los procesos en un orden determinado.• En caso de duda de seguridad (bloqueo) se suspende el proceso.• Necesaria predicción de los sucesos.

2. Recursos: Tipos

Page 5: 1 Concurrencia: interbloqueo e inanición Capítulo 3b

5

Interbloqueo

1. Exclusión mutua: Sólo un proceso puede usar un recurso cada vez.

2. Retención y esperar: Un proceso solicita todos los recursos que necesita a un mismo tiempo.

3. No apropiación: Si a un proceso que retiene ciertos recursos se le deniega una nueva solicitud, dicho proceso

deberá liberar sus recursos anteriores. Si un proceso solicita un recurso que actualmente está retenido por otro proceso, el sistema

operativo puede retener el segundo proceso y exigirle que libere sus recursos.

4. Círculo vicioso de espera: Puede prevenirse definiendo una ordenación lineal de los tipos de recursos.

3. Condiciones de interbloqueo

Recurso

A

Recurso

B

Solicitado

Retenido por

Retenido por

Solicitado

ProcesoP1

ProcesoP2

Page 6: 1 Concurrencia: interbloqueo e inanición Capítulo 3b

6

Interbloqueo

Alternativas frente al problema. 1. Ignorar el problema.

• Tras el bloqueo recuperación.• Menos costoso que la prevención.

2. Detección y recuperación.3. Distribución cuidadosa de recursos.4. Prevención: Evitar alguna de las condiciones.

4. Introducción. Soluciones.

Page 7: 1 Concurrencia: interbloqueo e inanición Capítulo 3b

7

Interbloqueo

• Un recurso de cada tipo. Seguimiento de las ramas del grafo de proceso-recurso. Bucle implica bloqueo.

• Recursos múltiples.

4.1 Interbloqueo. Detección.A

W

B E

F

DC

R

S

U

X

V

Page 8: 1 Concurrencia: interbloqueo e inanición Capítulo 3b

8

Interbloqueo

Procedimientos.1. Abortar todos los procesos interbloqueados.2. Retroceder cada proceso interbloqueado hasta algún punto de control definido previamente y

volver a ejecutar todos los procesos: Puede repetirse el interbloqueo original. Selección de víctima tendrá en cuenta: tCPU invertido, recursos usados. Tipos de retroceso: Rollback o “Abort y reinicio”.

3. Abortar sucesivamente procesos interbloqueados hasta que deje de haber interbloqueo. Costoso por selección del proceso. Posible inanición.

4. Apropiarse de recursos sucesivamente hasta que deje de haber interbloqueo.

Selección económica para procesos en una Sección Crítica.Retroceso: Rollback o “Abort y reinicio”.• Según costo.

Prioridad. Tiempo invertido en la CPU. Número y tipo de recursos utilizados. Recursos por liberar. Número de procesos a abortar. Tipo de proceso: Interactivo o por lotes.

4.2. Interbloqueo. Recuperación

El menor número de líneas de salida producidas hasta ahora.

El mayor tiempo restante estimado. El menor número total de recursos asignados

hasta ahora.

Page 9: 1 Concurrencia: interbloqueo e inanición Capítulo 3b

9

Prevención

• Muy costosa.• Luchar contra las condiciones que producen los interbloqueos.

Exclusión mutua.• Evitando el uso en exclusiva de los recursos.• Uso de spooling, demonios, etc.

Reservar y Tener.• Reserva de todos los recursos al comienzo de su ejecución.• No uso óptimo de los recursos.• Casi nunca se conoce los recursos que se necesitan al comienzo.

No requisa.• Dificil.

Espera circular.• Un recurso cada vez.• Ordenar recursos.

Los recursos se adquieren en orden creciente. Se han de liberar todos los recursos para adquirir uno inferior.

4.3. Predicción de interbloqueos

Page 10: 1 Concurrencia: interbloqueo e inanición Capítulo 3b

10

• La asignación de los recursos a los procesos ha de ser realizada por el S.O. Con cuidado. Se decide dinámicamente si la petición actual de asignación de un recurso podría, de

concederse, llevar potencialmente a un interbloqueo. Necesita conocer las peticiones futuras de recursos.

4.3.1. Método 1: Estudio de Trayectorias No iniciar un proceso si sus demandas pueden llevar a interbloqueo: Trayectorias de

procesos.

1. La trayectoria de los procesos ha de eludir estados inseguros.

2. No conceder una solicitud de incrementar los recursos de un proceso si esta asignación puede llevar a interbloqueo: Algoritmo del Banquero.

Interbloqueo

4.3. Predicción de interbloqueos

Situación IDEAL• Se debe presentar la máxima demanda de recursos por anticipado.• Los procesos a considerar deben ser independientes, no hay condiciones

de sincronización.• Debe haber un número fijo de recursos a repartir.• Los procesos no pueden finalizar mientras retengan recursos.

Page 11: 1 Concurrencia: interbloqueo e inanición Capítulo 3b

Progreso de Q

A es necesario

B es necesario

A es necesario

Libera-

ción de B

Obtención

de A

Liberación de A

Obtención

de B

Obtención de A Obtención de B Liberación

de A

Progreso de P

Liberación

de B

A es necesario

B es necesario

P y Q quieren a A

P y Q quieren a B

Interblo-queo

inevitable

Figura 6.2. Ejemplo de interbloqueo [BACO98].

Page 12: 1 Concurrencia: interbloqueo e inanición Capítulo 3b

Figura 6.3. Ejemplo de sin interbloqueo [BACO98].

Obtención

de A

Obtención

de B

Obtención de B

Liberación de

A

A es necesario

B es necesario

Progreso de P

Liberación de

BObtención de B

Progreso de Q

Liberación de A

Libera-ción de

B

A es necesario

B es necesario

P y Q quieren

a A

P y Q quieren

a B

Page 13: 1 Concurrencia: interbloqueo e inanición Capítulo 3b

13

Interbloqueo

• Def.: Estado del sistema es la asignación actual de recursos a los procesos.

• Def. Estado seguro es un estado en el cual existe al menos una secuencia que no lleva al interbloqueo.

• Def. Estado inseguro es un estado que no es seguro.

• Basado en clientes en un banco. Petición de dinero. Entrega de dinero. No simultaneas.

• Método: Solo se asignan los recursos si lleva a un estado seguro. Se hace uso de las matrices de asignación y petición. (C y R).

4.3. Prevención de bloqueos. 4.3.2. Método 2: Algoritmo del Banquero.

Page 14: 1 Concurrencia: interbloqueo e inanición Capítulo 3b

Estrategia: Banquero

Extracto Stallings

Page 15: 1 Concurrencia: interbloqueo e inanición Capítulo 3b

15

Interbloqueo

4.3. Prevención de bloqueos. Algoritmo del Banquero. Ejemplo: Un sistema formado por: 6 unidades de cinta, 3 plotters, 4 impresoras, 2 CD-ROM.

Proc. Vector A 4 2121 1 5132 5 5132 2 5232 3 6342

Page 16: 1 Concurrencia: interbloqueo e inanición Capítulo 3b

16

Determinación de un estado

• Caso 1. P2 solicita (101)

• Caso 2 P1 solicita (101)

RIJ+CIJ CIJ RIJ

Page 17: 1 Concurrencia: interbloqueo e inanición Capítulo 3b

17

Determinación de un estado seguro: estado inicial (1/2)

RIJ+CIJ CIJ

RIJ+CIJ CIJ

RIJ

RIJ

¿Es este un estado seguro?

Page 18: 1 Concurrencia: interbloqueo e inanición Capítulo 3b

18

Determinación de un estado seguro: estado inicial (2/2)

RIJ+CIJCIJ

RIJ+CIJ CIJ

RIJ

Page 19: 1 Concurrencia: interbloqueo e inanición Capítulo 3b

19

Determinación de un estado inseguro (1/2)

RIJ+CIJ CIJ RIJ

RIJ+CIJ CIJ RIJ

P2 se solicita 101. El estado se evalúa y se ve que es seguro. P2 se apropia de los recursos 101, y se restan de los futuros …

Es un estado seguro.

Page 20: 1 Concurrencia: interbloqueo e inanición Capítulo 3b

20

Determinación de un estado inseguro (2/2)

RIJ+CIJ CIJRIJ

P1 solicita los recursos 101, asumimos que se le conceden y se evalúa el estado…

Page 21: 1 Concurrencia: interbloqueo e inanición Capítulo 3b

21

Interbloqueo.

Críticas al método.

• La predicción de Interbloqueo no es segura.

• Solo existe certeza de tener un Estado Seguro.

• Es posible que un estado Inseguro no tenga que conducir necesariamente a un Interbloqueo.

Page 22: 1 Concurrencia: interbloqueo e inanición Capítulo 3b

22

Interbloqueo

1. Cada proceso hace uso de un solo recurso en un momento dado. No paralelismo.

2. Uso secuencial de la CPU. No es un uso óptimo. No esperas por I/O. SJF mejor algoritmo.

3. Cerrojo de dos fases. 1 fase: Reserva de todos los recursos. 2 fase: Uso de todos los recursos.

Problema: Liberación de todos los recursos.

4.4. Soluciones. Evitar el interbloqueo.

Page 23: 1 Concurrencia: interbloqueo e inanición Capítulo 3b

24

Problemas asociados.

6. Inanición es interbloqueo?

• No existe bloqueo.

• Un proceso no es planificado por la política del sistema.

• Ej.: En sistemas SJF los trabajos largos no son planificados mientras existan cortos.