vdaa
OPERACIONAIS
Sincronização entre Processos
Andreza Leite andreza.leite@univasf.edu.br Sincronização
Freqüentemente, os processos precisam se comunicar com outros processos.
Isto ocorre quando os processos compartilham ou trocam dados entre si.
Há a necessidade dessa comunicação ocorrer, de preferência, de uma forma bem estruturada e sem interrupções. As interrupções limitam o desempenho e aumentam a complexidade. Sincronização
Três tópicos serão abordados:
Como um processo passa informação para um outro processo. Como garantir que dois ou mais processos não invadam uns aos outros.
Como garantir uma seqüência adequada quando existe uma dependência entre processos.
Sincronização
Abordaremos diversos mecanismos para tratar essas questões: Condições de disputa
Regiões críticas
Exclusão mútua
Dormir e acordar
Semáforos
Sincronização
Em alguns SOs, processos podem compartilhar um armazenamento comum, onde cada um é capaz de ler e escrever. Este armazenamento comum pode, por exemplo, estar na memória principal, em um arquivo compartilhado entre outros. Comunicação e Sincronização
Exemplo de comunicação interprocessos: spool de impressão. Quando um processo quer imprimir um arquivo, este processo entra com o nome do arquivo em um diretório de spool especial.
Um outro processo, verifica periodicamente se existe algum arquivo para ser impresso, se houver, os imprime e remove seus nomes do diretório.
Comunicação e Sincronização
Suponha que o diretório de spool tenha um grande número de vagas numeradas 0, 1, 2,...
Cada vaga é capaz de conter um nome de arquivo.
Suponha também compartilhadas. Out
In
que
existem
duas
variáveis
aponta para o próximo arquivo a ser impresso.
Aponta para a próxima vaga livre do diretório.
Sincronização
Em um dado instante, as vagas 4 a 6 estão preenchidas
(com os nomes dos arquivos na fila de impressão), e
In = 7.
Problema
Quase