UNIVERSIDADE FEDERAL DE UBERLÂNDIA
Faculdade de Engenharia Elétrica

Av. João Naves de Ávila, 2121, Bloco 3N - Bairro Santa Mônica, Uberlândia-MG, CEP 38400-902
Telefone: (34) 3239-4701/4702 - www.feelt.ufu.br - feelt@ufu.br
  

Timbre

Plano de Ensino

IDENTIFICAÇÃO

Componente Curricular:

Sistemas Distribuídos

Unidade Ofertante:

FEELT

Código:

FEELT31830

Período/Série:

8º Período

Turma:

C

Carga Horária:

Natureza:

Teórica:

30

Prática:

15

Total:

45

Obrigatória:

( X )

Optativa:

( )

Professor(A):

Igor Santos Peretta

Ano/Semestre:

2023/2

Observações:

 

 

EMENTA

Introdução aos Sistemas Distribuídos; Modelos de Sistemas Distribuídos; Comunicação entre Processos Distribuídos; Consistência Global; Memória Compartilhada Distribuída; Sistemas de Arquivos Distribuídos; Serviço de Nomes/Diretório; Transações Distribuídas.

JUSTIFICATIVA

A disciplina de Sistemas Distribuídos apresenta uma justificativa robusta ao oferecer uma abordagem abrangente e prática sobre a construção e operação de sistemas que se estendem por múltiplos dispositivos e locais geográficos. Com o crescente avanço da tecnologia e a onipresença da conectividade, a compreensão dos sistemas distribuídos torna-se crucial para profissionais de tecnologia das áreas de computação. O objetivo geral da disciplina é capacitar os discentes a identificar as principais propriedades e modelos desses sistemas, compreender os componentes essenciais para sua construção e abordar os desafios inerentes.

OBJETIVO

Objetivo Geral:

Capacitar o discente a identificar as principais propriedades e modelos de sistemas distribuídos, compreender os componentes essenciais para a construção de sistemas distribuídos e entender os principais problemas e soluções inerentes aos sistemas distribuídos.

Objetivos Específicos:

- Compreensão dos Fundamentos Teóricos: Desenvolver a capacidade dos discentes para compreender os princípios teóricos que norteiam os sistemas distribuídos, incluindo conceitos como comunicação entre processos, consistência, concorrência e tolerância a falhas.

- Identificação e Análise de Modelos de Sistemas Distribuídos: Capacitar os alunos a identificar e analisar diferentes modelos de sistemas distribuídos, como arquiteturas cliente-servidor, sistemas peer-to-peer e sistemas de computação em grade, compreendendo suas características distintas e aplicações.

- Construção de Sistemas Distribuídos: Desenvolver habilidades práticas na construção de sistemas distribuídos, incluindo a implementação de comunicação entre processos, coordenação e sincronização de recursos distribuídos, utilizando tecnologias e frameworks relevantes.

- Resolução de Problemas em Ambientes Distribuídos: Capacitar os discentes a identificar e abordar os desafios inerentes aos sistemas distribuídos, como a garantia de consistência de dados, resiliência a falhas e escalabilidade, promovendo a aplicação de estratégias eficazes na resolução de problemas práticos.

- Estudo de Casos e Análise Crítica: Estimular a análise crítica por meio do estudo de casos reais de implementação de sistemas distribuídos, permitindo aos alunos compreenderem as decisões arquiteturais, os desafios enfrentados e as soluções adotadas em contextos específicos.

PROGRAMA

Data    DDS    Eventos
09-Jan-2024    TER    Sistemas Distribuídos: apresentação e motivação
16-Jan-2024    TER    Tempo e relógios, causalidade, modelos de redes
23-Jan-2024    TER    Ordens parciais, ordens totais, relógios de Lamport, relógios de vetor
30-Jan-2024    TER    Entregas FIFO/causal/totalmente-ordenada
06-Feb-2024    TER    Algoritmo de Chandy-Lamport
13-Feb-2024    TER    Feriado: Carnaval
20-Feb-2024    TER    Segurança e vivacidade, modelos de falhas, o problema dos Dois Generais
27-Feb-2024    TER    Formas de tolerância a falhas, entrega confiável, difusão confiável
02-Mar-2024    SAB    Atividades acadêmicas extras (6ha): Tutorial de programação com Sockets
05-Mar-2024    TER    Replicação do backup primário, replicação em cadeia, latência e taxa de transferência
12-Mar-2024    TER    Não haverá aula neste dia (reposição em 23-mar)
19-Mar-2024    TER    Determinismo, modelos de consistência, introdução ao consenso
23-Mar-2024    SAB    Reposição 12-mar (3ha): Mais sobre consenso, resultado FLP, protocolo Paxos
26-Mar-2024    TER    Replicação passiva e ativa
02-Apr-2024    TER    Consistência eventual, disponibilidade, resolução de conflitos
09-Apr-2024    TER    Árvores de Merkle, consistência de quórum, latência de cauda
16-Apr-2024    TER    Introdução a sharding, hashing consistente
20-Apr-2024    SAB    Atividades acadêmicas extras (3ha): Tutorial de MapReduce
23-Apr-2024    TER    Recuperação: Entrega de todos os projetos atrasados
30-Apr-2024    TER    Período destinado a outras atividades acadêmicas (10 dias) para os campi de Uberlândia, Patos de Minas e Monte Carmelo
07-May-2024    TER    Período destinado a outras atividades acadêmicas (10 dias) para os campi de Uberlândia, Patos de Minas e Monte Carmelo

METODOLOGIA

Parte teórica: Aulas expositivas dialogadas com demonstrações práticas, diagramas e codificação-exemplo, acompanhadas de indicação para materiais de apoio.

Parte prática: Desenvolvimento de projetos e apoio de sítios informativos de internet com discussão sobre dúvidas, exposição de exemplos e orientação em projetos.

Observação: Os materiais de referência e de apoio, assim como links relevantes, avaliações e repositório de materiais complementares, serão disponibilizados com o suporte do Moodle da UFU (https://moodle.ufu.br/course/view.php?id=12165).

AVALIAÇÃO

Parte teórica
- Avaliação continuada: atividades avaliativas do tipo questionário no Moodle quase toda semana + tutoriais em atividades acadêmicas extras. Total máximo possível: 60% da nota final.
Parte prática
- Projeto(s) individual ou em grupo. Total máximo possível: 40% da nota final.
ATIVIDADE DE RECUPERAÇÃO (REC)
- Aceite da entrega de trabalhos atrasados com 10% de desconto na nota dos trabalhos entregues até o final do semestre letivo.

BIBLIOGRAFIA

Básica

  1. BIRMAN, Kenneth P. Reliable distributed systems: technologies, web services, and applications. New York: Springer, c2010.

  2. COULOURIS, George. Sistemas distribuídos: conceitos e projetos. Porto Alegre: Bookman, 2013.

  3. TANENBAUM, A. S.; STEEN, M. V. Sistemas distribuídos: princípios e paradigmas. [S.I]: Prentice Hall, 2007.

Complementar

  1. ANDERSON, Ross. Security engineering: a guide to building dependable distributed systems. 2nd ed. Indianápolis: J. Wiley, c2008.

  2. ANDREWS, Gregory R. Foundations of multithreaded, parallel, and distributed programming. Reading, Mass.: Addison-Wesley, c2000.

  3. BEN-ARI, M. Principles of concurrent and distributed programming. 2nd ed. Harlow; New York: Addison-Wesley, 2006.

  4. FOKKINK, Wan. Distributed algorithms: an intuitive approach. Cambridge: The Mit Press, 2013.

  5. MUNIR, Arslan; GORDON-ROSS, Ann; RANKA, Sanjay. Modeling and optimization of parallel and distributed embedded systems. Wiley, 2016.

  6. TEL, Gerard. Introduction to distributed algorithms. 2nd ed. Cambridge: Cambridge University Press, 2000.

APROVAÇÃO

Aprovado em reunião do Colegiado realizada em: ____/____/______

Coordenação do Curso de Graduação: _________________________

 


logotipo

Documento assinado eletronicamente por Igor Santos Peretta, Professor(a) do Magistério Superior, em 23/01/2024, às 09:04, conforme horário oficial de Brasília, com fundamento no art. 6º, § 1º, do Decreto nº 8.539, de 8 de outubro de 2015.


QRCode Assinatura

A autenticidade deste documento pode ser conferida no site https://www.sei.ufu.br/sei/controlador_externo.php?acao=documento_conferir&id_orgao_acesso_externo=0, informando o código verificador 5120047 e o código CRC AF01DD94.




Referência: Processo nº 23117.002005/2024-41 SEI nº 5120047