Sistemas Operacionais 10 comunicação entre processos

Embed Size (px)

DESCRIPTION

Sistemas Operacionais 10 comunicação entre processos

Citation preview

  • 1. Comunicao entre processos Sistemas Operacionais Prof. Mauro DuarteProf. Mauro Duarte

2. 15/07/14 Comunicao entre processos Introduo Problemas inerentes comunicao Proposta para excluso mtua 3. 15/07/14 Introduo: Os processos que cooperam entre si para executar uma tarefa precisam se comunicar uns com os outros. A comunicao entre os processos deve ser feita de tal modo que seja estruturada e independente de interrupes. Devemos evitar que os processos interfiram uns com os outros, um problema chamado de excluso mtua. 4. 15/07/14 Problema: Um processo A alocou uma determinada rea da memria pra si. O que aconteceria se outro processo pudesse alocar a mesma rea da memria que o processo A esta ocupando? 5. 15/07/14 Sincronizao: Na comunicao entre processos cooperantes, a sincronizao destes processos importante: 6. 15/07/14 Condies de corrida: Ocorre quando os processos cooperantes precisam compartilhar um recurso, que ambos podem ler e gravar: Um exemplo de recurso compartilhado, um diretrio de spooler, usado por um daemon de impresso. Este diretrio contm vrias entradas, numeradas por 1 e 2, , sendo que cada uma pode armazenar o nome de um arquivo. O daemon percorre cada uma das entradas sequencialmente, voltando para a primeira entrada aps a impresso do arquivo da ltima entrada. 7. 15/07/14 Vimos um exemplo que chamado de condio de corrida (race condition): Ocorre quando dois ou mais processos acessam um recurso compartilhado. O resultado das execues dos processos dependem da ordem em que os processos executam no processador. Somente algumas ordens de execues do processo no geram os resultados corretos. Condies de corrida: 8. 15/07/14 A deteco da existncia de uma condio de corrida em um conjunto de processos cooperantes complicada. Para solucionar o problema de condio de corrida, deveremos usar o conceito de excluso mtua atravs do uso de sees crticas. Condies de corrida: 9. 15/07/14 Sees crticas: Podemos tambm ver o problema da condio de corrida a partir da seguinte viso abstrata: Ou o processo est executando um cdigo que no acessa nenhum dos recursos compartilhados com outros processos. Ou processo est executando um cdigo que l e/ou altera um dos recursos compartilhados com outros processos. 10. 15/07/14 O cdigo do processo que acessa um recurso compartilhado com outros processos chamado de seo crtica ou regio crtica. As condies de corrida sero evitadas somente se cada processo executar a sua seo crtica em um intervalo de tempo diferente. Sees crticas: 11. 15/07/14 Para que a cooperao entre os processos seja eficiente, alm de correta, devemos garantir as seguintes condies: Dois ou mais processos no podem executar ao mesmo tempo as suas sees crticas. No podemos fazer nenhuma suposio sobre a velocidade de execuo ou do nmero de processadores. Um processo que no est executando sua seo crtica no pode bloquear outro processo. Um processo deve ser sempre capaz de executar a sua seo crtica em um intervalo de tempo finito. Sees crticas: 12. 15/07/14 Para que somente um processo possa entrar na sua seo crtica devemos usar as primitivas de excluso mtua. Um meio de obtermos a excluso mtua atravs do uso das propostas baseadas em espera ocupada. O processo fica esperando at que possa acessar a seo crtica. A grande desvantagem desse mtodo pode ser o desperdcio de tempo do processador. Estratgias: Desabilitar interrupes. InstruoTSL. Excluso Mtua: 13. 15/07/14 O processo desabilita as interrupes ao entrar na seo crtica, e as reabilita ao sair da seo crtica. Como as interrupes esto desabilitadas, o escalonador no ser capaz de parar a execuo do processo. A proposta no adequada, pois se o processo no reabilitar as interrupes, o sistema ir parar de funcionar. Desabilitando interrupes: 14. 15/07/14 Desabilitando interrupes: A proposta no funciona se existe mais de um processador (ou ncleos), pois o processo somente afeta o processador que o est executando. A concluso que esta proposta no adequada para a excluso mtua, devendo somente ser usada dentro do ncleo do sistema. 15. 15/07/14 InstruoTSL*: Comum em computadores com multiprocessadores. A instruo, cujo formato geral TSL RX, lock, onde RX um registrador e lock uma posio da memria: L o contedo da posio lock, e o coloca no registrador RX. Depois grava, na posio lock, um valor diferente de zero. * TSL Test and Set Lock 16. 15/07/14 A execuo da instruo atmica, ou seja, indivisvel: O processador bloqueia o barramento da memria at executar as duas operaes. Nenhum outro processador poder acessar a posio lock, at que o barramento seja desbloqueado Como a posio de ler a memria e armazenar um valor no nulo atmica, a excluso mtua garantida. InstruoTSL: 17. 15/07/14 Excluso Mtua: Vamos agora estudar a seguinte proposta alternativa, que ir bloquear o processo, em vez de utilizar espera ocupada, se este no puder acessar a sua seo crtica: Semforos. 18. 15/07/14 Produtor x Consumidor: Neste problema dois processos, o produtor e o consumidor, compartilham o buffer: O processo produtor deposita novas informaes no buffer, a no ser que este esteja cheio. O processo consumidor retira as informaes do buffer, a no ser que este esteja vazio. 19. 15/07/14 Semforo: Em 1965, o matemtico holands Edsger Dijkstra props um mecanismo de coordenao eficiente e flexvel para o controle da excluso mtua entre n tarefas: o semforo. Apesar de antigo, o semforo continua sendo o mecanismo de sincronizao mais utilizado na construo de aplicaes concorrentes, sendo usado de forma explcita ou implcita. 20. 15/07/14 Semforos: Esta proposta usa uma varivel inteira chamada semforo, e uma fila associada a esta varivel: O valor do semforo indica quantas vezes ele pode ser decrementado sem que o processo seja bloqueado. A fila contm os processos que foram bloqueados ao tentar decrementar o semforo. So definidas duas operaes sobre um semforo: P eV ( waint and signal; up and down; etc ): 21. 15/07/14 Semforo: Para mais detalhes sobre semforos, leia a pgina 77 do livro: Sistemas Operacionais Modernos; 3 edio Andrew S.Tanenbaum. 22. 15/07/14 Para saber mais: pgs 70-81