Resumo

Apesar dos computadores modernos permitirem a execução de múltiplas tarefas ao mesmo tempo, toda a complexidade da gestão destes processos é abstraída pelo Sistema Operacional, a quem cabe a responsabilidade pela gerência do conjunto de processos através do controle do uso compartilhado e concorrente de recursos como processador e memória. Neste contexto da multiprogramação, é fundamental que exista uma comunicação entre os processos de modo a evitar erros decorrentes da disputa pelo recurso compartilhado, como condições de corrida, starvation ou deadlock. Diversas são as técnicas utilizadas para contornar estes problemas, de sincronização de processos e compartilhamento de recursos, sendo uma das mais triviais a exclusão mútua, modelo que evita o uso simultâneo dos recursos comuns através da utilização do conceito de região crítica.

Os algoritmos de implementação da exclusão mútua se agrupam em dois blocos que se caracterizam por possuir ou não espera ociosa (busy waiting). Os processos com espera ociosa se caracterizam por verificarem ativamente e em loop se lhe é permitido o acesso a região crítica, operação que causa desperdício de tempo de processamento decorrente do processo cíclico de verificação. Já os modelos de suspensão do processo de espera são implementados sem a necessidade de gasto computacional com a verificação cíclica do acesso a região crítica.

Como exemplos de soluções busy waiting pode-se citar a desabilitação de interrupções, a solução de Peterson, o uso de variáveis do tipo trava (lock), o chaveamento obrigatório (strict alternation) e a instrução TSL. Já como exemplo das soluções que não efetuam a verificação em loop tem-se o uso dos semáforos, os monitores e a política de troca de mensagens.

Das cinco soluções de espera ociosa apresentadas, apenas duas atendem completamente os requisitos necessários para prover de forma eficiente e 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 decorrente do custo da espera ociosa. Todas as demais soluções alternativas apresentadas e que não implementam o loop de verificação de entrada ema região crítica atendem plenamente os requisitos de exclusão mútua.

Copyright © 2014 AIEC.