Sistemas Operacionais
Prof. Galvez
PROBLEMA DE SEÇÃO CRITICA
PROBLEMA DE SEÇÃO CRITICA
PROBLEMA DE SEÇÃO CRITICA
PROBLEMA DE SEÇÃO CRITICA
PROBLEMA DE SEÇÃO CRITICA
PROBLEMA DE SEÇÃO CRITICA
SEÇÃO CRÍTICA: parte do código de um processo que acessa uma estrutura de dados compartilhada
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 Critica 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, enquanto o processo Escritor estiver inserindo um nome na fila, o processo Leitor não poderá retirar nomes da fila, e vice-versa.
PROBLEMA DE SEÇÃO CRITICA
POSTERGAÇÃO x DEADLOCK
DEADLOCK
Os computadores possuem diversos recursos que só podem ser usados por
um processo de cada vez.
O fato de haver dois processos usando a impressora simultaneamente leva a
resultados indesejáveis.
Em sistemas multiprogramados, a questão do acesso aos recursos torna-se
um pouco mais complicada.
O processo A solicita e consegue permissão para usar a impressora. O
processo B requer e também consegue permissão para usar a unidade de fita. A
seguir, o processo A pede acesso à unidade de fita, mas a solicitação não vai
poder ser atendida até que o processo B libere esta unidade.
Infelizmente, em vez de liberar a unidade de fita, B solicita permissão para usar
a impressora.
Neste ponto, ambos os processos estão bloqueados, e assim permanecerão
para sempre.
Esta situação é conhecida como DEADLOCK.
OUTRAS SOLUÇÕES
SPIN-LOCK
SEMÁFOROS
MENSAGENS.
Send ( msg a ser enviada, destinatário da msg )
Receive ( endereço da variável do processo onde deverá ser colocada a msg lida )