Semaforos
ATIVIDADE ACADÊMICA: SISTEMAS OPERACIONAIS
Módulo 4 - Semáforos
Grupo: Rodrigo de Araújo Rosa e Viviane Becker Dias
Data: 04/11/2012
SEMÁFOROS NO WINDOWS E LINUX
1.
INTRODUÇÃO
Em 1965, E. W. Dijkstra sugeriu usar uma variável inteira para contar o número de sinais de acordar salvos para uso futuro. De acordo com a proposta dele, foi introduzido um novo tipo de variável, chamado semáforo. Um semáforo poderia conter o valor 0 – indicando que nenhum sinal de acordar foi salvo – ou algum valor positivo se um ou mais sinais de acordar estivessem pendentes (TANENBAUM, 2010).
Este trabalho tem por objetivo descrever exemplos teóricos e casos práticos do uso de semáforos em sistemas operacionais Linux e Windows, comparando as diferenças de funcionamento, parâmetros e definições de uso entre os dois. O exemplo escolhido foi o “Problema do Jantar de Filósofos”, onde temos uma mesa de jantar com cinco filósofos (que fazem o papel dos processos). Para conseguir comer um filósofo precisa de dois garfos (recurso compartilhado), porém, pela quantidade de garfos existentes na mesa (cinco), não é possível que todos comam ao mesmo tempo. Dai temos a necessidade do uso de semáforos.
Semáforos provêm uma abstração simples e elegante que é útil para implementar exclusão mútua e outras tarefas de sincronização. Duas operações são definidas sobre semáforos: P (do holandês "proberen", testar): uma operação atômica que espera o semáforo ficar positivo, e a seguir