Escolar Documentos
Profissional Documentos
Cultura Documentos
Sistemas Operacionais
UNIFIEO
Sistemas Operacionais
uso de variveis de condio, com as seguintes operaes sobre elas: WAIT e SIGNAL. As semnticas dessas operaes so: bloqueio (semelhante ao sleep) e desbloqueio (semelhante ao wakeup) com uso de filas. Brinch Hansen props que ao executar a operao SIGNAL o processo seria obrigado a deixar o monitor imediatamente em seguida. Se um SIGNAL executado sobre uma varivel de condio, somente um processo associado a fila de espera desta varivel poder ser reativado pelo escalonador de processos.
UNIFIEO
Sistemas Operacionais
UNIFIEO
Sistemas Operacionais
Problema: poucas linguagens do suporte ao uso de monitores, Java uma que usa monitores para realizar sincronizao entre threads. A linguagem C no possui monitores.
UNIFIEO
Sistemas Operacionais
Problemas Clssicos de Comunicao entre Processos 1. O problema dos Filsofos Glutes / Jantar dos Filsofos
Considere cinco filsofos que passam suas vidas meditando e comendo. Cada um dos filsofos compartilham uma mesa redonda comum cercada por cinco cadeiras. Cada filosofo tem um prato de espaguete. Para que o filsofo consiga comer ele precisa de 2 garfos. A vida de cada filsofo consiste em perodos nos quais ele alternadamente come e pensa. Quando ele medita ele no interage com seus colegas. Quando um filsofo sente fome ele tenta pegar os dois garfos mais prximos de si (direita e esquerda do seu prprio prato). Um filsofo pode pegar apenas um garfo de cada vez (a ordem no importa) e, claro, no poder pegar nenhum garfo que esteja na mo de outro filsofo. Assim, quando um filsofo est de posse de dois garfos ele poder comer. Passado um tempo ele pra de comer, solta os garfos e volta a pensar [1]. Este exemplo pode ser aplicado a uma vasta classe de problemas de controle de concorrncia. Como podemos verificar uma representao simples do problema de alocar vrios recursos a vrios processos, sem causar deadlocks. Quais solues podem ser possveis para este problema? 1. pegar garfo da esquerda e depois o da direita => se todos resolvem pegar o garfo da esquerda ao mesmo tempo gera um deadlock. 2. pegar o garfo da esquerda e tentar pegar o da direita, se estiver sendo usado o filsofo devolve o garfo e espera um tempo para tentar mais tarde. Se todos esto sincronizados e passam a esperar o mesmo tempo para tentar novamente o impasse continuar. 3. ao invs de usar o mesmo tempo de espera uma estratgia que funciona esperar um tempo aleatrio para tentar novamente. Usar semforos para controlar o acesso aos garfos. Aplicao: processos que competem por um nmero limitado de recursos (dispositivos de E/S, por exemplo).
UNIFIEO
Sistemas Operacionais
Esta soluo d prioridade ao leitores, inibindo os escritores de usar a RC enquanto existir algum leitor ativo.
UNIFIEO
Sistemas Operacionais
UNIFIEO
Sistemas Operacionais
Referncia Bibliogrfica
[1] TANENBAUM, A. S. Sistemas Operacionais Modernos. 2 ed. So Paulo: Prentice Hall, 2003. [2] SILBERSCHATZ, A. et al. Sistemas Operacionais: conceitos e aplicaes. Campus, 2001.