Professional Documents
Culture Documents
1606755
Problemes de Concurrència
1.
Persona_p1_p2() {
lock(mp1);
creuant_p1_p2++;
if (creuant_p1_p2 == 1) lock(mp2);
unlock(mp1);
wait(pont);
Creuar();
Signal(pont);
Lock(mp1);
Creuant_p1_p2--;
If (creuant_p1_p2 == 0) unlock(mp2);
Unlock(mp1);
}
2.
Enlairar_Avio() {
char pista;
wait(pistes_lliures);
lock(aeroport);
if (estat_pista_A == 1) {
estat_pista_A = 0;
pista = A;
} else if (estat_pista_B == 1) {
estat_pista_B = 0;
pista = B;
} else if (estat_pista_C == 1) {
estat_pista_C = 0;
pista = C;
}
Unlock(aeroport);
Enlairar(pista);
Signal(pistes_lliures);
}