Semaforos

Páginas: 9 (2007 palavras) Publicado: 4 de maio de 2015
GRADUAÇÃO À DISTÂNCIA

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 edefiniçõ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 desemá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ômicaque 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 são um conjunto de valores de semáforos, a criação é
independente da inicialização, não são destruídos com os processos, pois estão no escopo do sistema e não no escopo
dos processos que os utilizam. Também é possível utilizar POSIX pthreads como variáveis de contagem.
Tipo de semáforo: o Windows fornece semáforos nomeados e não nomeados. Semáforos nomeados estendem a
sincronização entreprocessos. No Linux, semáforos POSIX são usados somente entre as threads do mesmo processo.
Entre processos, semáforos System V podem ser utilizados.
Timeout em funções de espera (wait): quando usado em uma das funções de espera, o valor limite pode ser
especificado para objetos de semáforo Windows. Isto não está previsto no Linux, ele precisa ser tratado na lógica de
aplicação.
Tabela comparativaentre os semáforos de Windows e Linux
Windows
Linux POSIX (threads)
CreateSemaphore

sem_init

OpenSemaphore

Não se aplica
sem_wait
sem_trywait
sem_post
sem_destroy

WaitForSingleObject
ReleaseSemaphore
CloseHandle

Linux System V (Processos)
semget
semctl
semget
semop
semop
semctl

GRADUAÇÃO À DISTÂNCIA

ATIVIDADE ACADÊMICA: SISTEMAS OPERACIONAIS
Módulo 4 - Semáforos
Criando semáforo: noWindows é utilizado CreateSemaphore() para criar ou abrir um semáforo nomeado ou não
nomeado. Esta função cria o semáforo e retorna um identificador para o semáforo. Ele também define a contagem
inicial com os valores especificados na chamada. Assim, permite que um número limitado de threads acesse um
recurso compartilhado. No Linux, sem_init() é utilizada para criar um semáforo POSIX não nomeado quepode ser
utilizado entre as threads de um mesmo processo. Ainda no Linux, semget() é usada para criar um semáforo System V,
que pode ser usado entre threads de um processo diferente. É utilizada para obter a funcionalidade de semáforo
nomeado do Windows.
Windows
HANDLE CreateSemaphore(
LPSECURITY_ATTRIBUTES
lpSemaphoreAttributes,
LONG lInitialCount,
LONG lMaximumCount,
LPCTSTR lpName
);...
Ler documento completo

Por favor, assinar para o acesso.

Estes textos também podem ser interessantes

  • Semáforo
  • semaforo
  • semaforo
  • Semáforo
  • Semáforo
  • Semaforo
  • Semáforo
  • Semáforo

Seja um membro do Trabalhos Feitos

CADASTRE-SE AGORA!