Sistemas operacionais
Atividade em laboratório
Data
: 13/04/2010
Valor: 2 pontos.
- Observe
o código c++ semáforo.cpp fornecido pelo professor.
- Cole
o código no Dev-C++ e salve como projeto semáforo.
- Compile
e execute o código.
- 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).
- Altere
o tempo de sleep (linhas 25 e 43) de cada uma das thread (que deverá estar em 100000) para 100.
- 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).
- Agora
comente as linhas onde se encontram os comandos de sleep
das threads (linhas 25 e 43)
- 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).
- Faça
uma tabela com tempo aproximado e quantidade de vezes se observa sinal
vermelho conforme anotado nos itens 4, 6 e 8.
- 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?
- 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.
- Envie
a tabela do item 9, suas respostas do time 10 e o
código modificado e comentado para o email do professor.