Programação Concorrente

1402 palavras 6 páginas
Programa¸c˜ao Concorrente e Paralela
Sem´aforos e Monitores

2010.2

Programa¸c˜ ao Concorrente e Paralela

Nota¸c˜ao Andrews: atomicidade e await

para definir a¸c˜oes atˆ omicas, Andrews introduz a nota¸c˜ao e para especificar sincroniza¸c˜ao, Andrews introduz a nota¸c˜ao: await(B)S; que significa que S s´ o deve come¸car a ser executado quando
B for verdadeira, e que S ser´a executado atomicamente

Programa¸c˜ ao Concorrente e Paralela

Exemplo de sincroniza¸c˜ao: produtor/consumidor

tamb´em chamado de problema do buffer limitado diversas variantes buffer limitad´ıssimo!

Programa¸c˜ ao Concorrente e Paralela

Exemplo de sincroniza¸c˜ao: produtor/consumidor int buf, p = 0, c = 0; process Producer { int a[n]; while (p < n) {
< await (p == c);> buf = a[p]; p = p+1;
}
} process Consumer { int b[n]; while (c < n) {
< await (p > c);> b[c] = buf; c = c+1;
}
}
Programa¸c˜
ao Concorrente e Paralela

Implementa¸c˜ao de atomicidade exclus˜ao m´ utua e regi˜ oes cr´ıticas process CS [i = 1 to n] { while (true) { protocolo de entrada; regi~ ao cr´ ıtica protocolo de saida; regi~ ao n~ ao cr´ ıtica }
}
solu¸c˜oes de exclus˜ao m´ utua devem satisfazer as condi¸c˜oes seguintes: 1
2
3
4

exclus˜ao m´ utua ausˆencia de deadlock (ou livelock) ausˆencia de esperas desnecess´arias entrada em algum momento (“eventual”em inglˆes)

como visto na u
´ltima aula!
Programa¸c˜
ao Concorrente e Paralela

Implementa¸c˜ao de espera por condi¸co˜es

complicado no caso geral caso particular: barreiras

Programa¸c˜ ao Concorrente e Paralela

Barreira com coordenador processo extra para coordenar os demais: int arrive[1:n] = ([n] 0), process Worker[i = 1 to n] while (true) { code to implement task arrive[i] = 1;
<await (continue[i] == continue[i] = 0;
}
} process Coordinator { while (true) { for [i = 1 to n] {
<await (arrive[i] == arrive[i] = 0;
}
for [i = 1 to n] continue[i] = 1;
}
}

continue[1:n] = ([n] 0);
{
i;
1);>

1);>

Programa¸c˜ ao Concorrente e Paralela

Como implementar o

Relacionados

  • Programação concorrente
    1215 palavras | 5 páginas
  • programação concorrente
    1800 palavras | 8 páginas
  • Programação concorrente
    612 palavras | 3 páginas
  • Programação concorrente
    1233 palavras | 5 páginas
  • Programação concorrente
    607 palavras | 3 páginas
  • Programação concorrente
    19330 palavras | 78 páginas
  • Programação Concorrente
    2806 palavras | 12 páginas
  • Programação Concorrente
    1633 palavras | 7 páginas
  • programação concorrente
    913 palavras | 4 páginas
  • Programação concorrente
    1555 palavras | 7 páginas