Un sistema operativo utiliza el algoritmo de Banker para evitar interbloqueos al administrar la asignación de tres tipos de recursos X, Y y Z a tres procesos P0, P1 y P2. La siguiente tabla presenta el estado actual del sistema. Aquí, la array de asignación muestra la cantidad actual de recursos de cada tipo asignados a cada proceso y la array Max muestra la cantidad máxima de recursos de cada tipo requeridos por cada proceso durante su ejecución.
Hay 3 unidades de tipo X, 2 unidades de tipo Y y 2 unidades de tipo Z todavía disponibles. El sistema se encuentra
actualmente en un estado seguro. Considere las siguientes requests independientes de recursos adicionales en el
estado actual:
REQ1: P0 requests 0 units of X, 0 units of Y and 2 units of Z REQ2: P1 requests 2 units of X, 0 units of Y and 0 units of Z
¿Cuál de las siguientes es VERDADERA?
(A) Solo se puede permitir REQ1.
(B) Solo se puede permitir REQ2.
(C) Se pueden permitir tanto REQ1 como REQ2.
(D) Ni REQ1 ni REQ2 pueden permitirse
Respuesta: (B)
Explicación: Este es el estado seguro actual.
DISPONIBLE | X=3, Y=2, Z=2 | |
MÁX. | ASIGNACIÓN | |
XYZ | XYZ | |
P0 | 8 4 3 | 0 0 1 |
P1 | 6 2 0 | 3 2 0 |
P2 | 3 3 3 | 2 1 1 |
Ahora, si se permite la solicitud REQ1, el estado sería:
DISPONIBLE | X=3, Y=2, Z=0 | ||
MÁX. | ASIGNACIÓN | NECESITAR | |
XYZ | XYZ | XYZ | |
P0 | 8 4 3 | 0 0 3 | 8 4 0 |
P1 | 6 2 0 | 3 2 0 | 3 0 0 |
P2 | 3 3 3 | 2 1 1 | 1 2 2 |
Ahora, con la disponibilidad actual, podemos atender la necesidad de P1. El estado se convertiría en:
DISPONIBLE | X=6, Y=4, Z=0 | ||
MÁX. | ASIGNACIÓN | NECESITAR | |
XYZ | XYZ | XYZ | |
P0 | 8 4 3 | 0 0 3 | 8 4 0 |
P1 | 6 2 0 | 3 2 0 | 0 0 0 |
P2 | 3 3 3 | 2 1 1 | 1 2 2 |
Con la disponibilidad resultante, no sería posible atender la necesidad de P0 o P2, debido a la falta de recurso Z.
Por lo tanto, el sistema estaría en punto muerto.
⇒ No podemos permitir REQ1.
Ahora, en el estado seguro dado, si aceptamos REQ2:
DISPONIBLE | X=1, Y=2, Z=2 | ||
MÁX. | ASIGNACIÓN | NECESITAR | |
XYZ | XYZ | XYZ | |
P0 | 8 4 3 | 0 0 1 | 8 4 2 |
P1 | 6 2 0 | 5 2 0 | 1 0 0 |
P2 | 3 3 3 | 2 1 1 | 1 2 2 |
Con esta disponibilidad, damos servicio a P1 (también se puede dar servicio a P2). Entonces, el estado es:
DISPONIBLE | X=6, Y=4, Z=2 | ||
MÁX. | ASIGNACIÓN | NECESITAR | |
XYZ | XYZ | XYZ | |
P0 | 8 4 3 | 0 0 1 | 8 4 2 |
P1 | 6 2 0 | 5 2 0 | 0 0 0 |
P2 | 3 3 3 | 2 1 1 | 1 2 2 |
Con la disponibilidad actual, damos servicio a P2. El estado se convierte en:
DISPONIBLE | X=8, Y=5, Z=3 | ||
MÁX. | ASIGNACIÓN | NECESITAR | |
XYZ | XYZ | XYZ | |
P0 | 8 4 3 | 0 0 1 | 8 4 2 |
P1 | 6 2 0 | 5 2 0 | 0 0 0 |
P2 | 3 3 3 | 2 1 1 | 0 0 0 |
Finalmente, damos servicio a P0. El estado ahora se convierte en:
DISPONIBLE | X=8, Y=5, Z=4 | ||
MÁX. | ASIGNACIÓN | NECESITAR | |
XYZ | XYZ | XYZ | |
P0 | 8 4 3 | 0 0 1 | 0 0 0 |
P1 | 6 2 0 | 5 2 0 | 0 0 0 |
P2 | 3 3 3 | 2 1 1 | 0 0 0 |
El estado así obtenido es un estado seguro. ⇒ Se puede permitir REQ2.
Por lo tanto, solo se puede permitir REQ2.
Por lo tanto, B es la opción correcta.
Comente a continuación si encuentra algo incorrecto en la publicación anterior.
Cuestionario de esta pregunta
Publicación traducida automáticamente
Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA