Sie sind auf Seite 1von 3

UNIVERSIDADE FEDERAL DE SANTA CATARINA DEPARTAMENTO DE INFORMTICA E DE ESTATSTICA CURSO DE BACHARELADO EM CINCIAS DA COMPUTAO

INE 5410
PROGRAMAO CONCORRENTE.

EXERCCIOS SEMFOROS

01 Considere o problema de comunicao onde diversos pombos correio transportam cartas de uma cidade A para uma cidade B. As pessoas da cidade A depositam continuamente cartas na Caixa Postal. A cada vez que uma pessoa deposita uma carta, verifica se gerou um nmero de cartas que seja mltiplo de 3. Em caso positivo, acorda um pombo para que ele leve 3 cartas para a cidade B. Chegando na cidade B, o pombo retorna para a cidade A. 02 Um pai possui uma conta corrente num banco, da qual 10 filhos compartilham. Cada um dos filhos vai, medida que tem necessidade, realizando saques de valor aleatrio sobre esta conta. Quando no existir saldo suficiente para o saque, o filho acorda o pai que, ento, realiza o depsito de um valor aleatrio nesta conta. Sugesto: Para os saques, considere as seguintes operaes:
saque := random(saldo-1) + 1; saldo := saldo saque;

Para o depsito, considere:


saldo := random(150) + 20;

03 Uma ponte liga a cidade A com a cidade B (as mesmas cidades do exerccio anterior), como essa ponte foi construda com pouco recurso financeiro ela ficou muito estreita e somente permite o trfego em um nico sentido: de A para B ou de B para A. Essa ponte ficou perigosa porque ela muito extensa e uma pessoa em uma cabeceira no consegue enxergar a outra cabeceira. J aconteceu de uma fila de carros indo de A para B encontrar, no meio da ponte, com a fila vindo de B para A. Uma das filas foi obrigada a voltar de r. Faa um programa para sincronizar

a ponte de forma que se a ponte estiver livre, qualquer cidade pode iniciar a travessia e assim que o primeiro carro entrar na ponte, todos os carros daquela cidade que desejar, pode vir atrs. Se a ponte estiver sendo ocupada pela travessia de A para B, todos os veculos da margem B devem aguardar at que o ltimo veculo que saiu de A chegue em B. Dica: utilize uma varivel inteira para contar quantos carros esto na ponte indo de A para B e outra para contar quantos carros esto na ponte indo de B para A. 04 Em um estacionamento universitrio existem 8 vagas. Enquanto o estacionamento no estiver lotado ele poder ser utilizado pelos Professores, Funcionrios e Alunos daquela Instituio, sem qualquer prioridade entre as classes. Entretanto, quando o estacionamento se fizer lotado, os veculos que chegarem formaro uma fila no porto do mesmo e sero liberados de acordo com a seguinte prioridade: primeiro professores, depois funcionrios e por ltimo os alunos. Suponha que o nmero de professores que utilizam o estacionamento 4, funcionrios 6, alunos 10. Dica: utilizar variveis inteiras para contar o nmero de professores esperando vaga, o nmero de funcionrios e o nmero de alunos. 05 Existe uma barbearia com uma cadeira de barbeiros e diversos lugares para que os clientes possam esperar, se houver algum, sentados. Caso no tenha clientes, o barbeiro senta em sua cadeira e dorme. Quando chegarem fregueses, enquanto o barbeiro estiver cortando o cabelo de outro, estes devem ou sentar, se houver cadeira vazia, ou ir embora, se no houver nenhuma cadeira livre. Como programar uma soluo para o problema? 06 Implemente em que processos vo sendo bloqueados e quando o ltimo processo chega na barreira, ele se libera e a todos os demais. 07 Implemente o problema dos pombos correio para considerar que cada pombo, ao deixar as cartas entre numa gaiola da cidade B e fique espera do ltimo pombo. Quando o ltimo pombo chegar na gaiola, todos so liberados. 08 Trs fumantes (f1, f2, f3) inveterados esto sentados em uma mesa com um agente. Todos querem fumar desesperadamente, porm, so necessrios 3 ingredientes para que um fumante faa seu cigarro e possa fumar: fumo, palha, fsforo. Cada fumante possui apenas dois ingredientes, por exemplo, o f1 possui fumo e fsforo, o f2 fumo e palha e o f3 palha e fsforo. O agente possui os 3 ingredientes e fornece sempre um deles escolhido aleatoriamente. Para facilitar a implementao, suponha que o agente joga sobre a mesa uma pedra numerada: se o ingrediente sorteado for fumo ele joga a pedra 3, pois o fumante 3 que poder fumar, se for fsforo joga a pedra 2 e se for palha a pedra 1. O agente joga a pedra e para, a espera do fumante contemplado fazer o seu cigarro e fumar. Sempre que uma pedra jogada sobre a mesa os 3 fumantes

tentam consultar. Se a pedra for igual ao seu nmero ele recebe do agente o ingrediente, faz seu cigarrinho, fuma e em seguida acorda o agente para uma nova rodada.

Das könnte Ihnen auch gefallen