A comunicação é fundamental em sistemas distribuídos e sempre é feita através da troca de mensagens, diferentemente dos sistemas centralizados. Os processos em máquinas diferentes precisam concordar em padrões de comunicação para enviar e receber mensagens corretamente. Existem diferentes tipos de comunicação como síncrona, assíncrona, persistente e transiente.
Regulamento do Festival de Teatro Negro - FESTIAFRO 2024 - 10ª edição - CEI...
Sistemas Distribuídos - Aula 3
1. PROCESSOS
• Diferentes tipos de processos desempenham papel crucial
em sistemas distribuídos.
• O conceito, que vem de S.O., define processos como
programas em execução.
• Usar processos multithreading auxiliam em melhoria de
desempenho em sistemas cliente-servidor
SISTEMAS DISTRIBUÍDOS
2. THREADS
• Vários processadores virtuais criados pelo S.O. são
monitorados auxiliados pelo uso de uma tabela de processos
que contém entradas para armazenar valores de registro
de CPU, mapas de memória, entre outros.
• Um processo em execução está sendo executado em um dos
processadores virtuais do S.O. no momento.
SISTEMAS DISTRIBUÍDOS
Processos
3. THREADS USO EM SISTEMAS NÃO
DISTRIBUÍDOS
• Distribuição de várias tarefas concorrentes, sem
que o processo inteiro seja bloqueado em espera a
determinada resposta;
• Em sistemas multi-core, cada thread pode ser
executada ao mesmo tempo em processadores
distintos;
SISTEMAS DISTRIBUÍDOS
Processos
4. THREADS EM SISTEMAS DISTRIBUÍDOS
• Proporcionam um meio conveniente para permitir
chamadas bloqueadoras de sistema sem bloquear
o processo inteiro no qual o thread está
executando;
SISTEMAS DISTRIBUÍDOS
Processos
5. CLIENTES MULTITHREAD
• Usados para ocultar latências de comunicação,
separando threads de envio/recebimento de dados
com threads de processamento da interface.
• Torna possível recebimento de vários arquivos de uma
página WEB ao mesmo tempo;
• Torna possível acesso a vários servidores (redundantes),
que servirão os dados independentemente, gerando
maior velocidade.
SISTEMAS DISTRIBUÍDOS
Processos
6. SERVIDORES MULTITHREAD
• Além de simplificar o código do servidor, explora
paralelismo para obter alto desempenho, mesmo
em sistemas monoprocessadores;
• Um thread despachante cria a divisão de vários threads
com tarefas distintas, como ler disco, receber dados de
socket, enviar dados para socket, atender N usuários
simultaneamente;
• O thread despachante atribui a requisição a um thread
operário ocioso (bloqueado).
• Servidores Monothread não poderiam atender a
um segundo usuário enquanto lê disco!
SISTEMAS DISTRIBUÍDOS
Processos
11. Comunicação em sistemas distribuídos é um ponto
fundamental
◦ É necessário estudar a maneira em que os
processos em diferentes maquinas podem trocar
informações.
◦ a comunicação sempre é feita através de troca de
mensagens diferente dos sistemas centralizados
onde esse processo pode ser feito através de
primitivas baseadas em memória compartilhada.
SISTEMAS DISTRIBUÍDOS
Comunicação
12. A comunicação entre processos em SD, em geral, é
representada através de linhas de tempo e setas
que indicam a origem e o destino da mensagem.
SISTEMAS DISTRIBUÍDOS
Comunicação
13. Ao trocar mensagens duas ou mais máquinas devem
concordar em, por exemplo:
◦ No nível de sinal que será colocado na interface (característica
física);
◦ Onde começa e onde termina os bits de que compõe a mensagem
(característica de enlace de dados);
◦ Onde, quando e como os erros serão detectados;
◦ Como dados primitivos como caracteres, inteiros, números serão
representados e com que precisão.
◦ Etc.
Portanto, para torna fácil é necessário que os sistemas
obedeçam um padrão de interfaces e regras de comunicação
(Sistema Aberto).
SISTEMAS DISTRIBUÍDOS
Comunicação
14. Figure 4-1. Layers, interfaces, and protocols in the OSI
model.
Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved. 0-13-239227-5
Pilha Básica de Rede
Camadas de Alto Nível (Opcional)
SISTEMAS DISTRIBUÍDOS
Comunicação
15. Figure 4-2. A typical message as it appears on the network.
Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved. 0-13-239227-5
SISTEMAS DISTRIBUÍDOS
Comunicação
17. Figure 4-3. An adapted reference model for networked
communication.
Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved. 0-13-239227-5
RPC
RMI Multicast Eventos
SISTEMAS DISTRIBUÍDOS
Comunicação
19. Terminal de comunicação permitindo a aplicação
enviar e ler dados
Definido como um “endpoint para comunicação”
Junção de IP + Porta
Portas < 1024 são consideradas “well-known”
- TELNET uses port 23
- FTP uses port 21
- HTTP server uses port 80
SISTEMAS DISTRIBUÍDOS
Comunicação
Transiente Orientada a Mensagem
20. message
agreed portany port socketsocket
Internet address = 138.37.88.249Internet address = 138.37.94.248
other ports
client server
SISTEMAS DISTRIBUÍDOS
Comunicação
Transiente Orientada a Mensagem
21. Figure 4-14. The socket primitives for TCP/IP.
SISTEMAS DISTRIBUÍDOS
Comunicação
Transiente Orientada a Mensagem
22. MPI - Inteface
De passagem de
mensagem
SISTEMAS DISTRIBUÍDOS
Comunicação
Transiente Orientada a Mensagem
23. Persistente Orientada a Mensagem
Enfileiramento
De Mensagem
SISTEMAS DISTRIBUÍDOS
Comunicação
24. Persistente Orientada a Mensagem
Enfileiramento de Mensagem
SISTEMAS DISTRIBUÍDOS
Comunicação