Você está na página 1de 13

SISTEMAS OPERACIONAIS

Semáfaros com PascalFC

Prof. Jean Carlos Hennrichs


Ambiente do PascalFC

Compila

Execução justa

Execução injusta
Primeiro código no PascalFC

Que valor será


impresso?
Primeiro código no PascalFC

40?
Por que?
Problema do restaurante

Problema: Um restaurante universitário possui apenas 5 mesas com


capacidade para apenas 1 pessoa por mesa. Para controlar a entrada há
na porta um pote com 5 fichas. Cada estudante que entra pega uma
ficha, e almoça. Cada estudante que sai devolve a ficha no pote. Não se
entra sem ficha, e na saída é obrigado a devolver a ficha ao pote. As
demais pessoas devem esperar na fila caminhando para passar o tempo.
Como implementar isso usando concorrência sendo que cada estudante
é considerado um thread.
Problema do Restaurante
Problema do Restaurante
Semáforo pode ser mesa ou ficha
Problema do Restaurante
Protocolo de Entrada. Faz um DOWN
no semáforo
Problema do Restaurante
Região Crítica
Problema do Restaurante

Protocolo de Saída. Faz um UP no


semáforo
Problema do Restaurante

Qtd de alunos na fila.


Threads que serão
criadas
Problema do Restaurante

Qtd de mesas. Neste


caso é um Semáforo
Contador
Problema da Piscina
20 pessoas
7 cestos
3 cabines de troca
Problema: Em uma piscina temos 20 pessoas que desejam nadar nela.
Porém para uma pessoa poder nadar ela tem que trocar de roupa. Para
trocar de roupa ela precisa pegar um cestos livre. Com um dos cestos já
em seu poder ela precisa conseguir uma cabine vaga para poder se
trocar. O cesto é para poder deixar a sua roupa atual e vestir a roupa de
banho, e precisa da cabine, pois ela não vai se trocar ao ar livre. Depois
que ela sair da cabine, ela deixa o cesto na beira da piscina com suas
roupas e vai nadar. Ela nada o quanto desejar. Assim que terminar de
nadar, ela pega seu cesto com as roupas, disputa uma cabine para poder
se trocar novamente. Ao terminar de se trocar ela sai da cabine e libera
o cesto para que outra pessoa que queira nadar, pegue ele. Enquanto
essas pessoas não estão nadando elas ficam caminhando ao redor da
piscina.

Você também pode gostar