Monitores e semaforos
Faculdades Integradas Paulista
Curso: Sistemas da Informação
Tema: Monitores e Semáforos
Monitores e Semáforos
Os monitores têm como principal função evitar a concorrência entre processos, ele possui recursos que são capazes de verificar qual o processo deve ser passado na frente, por obter uma prioridade maior que os demais, com isso, sincronizando os processos.
Em um processador, cada processo é executado por vez, com isso, uma das funções dos monitores é a "Exclusão Mútua", ou seja, somente um processo pode estar executando os processos do monitor. Toda vez que algum processo chama um desses procedimentos, o monitor verifica se já existe outro processo executando algum procedimento do monitor. Também devemos lembrar que, toda implementação da exclusão mútua nos monitores é realizada pelo compilador, e não mais pelo programador, como no caso do uso de semáforos. A Exclusão Mútua em semáforos utiliza duas instruções para a entrada e saída de dados, o Down e o Up:
Down - esse comando testa se o valor do semáforo é maior que zero, se for maior que zero, o semáforo é decrementado e o processo continua, caso não for maior que zero o processo é posto para dormir.
Up - esse comando incrementa o valor do semáforo. Quando temos um Up em um semáforo com processos dormindo, resulta em um processo dormindo a menos.
Existem semáforos que assumem somente os valores de 0 e 1, 0 para livre e 1 para ocupado. Eles são denominados semáforos binários ou mutex.
A manipulação do Semáforo Mutex é feito com dois comandos:
Mutex_lock(): é quando ele testa o Mutex e coloca em impedido caso esteja desempedido, caso contrário ele bloqueia o processo.
Mutex_unlock(): nesse caso ele coloca o Mutex como desempedido.
Monitor também pode ser visto como uma unidade de sincronização em alto nível, sendo que os dados e as estruturas do monitor só podem ser acessados pelos seus procedimentos, lembrando que somente um processo pode estar ativo em um monitor em