Sistemas Operacionais - Sincronização e Comunicação entre Processos
Entre Processos
Sincronização e Comunicação entre
Processos
∗ Frequentemente processos precisam se comunicar com outros processos (interprocess comunication – IPC);
∗ Implementação através de mecanismos como variáveis compartilhadas ou trocas de mensagens;
∗ Processos precisam ter sua execução sincronizada através de mecanismos do SO;
∗ Em diversos SOs, processos que trabalham juntos podem compartilhar algum armazenamento comum a partir do qual cada um seja capaz de ler e escrever. O armazenamento compartilhado pode estar na memória principal ou em um arquivo compartilhado.
Sincronização e Comunicação entre Processos
(2)
∗ Exemplo com buffer de comunicação:
∗ Processo só poderá gravar os dados se buffer estiver liberado ∗ Processo só poderá ler os dados quando estes estiverem disponíveis no buffer
Sincronização
gr
Processo gravador av aç ão
r i tu le dado
Buffer
a
Processo leitor Sincronização e Comunicação entre
Processos (3)
∗ Mecanismos de sincronização:
∗ Garantem a comunicação entre processos concorrentes ∗ Garantem o acesso a recursos compartilhados
∗ Garantem a integridade e a confiabilidade na execução de aplicações concorrentes
∗ Cada linguagem tem sua notação para especificar as partes do programa que devem ser executadas concorrentemente.
Sincronização e Comunicação entre
Processos (4)
∗ Compartilhamento de Recursos
∗ Arquivos compartilhados
∗ Ex: atualizações em um mesmo saldo bancário
∗ Caso o processo não “trave” o arquivo com saldo, poderá haver inconsistência
∗ Variáveis compartilhadas
∗ Um processo só poderá operar com a variável após processo anterior completar sua operação
∗ Dois ou mais processos tenham acesso simultaneamente a um mesmo recurso compartilhado, devem existir mecanismos de controle para evitar esse tipo de problema
∗ Estes problemas são chamados de race conditions.
Sincronização e Comunicação entre
Processos (5)