Matriz em C

1055 palavras 5 páginas
Sincronização de Processos

Sincronização de Processos










Fundamentos
O problema das Regiões Críticas
Solução de Peterson
Hardware de Sincronização
Semáforos
Problemas Clássicos de Sincronização
Monitores
Exemplos de Sincronização
Transações Atômicas

Objetivos
• Introduzir o problema da região crítica, em que as soluções podem ser usadas para garantir a consistência de dados compartilhados
• Apresentar soluções tanto de software quanto de hardware para o problema da região crítica
• Introduzir o conceito de transação atômica e descrever mecanismos de garantir atomicidade

Fundamentos
• Acesso concorrente a dados compartilhados pode resultar em inconsistências.
• Manter a consistência de dados requer a utilização de mecanismos para garantir a execução ordenada de processos cooperantes.
• Suponha que seja desejado fornecer uma solução para o problema do produtor-consumidor que utilize todo o buffer. É possível fazer isso tendo um inteiro count que mantém o número de posições ocupadas no buffer.
Inicialmente, count é inicializado em 0. Ele é incrementado pelo produtor após a produção de um novo item e decrementado pelo consumidor após a retirada.

Produtor while (true) {
/* produz um item e coloca em nextProduced */ while (count == BUFFER_SIZE)
; // do nothing buffer [in] = nextProduced; in = (in + 1) % BUFFER_SIZE; count++; }

Consumidor while (true) { while (count == 0)
; // não faz nada nextConsumed = buffer[out]; out = (out + 1) % BUFFER_SIZE; count--; /* consome o item em nextConsumed
}

Condição de Corrida
• count++ pode ser implementado como register1 = count register1 = register1 + 1 count = register1

• count– pode ser implementado como register2 = count register2 = register2 - 1 count = register2
• Considere a seguinte ordem de execução com, inicialmente, “count = 5”:

S0: producer execute register1 = count {register1 = 5}
S1: producer execute register1 =

Relacionados

  • Matriz c#
    473 palavras | 2 páginas
  • Matriz linguagem c
    370 palavras | 2 páginas
  • Exercícios Matriz C++
    276 palavras | 2 páginas
  • Matriz - Programação C
    323 palavras | 2 páginas
  • Matriz (struct) c#
    635 palavras | 3 páginas
  • matriz em LP C
    3364 palavras | 14 páginas
  • Prova C Teste Matriz 4x4
    574 palavras | 3 páginas
  • C Pia De Matriz BCG Final
    3157 palavras | 13 páginas
  • jogo 4 em linha
    849 palavras | 4 páginas
  • matrizes
    4270 palavras | 18 páginas