Concursos públicos
O fragmento de código a seguir, escrito em Java, descreve duas implementações diferentes para um lock. Ambas possuem um método denominado acquire e um método denominado release.

Considera-se que:
• as duas implementações de lock são utilizadas por aplicações com, no máximo, duas threads;
• uma aplicação que utilizar qualquer uma destas implementações invocará o método acquire antes de entrar em sua seção crítica e o método release após deixar a seção crítica;
• tanto o método acquire quanto o método release são operações atômicas nas duas implementações de lock;
• para a implementação que requer um tid (thread id), assume-se que ele sempre será 0 ou 1;
• os métodos disableinterrupts e enableinterrupts são utilizados para desabilitar e habilitar respectivamente as interrupções do processador onde o código for executado. O código desses dois métodos foi desenvolvido para ser utilizado em uma máquina com um ou dois processadores.
A partir das informações apresentadas, avalie as afirmações a seguir.
I. A implementação de LockA garante progresso.
II. A implementação de LockB garante progresso.
III. A implementação de LockA garante exclusão mútua.
IV. A implementação de LockB garante exclusão mútua.
É correto apenas o que se afirma em
Uma questão respondida. E as próximas?
Crie sua conta para acompanhar acertos, erros e receber recomendações no Meu Próximo Passo.
Criar conta grátis