Mecanismos de sincronização de processos e aplicações concorrentes
CAMPUS JACAREZINHO
MECANISMOS DE SINCRONIZAÇÃO DE PROCESSOS
APLICAÇÕES CONCORRENTES
SEMÁFOROS
MONITORES
VALDINEI APARECIDO CANDIDO
JACAREZINHO
17 – 09 - 2011
Mecanismos de Sincronização
São mecanismos que garantem a comunicação entre processos concorrentes e o acesso a recursos compartilhados, é fundamental sua implementação em projetos de SO multiprogramável para garantir a integridade e a confiabilidade na execução de Aplicações Concorrentes.
Sincronização Condicional
Sincronização condicional é uma situação onde o acesso ao recurso compartilhado exige a sincronização de processos vinculada a uma condição de acesso. Um recurso pode não se encontrar pronto para uso devido a uma condição específica. Nesse caso, o processo que deseja acessá-lo deverá permanecer bloqueado até que o recurso fique disponível.
Um exemplo clássico desse tipo de sincronização é a comunicação entre dois processos através de operações de gravação e leitura em um buffer, como foi visto na figura 1, onde os processos que geram informações (processos produtores) utilizadas por outros processos (processos consumidores). Nessa comunicação, enquanto um processo grava dados em um buffer, o outro lê os dados, concorrentemente. Os processos envolvidos devem estar sincronizados a uma variável de condição, de forma que um processo não tente gravar dados em um buffer cheio ou realizar uma leitura em um buffer vazio.
Este problema sincronização é conhecido como problema do produtor/consumidor ou do buffer limitado.
Aplicações Concorrentes
Na década de 1960, com o surgimento dos sistemas multiprogramáveis, passou a ser possível estruturar aplicações de maneira que partes diferentes do código do programa pudessem executar concorrentemente. Este tipo de aplicação, denominada aplicação concorrente, tem como base a execução cooperativa de múltiplos processos ou threads, que trabalham em uma mesma tarefa na