Processos, Threads, Semáforos e Sistemas Distribuídos

Classificado em Computação

Escrito em em português com um tamanho de 3,5 KB

Conceitos Essenciais de Processos e Concorrência

Multithreads e Processos Independentes

Um processo pode ter múltiplos threads. A maneira mais simples de implementar a concorrência é quando cada processo tem seu próprio contexto (processos independentes).

Subprocesso

Existe dependência entre processos, possuindo cada um seu PCB (Process Control Block) próprio.

Diferença entre Processos Foreground e Background

  • Foreground: Permite comunicação direta com o usuário durante seu processamento.
  • Background: Não existe comunicação com o usuário durante o processo.

Exemplos de Aplicações CPU-Bound e I/O-Bound

  • CPU-Bound: O processo passa a maior parte do tempo em execução ou pronto (Exemplo: operações científicas).
  • I/O-Bound: O processo passa a maior parte do tempo em espera (Exemplo: operações de Entrada/Saída - E/S).

Aplicação Concorrente

É a comunicação entre processos, como compartilhar um buffer para trocar informações.

Sincronização e Controle de Processos

  • FORK: Cria outro processo para execução concorrente.
  • JOIN: Permite a sincronização de processos.

O que são Semáforos?

Implementam de forma simples a exclusão mútua e a sincronização entre os processos.

  • Down (P): Decrementa uma variável.
  • Up (V): Incrementa uma variável.

Vantagem da Forma Assíncrona

Evita o bloqueio e aumenta a eficácia do sistema.

Deadlock

Situação em que um processo aguarda indefinidamente por um recurso. A solução é a prevenção, detecção e correção.

Comunicação em Sistemas Distribuídos

Formas de Envio de Mensagens

  • Multicast: Uma única mensagem é enviada para todos os membros do grupo por meio de uma única operação (mais usada).
  • Broadcast: Uma única mensagem é enviada para todos os processos do sistema distribuído.
  • Unicast: Uma mensagem é enviada para um único processo.

Diferença entre as Formas de Envio Multicast

O envio pode ser implementado via:

  • Hardware de Rede: Fornecido pelo padrão Ethernet.
  • Árvore de Distribuição: A mensagem percorre da raiz até as folhas da árvore.

Tipos de Grupos de Processos

Os grupos podem ser classificados por permissão de envio e tipo de entidade:

  • Grupo Fechado: Somente membros podem enviar mensagens. O processo entrega para si mesmo a mensagem disseminada.
  • Grupo Aberto: Processos fora do grupo podem mandar mensagens.
  • Grupos de Processos: Grupo onde as entidades que se comunicam são processos.
  • Grupos de Objetos: Conjunto de objetos (instâncias da mesma classe) que processam o mesmo conjunto de invocações.

Grupos Sobrepostos vs. Não Sobrepostos

  • Grupos Sobrepostos: Entidades podem pertencer a vários grupos.
  • Grupos Não Sobrepostos: Qualquer processo pertence, no máximo, a um grupo.

Entradas relacionadas: