Está en la página 1de 4

Considere que un sistema consiste de 14 dispositivos del mismo tipo que son compartidos por tres procesos y

solo 2 están disponibles. a) Determine la matriz Need (necesidad) dada la siguiente situación. b) Justifique si se
encuentra en estado seguro o inseguro. c) En el caso de encontrarse en estado seguro, liste la secuencia de
solicitudes y liberaciones que la ejecución total de todos los procesos. d) Si el sistema está en estado inseguro,
muestre cómo es posible que esté en bloqueo mutuo proceso allocation maxima A 5 8 B 3 9 C 4 8
ChatGPT
Para resolver este problema, necesitamos conocer la cantidad de dispositivos de cada tipo que necesita cada
proceso y cuántos dispositivos de cada tipo están actualmente asignados a cada proceso.

a) La matriz Need (necesidad) se puede calcular restando la matriz Allocation (asignación) de la matriz Max
(máximo):

Allocation Max Need


A B C A B C A B C
Process 5 3 4 8 9 8 3 6 4
Process 0 2 3 6 4 8 6 2 5
Process 1 1 2 3 3 6 2 2 4

b) Para determinar si el sistema se encuentra en un estado seguro o inseguro, necesitamos utilizar el algoritmo
del banquero. Comenzamos creando una matriz Available (disponibilidad) que indica cuántos dispositivos de
cada tipo están actualmente disponibles:

Available
222

Luego, recorremos la matriz Need y verificamos si cada proceso puede terminar con los recursos que necesita. Si
podemos encontrar un proceso que pueda terminar, lo marcamos como terminado y liberamos los recursos que
había asignado. Si no podemos encontrar ningún proceso que pueda terminar, el sistema se encuentra en un
estado inseguro.

En este caso, podemos ver que los procesos pueden terminar en el siguiente orden: C, A, B. Por lo tanto, el
sistema se encuentra en un estado seguro.

c) La secuencia de solicitudes y liberaciones que garantiza la ejecución total de todos los procesos es:

Proceso C solicita 3 dispositivos


Proceso A solicita 2 dispositivos
Proceso B solicita 2 dispositivos
Proceso C libera 4 dispositivos
Proceso A solicita 3 dispositivos
Proceso B libera 3 dispositivos

d) Si el sistema estuviera en un estado inseguro, significaría que no hay suficientes dispositivos disponibles para
satisfacer todas las solicitudes de los procesos y no hay forma de liberar suficientes dispositivos para permitir
que los procesos terminen. Esto podría llevar a un bloqueo mutuo, donde cada proceso se encuentra esperando
indefinidamente por un recurso que nunca estará disponible.

En este caso, dado que el sistema se encuentra en un estado seguro, no hay riesgo de bloqueo mutuo.
Punto 5:

Aplicar el algoritmo de detección de deadlock a los siguientes datos y mostrar los resultados:

disponible= 2 1 0 0

reclamo= 2 0 0 1

1 0 1 0

2 1 0 0

asignación= 0 0 1 0

20 0 1

0 21 0

Para aplicar el algoritmo de detección de deadlock, es necesario construir una tabla que refleje el
estado del sistema. La tabla debe tener una fila para cada proceso y una columna para cada
recurso. Cada entrada en la tabla debe indicar cuántos recursos del tipo correspondiente están
siendo utilizados por el proceso correspondiente.

Tabla de estado actual:

Recurso 1 Recurso 2 Recurso 3 Recurso 4

Proceso 1 2 0 0 1

Proceso 2 1 0 1 0

Proceso 3 2 1 0 0

A continuación, se calculan los recursos disponibles, que se obtienen sumando los recursos
disponibles de cada tipo:

Recursos disponibles: 2 1 1 1
Luego, se construye una tabla que muestra la asignación actual de recursos a cada proceso:

Recurso 1 Recurso 2 Recurso 3 Recurso 4

Proceso 1 0 0 1 0

Proceso 2 2 0 0 1

Proceso 3 0 2 1 0

A continuación, se calcula el vector de necesidades para cada proceso, que indica cuántos recursos de cada
tipo necesita cada proceso para completar su ejecución:

Proceso 1: 2 1 0 1

Proceso 2: 0 0 1 0

Proceso 3: 2 0 1 0
Finalmente, se aplica el algoritmo de detección de deadlock:

1. Buscar un proceso que pueda ser ejecutado sin violar la asignación actual de recursos y sin
que se agoten los recursos disponibles. En este caso, el único proceso que cumple con estas
condiciones es el proceso 2, que necesita solamente el recurso 3 y hay uno disponible.
2. Liberar los recursos asignados al proceso seleccionado en el paso anterior y actualizar la
tabla de asignación de recursos. En este caso, se libera el recurso 3 del proceso 2, por lo
que la tabla de asignación queda así:
Recurso 1 Recurso 2 Recurso 3 Recurso 4

Proceso 1 0 0 1 0

Proceso 2 2 0 0 0

Proceso 3 0 2 1 0

3. Actualizar el vector de recursos disponibles. En este caso, el recurso 3 queda disponible, por lo que el vector
de recursos disponibles es:

Recursos disponibles: 2 1 2 1
4. Repetir los pasos 1 a 3 hasta que se detecte un deadlock o todos los procesos hayan completado su
ejecución. En este caso, se puede ver que no se produce un deadlock y que todos los procesos pueden
completar su ejecución sin problemas.

En resumen, no se detecta un deadlock en este sistema y todos los procesos pueden completar su ejecución sin
problemas.

Llegado el caso de que P2 lu recursos del tipo (0,3,0,0), léase esto como “A=0 , B=3 , C=0 , D=0”. ¿Se puede considerar
inmediatamente?
Máximo
r1 r2 r3 r4
p1 3 2 0 2
p2 3 4 1 1
p3 9 5 1 5
p4 3 4 1 3

Asignación
r1 r2 r3 r4
p1 2 1 0 1
p2 3 0 0 1
p3 1 0 1 1
p4 2 3 0 1

Indique cuál de lossiguientes


pedidos serían satisfechos inmediatamente, suponiendo quecada uno se efectuara sobre el estado presentado
inicialmente

También podría gustarte