Anda di halaman 1dari 27

Sistemas distribuídos

Um sistema distribuído é um conjunto de computadores independentes entre si que se


apresenta a seus usuários como um sistema único e coerente – Tanenbaum/Van Steen

O que são Sistemas Distribuídos?


Um Sistema Distribuído-SD é uma coleção de computadores independentes que aparenta a seus usuários
ser um sistema único e coerente.

Um sistema distribuído é aquele que as informações em fase de processamento são distribuídas para
vários computadores, em vez de ficarem confinadas a uma única máquina [Sommervillle, 2003].

Dois aspectos:
● Computadores independentes
● Um único sistema middleware

Exemplos de SDs:
● Amazon Marketplace ● Facebook
● Google ● Twitter
● Yahoo ● Youtube

O que é um middleware?
Middleware é o software que conecta programas separados e já existentes. Normalmente fica entre a
aplicação e o SO.

Note a existência da interface padrão e da específica.


O middlew. tira a complexidade das camadas mais baixas.

Para suportar computadores e redes simultaneamente, oferecendo uma visão de um sistema único, os
sistemas distribuídos são organizados por meio de uma camada de software.

Sistemas Distribuídos vs. Computação Paralela


● Sistemas forte e fracamente acoplados (único SO?).
● Compartilhamento de memória; comunicação frequente.

Nos sistemas distribuídos o software de sistema é executado em um grupo de processadores fracamente


integrados, que cooperam entre si conectados por uma rede.

Características dos sistemas distribuídos [Coulouris et al, 1994]

● Compartilhamento de recursos: ​Inclui recursos de hardware e software.


● Abertura:​​ Sistemas podem ser ampliados utilizando recursos não proprietários a eles.
● Concorrência: Vários processos podem operar ao mesmo tempo em diferentes computadores na
rede.
● Escalabilidade: São escalonáveis que significa que a capacidade do sistema pode ser aumentada por
acréscimo de novos recursos.
● Tolerância a defeitos:​​ Podem ser tolerantes a algumas falhas de hardware e software.
● Transparência:​​ Usuário não precisa saber da natureza distribuída do sistema.

Desvantagens dos sistemas distribuídos [Coulouris et al, 1994]

● Complexidade:​​ São mais complexos do que os sistemas centralizados.


● Proteção:​​ É mais difícil gerenciar a proteção de um sistema distribuído.
● Dificuldade de gerenciamento:​​ Maior esforço para gerenciamento.
● Imprevisibilidade:​​ Podem ser imprevisíveis em suas respostas.

O desafio para os projetistas de sistemas distribuídos está em projetar software e hardware para que eles
forneçam as características desejáveis dos sistemas distribuídos e ao mesmo tempo minimizem os
problemas inerentes a esses sistemas. Questões relevantes de projetos de sistemas distribuídos são a
identificação de recursos, comunicação, qualidade do serviço e a arquitetura do software.

Um sistema distribuído exige normalmente um software que gerencie as diversas partes e garanta que elas
se comuniquem e troquem dados. Os sistemas distribuídos podem ser implementados com diferentes
linguagens de programação, executados em processadores diferentes e podem utilizar diferentes
protocolos de comunicação. O software de gerenciamento , conhecido por middleware, é uma espécie de
intermediário dos diferentes componentes distribuídos do sistema.

Objetivos de um SD
● Fazer o link entre usuários e recursos; ● Transparência;
● Compartilhamento de recursos; ● Flexibilidade;
● Segurança; ● Escalabilidade.
● Reduzir a comunicação indesejada;

Transparência
Formas de ocultação para os usuários e desenvolvedores de aplicação. Por quê?
Porque deseja-se que o sistema seja percebido como único, ao invés de uma coleção de partes
independentes
● Objetivo: ocultar que os processos e recursos estão fisicamente distribuídos por vários
computadores.
● Um sistema distribuído apresenta aos usuários e aplicações como um único sistema de computador
denominado transparente.
● É uma das métricas de sucesso de um SD.
Sete formas de transparência:
Transparência Descrição

Oculta diferenças na representação de dados e no modo de acesso a


Acesso
um recurso.

Localização Oculta o lugar em que um recurso está localizado.

Migração Oculta que um recurso pode ser movido para outra localização.

Oculta que um recurso pode ser movido para outra localização


Relocação
enquanto em uso.

Replicação Oculta que um recurso é replicado.

Oculta que um recurso pode ser compartilhado por diversos usuários


Concorrência
concorrentes.

Falha Oculta a falha e a recuperação de um recurso.


Tabela 1.1:​​ Diferentes formas de transparência em um sistema distribuído (ISO, 1995).

Escalabilidade
Propriedade que mede a capacidade do sistema em lidar facilmente com uma quantidade crescente de
trabalho.
Três medidas para medir a escalabilidade:
Número de processos e/ou usuários (escalabilidade de tamanho)
Distância máxima entre os nós (escalabilidade geográfica)
Número de domínios administrativos (escalabilidade administrativa)

Motivos de possíveis gargalos em SDs


Conceito Exemplo

Serviços centralizados Um único servidor para todos os usuários.

Dados centralizados Uma única lista telefônica on-line.

Algoritmos centralizados Fazer roteamento com base em informações completas.


Tabela 1.2 ​Exemplos de limitações de escalabilidade.

Características dos algoritmos descentralizados

● Nenhuma máquina tem informação completa do estado do sistema (se uma máquina sair do ar, o
restante do sistema distribuído vai continuar funcionando);
● As máquinas tomam decisões com as informações locais;
● A falha no algoritmo não “quebra” todo o sistema;
● Não existe uma suposição de um relógio global.

Técnica de escalabilidade (1)


● Aumenta a disponibilidade dos recursos
● Balanceamento de carga
● Oculta a latência de comunicação caso haja grande dispersão geográfica

Técnica de escalabilidade (2)


● Sistema DNS é distribuído em várias máquinas por zonas
● O endereço nl.vu.cs.fruits passa por Z1, Z2 e Z3, apenas
Tipos de Sistemas Distribuídos:
● Computação em Cluster (Cluster Computing)
● Computação em Grade (Grid Computing)
● Computação em Nuvem (Cloud Computing)
● Sistemas de Informação Distribuídos
● Sistemas Distribuídos Pervasivos

Computação em Cluster
● Característica homogênea
● Hardware:​​ conjunto de PCs ou estações de trabalho semelhantes
● Conexão entre os hardwares: rede local (LAN)
● Software:
● É normal ter o mesmo SO entre as máquinas
● Geralmente, um único programa executado em paralelo
● Normalmente usada para computação paralela
● Forte acoplamento entre os nós

Computação em Cluster usando Linux

Nó mestre:
Alocar tarefas aos nós, organizar a fila de tarefas e interface com usuários
Provê transparência de localização e migração

1) Quais são as mais importantes formas de transparência definidas em ambientes de


Sistemas Distribuídos? Cite e explique cada uma delas. [3 pontos]
Resposta:
a) Transparência de acesso: oculta diferenças na representação de dados e no modo de
acesso a um recurso.
b) Transparência de localização: oculta o lugar em que um recurso está localizado.
c) Transparência de migração: oculta que um recurso pode ser movido para outra
localização.
d) Transparência de relocação: oculta que um recurso pode ser movido para uma outra
localização enquanto em uso.
e) Transparência de replicação: oculta que um recurso é replicado.
f) Transparência de concorrência: oculta que um recurso pode ser compartilhado por
diversos usuários concorrentes.
g) Transparência de falha: oculta a falha e a recuperação de um recurso.

2) Quais são as duas grandes desvantagens do RMI e do RPC? Lembrando que ambos
dizem respeito aos middlewares de comunicação. [2 pontos]
Resposta: As duas principais desvantagens são:
a) O chamador e o chamado precisam estar ligados e em funcionamento no momento da
comunicação.
b) Os componentes comunicantes devem saber exatamente como se referir um ao outro.

3) Quais são as quatro implementações de arquitetura de sistemas distribuídos,


comumente chamadas de estilos arquitetônicos para sistemas distribuídos? Cite e
explique cada uma delas. [3 pontos]
Resposta:
a) Arquitetura em camadas: os componentes são organizados em camadas, e um
componente na camada Li tem permissão de chamar componentes na camada subjacente
Li-1, mas não o contrário.
b) Arquiteturas baseadas em objetos: cada objeto corresponde ao que definimos como
componente, e esses componentes são conectados por meio de uma chamada remota de
procedimento.
c) Arquiteturas centradas em dados: nessa arquitetura, os processos se comunicam por
meio de um repositório comum (passivo ou ativo), o qual é acessível para todos os
componentes.
d) Arquiteturas baseadas em eventos: os processos se comunicam nessa arquitetura
através da publicação de eventos, que opcionalmente também transportam dados.

O que é uma operação idempotente? A operação de excluir (de um banco de dados) um registro
de um aluno usando o seu identificador (ID) é uma operação idempotente? Justifique a sua
resposta. [2 pontos]
Resposta: a operação idempotente pode ser repetida várias vezes sem causar dano ao
sistema. A operação de excluir um registro de aluno usando o seu ID é uma operação
idempotente, visto que se o registro foi excluído na primeira tentativa, o sistema poderá
tentar outras vezes sem causar danos. Isso porque o sistema não encontrará mais esse
registro.
Atividade Avaliativa II

(3 pontos) É dito que as interfaces são escritas em uma linguagem específica como a IDL
(Interface Definition Language) para simplificar o desenvolvimento de sistemas distribuídos.
Explique em que sentido as IDLs facilitam (ou simplificam) o desenvolvimento de aplicações
distribuídas. Dentro do assunto de interfaces, estabeleça a diferença entre a interface requerida e
a provida.

A IDL é uma linguagem específica e independente de qualquer linguagem para descrever a


API de um determinado componente, ou seja, informa os serviços requeridos e os serviços
fornecidos por um determinado componente. A IDL facilita o desenvolvimento de
aplicações distribuídas, visto que se baseiam em uma linguagem independente das
linguagens de programação, e assim, permite usar a mesma interface (com a mesma IDL)
dos componentes escritos em C++ e Java. A interface requerida é a que descreve os
serviços necessários para que um componente funcione, enquanto que a fornecida
descreve os serviços que o componente oferece.

(2 pontos) Qual a diferença fundamental entre a mobilidade fraca e a mobilidade forte?

A diferença é que na mobilidade fraca o código a ser executado é transferido para a outra
máquina antes da sua execução na máquina-destino, e a sua execução é iniciada desde o
começo. Na mobilidade forte, o segmento da execução é migrado de uma máquina para a
outra. Essencialmente, a execução de um código é iniciada na máquina original e depois a
sua execução é migrada para a outra máquina. Na mobilidade forte, a execução de um
processo pode ser parada, e na sequência, ser movida para a outra máquina; e então, a
execução pode ser retomada a partir do ponto em que parou. Assim, a implementação da
mobilidade forte é mais complexa e requer mais sofisticação.

(3 pontos) Cite e explique os três modelos de comunicação remota entre processos amplamente
utilizados e que foram estudados no âmbito de sistemas distribuídos.

a) Chamada de procedimento remoto: nessa comunicação, um processo chama um


procedimento localizado em outra máquina pertencente a um outro espaço de
endereçamento. O RPC e o RMI são baseados nesse mecanismo de comunicação.

b) Comunicação orientada à mensagem: é uma outra forma de comunicação entre


processos remotos, onde as partes comunicantes (ou os componentes de software)
enviam e recebem mensagens intercambiadas; as mensagens são as unidades básicas de
dados transferidos entre os componentes comunicantes.

c) Comunicação orientada a fluxo: nesta modalidade, um processo envia ou recebe um


fluxo contínuo de dados para/de uma máquina remota. Para entender a diferença, um SMS
denotaria uma implementação de uma comunicação orientada à mensagem, enquanto que
um telefonema induz a uma comunicação orientada a fluxo.

(2 pontos) O que é o endereço ​Care of Address (COA)? Explique o motivo de um único endereço
COA ser compartilhado com múltiplos nós móveis visitantes a uma rede IPv4 externa.

O COA é um endereço que um nó móvel recebe, assim que ele visita uma rede externa (i.e.
quando o nó móvel não está na sua rede nativa). Como há escassez de endereços IPv4,
normalmente os nós móveis visitantes compartilham o mesmo endereço COA de uma rede
externa.

Atividade Avaliativa III

(3 pontos) Descreva os três componentes chave do sistema de nomeação em sistemas


distribuídos, a saber: o nome, o identificador e o endereço.

Um nome em sistema distribuído é uma cadeia de bits ou caracteres, usada para


referenciar uma entidade. Exemplos incluem o nome de um arquivo, impressora e discos.
Um identificador é o elemento que é utilizado para identificar exclusivamente uma entidade.
Diferente do nome, o identificador faz referência sempre à mesma entidade. Finalmente, o
endereço é o ponto de acesso para acessar uma determinada entidade. Para exemplificar,
um telefone pode ser visto como um ponto de acesso de uma pessoa, enquanto que o
número de telefone corresponde ao endereço.

(2 pontos) Qual a diferença fundamental entre a nomeação simples e estruturada?

A nomeação simples faz uso dos identificadores únicos e normalmente não intuitivos para
endereçar uma determinada entidade. O endereço IP e o MAC (Media Access Control) são
exemplos de nomeação simples. A nomeação estruturada faz uso de nomes estruturados
que são compostos por várias partes; tais nomes são fáceis de serem manuseados e
lembrados por humanos. O exemplo de nomes estruturados inclui nomes de host da
Internet (exemplo www.univesp.br). Concluindo, uma das diferenças fundamentais é que a
nomeação simples é mais fácil de ser operada por máquinas, enquanto que a nomeação
estruturada é fácil de ser manuseada pelos usuários.

(2 pontos) Explique quais são as vantagens dos relógios lógicos sobre os relógios físicos.

A sincronização usando relógios lógicos é muito mais simples do que o relógio físico, pois
os relógios físicos dependem de que haja um relógio global (como o UTC) para sincronizar.
Muitas vezes é suficiente para um sistema entrar em um acordo sobre a hora local, o que
não precisa ser necessariamente a hora real. Ao usar relógios lógicos, não precisamos nos
preocupar com a sincronização global dos relógios físicos, mas apenas sincronizar
logicamente o relógio com os nós participantes. Para isso, podemos sincronizar uns com
os outros, utilizando técnicas como o algoritmo de Lamport. Em resumo, o uso de um
relógio físico em um sistema distribuído é muito mais difícil e não é mais preciso do que
um lógico.

(3 pontos) Cite uma vantagem e uma desvantagem dos algoritmos de exclusão mútua
centralizados e distribuídos.

Algoritmo de exclusão mútua centralizado:


Vantagens:
● Fácil de implementar;
● Baixo overhead no envio de mensagens;
● Eles tendem a ser justos, pois os pedidos de acesso são processados em ordem;
● Normalmente, sem inanição e a exclusão mútua é garantida.

Desvantagens:
● O coordenador é um único ponto de falha;
● O coordenado pode ser o gargalo de desempenho.

Algoritmo de exclusão mútua distribuído:


Vantagens:
● Não precisa de um coordenador com um único ponto de falha;
● Exclusão mútua normalmente é garantida sem deadlock ou inanição.
Desvantagens:
● Todos os processos estão envolvidos em todas as decisões (mecanismo lento e
torna a execução lenta);
● Grande número de mensagens necessárias;
● Único ponto de falha substituído por n pontos de falha.
Q1) Nas transações de sistemas distribuídos, há um conjunto de propriedades conhecido
como ACID. Explique as quatro propriedades do ACID existentes nas transações
distribuídas.
Atomicidade
A propriedade de atomicidade garante que as transações sejam atômicas (indivisíveis). A
transação será executada totalmente ou não será executada.
Consistência
A propriedade de consistência garante que o banco de dados passará de uma forma
consistente para outra forma consistente.
Isolamento
A propriedade de isolamento garante que a transação não será interferida por nenhuma
outra transação concorrente.
Durabilidade
A propriedade de durabilidade garante que o que foi salvo, não será mais perdido.

1) Qual é o papel do middleware em um sistema distribuído? ​O papel do middleware é


esconder a complexidade existente nos hardwares distintos e nos sistemas operacionais
que se encontram nas camadas abaixo. Uma outra resposta é dizer que o papel do
middleware em um sistema distribuído é prover uma visão de sistema único, apesar de
haverem SOs e hardwares diferentes nas camadas inferiores.

2) Por que a identificação de erros e falhas em um Sistema Distribuído pode tornar-se uma
tarefa difícil? ​Essa tarefa é um desafio porque geralmente é difícil afirmar que um servidor
ou uma máquina encontram-se fora de operação ou estão lentos pela sobrecarga da rede.
Isso torna desafiante dizer qual é o motivo da falta de resposta. Consequentemente, alguns
sistemas podem informar que um serviço não está disponível, embora, de fato, o servidor
esteja apenas sobrecarregado.

3) Por que nem sempre é uma boa ideia implementar o mais alto grau de transparência
possível nos Sistemas Distribuídos?
Visar o maior grau de transparência possível pode levar à uma perda considerável de
desempenho, o que pode ser inaceitável para algumas aplicações distribuídas.

4) Se um cliente e um servidor estiverem distantes, podemos ver a latência da rede


dominando o desempenho geral. Diga uma das soluções pela qual podemos resolver isso.
Resposta: Uma das soluções seria implementar a comunicação assíncrona. Através dessa
modalidade de comunicação, uma mensagem de chegada pode ser enviada pelo cliente ao
servidor (ou vice-versa), assim que um pacote for recebido com sucesso.

5) Qual a diferença entre uma distribuição horizontal e uma distribuição vertical, no


contexto de Sistemas Distribuídos? ​Resposta: Na distribuição horizontal, um servidor ou
cliente pode ser fisicamente dividido em partes logicamente equivalentes, mas cada um
está operando em sua própria porção do conjunto completo de dados, o que equilibra a
carga (replicação, por exemplo, servidor web replicado ou rede peer-to-peer). Na
distribuição vertical, são colocados componentes logicamente diferentes em máquinas
distintas.
6) Quais são os três componentes da arquitetura de três divisões, ou em Inglês three-tiered
architecture? ​Resposta: Os três componentes podem ser: (1) o cliente; (2) o servidor; e (3)
monitor da transação. Alternativamente, podem ser também: (1) o cliente; (2) o servidor
Web; e (3) servidor da aplicação (o servidor da aplicação é muitas vezes conhecido como
servidor de banco de dados).
7) Ter só um lightweight process (isto é, processo leve) por processo nem sempre é uma
boa ideia. Por quê?
Resposta: Nesse mecanismo, efetivamente temos apenas threads no nível do usuário, o
que significa que qualquer chamada de sistema que causa bloqueio irá colocar todo o
processo em estado de espera (i.e. em wait – irá bloquear todo o processo).
8) Dê dois exemplos de aplicações cliente-servidor em que o uso de um cliente
multi-threaded é mais vantajoso comparado com um cliente com uma única thread.
Explique a sua resposta.
Resposta: (a) Um exemplo seria nos navegadores; o fato de ter múltiplas threads para
baixar imagens diferentes do servidor web e processá-las por cada thread separado
permite que mais imagens sejam processadas concorrentemente. (b) Outro exemplo seria
em uma aplicação de um jogo. Um cliente com múltiplas threads permitiria cada uma lidar
com um segmento da imagem, enquanto outras recebam mais dados.
9) Cite as vantagens e as desvantagens entre um servidor com múltiplas threads e outro
servidor que cria múltiplos processos (em vez de múltiplas threads).
Resposta:
a) A criação de threads não requer uma mudança de contexto, enquanto que a criação de
processos demanda mudança de contexto, o que torna caro criar processos. Criar threads
tem menos sobrecarga para o sistema como um todo.
b) Processos pais não são bloqueados por instruções de bloqueio de processos filhos,
enquanto que as threads do usuário podem bloquear outras threads.
c) Threads compartilham um espaço de endereço, enquanto que os processos não
permitem isso; dependendo da aplicação é benéfico compartilhar o espaço de
endereçamento.
d) Os processos podem ser migrados mais facilmente do que threads (na migração de
código).
10) Quais são as principais diferenças entre chamadas de procedimento remoto (RPCs) e
as invocações de método remoto (RMIs)?
Resposta: Com o RPC, você faz chamadas para um servidor remoto solicitando a execução
de uma função/procedimento. Com RMI, você pode ter referências a objetos remotos e
invocar seus métodos. Além disso, no RMI, você pode passar as referências de objeto,
incluindo referências de objetos locais e remotos.

11) Dê dois exemplos de aplicações que geralmente fazem uso da comunicação persistente
e assíncrona. Explique sua resposta.
Resposta: As aplicações de transferência de arquivos e de e-mails, por exemplo. Elas
normalmente requerem a comunicação persistente e assíncrona. A razão é que um usuário
envia a solicitação de envio para o middleware e o middleware garantirá enviar a
mensagem (ou o arquivo – no contexto da transferência do arquivo) para o servidor. Isso,
visto que o middleware do emissor armazenará a mensagem (ou o arquivo) antes de enviar
(persistente). O middleware também não bloqueia o receptor até que a sua requisição seja
aceita. Consequentemente, o middleware permite que o usuário receptor possa retornar
imediatamente à sua tarefa, sem que ele fique bloqueado (assíncrona).
12) Quais são as vantagens e as desvantagens da utilização de protocolos epidêmicos para
disseminação de informações?
Resposta: Vantagens: boa escalabilidade devido ao número de sincronizações entre
processos ser relativamente pequena. O referido protocolo é adequado para disseminar as
atualizações. Desvantagens: O protocolo pressupõe que todos os nós na rede conheçam
um ao outro. Além disso, disseminar a exclusão de um item torna-se trabalhoso.
​13) Você consideraria que um URL como http://www.johnson.org/index.html é
independente de localização?
Sim. O endereço é genérico e independe da localização física. O endereço físico do
servidor web poderá ser alterado sem que haja uma mudança no nome da URL.
14) Explique por que o DNS não é a melhor escolha para fornecer informações de
localização de dispositivos móveis.
O DNS não é a melhor escolha para fornecer a localização porque ele não incorpora a
informação de localização geográfica nele. Note que os endereços IP normalmente não
representam uma localização geográfica específica, mas os endereços hierárquicos que
são distribuídos para uma determinada organização.
​15) Dê alguns exemplos de identificadores verdadeiros.
Os exemplos incluem os números de ISBN para livros, números de identificação (série) de
produtos de software e hardware, números de funcionários dentro de uma única
organização e o número DOI (Document Object Identifier) para documentos científicos.

AVALIAÇÃO PRESENCIAL - P1
Questão 1 (2,5 pontos)
Explique o que faz a Transparência de Acesso dentro do contexto de sistemas distribuídos.
E a transparência de localização? O que ela realiza dentro do mesmo contexto?
Resposta:

Questão 2 (2,5 pontos)


Nos dois itens abaixo, assinale V para verdadeiro ou F para falso:
a) O chaveamento de contexto de processos é mais caro do que o chaveamento de
contexto de threads.
b) Na comunicação distribuída assíncrona entre processos, o remetente da mensagem
continua sua execução imediatamente após enviar mensagem.

Questão 3 (2,5 pontos)


As arquiteturas de sistemas distribuídos baseadas em eventos são fortemente ou
fracamente acopladas? Justifique sua resposta.
Resposta:

Questão 4 (2,5 pontos)


Nos dois itens abaixo, assinale V para verdadeiro ou F para falso:
a) O endereço IP de um servidor é considerado um nome amigável aos seres humanos.
b) A abordagem de sincronização chamada “acontece antes” de Lamport é largamente
utilizada em sistemas distribuídos como um mecanismo para sincronizar os relógios
físicos.

AVALIAÇÃO PRESENCIAL - P
Q2) Nos dois itens abaixo indique V para verdadeiro ou F para falso:
a) A linguagem IDL (Interface Definition Language) permite descrever interfaces de
componentes independentes das linguagens de programação. ​Verdadeiro.
b) O middleware é o software que geralmente tenta tirar a complexidade das camadas
que se encontram entre o Sistema Operacional (SO) e a máquina, ou seja, ele tenta
remover a complexidade das camadas abaixo do SO​​.​FALSO

Q3) O que diz a escalabilidade no contexto de sistemas distribuídos? No âmbito da


escalabilidade, explique o que é a escalabilidade de tamanho.
Resposta:
Capacidade do sistema permanecer operando de uma forma efetiva mesmo diante de um
aumento significativo do número de usuários e/ou dos recursos disponíveis.

A escalabilidade pode ser medida em três dimensões:


1. Relação ao tamanho --> Podem-se acrescentar mais usuários e recursos ao sistema; 2.
Relação à distância geográfica --> Acesso a distâncias maiores. 3. Relação à facilidade de
administração --> Mesmo com inclusão muitas organizações independentes ainda continua
fácil a administração.

Q4) Nos dois itens abaixo, assinale V para verdadeiro ou F para falso:
a) No sistema Publicar-Subscrever (Publish-Scribe) há um forte acoplamento entre os
componentes que publicam eventos e os que subscrevem e recebem estes eventos.
FALSO
b) A virtualização é uma tecnologia nova que surgiu com a popularização de
computadores PC. Isso porque os PCs geralmente demandam múltiplas plataformas
e Sistemas Operacionais diversificados, como o Windows e Linux. ​Verdadeiro

AVALIAÇÃO PRESENCIAL - P3
Questão 1 (2,5 pontos)
Explique o que faz a Transparência de Replicação dentro do contexto de sistemas
distribuídos. E a transparência de Migração? O que realiza dentro do mesmo contexto?
Resposta:

Questão 2 (2,5 pontos)


Nos dois itens abaixo indique V para verdadeiro ou F para falso:
a) O middleware em sistemas distribuídos é o hardware que fica entre o Sistema
Operacional e a Aplicação e conecta os programas já existentes.
b) O software de virtualização como o VMWare é considerado como do tipo “Monitor de
Máquina Virtual” e fornece o conjunto completo de instruções de hardware.

Questão 3 (2,5 pontos)


Cite duas funções desempenhadas pelo stub (apêndice) do cliente implementado no
middleware de comunicação RPC (Remote Procedure Call)?
Resposta:

Questão 4 (2,5 pontos)


Nos dois itens abaixo indique V para verdadeiro ou F para falso:
a) Em sistemas de nomeação, o alias corresponde a um outro nome dado a uma
determinada entidade.
b) No algoritmo de eleição de um novo coordenador, conhecido como o algoritmo do
Valentão, o processo que está consumindo uma maior quantidade de memória é
eleito o novo coordenador.
AVALIAÇÃO PRESENCIAL - P5
Questão 1 (2,5 pontos)
Explique o que é QoS (Quality of Service). Cite duas técnicas vistas para prover o QoS em
sistemas distribuídos.
Resposta:
Qualidade de serviço (QoS) é a capacidade de melhorar os serviços trafegados na rede
sobre tecnologias de comunicação de redes de dados, como, ​Frame Relay​, MPLS, ​Ethernet,​
ATM (​​Asynchronous Tranfer Mode​, também é um protocolo de comunicação entre redes
WAN), e qualquer outra que utiliza do protocolo IP. Tem como sua principal característica,
dar prioridade, reserva de banda, controle de ​jitter​(variação de atraso) e latência (figura 6),
garantindo um bom desempenho das aplicações.
Técnica 1:
Técnica 2:

Questão 2 (2,5 pontos)


Nos dois itens abaixo, assinale V para verdadeiro ou F para falso:
a) O DHT (Distributed Hash Table) provê um mecanismo centralizado para organizar as
entidades de maneira centralizada e é muito utilizado em redes P2P.
b) Uma das desvantagens do algoritmo distribuído de exclusão mútua, conhecido como
Token Ring, é detectar que o token (ficha) está perdido; isso visto que a rede pode
estar sobrecarregada.

Questão 3 (2,5 pontos)


Explique o que é um cliente magro (Thin Client). E o que é um cliente gordo (Fat Client).
Resposta:
Thin Client é um computador cliente em uma rede modelo cliente-servidor de duas
camadas o qual tem pouco ou nenhum aplicativo instalado de modo a depender de um
servidor central para o processamento de atividades. Já o Fat Client executa tanto
processamento quanto o possível e passa ao servidor somente dados necessários para
comunicação e armazenamento de arquivos. O Fat client é um computador inserido numa
rede de arquitetura tipo cliente/servidor que tem recursos suficientes para realizar boa
parte das operações por si próprio.

Questão 4 (2,5 pontos)


Nos dois itens abaixo, assinale V para verdadeiro ou F para falso:
a) Os sistemas distribuídos geralmente compartilham uma memória RAM, o que
geralmente não ocorre com os sistemas de Computação Paralela.
b) Na arquitetura de camadas de sistemas distribuídos, o componente da camada N tem
permissão para chamar componentes da camada N-1.
MULTIMÍDIA E HIPERMÍDIA

1) Pesquise sobre os principais fatores que determinaram o êxito da Web como a aplicação
de hipermídia de sucesso na atualidade. Por quê ela se destacou em meio a tantas outras
aplicações desenvolvidas anteriormente?

São vários os fatores que contribuíram para o sucesso da Web.

a) criação do protocolo HTTP, que permitiu estabelecer conexões simultâneas para obter
as mídias que compõem um hiperdocumento; e

b) adoção da linguagem HTML, que permitiu criar documentos hipermídia com um formato
de apresentação definido, além de estruturar o conteúdo de maneira eficiente;

c) possibilidade de interação do usuário com o navegador, por meio de formulários, scripts


e etc.

(10 pontos) Com base nos materiais e nas discussões que tivemos até este momento na
disciplina, responda: qual a relação entre hipermídia e multimídia?

a) possibilidade de interação;

b) utilização de várias mídias integradas por computador;

c) acesso não sequencial. Além disso, o aluno poderá argumentar que sistemas hipermídia
utilizam multimídia em seus hiperdocumentos (uma página Web composta por texto e
imagens, por exemplo).

3 pontos) Explique em linhas gerais as etapas adotadas pelo padrão JPEG para codificar
uma imagem.

Os passos são: 1) preparação da imagem em blocos; 2) transformada discreta do cosseno


em cada bloco; 3) quantização; 4) codificação por entropia, que envolve: codificação por
carreira, diferenças e Huffman.

(3 pontos) Em que fase do padrão JPEG ocorre perda de informação?


É na quantização que ocorrem as perdas, pois os coeficientes da DCT são divididos por
uma ou mais tabelas de quantização, sendo que os resultados obtidos são arredondados
para números inteiros.

(4 pontos) Por que é necessário transformar a imagem do domínio espacial para o domínio
de frequência?

É para agrupar as informações da imagem de acordo com a frequência, e assim, facilitar a


eliminação daquelas informações menos importantes para o olho humano (e.g. altas
frequências espaciais da imagem).

Q1) Defina o princípio de mobilidade dos centros em sistemas hipermídia. cite e explique
um exemplo real da Web em que isto ocorre.

A rede não tem centro, ou melhor, possui permanentemente diversos centros que são
como pontas luminosas perpetuamente móveis, saltando de um nó a outro, trazendo ao
redor de si uma ramificação infinita de pequenas raízes, de rizomas, finas linhas brancas
esboçando por um instante um mapa qualquer com detalhes delicados, e depois correndo
para desenhar mais à frente outras paisagens do sentido.

Q2) Suponha uma imagem sem compressão com resolução 160 x 120 e 8bits por pixel.
Quanto tempo em segundos será necessário para transmitir essa imagem pela rede com
largura de banda equivalente a0? kbps (bbits por segundo? Considere 1 kbit = 1024bits.
300segundos

Q3) Assinale e justifique a alternativa correspondente ao tipo de redundância que é


explorado pelo seguinte procedimento:

“Aplicação da DCT em um bloco de 8 x 8 pixels e posterior quantização”.

a) Redundância estatística
b) Redundância espacial
c) Redundância temporal
d) Redundância psicovisual
e) Redundância psicoacústica
Q4) Assinale e justifique a alternativa correspondente ao algorítmo de compressão
abordado na seguinte definição: “Constrói uma árvore binária a partir de símbolos de
menor frequência”.
a) Algoritmo de Huffman
b) Codificação por carreira
c) Codificação por diferenças
d) DCT e quantização
e) Estimativa e compensação de movimentos
Uma árvore binária completa, chamada de árvore de Huffman é construída recursivamente
a partir da junção dos dois símbolos de menor probabilidade, que são então somados em
símbolos auxiliares e estes símbolos auxiliares recolocados no conjunto de símbolos. O
processo termina quando todos os símbolos forem unidos em símbolos auxiliares
formando uma árvore binária. A árvore é então percorrida, atribuindo-se valores binários
de 1 ou 0 para cada aresta, e os códigos são gerados a partir deste percurso.

Princípio da metamorfose
A rede hipertextual está em constante construção e renegociação. Ela pode permanecer estável
durante um certo tempo, mas esta estabilidade é em si mesma fruto de um trabalho. Sua
extensão, sua composição e seu desenho estão permanentemente em jogo para os atores
envolvidos, sejam eles humanos, palavras, imagens, traços de imagens ou de contexto, objetos
técnicos, componentes destes objetos etc.

Princípio de heterogeneidade
Os nós e as conexões de uma rede hipertextual são heterogêneos. Na memória serão
encontrados imagens, sons, palavras, diversas sensações, modelos etc., e as conexões serão
lógicas, afetivas etc. Na comunicação, as mensagens serão multimídias, multimodais, analógicas,
digitais etc. O processo sociotécnico colocará em jogo pessoas, grupos, artefatos, forças naturais
de todos os tamanhos, com todos os tipos de associações que pudermos imaginar entre estes
elementos.

Princípio de multiplicidade e de encaixe das escalas


hipertexto se organiza em um modo "fractal", ou seja, qualquer nó ou conexão, quando analisado,
pode revelar-se como sendo composto por toda uma rede, e assim por diante, indefinidamente,
ao longo da escala dos graus de precisão.

Princípio de exterioridade
A rede não possui unidade orgânica nem motor interno. Seu crescimento e sua diminuição, sua
composição e sua recomposição permanente dependem de um exterior indeterminado: adição de
novos elementos, conexões com outras redes, excitação de elementos terminais (captadores) etc.

Princípio de topologia
Nos hipertextos, tudo funciona por proximidade, por vizinhança. Neles, o curso dos
acontecimentos é uma questão de topologia, de caminhos. Não há espaço universal homogêneo
onde haja forças de ligação e separação, onde as mensagens poderiam circular livremente. Tudo
que se desloca deve utilizar-se da rede hipertextual tal como ela se encontra, ou então será
obrigado a modificá-la. A rede não está no espaço, ela é o espaço.

Princípio de mobilidade dos centros


A rede não tem centro, ou melhor, possui permanentemente diversos centros que são como
pontas luminosas perpetuamente móveis, saltando de um nó a outro, trazendo ao redor de si uma
ramificação infinita de pequenas raízes, de rizomas, finas linhas brancas esboçando por um
instante um mapa qualquer com detalhes delicados, e depois correndo para desenhar mais à
frente outras paisagens do sentido.

Q1) Defina o princípio de metamorfose em sistemas hipermídia. Cite e explique um


exemplo real da Web em que isso ocorre.
A rede hipertextual está em constante construção e renegociação. Ela pode permanecer estável
durante um certo tempo, mas esta estabilidade é em si mesma fruto de um trabalho. Sua
extensão, sua composição e seu desenho estão permanentemente em jogo para os atores
envolvidos, sejam eles humanos, palavras, imagens, traços de imagens ou de contexto, objetos
técnicos, componentes destes objetos etc.

Q3) Assinale e justifique a alternativa correspondente ao tipo de redundância abordado na


seguinte definição: “Ocorre entre quadros sucessivos de um mesmo vídeo, onde as
informações se repetem ao longo de uma mesma cena.”

a) Redundância estatística
b) Redundância espacial
c) Redundância temporal
d) Redundância psicovisual
e) Redundância psicoacústica

PERGUNTA 1: Como saber a que taxa de amostragem um sinal de áudio deve ser
digitalizado para que não ocorra o efeito de aliasing?

Resposta​: Para evitar o efeito de aliasing devemos seguir a frequência de Nyquist, ou seja,
a taxa de amostragem deve ser definida como pelo menos o dobro da componente de mais
alta frequência do sinal de entrada.
PERGUNTA 2: Qual o tamanho de uma música de 5 minutos digitalizada a uma taxa de
amostragem de 44100 Hz, estéreo e 8 bits por componente?

Resposta​: A taxa de amostragem de 44100 significa que teremos 44100 amostras por
segundo para cada canal do som estéreo (direito e esquerdo), sendo que cada amostra
contém 8 bits ou 1 byte. Multiplicando tudo temos: 44100 x 1 x 2 x 60 x 5 = 26.460.000
bytes.

PERGUNTA 3: Qual a diferença entre radiância, luminância e brilho?

Resposta​: A radiância é a quantidade total de energia que é emitida pela fonte de luz, e é
medida em watts (W). A luminância é medida em lumens (lm) e mede a quantidade de
energia que um observador percebe de uma fonte de luz. O brilho, por fim, incorpora a
noção de acromática de intensidade e é uma medida subjetiva, ou seja, depende do
contexto da imagem para se perceber o seu brilho.

PERGUNTA 4: Qual o tamanho de uma imagem RGB em formato 1280x1024 em que cada
pixel ocupa 24 bits?

Resposta​: A imagem tem 1280 linhas por 1024 colunas, sendo que essa multiplicação
indica a quantidade de pixels da imagem. Um pixel, por sua vez, tem 24 bits, ou 8 bits por
componente (R, G e B), ou 3 bytes no total. Multiplicando tudo temos: 1280 x 1024 x 3 =
39.332.160 bytes.

PERGUNTA 5: O que é, como ocorre e como evitar o efeito estroboscópico em vídeo?

Resposta​: Efeito estroboscópico é o nome dado ao efeito aliasing de movimento, que


ocorre na captura de movimentos velozes em relação à taxa de amostragem temporal da
câmera. É similar ao aliasing que ocorre com o sinal de áudio (vide exercício 1). Para evitar,
a taxa de amostragem temporal deve ser pelo menos o dobro da frequência de movimento
do objeto. Por exemplo, se uma roda gira 10 vezes por segundo, então para evitar o efeito,
a câmera deve ser configurada para gravar a uma taxa de 20 quadros por segundo pelo
menos.

PERGUNTA 6: Quanto tempo de um vídeo configurado a 640x480 pixels, 25 quadros por


segundo e 24 bits/pixel um DVD de 4.7 GB consegue armazenar?

Resposta​: Podemos resolver esse exercício calculando primeiro a quantidade de bytes por
segundo do vídeo (taxa), e depois dividindo o armazenamento total do DVD pela taxa. A
quantidade de bytes por segundo do vídeo será de: 640 x 480 x 25 x 3 = 23.040.000
bytes/seg. O DVD conseguirá armazenar então: 4,7 x 109 / 23040 x 103 = 203,9 segundos ou
3,4 minutos.

1) Qual a diferença entre os princípios de metamorfose e heterogeneidade?


A metamorfose indica que a rede de hipermídia está em constante atualização e mutação,
conforme o trabalho dos autores envolvidos. Já a heterogeneidade indica que os nós e
conexões da rede têm um caráter heterogêneo, em termos de tipos de mídia,
padronizações e apresentação.

2) Qual a relação entre os princípios de topologia e mobilidade dos centros?

A topologia de uma rede de hipermídia indica que ela funciona por proximidade ou
vizinhança, ou seja, o curso dos acontecimentos é uma questão propriamente topológica.
A mobilidade dos centros relaciona-se com a topologia pois a cada conexão, existem
novos centros ou possibilidades. Não existe uma central única na rede (o próprio leitor e
seu interesse são o centro).

3) Qual a importância do protocolo HTTP no contexto da Web?

O protocolo HTTP permite estabelecer conexões simultâneas com diversos servidores para
se obter os diferentes tipos de mídia que compõem um hiperdocumento. Tais conexões
ocorrem via TCP/IP e tem um limite de duração pré-estabelecido, o que facilita o
gerenciamento das conexões pelo navegador Web.

4) Quais são as três características principais de um sistema multimídia?

Um sistema multimídia requer que o acesso à informação seja feito de forma não linear,
sendo que o usuário é quem escolhe o quê, como e quando acessar o conteúdo. Além
disso, deve haver interatividade do usuário, ou seja, ele deve participar da atividade e não
ser um simples espectador passivo. Por fim, deve haver integração com outros programas
do computador, como bases de dados, codecs, interface gráfica, comunicadores, etc.

5) Por que é necessário digitalizar os dados para poder usá-los em sistemas multimídia?

Como há integração/sincronização entre as mídias, a manipulação delas pelo computador


no formato analógico se torna ineficiente e complexa. A digitalização realiza uma tradução
do sinal em uma sequência de números, os quais podem ser processados pelo
computador de modo mais eficiente.

6) Quais aspectos do som são alterados por meio da amplitude e frequência?

A amplitude está relacionada com a intensidade ou volume do som, e a frequência está


relacionada com a altura do som (se é mais grave ou mais agudo).

7) Qual a diferença entre bastonetes e cones no sistema visual humano?

Ambos são células fotossensíveis presentes na retina do olho humano. Os bastonetes são
em maior quantidade, estão espalhados por toda a retina e são responsáveis pela captura
de intensidade luminosa. Os cones são em menor número, estão mais concentrados no
centro da retina e são responsáveis pela captura das cores.

8) Como funciona a animação por interpolação?

Neste tipo de animação, quadros-chave são criados pelos animadores como desenhos
estáticos, e o programa gera os quadros intermediários através de interpolação entre
pontos correspondentes de dois quadros consecutivos.

9) O que é hierarquia de movimentos?

A hierarquia de movimentos é utilizada na coreografia de animações para definir melhor


como os movimentos são realizados, com dependência entre objetos. São caracterizados
diferentes níveis na hierarquia, onde os elementos de mais baixo nível têm seus
movimentos definidos em relação ao elemento imediatamente superior na hierarquia, e não
em relação às coordenadas da cena.

10) Por que a compressão de dados sempre será importante independente do avanço em
armazenamento e transmissão de dados?

A compressão sempre será importante pois ao mesmo tempo que as tecnologias para
armazenamento e transmissão de dados evoluem, a demanda dos usuários por mídias
cada vez mais sofisticadas também aumenta.

11) Qual a diferença entre compressão sem perdas e compressão com perdas?

A compressão sem perdas é dita reversível, ou seja, a mídia comprimida pode ser
recuperada integralmente após a descompressão. Já na compressão com perdas, a mídia
comprimida não pode ser recuperada integralmente, ou seja, o processo é irreversível.

12) O que é a codificação por entropia?

Trata-se de um conjunto de técnicas que podem ser aplicadas em qualquer tipo de mídia, e
que alteram a representação da informação de modo que a quantidade de dados utilizada
seja reduzida, ocasionando uma compressão nos dados.

13) O que é redundância temporal e como eliminar?

Redundância temporal é quando dados se repetem em uma mídia ao longo do tempo. Por
exemplo, em uma sequência de quadros em vídeo, muitas informações irão se repetir ou
variar pouco ao longo dos quadros.

14) Quais as diferenças entre quadros I, P e B?

Quadros I são codificados sem eliminação da redundância temporal, ou seja, é codificado


como uma imagem estática. Quadros P são codificados utilizando como imagem de
referência apenas quadros passados. Quadros B são codificados utilizando quadros
passados e/ou futuros como referência.
15) O que são vetores de movimento?

Um vetor de movimento é um indicativo de deslocamento da região sendo codificada em


relação à região encontrada na imagem de referência. É calculado a partir das coordenadas
da região da imagem de referência e da região do quadro alvo. É usada pelo decodificador
para reconstruir o quadro.

16) Qual a diferença entre estimativa de movimento e compensação de movimento?

A estimativa realiza uma busca por uma região que melhor se assemelha à do quadro alvo
na imagem de referência. Uma vez encontrada essa região, a compensação é realizada por
meio da subtração entre a região encontrada na imagem de referência e a região do quadro
alvo, formando um resíduo (erro de predição).

AVALIAÇÃO PRESENCIAL P5
Questão 1 (2,5 pontos)

Defina o princípio de topologia em sistemas hipermídia. Cite e explique um exemplo real da


Web em que isso ocorre.

Questão 2 (2,5 pontos)

Suponha uma imagem sem compressão com resolução 640 x 480 e 24 bits por pixel.
Quanto tempo (em segundos) será necessário para transmitir essa imagem pela rede com
largura de banda equivalente a 10kbps (kbits por segundo)? Considere: 1 kbit = 1024bits.

Questão 3 (2,5 pontos)

Assinale e justifique a alternativa correspondente ao tipo de redundância abordado na


seguinte definição:

“Informações de uma imagem que não são perceptíveis ao olho humano”.

a) Redundância estatística
b) Redundância espacial
c) Redundância temporal
d) Redundância psicovisual
e) Redundância psicoacústica

Questão 4 (2,5 pontos)

Assinale e justifique a alternativa correspondente ao algoritmo de compressão abordado


na seguinte definição:
“Procura a melhor região na imagem de referência e depois subtrai ela da região atual”.

a) Algoritmo de Huffman
b) Codificação por carreira
c) Codificação por diferenças
d) DCT e quantização
e) Estimativa e compensação de movimento
GE​​STÃO DE PROJETOS
O

AULA 5 - FASES DO PROJETO


● Iniciação: descrever de forma simples o que será o projeto, uma autorização
● Planejamento:
● Execução: ​põe em prática o que foi planejado
● Monitoramento: ​verifica se o que está sendo executado está de acordo com o planejado;
● Encerramento: formalização do encerramento do projeto

Áreas de conhecimento
● Gerenciamento da integração do projeto;
● Gerenciamento do escopo do projeto; o que vai ser tratado, o que vai ser desenvolvido;
● Gerenciamento do tempo do projeto; quando começa e quando termina
● Gerenciamento dos custos do projeto;
● Gerenciamento da qualidade do projeto;
● Gerenciamento dos recursos humanos do projeto; quem vai trabalhar? quais e quantas pessoas?
● Gerenciamento das comunicações do projeto;
● Gerenciamento dos riscos do projeto;
● Gerenciamento das aquisições do projeto;
● Gerenciamento das partes interessadas no projeto;

Boas práticas

Project Management Institute (PMI)


● Entidade mundial sem fins lucrativos voltada ao gerenciamento de projetos
● Criado em 1969 (Filadélfia, EUA), por cinco voluntários
● Hoje, mais de 200.000 profissionais associados representam 150 países:
● Indústria aeroespacial, automotiva, negócios, construção, engenharia, serviços financeiros,
tecnologia da informação, farmacêutico, saúde e telecomunicações.
● Edita o PMBOK

Boas práticas - PMBOK


Objetivos:
● Diretrizes para o gerenciamento de projetos individuais
● Define os conceitos relacionados ao gerenciamento de projetos
● Descreve o ciclo de vida de gerenciamento de projetos e seus respectivos processos, assim como
o ciclo de vida do projeto
Amplamente reconhecido: O conhecimento e as práticas descritas são aplicáveis a maioria dos projetos na
maior parte das vezes e existe um consenso em relação ao seu valor e utilidade.

Boas práticas:
● Existe um consenso geral de que a aplicação do conhecimento, habilidades, ferramentas e técnicas
pode aumentar as chances de sucesso de muitos projetos.
● Não significa que o conhecimento descrito deva ser sempre aplicado uniformemente a todos os
projetos A organização e/ou a equipe de gerenciamento do projeto é responsável por determinar o
que é apropriado para um projeto específico.

Gestão de escopo
Escopo:
Descrição documentada de um projeto quanto aos objetivos, aos resultados, à abordagem e ao conteúdo;
ou seja, ao que se pretende obter, como fazê-lo e as ações que envolve.
Gestão de escopo:
Assegurar que o projeto inclui todas as atividades necessárias, e apenas as necessárias, para ser
concluído com sucesso.
● Escopo do produto​​, em que são definidas e delimitadas as funções e as características do
produto ou do serviço a ser gerado pelo projeto;
● Escopo do projeto​​, que define e quantifica o trabalho a ser feito, a fim de gerar o produto ou
serviço tal como estabelecido em seu escopo.

O ​Escopo do produto descreve todas as características e funcionalidades que o produto do projeto


precisa apresentar para satisfazer as necessidades e expectativas do cliente.

Ele é composto por especificações e requisitos que descrevem o que deve ser entregue pelo projeto,
podendo ser mais ou menos detalhado conforme a complexidade de regras, características físicas ou até
mesmo impressões que irão compor o produto final. Esse é o ponto de partida fundamental para qualquer
projeto que busca atender a necessidade do cliente.

Conforme definição do Guia PMBOK (Project Management Body of Knowledge), o ​Escopo do projeto ​é o
trabalho que precisa ser realizado para entregar um produto, serviço ou resultado com as características e
funções especificadas anteriormente. Ou seja, é o escopo que vai definir os limites do projeto,
considerando tanto o que deve ou não deve ser feito.

O escopo do projeto representa a maneira com que vamos executar o trabalho para entregar o produto
que desejamos, contemplando objetivos, restrições, premissas, entre outros detalhes fundamentais para o
planejamento do projeto. Ele precisa ser deixar claro para toda a equipe envolvida, como o Projeto irá
entregar o Produto desejado pelo cliente.

Vejamos a aplicação destes conceitos no exemplo a seguir:


SISTEMAS DISTRIBUÍDOS

Anda mungkin juga menyukai