Escolar Documentos
Profissional Documentos
Cultura Documentos
GRR20210553
R1 -> P1 a P4 prontos
R3 -> P5 e P6 prontos
R5 -> P4 bloq
R6 -> P1 bloq, P4 pronto
R7 -> P5 e P6 bloq
R8 -> P1, P5, P6, P7 e P8 prontos
//Thread II
while (true)
{
for (i = 0; i < n; i++){
while (flag != 2);
print "T2";
captureInfoIntoDB (); // seção critica
flag = 1;
}
}
7. (1,5 pontos) Dado o código abaixo, informe se o mesmo provê exclusão mútua,
produz adiamento indefinido, gera sincronização intertravada, gera deadlock.
Explique cada uma de suas respostas.
O algoritmo produz deadlock pois cada thread sinaliza antes de executar o while, cada uma
delas encontrará o flag da outra sinalizado e ficará esperando no while para sempre.
De certa forma garante a exclusão mútua pois não é possível que as duas sejam
executadas.
O adiamento indefinido não pode ser gerado pois possui apenas uma flag que só muda de
valor após a execução.
Possui sincronização intertravada, pois a decisão de entrar na thread é realizada ao iniciar o
flag antes de iniciar as threads.