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.