A condição de disputa acontece constantemente mas é evitada, e os SO atuais constantemente verificam constantemente se um processo esta utilizando a mesma área de memória, o que, para o SO é proibido, para o SO um processo não pode lê ou escreve no mesmo espaço de memória, um dos processo será excluídas antes que isso ocorra. Um processo conhecido como Exclusão Mutua.
Durante a maior parte do tempo um processo execut5a computações internas que não requerem dados de outros processos. O trecho de programas onde ocorre o compartilhamento de dados com outros processos são chamada de Regiões Criticas. E para evita a disputa, estas áreas são monitoradas a todo momento, para evitar que dois processos estejam na mesma Região Critica.
Assim, deve haver uma cooperação mutua entre os processos, o que deve satisfazer as seguintes condições:
1.Não pode haver dois processos em regiões criticas
2.Não são feitas suposições sobre a velocidade relativa dos processos e sobre o numero de UCPs.
3.Nenhum processo parado fora da região critica pode para outros processos
4.Nenhum processo deve espera um tempo arbritariamente longo para entra em sua região critica.
Desabilitando Interrupções
A forma mais simples de garantir a exclusão mutua e fazer com que cada processo ao entra na região critica desabilite as interrupções e ao sair reabilite-as . Isto, impede que a CPU seja chaveada para outro processo e realize interrupções periódicas vindas do relógio da maquina que ativa o escalonador de processo.
Variáveis de Impedimento
Pode-se também pensam em uma solução onde exista uma variável auxiliar, chamada Lock Variable que indica ) para região critica livre e 1 para a mesma ocupada. Assim cada processo antes de entra em uma região critica, o mesmo checa esta variável.
Alternância Obrigatória
A solução pela qual um região deve ser entregue a um dado processo por vez é chamado de alternância obrigatória. E o teste continuo de uma variável a espera de um valor é chamado de Espera Ocupada. O que ocasiona um grande desperdício de CPU.
O problema nesta solução e que os processos se alternem precisamente e isto significa que o tempo dos processo devem ser exatamente iguais. Alem da desvantagem do processo que sai da região critica não poder mais retornar.
Soluções para serem analisadas:
Solução de Peterson
Produtor Consumidor
Semáforo
Mutexes
Monitores
Troca de Mensagens
Barbeiro Sonolento
Valeu bro
ResponderExcluir