Resumo
O objetivo deste módulo foi apresentar alguns conceitos relativos a programação concorrente/paralela como:
- condição de corrida: quando a integridade dos dados não pode ser garantida devido ao uso compartilhado dos recursos;
- egião crítica: conjunto de instruções compartilhadas;
- exclusão mútua: acesso exclusivo a uma thread por vez a região crítica.
Também foram apresentados três mecanismos possíveis de sincronização de processos/threads como:
- semáforo: uma variável inteira com a capacidade de contar que, dentre outras coisas, é utilizada para garantir a exclusão mútua;
- mutex: um semáforo simplificado que assume apenas dois estados: ligado e desligado;
- monitor: um tipo de dado abstrato com suas operaçoes e dados que visa também garantir a exclusão mútua.
Todos esses conceitos foram apresentados por meio do problema de integridade relativo a falta de sincronização por meio de um exemplo clássico denominado de produtor/consumidor que acessam um buffer compartilhado de memória.
Copyright © 2016 AIEC.