I dont know

3354 palavras 14 páginas
Semáforos e monitores

Semáforos Essa era a situação em 1965 , quando E.W Dijkstra(1965) sugeriu usar uma variável inteira para contar o número de sinais de acordar salvos para o uso futuro.De acordo com sua proposta foi introduzido um novo tipo de variável chamada 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. Dijkstra propôs a existência de duas operações, down e up(generalizações do sleep e wakeup, respectivamente). A operação down sobre um semáforo verifica se o valor é maior que 0. Se for, o decrescerá de 1 (isto é, gasta um sinal de acordar armazenado) e prosseguirá. Se o valor for 0, o processo será posto para dormir, sem terminar o down, pelo menos por enquanto. Verificar o valor, alterá-lo e possivelmente ir dormir são tarefas executadas todas como uma única ação atômica e indivisível. Garante-se que, uma vez iniciada uma operação de semáforo, nenhum outro processo pode ter acesso ao semáforo até que a operação tenha terminado ou sido bloqueada. Essa atomicidade é absolutamente essencial para resolver os problemas de sincronização e evitar condições de disputa. A operação up incrementa o valor de um dado semáforo. Se um ou mais processos estivessem dormindo naquele semáforo, incapacitados de terminar uma operação down anterior, um deles seria escolhido pelo sistema (por exemplo, aleatoriamente) e seria dada a permissão para terminar o seu down. Portanto, depois de um up em um semáforo com processos dormindo nele, o semáforo permanecerá 0, mas haverá um processo a menos dormindo nele. A operação de incrementar o semáforo e acordar um processo é também . Nunca um processo é bloqueado a partir de um up – assim como, no modelo anterior, nunca um processo é bloqueado fazendo um wakeup.
No trabalho original de Dijkstra foram usadas as primitivas P e V em vez de down e up, respectivamente. Mas como P e V não possuem

Relacionados

  • I dont know
    665 palavras | 3 páginas
  • I dont know
    2914 palavras | 12 páginas
  • Lucro bruto
    967 palavras | 4 páginas
  • Tradução
    937 palavras | 4 páginas
  • Cifras
    1670 palavras | 7 páginas
  • Inglês instrumental
    4028 palavras | 17 páginas
  • Como eu sou
    306 palavras | 2 páginas
  • Traduções
    11073 palavras | 45 páginas
  • Artigos usados para comunicação em inglês
    774 palavras | 4 páginas
  • A7x - ALPOH
    2328 palavras | 10 páginas