5 - Outras Técnicas para Exclusão Mútua

Das cinco soluções de espera ociosa apresentadas, apenas duas atendem completamente os requisitos necessários para prover de forma eficaz a exclusão múltipla – o método de Peterson e a instrução TSL. Apesar disto, estas não são soluções ótimas em função do processamento perdido por conta do custo da espera ociosa. Em função deste problema, grande parte dos sistemas operacionais tem o seu processo de controle baseado na utilização de semáforos, monitores e troca de mensagens.

A utilização de semáforos foi proposta por Dijkstra na década de 1960 como uma das soluções para o problema da exclusão mútua e da sincronização condicional dos processos.

Um semáforo é uma variável protegida que só pode ser acessada e alterada através de três operações:

As operações DOWN e UP são atômicas e indivisíveis e a variável do semáforo não aceita valores negativos. Desta forma, sempre que uma operação DOWN é realizada em um semáforo que tem valor 0 o processo é movido para o estado de espera. Saiba+

A grande vantagem do uso dos semáforos é que o processo não precisa ficar a todo o tempo verificando se o valor do semáforo foi alterado, já que este trabalho seria desempenhado pelo Sistema Operacional, sem gerar overhead. Assim que o processo em execução na região crítica informa ao SO que saiu desta região, através da chamada da função UP, o Sistema Operacional se encarrega de selecionar automaticamente um dos processos da fila de espera e de alterar o seu estado para “em execução”.

Overhead

O custo computacional relacionado à execução de uma determinada operação como, por exemplo, o gerenciamento de processos do sistema operacional, mas que não está diretamente relacionado a execução da tarefa solicitada pelo usuário e que produz o resultado final esperado.

X
Copyright © 2014 AIEC.