Ebook 1
Ebook 1
Ebook 1
br
SISTEMAS DISTRIBUÍDOS
CONCEITOS INICIAIS
Autor: Dr. Sidartha Azevedo Lobo de Carvalho
Revisor: Lizandro de Souza
INICIAR
https://student.ulife.com.br/ContentPlayer/Index?lc=0WpWFVxyjm17dDTIKDK8ig%3d%3d&l=P6rtClUciA4aYZ7tXJvpXA%3d%3d&cd=cKEW73t0B5D… 1/35
11/6/22, 2:52 PM Ead.br
introdução
Introdução
Nesta unidade, você vai aprender sobre os principais conceitos que permeiam o
mundo dos sistemas distribuídos, as principais características que são usadas
para classificar esses sistemas e como ocorre a comunicação entre os processos
que executam dentro dos programas do usuário e dos servidores.
https://student.ulife.com.br/ContentPlayer/Index?lc=0WpWFVxyjm17dDTIKDK8ig%3d%3d&l=P6rtClUciA4aYZ7tXJvpXA%3d%3d&cd=cKEW73t0B5D… 2/35
11/6/22, 2:52 PM Ead.br
Características de um
Sistema Distribuído
https://student.ulife.com.br/ContentPlayer/Index?lc=0WpWFVxyjm17dDTIKDK8ig%3d%3d&l=P6rtClUciA4aYZ7tXJvpXA%3d%3d&cd=cKEW73t0B5D… 3/35
11/6/22, 2:52 PM Ead.br
https://student.ulife.com.br/ContentPlayer/Index?lc=0WpWFVxyjm17dDTIKDK8ig%3d%3d&l=P6rtClUciA4aYZ7tXJvpXA%3d%3d&cd=cKEW73t0B5D… 4/35
11/6/22, 2:52 PM Ead.br
https://student.ulife.com.br/ContentPlayer/Index?lc=0WpWFVxyjm17dDTIKDK8ig%3d%3d&l=P6rtClUciA4aYZ7tXJvpXA%3d%3d&cd=cKEW73t0B5D… 5/35
11/6/22, 2:52 PM Ead.br
usuário tentar acessar um filme que não está presente no computador que tem
somente os 80 filmes, vai haver inconsistência de informações e o usuário não
irá receber o serviço desejado.
compartilhamento de recursos;
abertura;
concorrência;
escalabilidade;
tolerância a falhas;
disponibilidade;
transparência.
Compartilhamento de recursos:
deve especificar quais recursos estão
disponíveis para serem acessados, como eles devem ser acessados e
modificados, como o seu compartilhamento deve ser realizado dentro
da rede e a implementação da interface de interação com o recurso
e/ou servidor.
Abertura:
um sistema distribuído aberto oferece serviços com base em
regras e padrões conhecidos pela comunidade, permitindo que outros
sistemas que também conheçam esses padrões possam se comunicar
com ele. Abertura é a capacidade de interagir com outros sistemas
abertos (conhecem/implementam os mesmos protocolos). Um sistema
aberto é independente de hardware, plataformas ou linguagens de
https://student.ulife.com.br/ContentPlayer/Index?lc=0WpWFVxyjm17dDTIKDK8ig%3d%3d&l=P6rtClUciA4aYZ7tXJvpXA%3d%3d&cd=cKEW73t0B5D… 6/35
11/6/22, 2:52 PM Ead.br
https://student.ulife.com.br/ContentPlayer/Index?lc=0WpWFVxyjm17dDTIKDK8ig%3d%3d&l=P6rtClUciA4aYZ7tXJvpXA%3d%3d&cd=cKEW73t0B5D… 7/35
11/6/22, 2:52 PM Ead.br
Acesso:
o sistema distribuído não permite que o usuário saiba como os
dados são representados dentro do sistema distribuído, por exemplo,
se é usado um banco de dados relacional ou orientado a objetos, se é
usado tecnologia X ou Y, dentre outras informações.
Localização:
o sistema distribuído não permite que o usuário do
sistema tenha conhecimento sobre a localização dos recursos, se ele é
fornecido por máquina X com IP 10.0.0.1, ou por máquina Y com IP
https://student.ulife.com.br/ContentPlayer/Index?lc=0WpWFVxyjm17dDTIKDK8ig%3d%3d&l=P6rtClUciA4aYZ7tXJvpXA%3d%3d&cd=cKEW73t0B5D… 8/35
11/6/22, 2:52 PM Ead.br
https://student.ulife.com.br/ContentPlayer/Index?lc=0WpWFVxyjm17dDTIKDK8ig%3d%3d&l=P6rtClUciA4aYZ7tXJvpXA%3d%3d&cd=cKEW73t0B5D… 9/35
11/6/22, 2:52 PM Ead.br
Acesso
O não permite que o usuário saiba como os
dados são representados dentro do sistema.
Por exemplo, se é usado um banco de dados
relacional ou orientado a objetos, se é usada
tecnologia X ou Y, dentre outras
informações.
Dito isso, você conseguiu identificar diversas características que podem estar
presentes nos sistemas distribuídos? Percebeu como elas estão relacionadas? A
https://student.ulife.com.br/ContentPlayer/Index?lc=0WpWFVxyjm17dDTIKDK8ig%3d%3d&l=P6rtClUciA4aYZ7tXJvpXA%3d%3d&cd=cKEW73t0B5… 10/35
11/6/22, 2:52 PM Ead.br
Taxonomia de Flynn
A taxonomia proposta por Flynn (1972), chamada de taxonomia de Flynn, é uma
classificação de arquiteturas para computadores. A taxonomia de Flynn é usada
na arquitetura e definição de funcionalidades de processadores modernos.
https://student.ulife.com.br/ContentPlayer/Index?lc=0WpWFVxyjm17dDTIKDK8ig%3d%3d&l=P6rtClUciA4aYZ7tXJvpXA%3d%3d&cd=cKEW73t0B5… 11/35
11/6/22, 2:52 PM Ead.br
Fluxo de
instruções/Fluxo de Canal único Múltiplos canais
dados
praticar
Vamos Praticar
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor
incididunt ut labore et dolore magna aliqua, assinale a
alternativa correta
:
a)
Compartilhamento de recursos.
b)
Abertura.
c)
Concorrência.
d)
Escalabilidade.
https://student.ulife.com.br/ContentPlayer/Index?lc=0WpWFVxyjm17dDTIKDK8ig%3d%3d&l=P6rtClUciA4aYZ7tXJvpXA%3d%3d&cd=cKEW73t0B5… 12/35
11/6/22, 2:52 PM Ead.br
e)
Disponibilidade.
https://student.ulife.com.br/ContentPlayer/Index?lc=0WpWFVxyjm17dDTIKDK8ig%3d%3d&l=P6rtClUciA4aYZ7tXJvpXA%3d%3d&cd=cKEW73t0B5… 13/35
11/6/22, 2:52 PM Ead.br
Comunicação entre
Processos
https://student.ulife.com.br/ContentPlayer/Index?lc=0WpWFVxyjm17dDTIKDK8ig%3d%3d&l=P6rtClUciA4aYZ7tXJvpXA%3d%3d&cd=cKEW73t0B5… 14/35
11/6/22, 2:52 PM Ead.br
https://student.ulife.com.br/ContentPlayer/Index?lc=0WpWFVxyjm17dDTIKDK8ig%3d%3d&l=P6rtClUciA4aYZ7tXJvpXA%3d%3d&cd=cKEW73t0B5… 15/35
11/6/22, 2:52 PM Ead.br
conjuntos de informações:
identificação do processo;
quotas de recursos;
privilégios.
Identificação do processo:
os processos podem ser identificados por
dois campos específicos: o identificador único do processo (
Process
Identification
- PID) e o criador do processo (Owner).
Quotas de recursos:
esse campo de informações reúne os dados sobre
a quantidade de recursos que o processo poderá utilizar. Podem ser
informações sobre o tamanho máximo de memória, tamanho máximo
de arquivos abertos simultaneamente, ou outras informações que
possam limitar a execução do processo.
Privilégios:
cada processo pode conter informações diferentes de
privilégios, que definem as permissões de acesso ao sistema. Esse
campo reúne as informações definidas pelo aplicativo. Por exemplo, um
processo pode ter permissão de acesso a arquivos de outros usuários,
enquanto outro processo pode estar restrito a um usuário apenas.
https://student.ulife.com.br/ContentPlayer/Index?lc=0WpWFVxyjm17dDTIKDK8ig%3d%3d&l=P6rtClUciA4aYZ7tXJvpXA%3d%3d&cd=cKEW73t0B5… 16/35
11/6/22, 2:52 PM Ead.br
reflita
Reflita
Você consegue identificar sobre outras formas de identificar
processos de forma única? Como identificá-los de forma correta
quando há milhares executando? Com o que devemos nos
preocupar? E se houver identificadores duplicados? Como
podemos evitar que isso aconteça? Pense sobre isso!
https://student.ulife.com.br/ContentPlayer/Index?lc=0WpWFVxyjm17dDTIKDK8ig%3d%3d&l=P6rtClUciA4aYZ7tXJvpXA%3d%3d&cd=cKEW73t0B5… 17/35
11/6/22, 2:52 PM Ead.br
Vale ressaltar que a escolha dos processos concorrentes que irão ser executados
é realizada pelo escalonador. Esse é um componente integrante do sistema
operacional, que reúne uma série de critérios para o escalonamento e seleção
dos processos.
https://student.ulife.com.br/ContentPlayer/Index?lc=0WpWFVxyjm17dDTIKDK8ig%3d%3d&l=P6rtClUciA4aYZ7tXJvpXA%3d%3d&cd=cKEW73t0B5… 18/35
11/6/22, 2:52 PM Ead.br
https://student.ulife.com.br/ContentPlayer/Index?lc=0WpWFVxyjm17dDTIKDK8ig%3d%3d&l=P6rtClUciA4aYZ7tXJvpXA%3d%3d&cd=cKEW73t0B5… 19/35
11/6/22, 2:52 PM Ead.br
https://student.ulife.com.br/ContentPlayer/Index?lc=0WpWFVxyjm17dDTIKDK8ig%3d%3d&l=P6rtClUciA4aYZ7tXJvpXA%3d%3d&cd=cKEW73t0B5… 20/35
11/6/22, 2:52 PM Ead.br
Troca de Mensagens
Na comunicação entre os elementos dos sistemas distribuídos, podemos ter
chamadas síncronas ou assíncronas. Nas chamadas síncronas, o usuário faz uma
requisição a um servidor e fica aguardando a resposta e, enquanto isso, não
pode fazer outro processamento, devendo ficar em modo de espera até receber
https://student.ulife.com.br/ContentPlayer/Index?lc=0WpWFVxyjm17dDTIKDK8ig%3d%3d&l=P6rtClUciA4aYZ7tXJvpXA%3d%3d&cd=cKEW73t0B5… 21/35
11/6/22, 2:52 PM Ead.br
https://student.ulife.com.br/ContentPlayer/Index?lc=0WpWFVxyjm17dDTIKDK8ig%3d%3d&l=P6rtClUciA4aYZ7tXJvpXA%3d%3d&cd=cKEW73t0B5… 22/35
11/6/22, 2:52 PM Ead.br
praticar
Vamos Praticar
A escolha da arquitetura que será utilizada para projetar um sistema distribuído é
essencial para o seu funcionamento e, dentre tantas opções, deve-se escolher a mais
adequada para cada tipo de problema a ser resolvido. Dito isso, assinale a alternativa
que apresenta qual estilo arquitetural possui uma arquitetura distribuída e não
apresenta ponto único de falha, além disso, permite que os nós da rede se comportem
como emissor e receptor de dados.
a)
Peer-to-peer
.
b)
Cliente-servidor.
c)
Quadro negro.
d)
Repositório.
e)
Orientada a serviços.
https://student.ulife.com.br/ContentPlayer/Index?lc=0WpWFVxyjm17dDTIKDK8ig%3d%3d&l=P6rtClUciA4aYZ7tXJvpXA%3d%3d&cd=cKEW73t0B5… 23/35
11/6/22, 2:52 PM Ead.br
Modelo Cliente/Servidor
Definição e Exemplos
A arquitetura cliente-servidor é, historicamente, a mais utilizada, e continua
sendo até os dias de hoje.
https://student.ulife.com.br/ContentPlayer/Index?lc=0WpWFVxyjm17dDTIKDK8ig%3d%3d&l=P6rtClUciA4aYZ7tXJvpXA%3d%3d&cd=cKEW73t0B5… 24/35
11/6/22, 2:52 PM Ead.br
saiba mais
Saiba mais
Para saber mais sobre os protocolos TCP, IP,
HTTP e DNS, consulte o livro de Coulouris
(2013), capítulo 3,
Redes de computadores e
interligação de rede
, a partir da página 81. Bons
estudos!
ACESSAR
https://student.ulife.com.br/ContentPlayer/Index?lc=0WpWFVxyjm17dDTIKDK8ig%3d%3d&l=P6rtClUciA4aYZ7tXJvpXA%3d%3d&cd=cKEW73t0B5… 25/35
11/6/22, 2:52 PM Ead.br
https://student.ulife.com.br/ContentPlayer/Index?lc=0WpWFVxyjm17dDTIKDK8ig%3d%3d&l=P6rtClUciA4aYZ7tXJvpXA%3d%3d&cd=cKEW73t0B5… 26/35
11/6/22, 2:52 PM Ead.br
Dito isso, a seguir você vai aprender um pouco mais sobre os protocolos que
podem ser utilizados na comunicação entre os clientes e servidores.
Protocolos
Um dos principais protocolos usados no modelo cliente-servidor é o protocolo de
requisição-resposta, que auxilia na definição de como as mensagens devem ser
trocadas entre as entidades comunicantes, ou seja, o cliente e o servidor. Esse
protocolo suporta a troca de mensagens e via dupla, permitindo ao cliente tanto
enviar como receber mensagens, e o mesmo se aplica ao servidor.
protocolo
request
(requisição) (R);
protocolo
request-reply
(requisição-resposta) (RR);
protocolo
request-reply-acknowledge reply
(requisição-resposta-
reconhecimento da resposta) (RRA).
No protocolo
request
, uma única mensagem de requisição é enviada do cliente
para o servidor. O protocolo
request
, geralmente, é utilizado quando não há
necessidade de o servidor retornar nenhum valor/dado/recurso para o cliente,
https://student.ulife.com.br/ContentPlayer/Index?lc=0WpWFVxyjm17dDTIKDK8ig%3d%3d&l=P6rtClUciA4aYZ7tXJvpXA%3d%3d&cd=cKEW73t0B5… 27/35
11/6/22, 2:52 PM Ead.br
ou seja, pode ser usado para ativar algum mecanismo no servidor, como efetuar
o logout de uma conta em um site. Não há necessidade de confirmar ao cliente
que a operação foi realmente realizada e, por isso, não precisa de uma resposta
do servidor.
O protocolo
request-reply
(requisição-resposta) é utilizado pela maioria dos
sistemas que são baseados no estilo arquitetural cliente-servidor. Geralmente, a
maioria das mensagens trafegadas no cliente-servidor é de requisição e
resposta, ou seja, o cliente envia uma requisição ao servidor e espera uma
resposta para completar o processamento. Além disso, embora se espere uma
resposta, não é necessária a confirmação do recebimento por parte do cliente.
Pode haver inconsistência na comunicação se a mensagem de resposta do
servidor por perdida na rede durante o transporte, e isso pode levar o cliente a
esperar sem receber a resposta. Há regras de segurança que previnem que o
cliente espere por tempo indeterminado, ou seja, após algum tempo, o cliente
pode assumir que a mensagem foi perdida e enviar uma nova requisição ao
servidor. As falhas de comunicação ocasionadas pela perda de datagramas UDP
podem ser mascaradas pela retransmissão das requisições pelo cliente e de
acordo com o registro das respostas recebidas.
O protocolo
request-reply-acknowledge reply
(requisição-resposta-reconhecimento
da resposta) é estruturado na troca de três mensagens: uma mensagem de
requisição, uma de resposta e, a última, de confirmação da resposta. A última
https://student.ulife.com.br/ContentPlayer/Index?lc=0WpWFVxyjm17dDTIKDK8ig%3d%3d&l=P6rtClUciA4aYZ7tXJvpXA%3d%3d&cd=cKEW73t0B5… 28/35
11/6/22, 2:52 PM Ead.br
https://student.ulife.com.br/ContentPlayer/Index?lc=0WpWFVxyjm17dDTIKDK8ig%3d%3d&l=P6rtClUciA4aYZ7tXJvpXA%3d%3d&cd=cKEW73t0B5… 29/35
11/6/22, 2:52 PM Ead.br
praticar
Vamos Praticar
Os protocolos de comunicação guiam como deve acontecer a comunicação entre as
entidades comunicantes. Além disso, os protocolos são essenciais para permitir que
entidades que não se conhecem possam se comunicar, dado que usam o mesmo
protocolo. Dito isso, o que caracteriza o protocolo requisição-resposta-reconhecimento
(
request-reply-acknowledge
)?
a)
É enviada somente uma mensagem de requisição, geralmente para ativar
algum método no servidor, e se usa o UDP.
b)
Há somente duas mensagens: uma que é requisição do cliente e outra que é
a resposta do servidor.
c)
Há uma mensagem que é enviada pelo cliente para afirmar que recebeu a
resposta do servidor.
d)
Há uma única mensagem que é enviada pelo cliente usando o protocolo
TCP/IP.
e)
Falta de mensagem de reconhecimento da resposta do servidor.
https://student.ulife.com.br/ContentPlayer/Index?lc=0WpWFVxyjm17dDTIKDK8ig%3d%3d&l=P6rtClUciA4aYZ7tXJvpXA%3d%3d&cd=cKEW73t0B5… 30/35
11/6/22, 2:52 PM Ead.br
https://student.ulife.com.br/ContentPlayer/Index?lc=0WpWFVxyjm17dDTIKDK8ig%3d%3d&l=P6rtClUciA4aYZ7tXJvpXA%3d%3d&cd=cKEW73t0B5… 31/35
11/6/22, 2:52 PM Ead.br
indicações
Material
Complementar
LIVRO
https://student.ulife.com.br/ContentPlayer/Index?lc=0WpWFVxyjm17dDTIKDK8ig%3d%3d&l=P6rtClUciA4aYZ7tXJvpXA%3d%3d&cd=cKEW73t0B5… 32/35
11/6/22, 2:52 PM Ead.br
FILME
TRAILER
https://student.ulife.com.br/ContentPlayer/Index?lc=0WpWFVxyjm17dDTIKDK8ig%3d%3d&l=P6rtClUciA4aYZ7tXJvpXA%3d%3d&cd=cKEW73t0B5… 33/35
11/6/22, 2:52 PM Ead.br
conclusão
Conclusão
Nesta unidade, você aprendeu um pouco mais sobre os sistemas distribuídos.
Você conheceu as características que definem um sistema distribuído e como
analisá-las, bem como as características de escalabilidade, abertura, tolerância a
falhas, concorrência, transparência, dentre outras. Além disso, você entendeu
como se estrutura um sistema distribuído a partir de protocolos de
comunicação, o que são e como funcionam os processos dentro do sistema
operacional que gerencia os recursos da máquina (
hardware
) de um servidor ou
cliente e como identificar os processos. Por fim, você conheceu o modelo cliente-
servidor e suas principais características, como os elementos que o compõem e
os protocolos que são utilizados para comunicação.
referências
Referências
Bibliográficas
COULOURIS, G.
Sistemas distribuídos
: conceitos e projeto. São Paulo:
Bookman, 2013.
https://student.ulife.com.br/ContentPlayer/Index?lc=0WpWFVxyjm17dDTIKDK8ig%3d%3d&l=P6rtClUciA4aYZ7tXJvpXA%3d%3d&cd=cKEW73t0B5… 34/35
11/6/22, 2:52 PM Ead.br
TANENBAUM, A. S.
Sistemas distribuídos princípios e práticas
. São Paulo:
Pearson Prentice Hall, 2007.
https://student.ulife.com.br/ContentPlayer/Index?lc=0WpWFVxyjm17dDTIKDK8ig%3d%3d&l=P6rtClUciA4aYZ7tXJvpXA%3d%3d&cd=cKEW73t0B5… 35/35