Tema 4: Asignación de recursos

Anuncio
TEMA 4: ASIGNACIÓN DE RECURSOS
1. Introducción
Por las situaciones ya vistas en la ejecución concurrente de procesos, es
necesario bloquear procesos.
En concreto, en el acceso a recursos no compartibles por parte de varios
procesos se debe utilizar el bloqueo:
1) SOLICITAR RECURSO
2) UTILIZAR RECURSO
3) LIBERAR RECURSO
2. Interbloqueos
Situación que se produce cuando ningún proceso puede continuar su ejecución
ni liberar recursos.
2.1 Modelo de interbloqueo
Holt indicó una forma de modelar la asignación de recursos mediante gráficas
dirigidas (Gráficas de recursos).
A
S
R
B
PROCESO RECURSO
RECURSO S SOLICITADO
RECURSO R ASIGNADO
POR EL PROCESO B (BLOQUEADO
AL PROCESO A
EN ESPERA DEL MISMO)
Situación de interbloqueo:
D
T
U
C
Ejemplo de aplicación de la gráfica de recursos (ver transparencia anexa).
2.2. Estrategias para enfrentarse a los interbloqueos
• Ignorar el problema (algoritmo del avestruz: debido a que la ocurrencia de
un bloqueo es ocasional, no se plantea ninguna solución al problema).
• Detección y recuperación de interbloqueos: se basa en detectar cuando
ocurre un interbloqueo y después realizar una acción para recuperar la
situación.
Detección: Se representa la gráfica de recursos
∃ ciclo - Interbloqueo
no ∃ ciclo - No interbloqueo
Recuperación: • Mediante
apropiación:
Consiste
en
arrebatarle
temporalmente un recurso a un proceso y, posteriormente,
reasignárselo. Problemas: Esta acción depende de la
naturaleza del recurso, la elección del proceso a suspender
depende de los recursos y la recuperación es muy difícil.
• Mediante rollback: Se basa en la verificación periódica de
los procesos (recursos asignados a cada uno). Cuando se
alcanza una situación de interbloqueo se vuelve a una
configuración anterior, y se evita la asignación del mismo
recurso al mismo proceso.
• Mediante eliminación de procesos: Se basa en eliminar un
proceso conflictivo (bien del ciclo o bien que posea
recursos necesarios para otro proceso). Problema: La
eliminación de un proceso a mitad de su ejecución para su
posterior ejecución completa, puede conducir a resultados
incorrectos (ej. un proceso que incrementa en 1 el valor de
un campo de un registro de una base de datos).
• Evitar los interbloqueos: Se basa en asignar los recursos de forma
cuidadosa. Los algoritmos que evitan los interbloqueos se basan en el
concepto de estado seguro.
Trayectorias de recursos: Muestran de forma gráfica la seguridad de los
estados en la ejecución concurrente de procesos. Ejemplo: 2 procesos y 2
recursos.
B
u
I
m
p
r
e
s
o
r
a
I8
P
l
o
t
t
e
r
Región
Segura
I7
Región
Inalcanzable
Región
Segura
I6
Región
Segura
Región
Insegura
I5
t
r
p
Región
Segura
s
q
I1
Región
Segura
I2
I3
A
I4
Impresora
Plotter
Definición de estado seguro: Un estado es seguro si no está bloqueado y
existe una forma de satisfacer todas las solicitudes pendientes, mediante la
ejecución de los procesos en cierto orden.
Ejemplos para 1 tipo de recurso:
• Estado seguro:
Asig Máx
A
B
C
3
2
Asig Máx
9
4
A
B
2
7
Libres : 3
C
3
4
Asig Máx
9
4
A
B
2
7
Libres : 1
C
3
0
Asig Máx
9
-
A
B
2
7
Libres : 5
C
3
0
Asig Máx
9
-
A
B
7
7
Libres : 0
C
3
0
9
-
0
Libres : 7
• Estado inseguro:
Asig Máx
A
B
C
3
2
Asig Máx
9
4
A
B
2
7
Libres : 3
C
4
2
Asig Máx
9
4
A
B
2
7
Libres : 2
C
4
4
Asig Máx
9
4
A
B
2
7
Libres : 0
C
4
0
Ningún proceso
puede avanzar su
ejecución hasta
terminar, a no ser
que alguno libere
9
-
2
7
Libres : 4
Un estado inseguro no es estado de interbloqueo, pero puede conducir a éste.
Diferencia entre estado seguro e inseguro:
• A partir de un estado seguro, el sistema puede garantizar la conclusión
de todos los procesos.
• A partir de un estado inseguro, no se puede garantizar.
Algoritmo del banquero: El banquero tiene créditos disponibles y los reparte
entre sus clientes de forma que siempre pueda satisfacer todos los créditos de,
al menos, uno de ellos.
o Para un tipo de recurso:
Asig Máx
A
0
6
B
0
5
C
D
0
0
Asig Máx
Libres: 10
4
7
Est. Seguro
A
1
6
B
1
5
C
D
2
4
Asig Máx
Libres: 2
4
7
A
1
9
B
2
-
C
D
2
4
Est. Seguro
Libres: 1
7
Est. Inseguro
o Para varios tipos de recursos:
Proc. Un. Cinta Plotter Impres. CD-ROM
Proc. Un. Cinta Plotter Impres. CD-ROM
Rec. Existentes
A
3
0
1
1
A
1
1
0
0
E = (6 3 4 2)
B
0
1
0
0
B
0
1
1
2
Rec. Asignados
C
1
1
1
0
C
3
1
0
0
A = (5 3 2 2)
D
1
1
0
1
D
0
0
1
0
Rec. Disponibles
E
0
0
0
0
E
2
1
1
0
D = (1 0 2 0)
Recursos asignados
Recursos necesarios
Algoritmo:
1) Buscar una fila cuyos recursos necesarios sean inferiores o iguales que
el vector de disponibles. Si no existe, se producirá interbloqueo.
2) Suponemos que el proceso elegido solicita todos los recursos
necesarios y termina (libera todos y se añaden al vector de
disponibles).
3) Repetir 1 y 2 hasta que todos los procesos se señalen como concluidos
(estado inicial seguro) u ocurra un interbloqueo (estado inicial
inseguro).
Descargar