Sistemas operacionais

Disponível somente no TrabalhosFeitos
  • Páginas : 4 (865 palavras )
  • Download(s) : 0
  • Publicado : 11 de setembro de 2012
Ler documento completo
Amostra do texto
Sistemas Operacionais
Processos
Semáforos

Semáforos
Mecanismo de sincronização que não requer espera ocupada Dijkstra propôs usar uma variável inteira para contar o no de WAKEUPs para usofuturo Menos complicado Esta variável, denominada semáforo, pode ter valor 0 (nenhum WAKEUP pendente) ou um valor inteiro positivo Apenas duas operações são definidas sobre estas variáveis: as operações P(Down) e V (Up)

Eduardo Nicola F. Zagari

2

Comunicação e Sincronização

1

(cont.) Semáforos
P(s) (Down) - checa o valor do semáforo. Se o valor é maior que 0 (zero), decrementa econtinua. Se for igual a 0, o processo é posto para dormir Ação atômica: é garantido que, uma vez iniciada a operação, nenhum outro processo tem acesso ao semáforo (essencial para resolver problemas desincronização e evitar condições de corrida) P(s) equivale a: Se s > 0 então s := s - 1 senão bloqueia o processo até s > 0 (= wait(s)) V(s) (Up) - se um ou mais processos estão dormindo no semáforo, umdeles é escolhido aleatoriamente pelo SO e continua sua operação Down (o valor zero continua). Se não há ninguém “dormindo” no semáforo, incrementa o valor dele Operação também é indivisível V(s)equivale a: Verifica se existe uma lista com processos bloqueados por causa de s, se existe escolhe um e o “acorda”, deixando-o pronto para seguir sua execução de P(s) (= signal(s)) senão s := s + 1Eduardo Nicola F. Zagari 3 Comunicação e Sincronização

Semáforos como um mecanismo de Semá sincronização geral sincronizaç
Semáforo Contador – valor inteiro positivo pode variar sem limites SemáforoBinário – valor inteiro só pode variar entre 0 e 1;
Também conhecido como mutex locks

Para fornecer exclusão mútua:
Semaphore S; // initialized to 1 P(S); criticalSection(); V(S);

EduardoNicola F. Zagari

4

Comunicação e Sincronização

2

Deadlock e Starvation
Deadlock – dois ou mais processos ficam esperando indefinidamente por um evento que pode ser causado apenas por um dos...
tracking img