Testes de Convergência
Os processos se comunicam através da passagem de dados de um processo para o outro
Uma forma de implementar essa passagem de dados é através das variáveis compartilhadas pelos processos envolvidos na comunicação
A passagem de dados acontece quando um processo escreve em uma variável que será lida por outro processo Sistemas Operacionais - Aula 03
1
Seção Crítica
A quantidade exata de memória compartilhada entre os processos pode variar conforme o programa
Processos podem compartilhar todo o espaço de endereçamento, apenas um segmento de memória, algumas estruturas de dados ou algumas variáveis
Sistemas Operacionais - Aula 03
2
Seção Crítica
Vamos chamar de seção crítica aquela parte do código de um processo que acessa uma estrutura de dados compartilhada
Por exemplo, o código do Escritor que insere nomes de arquivos na fila e o código do Leitor que retira esses nomes são seções críticas O problema da seção crítica está em garantir que, quando um processo está executando sua seção crítica, nenhum outro processo entre na sua respectiva seção crítica
No exemplo, isso significa que, enquanto o processo Escritor estiver inserindo um nome na fila, o processo Leitor não poderá retirar nomes da fila, e vice-versa
Sistemas Operacionais - Aula 03
3
Seção Crítica
Exemplo – Implementação do Problema de Seção Crítica
Int x;
X=0;
Parbegin
++x;
++x;
Parend
Sistemas Operacionais - Aula 03
4
Seção Crítica
Não é possível eliminar as variáveis compartilhadas de um programa concorrente quando elas são o mecanismo de comunicação entre os processos
A solução está em controlar o acesso dos processos a essas variáveis compartilhadas de modo a garantir que um processo não acesse uma estrutura de dados enquanto essa estiver sendo atualizada por outro processo
Sistemas Operacionais - Aula 03
5
Seção Crítica
Uma