Arquitetura de sistemas operacionais

Disponível somente no TrabalhosFeitos
  • Páginas : 27 (6625 palavras )
  • Download(s) : 0
  • Publicado : 15 de dezembro de 2012
Ler documento completo
Amostra do texto
Resumo Capítulo 7 – Sincronização e Comunicação entre Processos

Aplicação concorrente

Com o surgimento dos sistemas multiprogramáveis passou a ser possível estruturar aplicações concorrentes que são múltiplos processos ou threads que fazem parte de uma mesma tarefa.
Mesmo não havendo paralelismo em um sistema multiprogramável com um único processador, uma aplicação concorrente pode obterdesempenho melhor. O paralelismo em sistemas com múltiplos processadores aumenta as vantagens da aplicação concorrente.
Os processos de uma aplicação concorrente compartilham recursos do sistema, e muitas vezes necessitam se comunicar entre si, o que pode ocasionar problemas na execução. Com execuções sincronizadas a partir de mecanismos do sistema operacional, também chamados de mecanismos desincronização, esse problema pode ser evitado.

Figura [ 1 ]. Sincronização e Comunicação entre Processos.

A figura acima mostra um exemplo onde dois processos concorrentes compartilham um buffer para trocar informações através de operações de gravação e leitura, cada processo só poderá gravar dados do buffer caso o mesmo não esteja cheio, e só poderá ler dados caso exista algum.
Em ambas assituações, gravação e leitura, os processos deverão aguardar até o buffer ficar pronto para a operação.

Especificação de Concorrência em programas

Existem várias notações utilizadas para especificar as partes de um programa que devem ser executadas concorrentemente. A primeira notação foram os comandos FORK e JOIN.
O comando FORK faz com que seja criado um outro processo para a execuçãoconcorrente. O comando JOIN permite a sincronização, ou seja, quando um primeiro programa encontrar o comando JOIN só continuará a ser processado após o término da execução de um segundo programa.
Uma das formas mais simples de expressar concorrência é a utilização dos comandos PARBEGIN e PAREND, posteriormente chamados de COBEGIN e COEND.
O comando PARBEGIN especifica que a seqüência de comandosseja executada concorrentemente em uma ordem imprevisível, através da criação de um processo para cada comando. O comando PAREND define um ponto de sincronização onde o processamento só continuará quando todos os processos ou threads criados já tiverem terminado usas execuções.

Problemas de compartilhamento de recursos

Em qualquer situação onde dois ou mais processos compartilham um mesmorecurso, devem existir mecanismos de controle para evitar problemas conhecidos como condições de corrida.
Condições de corrida acontecem quando diferentes processos ou threads em execução dependem de um estado compartilhado, e o resultado depende do escalonamento dos processos.

Exclusão mútua

A solução mais simples para evitar problemas de compartilhamento é impedir que dois ou mais processosacessem um mesmo recurso simultaneamente. Enquanto um processo estiver acessando determinado recurso, os demais processos deverão esperar o término da utilização do recurso para poder acessá-lo. Essa exclusividade de acesso é chamada exclusão mútua.
A exclusão mútua deve afetar apenas os processos concorrentes quando um deles acessar o recurso compartilhado. A parte do código do programa onde éfeito o acesso ao recurso compartilhado é chamada região crítica. Evitando que dois processos entrem em suas regiões críticas ao mesmo tempo, ou seja, garantindo a execução mutuamente exclusiva das regiões críticas, os problemas de compartilhamento são evitados.
Os mecanismos que implementam a exclusão mútua utilizam protocolos de acesso à região crítica. Quando um processo deseja executarinstruções de sua região crítica, obrigatoriamente deverá ser executado antes um protocolo de entrada e posteriormente ao sair da região crítica, um protocolo de saída, garantindo assim a exclusão mútua da região crítica de um programa.
Além da garantia da exclusão mútua, duas situações indesejadas também devem ser evitadas.
Uma delas é conhecida como starvation ou espera indefinida, que é a situação...
tracking img