P1 (2014.1)
1 pág.

P1 (2014.1)


DisciplinaComputação Concorrente7 materiais198 seguidores
Pré-visualização1 página
Programação Concorrente 
Nelson Quilula Vasconcelos - Primeira prova \u2013 2014/1 
 
1a Questão ( 1 ponto ) 
 O que é um programa não determinístico? Que tipos de programas podem exibir um 
comportamento não determinístico? 
 
2ª Questão ( 1 ponto ) 
 O que significa \u201cação atômica\u201d? Em que situações é importante levar em conta se uma ação 
é atômica? 
 
3a Questão ( 1 ponto ) 
 O que significa \u201cespera limitada\u201d? 
 
4a Questão ( 1 ponto ) 
 Descreva o algoritmo da padaria. Para que serve o vetor booleano que é geralmente 
denominado \u201cEscolhendo\u201d? O algoritmo da padaria atende ao requisito de espera limitada? 
 
5a Questão ( 2 pontos ) 
 Em alguns ambientes de programação são disponíveis instruções atômicas que alteram o 
valor armazenado em uma variável e a seguir consultam este valor. Suponha que em certo ambiente 
exista uma função decrementaCompara que recebe como parâmetro uma referência a uma variável 
inteira e devolve um valor booleano. Esta função decrementa o valor armazenado na variável inteira 
e devolve o valor falso se o novo valor desta variável não for zero ou devolve o valor verdadeiro se o 
novo valor desta variável for zero. A decrementação e o teste são realizados nesta função de forma 
atômica. Mostre como esta função poderia ser empregada para garantir a exclusão mútua na 
execução de um trecho de programa em uma situação que envolva n \u201cthreads\u201d, sem se preocupar 
com o problema da espera limitada. 
 
6a Questão ( 1 ponto ) 
 Considere um objeto do tipo \u201cEvento\u201d. Que métodos geralmente existem em tais objetos? 
 
7a questão ( 3 pontos ) 
 Considere o problema do banheiro unisex: Existe um banheiro que pode ser usado tanto por 
homens como por mulheres, mas não por homens e mulheres simultaneamente. 
Codifique um programa em que cada pessoa é representada por uma \u201cthread\u201d e garanta que 
em cada momento só existam pessoas de um mesmo gênero no banheiro (apenas homens ou 
apenas mulheres). 
As \u201cthreads\u201d que representam cada pessoa devem repetir infinitas vezes um laço que contem 
um trecho de código que corresponde à espera para entrar no banheiro, um trecho de código que 
representa o uso do banheiro, um trecho de código usado para sinalizar que a pessoa saiu do 
banheiro e um trecho de código que representa as atividades da pessoa quando ela não está no 
banheiro. 
Desenvolva uma solução para este problema usando semáforos. Sua solução deve ser justa, 
ou seja, todas as pessoas devem conseguir eventualmente usar o banheiro. Para que isso aconteça 
utilize o seguinte esquema: 
Quando a última pessoa do gênero que estiver usando o banheiro sair do banheiro, todas as 
pessoas do outro gênero devem que estiverem esperando para usar o banheiro devem poder entrar 
no banheiro. 
Se uma pessoa chega ao banheiro e não há outras pessoas esperando para entrar no 
banheiro nem usando o banheiro, a pessoa que chegou entra imediatamente no banheiro. 
Se uma pessoa do mesmo gênero das pessoas que estão usando o banheiro chega para 
usar o banheiro e não há pessoas do outro gênero esperando para usar o banheiro, a pessoa que 
chegou entra imediatamente no banheiro. 
Se uma pessoa do mesmo gênero das pessoas que estão usando o banheiro chega para 
usar o banheiro, mas há pessoas do outro gênero esperando para usar o banheiro, a pessoa que 
chegou não pode entrar no banheiro antes que todas as pessoas do outro gênero que estão 
esperando para entrar no banheiro usem o banheiro.