Anda di halaman 1dari 2

Soluo da Prova de Reposio de Sistemas Operacionais I 29/06/2010

1) (2,0) Escreva um programa concorrente formado por dois processos - um produtor e um consumidor e por um monitor. O monitor possui dois procedimentos, get e put. O procedimento put chamado pelo processo produtor para depositar um elemento no buffer (de 1 posio). O procedimento get chamado pelo processo consumidor, e retorna o elemento do buffer.

2) (1,5) Como o uso de threads pode melhorar o desempenho de aplicaes paralelas em ambientes com mltiplos processadores? R: Para obter os benefcios do uso de threads, uma aplicao deve permitir que partes diferentes do seu cdigo sejam executadas em paralelo de forma independente. O uso de uma arquitetura com mltiplos processasdores beneficia a concorrncia entre os threads com a possibilidade do paralelismo de execuo entre processadores.
3) (2,5) Resolva usando semforos: Em um determinado stand de uma feira, um demonstrador apresenta um filme sobre a vida de Hoare. Quando 10 pessoas chegam, o demonstrador fecha o pequeno auditrio que no comporta mais do que essa platia. Novos candidatos a assistirem o filme devem esperar a prxima exibio. Esse filme faz muito sucesso com um grupo grande de fs (de bem mais de 10 pessoas), que permanecem na feira s assistindo o filme seguidas vezes. Cada vez que um desses fs consegue assistir uma vez o filme, ele vai telefonar para casa para contar alguns detalhes novos para sua me. Depois de telefonar ele volta mais uma vez ao stand para assistir o filme outra vez. Usando semforos, modele o processo f e o processo demonstrador, lembrando que existem muitos fs e apenas um demonstrador. Como cada f muito ardoroso, uma vez que ele chega ao stand ele no sai dali at assistir o filme. Suponha que haja muitos telefones disponveis na feira e, portanto, que a tarefa de telefonar para casa no impe nenhuma necessidade de sincronizao. OBS: Observe que o demonstrador s pode comear a exibir o filme quando h 10 pessoas no stand, e que as pessoas que chegam durante uma exibio tm que esperar a prxima. Importante: observe que um f s pode ir telefonar para a me depois que acaba a exibio do filme! Isso tem que estar modelado na sincronizao entre os processos demonstrador e fs.
#define N 10

int nFans=0; semaphore mutex = 1; semaphore dem = 0; semaphore fila = 0; fan (){ while(true){ P(mutex); nFans++; V(mutex); V(dem) ; P(fila) ; assisteFilme() ; telefona(); } } demonstrador (){ while(true){ while (nFans<N) P(dem); P(mutex); nFans=nFans-N; V(mutex); for (i=0 ;i<N ; i++) V(fila) ; exibeFilme() ; } }

4) (1,5) Considere as seguintes afirmativas em relao tcnica de IPC memria compartilhada. Assinale Verdadeiro (V) ou Falso (F). Aponte os erros, caso existam afirmativas falsas. ( ) a forma mais simples e rpida de mecanismos de comunicao entre dois processos. ( ) Permite que mltiplos processos anexem um segmento fsico de memria ao seu espao de endereamento virtual. ( ) necessrio sincronizar o acesso regio por mltiplos processos, exceto se eles forem descendentes de um mesmo pai. ( ) shmget obtm um identificador de memria compartilhada e shmat anexa um segmento de memria a um processo. 5) (1,5) Compare os mecanismos de IPC pipes e FIFOS. 6) (1,0) Considere o seguinte grafo de precedncia que ser executado por trs processos. Adicione semforos aos processos de modo que a precedncia definida pelo grafo seja alcanada.
F1 ------>F2-->+-->F3-------+--->F4 | | ^ v v | +------->F5-->+-->F6->+--->F7 | | ^ v v | +--->F8-->+---->F9--->+

PROCESS A : begin F1 ; F2 ; F8 ; F9 ; end PROCESS B : begin F5 ; F7 ; end PROCESS C : begin F3 ; F6 ; F4 ; end

Anda mungkin juga menyukai