next up previous

Sistemas de Computação I
Lista de Exercícios - 17/6/98

  1. 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...)
  2. 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.
    1. Usando semáforos, desenvolva código para as ações dos processos.
    2. 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.
  3. 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.

About this document ...

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


next up previous

Noemi Rodriguez
Tue Jun 16 08:41:59 EST 1998