Sistemas de Computação I
Lista de Exercícios - 17/6/98
-
Problema do Jantar Comunal. Suponha que um grupo de N canibais
come jantares a partir de uma grande travessa que comporta
M porções.
Quando alguém quer comer, ele(ela) se serve da travessa, a menos
que ela esteja vazia.
Se a travessa está vazia, o canibal acorda o cozinheiro e espera
até que o cozinheiro coloque mais M porções na travessa.
Desenvolva código para as ações dos canibais e do cozinheiro.
Use semáforos para sincronização.
A solução deve evitar deadlock e deve acordar o cozinheiro
apenas quando a travessa estiver vazia.
(Suponha um longo jantar, onde cada canibal continuamente
se serve e come, sem se preocupar com as demais ações
na vida do canibal...)
-
Problema da Montanha Russa. Suponha que há n processos passageiros
e um processo vagão.
Os passageiros repetidamente esperam para andar no vagão, que
comporta v passageiros, onde v<n.
O vagão só pode percorrer a montanha russa quando está cheio.
- Usando semáforos, desenvolva código para as ações dos processos.
- Generalize sua solução para m processos vagão, onde m>1.
Um vagão não pode ultrapassar outro, ou seja,
os vagões têm que terminar o percurso na mesma ordem em que o iniciaram.
Novamente, um vagão só pode iniciar o percurso quando estiver completo.
-
busca/inserção/elimincação. Três tipos de processos compartilham
acesso a uma lista encadeada: processos de busca, de inserção e
de eliminação.
Processos de busca meramente examinam a lista.;
assim podem executar concorrentemente entre si.
Processos de inserção incluem itens no final da lista;
inserções devem ser mutuamente exclusivas para impedir duas inserções
de ocorrerem simultaneamente.
No entanto, uma inserção pode ocorrer em paralelo com
qualquer número de buscas.
Finalmente, elimincações podem ocorrer em qualquer ponto da lista.
No máximo um processo de eliminação pode ter acesso à lista
em qualquer instante, e a eliminação deve ser mutuamente
exclusiva com buscas e inserções.
Este problema é uma extensão dos leitores e escritores.
Descreva as ações dos processos de busca, inserção
e eliminação usando semáforos.
Analise sua solução em relação à possibilidade
de starvation para cada um dos tipos de processos.
This document was generated using the LaTeX2HTML translator Version 96.1-h (September 30, 1996) Copyright © 1993, 1994, 1995, 1996, Nikos Drakos, Computer Based Learning Unit, University of Leeds.
The command line arguments were:
latex2html -split 0 aulaex2.tex.
The translation was initiated by Noemi Rodriguez on Tue Jun 16 08:41:59 EST 1998
Noemi Rodriguez
Tue Jun 16 08:41:59 EST 1998