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 decrementa-o de 1. Tanenbaum utiliza down. V (do holandês "verhogen", incrementar): uma operação atômica que incrementa o semáforo de 1. Tanenbaum utiliza up.
2.
TRABALHOS RELACIONADOS
Semáforos – Walter Fetter Lages – UFRGS (http://www.ece.ufrgs.br/~fetter/eng04008/sem.pdf)
3.
COMPARANDO OS SEMÁFOROS WINDOWS X LINUX
Os semáforos do Windows são variáveis de contagem que permitem que um número limitado de threads/processos acesse um recurso compartilhado.
No Linux são utilizados semáforos System V, que