Anda di halaman 1dari 21

1 - Dadas las siguientes matrices: Peticiones mximas R1 P1 3 P2 3 P3 9 P4 3 Recursos totales R1 R2 9 5 Recursos asignados R2 2 4 5 4 R3 2 1 3 1 R4 2 1 5 3 P1 P2 P3 P4 Recursos disponibles R1 R2 1 1

R3 3

R4 5

a) Determine si el estado actual del sistema es seguro. Justifique. b) Suponiendo que, bajo el estado actual, ingresa P5 cuyas peticiones mximas son iguales a los recursos totales del sistema. Es este nuevo estado seguro? Justifique. a) Matriz de necesidad: R1 P1 1 P2 0 P3 8 P4 1

R2 1 4 5 1

R3 0 1 3 1

R4 1 0 4 2 RD

Con los recursos que tengo disponibles puede finalizar su ejecucion P1 RD

R1 1

R2 1
Al finalizar P1

R1 3 RD R1 5 RD R1 8 RD R1 9

R2 2
Al finalizar P4

R2 5
Al finalizar P2

R2 5
Al finalizar P3

R2 5

El estado actual del sistema es seguro ya que se encontro una secuencia de procesos. Por esto podemos afirmar que en

b) Si, ya que en el sistema hay recursos suficientes como para procesarlo. Si hacemos la secuencia de procesos se podr

2 - Se encuentran N procesos compartiendo distintos recursos, de los cuales existe una sola instancia de cada uno, ejecutando el siguiente cdigo: while(true){ t_buffer rec_id[3] = get_recursos(); // devuelve aleatoriamente tres IDs de recursos syscall_pedir(rec_id[0]); // Bloqueante si el recurso no se encuentra disponible. syscall_pedir(rec_id[1]); syscall_pedir(rec_id[2]); usar_recursos(rec_id); syscall_devolver(rec_id[0]); syscall_devolver(rec_id[1]); syscall_devolver(rec_id[2]); } a) Demueste que dichos procesos podran quedar en deadlock. b) Proponga una solucin para evitar el deadlock, usando semforos. c) Proponga una solucin para evitar el deadlock, sin usar soporte alguno del sistema operativo (ni tampoco hacerle modificaciones al mismo). a) Si los procesos se ejecutan al mismo tiempo puede ser que un proceso A ejecute una llamada al sistema pidiendo el recurso R2 y se le asigne, luego el proceso B pide R1 y se le asigna, luego A pide R1 y se bloquea luego B pide R2 y se bloquea quedando as en deadlock.

b) while(true){ wiat(mutex); t_buffer rec_id[3] = get_recursos(); // devuelve aleatoriamente tres IDs de recursos syscall_pedir(rec_id[0]); // Bloqueante si el recurso no se encuentra disponible. syscall_pedir(rec_id[1]); syscall_pedir(rec_id[2]); usar_recursos(rec_id); syscall_devolver(rec_id[0]); syscall_devolver(rec_id[1]); syscall_devolver(rec_id[2]); signal(mutex); } c) Hacer un grafo para que se asigne los recursos solo si no se va a formar un ciclo (algoritmo Banquero).

3 - Suponga que se tiene un sistema que tiene como estrategia para tratar el deadlock la evasin mediante el algoritmo del banquero. Siendo el estado de los recursos el siguiente: Peticiones maximas R1 Recursos Asignados R1

R2

R3

R4

P1 P2 P3 P4

3 3 9 3

2 4 5 4

0 1 1 1

2 1 5 3

P1 P2 P3 P4

2 3 1 2 8

R1 R2 10 5 Recursos totales

R3 2

R4 5

R1 R2 2 1 Recursos disponibles

R3 1

a) Indique cual de los siguientes pedidos seran satisfechos inmediatamente, suponiendo que cada uno se efectuara sobre el estado presentado inicialmente: - P3: una instancia de R1 - P4: una instancia de R3 - P3: una instancia de R1 y dos instancias de R4 Matriz de necesidad R1 R2 P1 1 1 P2 0 4 P3 8 5 P4 1 1

R3 0 1 0 1

R4 1 0 4 2

2 1 1 + 3 4 1 3 + 3 6 0 6 + 3 9 8 1 + 9 10 Se encontro una secuencia segura, por esto es un

RD -

Si P3 pide una instancia de R1, simulo que se la doy y veo si hay una secuencia segura. Recursos Asignados R1 P1 2 P2 3 P3 2 P4 2 9

R2 1 0 0 3 4

R3 0 0 1 0 1

R4 1 1 1 1 4

RD + +

Matriz de necesidad

1 1 0 3 3 1 2 3 5

0 5 + 3 8 7 1 + 9 10 Se encontro una secuencia segura, por esto es un estado seguro y no hay deadlock. Entonces entrego R1 a P3 P1 P2 P3 P4

R1 1 0 7 1

R2 1 4 5 1

R3 0 1 0 1

R4 1 0 4 2

Si P4 pide una instancia de R3, simulo que se la doy y veo si hay una secuencia segura. RTOTAL 10 Recursos Asignados RASIGNADOS 8 RDISPONIBLES R1 R2 R3 R4 2 P1 2 1 0 1 1 P2 3 0 0 1 1 P3 1 0 1 1 + 3 P4 2 3 1 1 4 8 4 2 4 1 3 + 3 Matriz de necesidad 6 R1 R2 R3 R4 0 P1 1 1 0 1 6 P2 0 4 1 0 + 3 P3 8 5 0 4 9 P4 1 1 0 2 8 1 + 9 10 Se encontro una secuencia segura, por esto es un estado seguro y no hay deadlock. Entonces entrego R3 a P4

Si P3 pide una instancia de R1 y dos de R4, simulo que se la doy y veo si hay una secuencia segura. RTOTAL 10 Recursos Asignados RASIGNADOS 9 RDISPONIBLES R1 R2 R3 R4 1 P1 2 1 0 1 P2 3 0 0 1 P3 2 0 1 3 No hay suficientes instancias de R4 P4 2 3 0 1 9 4 1 6

Matriz de necesidad R1 R2 P1 1 1 P2 0 4 P3 8 5

R3 0 1 0

R4 1 0 4

P4

b) Ponerlos en una cola de espera hasta que se les pueda asignar los recursos 4- Dadas las siguientes matrices, determine si existe deadlock, y en caso afirmativo indique qu procesos estn involucrados. Peticiones actuales R1 P1 1 P2 2 P3 1 P4 0 Recursos Totales R1 R2 2 2 RT RA RD Recursos Asignados R1 P1 1 P2 0 P3 1 P4 0 2 Recursos disponibles R1 R2 R3 0 0 0

R2 1 0 1 0

R3 1 0 0 0

R4 1 2 0 2

R3 1

R4 2

2 2 1 2 2 2 1 0 0 0 0 2 Se les pueden entregar a P4 0 0 0 2 resto los recursos que le entrego a P4 0 0 0 0 Suponiendo que era lo que P4 necesitaba para te + 0 0 1 2 Sumo los recursos que liberaria P4 RD 0 0 1 2 Se ve que no se puede entregar los recursos que necesitan a ningun otro proceso. Esto quiere decir que P1 y P3 se encuantran en Deadlock y P2 se encuentra en starvation, ya que no puede estar en deadlock porque no cumple con la regla de retener recursos cuando pide. 5 - Indique la (o las) mejor(es) estrategia(s) contra la posible ocurrencia de deadlock para cada caso. Justifique cada decisin, ya sea por ser la mejor opcin o por descarte de las otras. a) Sistema usado en un puesto administrativo de una empresa, donde el operador usa planillas de clculo, imprime documentos y navega por internet. b) Sistema computarizado de vuelo de aeronaves que tiene un grado alto de overhead debido a que el procesador no es muy potente. c) Base de datos transaccional usada en un sistema web de redes sociales, con cientos de usuarios programando aplicaciones para dicho sistema y una alta carga de transacciones en horas pico. d) Servidor de juegos online no gratuito con baja carga de usuarios, donde se desea no tener que devolverle el dinero a los mismos a causa de un deadlock, pero al mismo tiempo se desea que los programadores de juegos para dicho servidor tengan alta flexibilidad en la solicitud de los recursos del sistema.

6 - Dado el siguiente grfico de asignacin de recursos, determine si el sistema se encuentra en deadlock.

Armo las matrices: Matriz de asignacion R1 P1 0 P2 1 P3 0 P4 0 P5 0 P6 0 P7 0 P8 0 1

R2 0 0 1 0 0 0 0 0 1

R3 0 0 0 0 0 0 0 1 1

R4 0 1 0 0 0 0 0 0 1

R5 0 0 0 1 0 0 0 0 1

R6 0 0 0 0 1 0 0 0 1

R7 0 0 0 0 0 0 1 0 1

Recursos Totales Recursos Asignados Recursos disponibles + RD + + RD + RD + RD + RD

R1 1 1 0 0 0 0 0 1 1 0 1 0 1 0 1 0 1

R2 2 1 1 0 1 1 2 0 2 0 2 0 2 0 2 0 2

R3 2 1 1 1 0 1 1 0 1 0 1 0 1 0 1 0 1

R4 1 1 0 0 0 0 0 1 1 0 1 0 1 0 1 0 1

R5 1 1 0 0 0 0 0 0 0 0 0 1 1 0 1 0 1

R6 2 1 1 0 1 0 1 0 1 0 1 0 1 1 2 0 2

+ RD + RD

0 1 0 1

0 2 0 2

0 1 1 2

0 1 0 1

0 1 0 1

0 2 0 2

Se encontro una sacuencia segura, por lo que el sistema NO se encuentra en deadlock en este momento.

Recursos asignados R1 2 3 1 2 Recursos disponibles R3 1

R2 1 0 0 3

R3 2 0 0 0

R4 1 1 1 1

R4 1

ximas son iguales a los

RD' R3 1 R4 1
Puedo ejecutar P1

R1 0 RD'

R2 0

R3 1

R4 0

R3 3

R4 2

Puedo ejecutar P4

R1 2 RD'

R2 1

R3 2

R4 0

R3 3

R4 3

Puedo ejecutar P2

R1 5 RD'

R2 1

R3 2

R4 3

R3 3

R4 4

Puedo ejecutar P3

R1 0

R2 0

R3 0

R4 0

R3 3

R4 5

de procesos. Por esto podemos afirmar que en el estado actual no existe deadlock. Si hacemos la secuencia de procesos se podra procesar luego de P3.

te tres IDs de recursos

del sistema operativo

ejecute una llamada al sistema igna, luego A pide R1 y se

te tres IDs de recursos

n ciclo (algoritmo Banquero).

r el deadlock la evasin

R2

R3

R4

1 0 0 3 4

0 0 1 0 1

1 1 1 1 4

R4 1

nte, suponiendo que

1 1 1 Se puede completar P1 1 0 1 resto lo que necesita P1 0 1 0 Cuando P1 libere sus recursos por que finalizo 2 0 2 sumo todo lo que pidio P1 Se puede completar P4 2 1 2 1 1 2 resto lo que necesita P4 1 0 0 Cuando P4 libere sus recursos por que finalizo 4 1 3 Sumo lo que pidio P4 5 1 3 Se puede completar P2 4 1 0 resto lo que necesita P2 1 0 3 Cuando P2 libere sus recursos porque finalizo 4 1 1 Sumo lo que libera P2 5 1 4 Se puede ejecutar P3 5 0 4 resto lo que necesita P3 0 1 0 Cuando P3 libere sus recursos porque finalizo 5 1 5 Sumo lo que libera P3 5 2 5 Da el total de recursos. Entonces hice bien los pasos encontro una secuencia segura, por esto es un estado seguro y no hay deadlock

1 1 0 2 2 1 1 4 5

1 0 1 0 1 1 0 1 1

1 1 0 2 2 2 0 3 3

Se puede completar P1 resto lo que necesita P1 Cuando P1 libere sus recursos por que finalizo sumo todo lo que pidio P1 Se puede completar P4 resto lo que necesita P4 Cuando P4 libere sus recursos por que finalizo Sumo lo que pidio P4 Se puede completar P2

4 1 1 0 4 1 5 1 5 0 0 1 5 1 5 2 deadlock. Entonces entrego R1 a P3

0 3 1 4 4 0 5 5

resto lo que necesita P2 Cuando P2 libere sus recursos porque finalizo Sumo lo que libera P2 Se puede ejecutar P3 resto lo que necesita P3 Cuando P3 libere sus recursos porque finalizo Sumo lo que libera P3 Da el total de recursos. Entonces hice bien los pasos

5 2 4 2 1 0 1 0 0 0 2 0 2 0 1 0 1 0 4 1 5 1 4 1 1 0 4 1 5 1 5 0 0 1 5 1 5 2 deadlock. Entonces entrego R3 a P4

5 4 1 1 0 2 2 2 0 3 3 0 3 1 4 4 0 5 5

Se puede completar P1 resto lo que necesita P1 Cuando P1 libere sus recursos por que finalizo sumo todo lo que pidio P1 Se puede completar P4 resto lo que necesita P4 Cuando P4 libere sus recursos por que finalizo Sumo lo que pidio P4 Se puede completar P2 resto lo que necesita P2 Cuando P2 libere sus recursos porque finalizo Sumo lo que libera P2 Se puede ejecutar P3 resto lo que necesita P3 Cuando P3 libere sus recursos porque finalizo Sumo lo que libera P3 Da el total de recursos. Entonces hice bien los pasos

ay una secuencia segura. 5 4 1

2 1 1

5 6 -1

NO SE LE PUDE ASIGNAR DOS INSTANCIAS DE R4

hay suficientes instancias de R4

os

afirmativo indique qu

R2 1 0 1 0 2 R4 2

R3 0 0 0 1 1

R4 0 0 0 0 0

P2 no tiene recursos asignados, por lo tanto no puede estar en deadlock

es pueden entregar a P4 to los recursos que le entrego a P4 poniendo que era lo que P4 necesitaba para terminar mo los recursos que liberaria P4

proceso. Esto quiere decir que P1 y P3 ede estar en deadlock porque no cumple

e deadlock para cada rte de las otras. operador usa de overhead

s, con cientos de e transacciones

e se desea no tener smo tiempo se lexibilidad en la

stema se encuentra en

R8 0 0 0 0 0 1 0 0 1

Matriz de necesidad actual R1 R2 P1 1 0 P2 0 2 P3 0 0 P4 0 0 P5 0 0 P6 0 0 P7 0 0 P8 0 0

R3 0 0 1 0 0 0 0 0

R4 0 0 0 1 0 0 0 0

R5 0 0 0 0 1 0 0 0

R6 0 1 0 0 0 1 1 0

R7 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

R8 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1

Se le puede dar los recursos que necesita a P3 Resto los recursos que entrego a P3 Supongo que P3 termina Sumo los recursos que libera P3 Se le puede dar los recursos que necesita a P2 Supongo que P2 termina.Sumo los recursos que libera P2 Se le puede dar los recursos que necesita a P1 Supongo que P1 termina. Sumo los recursos que libera P1. Se le puede dar los recursos que necesita a P4 Supongo que P4 termina. Sumo los recursos que libera P4. Se le puede dar los recursos que necesita a P5 Supongo que P5 termina. Sumo los recursos que libera P5. Se le puede dar los recursos que necesita a P6 Supongo que P6 termina. Sumo los recursos que libera P6. Se le puede dar los recursos que necesita a P7

1 1 0 1

0 1 0 1

Supongo que P7 termina. Sumo los recursos que libera P7. Se le puede dar los recursos que necesita a P8 Supongo que P8 termina. Sumo los recursos que libera P8. Me quedaron los recursos totales, lo que me permite verificar si hice bien el procediiento

e encuentra en deadlock en este momento.

uede estar en deadlock

R7 0 0 0 0 0 0 0 1

R8 0 0 0 0 0 0 0 0

r si hice bien el procediiento

Anda mungkin juga menyukai