Monitores e semaforos

Disponível somente no TrabalhosFeitos
  • Páginas : 6 (1358 palavras )
  • Download(s) : 0
  • Publicado : 20 de setembro de 2011
Ler documento completo
Amostra do texto
[pic]

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 umprocessador, 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 nosmonitores é 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 paradormir.

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 oMutex 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 emcada instante.
Os Monitores possuem algumas propostas, como essas abaixo:

-Quando temos um processo que referencia dados compartilhados, ele chama um procedimento do monitor.

-O Monitor é uma exclusão mútua da linguagem, cabe ao compilador garantir a exclusão mútua.

A exclusão mutua é quando um processo estiver acessando determinado recurso, os outros deverão esperar até que ele termineseu acesso.
Com isso, existem 4 condições para existir a exclusão mutua:

- Dois ou mais processos não podem estar simultaneamente em suas regiões críticas;

-Nenhum processo fora da sua região crítica pode bloquear outro processo;

-Nenhum processo pode esperar infinitamente para entrar na região crítica;

-Não se deve fazer nenhuma consideração quanto ao número de CPUs e suasvelocidades.

Os Monitores não fazem a exclusão mútua, existe também o bloqueio de processos, que são variáveis associadas a condições que provocam a suspensão e a reativação de processos dentro do monitor, sendo que só podem ser declaradas dentro do monitor e são usadas por dois procedimentos especiais: o Wait e o Signal.

-Wait: é quando o monitor bloqueia o processo que fez a chamada, e asinformações sobre o processo bloqueado são armazenadas em uma estrutura de dados associada à variável.

-Signal: é quando o monitor bloqueia um dos processos da fila associada à variável de condição.

Exemplos de manipulação em processos:

EX 1:Os processos podem trabalhar em conjunto de forma concorrente, compartilhando recursos do sistema como:

- Arquivos, registros, dispositivos e áreas dememória;

-Condições de Corrida - Quando o recurso é compartilhado ao mesmo tempo.

-2 ou mais processos estão lendo e gravando dados compartilhados e o resultado final depende da ordem de execução.

Ex 2: Processos concorrentes trocam informações através de gravação e leitura em um buffer:

- A gravação só poderá acontecer se o buffer não estiver cheio;
-A leitura só poderá acontecer...
tracking img