Laboratório 1
Como saber o que fazer:
-  dê "login".
 -  entre no netscape
 -  vá para a página 
www.inf.puc-rio.br/~noemi/pc-01/lab1.html
para ler este texto ;-)
 
Para nos familiarizarmos com a biblioteca pthreads:
-  use esse exemplo para seu primeiro programa.
 -  compile seu programa com 
gcc -Wall -lpthread -o p prog.c
(-Wall faz o compilador ficar mais exigente, gerando
"warnings" para coisas estranhas; -o p dá o nome do
programa executável, p no caso.)
 -  execute seu programa com 
p ou
./p (dependendo da configuração do seu Linux,
ele não procura programas no diretório corrente; 
o ./p avisa que você realmente
quer o programa p do diretório corrente).
 -  a partir desse exemplo, crie um programa onde dois
threads alteram variáveis compartilhadas ou um arquivo.
 -  modifique esse seu programa de maneira que exista
uma região crítica em cada um dos threads; tente criar
a situação de interferência, isto é, utilize loops vazios
ou chamadas a 
sleep de maneira a forçar
uma situação onde, ao executar o programa, você veja
que os threads estão ``enxergando'' estados intermediários
indesejáveis.
 -  Caso dê tempo, programe um protocolo de entrada e
saída na região crítica de seus threads utilizando
a solução chamada por Andrews de tie-breaker.
Veja se você se convence que essa solução funciona,
ou se você acha que existe algum problema nela.