Conceitos de Processos, Mutex e Deadlock em Sistemas

Computação3,6 KB

Parbegin e Execução Paralela

Parbegin é uma estrutura utilizada para indicar o início e o fim de uma seleção de execução paralela, permitindo que a execução sequencial seja dividida entre vários fluxos.

Sua forma geral (segundo Dijkstra) é:

parbegin Proposição1; Proposição2; ... Proposição n; parend

Mutex e Exclusão Mútua

Mutex: Ocorre quando um processo impede que outros acessem dados compartilhados simultaneamente. Aplica-se quando processos executam operações que não estão em disputa, permitindo que outros prossigam concorrentemente.

Seções Críticas

Quando um processo acessa dados compartilhados, ele entra em uma seção crítica:

  • Todos os outros processos são excluídos de suas próprias seções críticas.
  • Processos fora de suas seções críticas podem continuar a execução.
  • Ao sair da seção crítica, o sistema deve permitir que o próximo processo em espera entre.
  • O processo tem acesso exclusivo; outros que requerem o mesmo recurso permanecem em espera.
  • Programas não devem ser bloqueados em sua seção crítica.
  • Se um processo terminar (voluntária ou involuntariamente), o sistema operacional deve liberar o mutex.

Deadlock (Impasse)

Deadlock ocorre quando um processo aguarda um evento que nunca ocorrerá, deixando um ou mais processos em uma situação de espera infinita.

Tráfego e Deadlock

O exemplo clássico é um cruzamento: se quatro carros chegam simultaneamente e cada um ocupa um recurso (quadrante) esperando pelo próximo, ocorre um impasse circular.

Impasse de Recurso Simples

Ocorre devido à retenção de recursos utilizáveis em série:

  • Cada processo aguarda que outro libere um recurso.
  • O recurso retido não é liberado até que o processo obtenha o próximo recurso necessário.
  • Existe uma espera circular.

Detecção e Adiamento Indefinido

Detecção: Identifica ciclos de dependência entre processos e recursos. Se houver um ciclo, o sistema está em deadlock.

Adiamento Indefinido: Ocorre quando o escalonamento de recursos é injusto. Pode ser evitado com a técnica de envelhecimento (aumentar a prioridade de um processo enquanto ele espera).

Interlock em Sistemas de Spool

Sistemas de spool aumentam a capacidade do sistema, mas são propensos a deadlocks. Para reduzir riscos, deve-se:

  • Prover espaço de armazenamento maior que o esperado.
  • Limitar a leitura de novos trabalhos quando o spool atingir 75% da capacidade.
  • Utilizar alocação dinâmica de espaço.

As Quatro Condições de Coffman

Para que um deadlock ocorra, quatro condições devem ser atendidas:

  1. Exclusão Mútua: Controle exclusivo dos recursos.
  2. Hold and Wait: Manter recursos alocados enquanto espera por outros.
  3. Não preempção: Recursos não podem ser retirados à força.
  4. Espera Circular: Cadeia de processos onde cada um retém um recurso exigido pelo próximo.

Recuperação de Deadlock

A recuperação é complexa devido a:

  • Dificuldade em identificar se o sistema realmente parou.
  • Sobrecarga ao suspender e retomar processos.
  • Necessidade de intervenção manual do operador.
  • Prioridades de processos podem ser arbitrárias ou incorretas.

Baixar

PDF Word HTML