Sistemas operacionais

Atividade em laboratório

Data : 13/04/2010

Valor: 2 pontos.

 

  1. Observe o código c++  semáforo.cpp fornecido pelo professor.
  2. Cole o código no Dev-C++ e salve como projeto semáforo.
  3. Compile e execute o código.
  4. Observe o tempo aproximado de execução e a quantidade de vezes não foi possível executar o código de alguma das threads devido ao semáforo estar vermelho (valor 1).
  5. Altere o tempo de sleep (linhas 25 e 43) de cada uma das thread (que deverá estar em 100000) para 100.
  6. Observe o tempo aproximado de execução e a quantidade de vezes não foi possível executar o código de alguma das threads devido ao semáforo estar vermelho (valor 1).
  7. Agora comente as linhas onde se encontram os comandos de sleep das threads (linhas 25 e 43)
  8. Observe o tempo aproximado de execução e a quantidade de vezes não foi possível executar o código de alguma das threads devido ao semáforo estar vermelho (valor 1).
  9. Faça uma tabela com tempo aproximado e quantidade de vezes se observa sinal vermelho conforme anotado nos itens 4, 6 e 8.
  10. Responda;

a)      O número  de vezes em que as threads não podem executar seu código crítico devido a impedimento do semáforo aumenta ou diminui a medida que o processo é colocado mais tempo em estado de suspenso (sleep)?

b)      Por que isto ocorre?

  1. altere o código fonte para que seja criada mais uma thread e que ela também respeito o semáforo binário criado. Comente o código.
  2. Envie a tabela do item 9, suas respostas do time 10 e o código modificado e comentado para o email do professor.