Sistemas Operacionais 10 comunicação entre processos

download Sistemas Operacionais 10   comunicação entre processos

If you can't read please download the document

description

Sistemas Operacionais 10 comunicação entre processos

Transcript of Sistemas Operacionais 10 comunicação entre processos

  • 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