Documentos de Académico
Documentos de Profesional
Documentos de Cultura
App - Filosofos Comensales
App - Filosofos Comensales
PRIMERA SOLUCIÓN
Consiste en representar cada palillo como un semáforo, cuando un filosofo trata de cog
T T0 T1 T2 T3 T4 T5 T6
i 0 0 0 1 1 2 2
P[0] 1 0
P[1] 1 0 bloq
P[2] 1 0
P[3] 1
P[4] 1
F[0] 1-piensa 2-wait(p[0])3-wait(p[1])
F[1] 1-piensa 2-wait(p[1])
F[2] 1-piensa 2-wait(p[2])
F[3]
F[4]
Christian Alvaro Choque Surco
Wilberth Mario Velasquez Laura
Marcos SamuelHuayna Cama
Manuel Eduardo Mena Aguilar
ALES - 1ra SOLUCIÓN
bloq
1-piensa 2-wait(p[0])
4-come 5-signal(p[16-signal(p[2])
3-wait(p[3]) 4-come 5-signal(p[2
3-wait(p[4])
3-wait(p[0])
T25 T26 T27 T28 T29 T30 T31
2 3 3 3 4 4 4
desbloq
desbloq 1
desbloq 1
6-signal(p[3])
4-come 5-signal(p[36-signal(p[4])
4-come 5-signal(p[46-signal(p[0])
FILOSOFOS CO
SEGUNDA SOLUCIÓN
T T0 T1 T3
i 0 1
initial(P[1], 1) P[1] 1 1 1
initial(P[2], 1) P[2] 1 1 1
initial(P[3], 1) P[3] 1 1 1
initial(P[4], 1) P[4] 1 1 1
F[0] 1-Piensa
F[1] 1-Piensa
F[2]
F[3]
F[4]
wait(P[0]) signal(P[1]
wait(sitios)wait(sitios)wait(sitios)wait(sitios)wait(sitios)wait(P[0])
4-Dbloq
4-Bloq 4-Dbloq 5-Come 6
4 5-Come 6 7 8
2-Dbloq 3
3
3
wait(P[1]) wait(P[2])
T27 T28
1 2
0 0
0 0
Bloq Bloq
0 0
0 1
5-Come
7
signal(P[3])
T41 T42
3 4
0 0
0 0
0 0
1 1
0 0
Bloq Bloq
4-Bloq
5-Come
wait(P[4])
FILOSOFOS
TERCERA SOLUCIÓN
T T0 T1
i 0
mutex : semaphore initial(mutex,1) mutex 1 1
P: array[0..4] of integer P[0] = 1 {libre} P[0] 1 1
P[1] = 1 {libre} P[1] 1 1
0 = ocupado P[2] = 1 {libre} P[2] 1 1
1 = libre P[3] = 1 {libre} P[3] 1 1
P[4] = 1 {libre} P[4] 1 1
F[0] 1-Piensa
F[1]
F[2]
F[3]
F[4]
T T17 T18
i 0 1
mutex 0 Bloq 0 Bloq
P[0] 0 0
P[1] 0 0
P[2] 1 1
P[3] 1 1
P[4] 1 1
F[0] 9-Come
F[1] 4-S V
F[2] Desbloq
F[3]
F[4]
T T32 T33
i 0 4
mutex 0 Bloq 0 Bloq
P[0] 1 1
P[1] 0 0
P[2] 0 0
P[3] 0 0
P[4] 1 1
F[0] 11
F[1]
F[2]
F[3]
F[4] 5-W Bloq
n que cada filósofo tome sus palillos solamente si ambos están libres.
T3 T4 T5 T6 T7 T8 T9 T10
1 2 3 4 0 1 2 3
1 1 1 1 0 0 Bloq 0 Bloq 0 Bloq
1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1
2-W V
1-Piensa 2-W Bloq
1-Piensa 2-W Bloq
1-Piensa 2-W Bloq
1-Piensa
P[2] = 0 F P[3] = 0 V
P[3] = 0 F
2-W Bloq
P[0] = 0 F P[1] = 0 P[0] = 0 V
P[1] = 0 F P[1] = 0 F
10-W Bloq
4-S V 5-W Bloq
Desbloq 3 V 4-S V
P[4] = 0 F
P[0] = 0 V
T T0 T1 T3 T4 T5
i 0 1 2 3
P[0] 1 1 1 1 1
P[1] 1 1 1 1 1
P[2] 1 1 1 1 1
P[3] 1 1 1 1 1
P[4] 1 1 1 1 1
F[0] 1-Piensa
F[1] 1-Piensa
F[2] 1-Piensa
F[3] 1-Piensa
F[4]
Libera F0 Libera F2
ma primero su palillo de la izquierda y luego el palillo de la derecha, mientras que un filosofo par elige su palillo de la derecha y
6
4-Come
signal(P[4])
Libera F4
0 1
T15
3
Block
Block
Block
Block
0
3-Block
wait(P[3])
Bloquea F3
T31
1
0
0
0
0
Block
T46