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

Post on 27-Jan-2016

233 Views

Category:

Documents

6 Downloads

Preview:

Click to see full reader

Transcript

1

Concurrencia: interbloqueo e inanición

Capítulo 3b

Interbloqueo

2

Recurso

A

Recurso

B

Solicitado

Retenido por

Retenido por

Solicitado

ProcesoP1

ProcesoP2

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)

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

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

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.

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

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.

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

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.

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].

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

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.

Estrategia: Banquero

Extracto Stallings

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

16

Determinación de un estado

• Caso 1. P2 solicita (101)

• Caso 2 P1 solicita (101)

RIJ+CIJ CIJ RIJ

17

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

RIJ+CIJ CIJ

RIJ+CIJ CIJ

RIJ

RIJ

¿Es este un estado seguro?

18

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

RIJ+CIJCIJ

RIJ+CIJ CIJ

RIJ

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.

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…

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.

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.

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.

top related