User Tools

Site Tools


cursos:if67c

<html> <!– Global site tag (gtag.js) - Google Analytics –> <script async src=“https://www.googletagmanager.com/gtag/js?id=UA-116569507-1”></script> <script>

window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'UA-116569507-1');

</script> </html>

IF67C: Sistemas Distribuídos

  • Disciplina: IF67C - Sistemas Distribuídos
  • Carga Horária (horas): teoria 30h, prática 30h, total 60h
  • Pré-requisito: IF66B - Redes de Computadores 1 e IF66D - Sistemas Operacionais
  • Professor: Mauro Fonseca
  • IF67C - Plano de aula 2015/1

Objetivos

  • Proporcionar aos alunos conhecimentos teóricos e práticos em Sistemas Distribuídos.

Ementa

  • Modelos de máquinas paralelas.
  • Granularidade, níveis de paralelismo.
  • Máquinas multiprocessadores e multi-computadores: topologia, arquiteturas fortemente acopladas e fracamente acopladas.
  • Processos: threads, clientes, servidores, código móvel e agentes de software.
  • Middlewares para aplicações distribuídas.
  • Sincronização em Sistemas distribuídos.
  • Coordenação e acordo em Sistemas distribuídos.
  • Transações distribuídas: modelos, classificação e controle de concorrência.
  • Tópicos de Tolerância a falhas e segurança.

Conteúdo

  1. Modelos de máquinas paralelas.
    1. Modelos de Máquinas paralelas:
      1. PRAM (Parallel Random Access Machine);
      2. BSP (Bulk Synchronous Parallel Model);
      3. CGM (Coarse Grained Multicomputer);
      4. LogP.
  2. Granularidade, níveis de paralelismo.
    1. Conceitos de granularidade e paralelismo.
    2. Granularidade fina e grossa.
    3. Níveis de paralelismo: nível de instrução, ambiente multi-thread, nível de chip, cluster, grid.
  3. Máquinas multiprocessadores e multi-computadores: topologia, arquiteturas fortemente acopladas e fracamente acopladas.
    1. Máquinas multiprocessadores.
    2. Máquinas multi-computadores.
    3. Ambientes fortemente acoplados e fracamente acoplados.
    4. Conceito de sistemas operacionais distribuídos e sistemas operacionais de rede.
  4. Processos: threads, clientes, servidores, código móvel e agentes de software.
    1. Definição e principais características de sistemas distribuídos.
    2. Motivação para o desenvolvimento de aplicações distribuídas.
    3. Exemplos de sistemas distribuídos.
    4. Desafios no desenvolvimento de aplicações distribuídas: heterogeneidade, abertura, segurança, gerenciamento de falhas, escalabilidade, controle de concorrência e transparência.
    5. Arquiteturas em sistemas distribuídos: cliente-servidor, processos pares (peer-to-peer), servidores múltiplos, códigos móveis, agentes de software.
  5. Middlewares para aplicações distribuídas.
    1. Comunicação entre objetos distribuídos.
    2. Referência de objetos remotos.
    3. Serviço de nomes.
    4. Representação externa de dados.
    5. Arquitetura de eventos e notificações.
    6. Middlewares para aplicações distribuídas.
    7. Atividade em laboratório: desenvolvimento de aplicações distribuídas.
  6. Sincronização em Sistemas distribuídos.
    1. Modelo de Interação: sistemas distribuídos síncronos e sistemas distribuídos assíncronos.
    2. Sincronização interna e externa de relógios físicos.
    3. Tempo lógico e relógios lógicos.
    4. Características da comunicação entre processos.
    5. Primitivas de comunicação.
    6. Atividade em laboratório: comunicação entre processos via soquetes.
  7. Coordenação e acordo em Sistemas distribuídos.
    1. Coordenação e acordo em sistemas distribuídos: algoritmos para implementação de exclusão mútua entre processos.
  8. Transações distribuídas: modelos, classificação e controle de concorrência.
    1. Propriedades ACID de uma transação.
    2. Estados de uma transação.
    3. Protocolos de efetivação de uma transação.
    4. Transações planas e aninhadas.
    5. Leituras sujas, cancelamento em cascata, escritas prematuras.
    6. Controle de concorrência: travas e bloqueios; ordenação por indicação de tempo; controle de concorrência otimista.
    7. Impasses (deadlocks).
    8. Atividade em laboratório: desenvolvimento de aplicações distribuídas.
  9. Tópicos de Tolerância a falhas e segurança.
    1. Modelo de Falhas: falhas em processos e em canais de comunicação.
    2. Tópicos de tolerância a falhas.
    3. Modelo de Segurança: ameaças, formas de ataque e mecanismos de segurança.

Metodologia

Teoria: aulas expositivas, com análise e discussão dos temas abordados e textos de apoio.

Prática: atividades referentes aos temas abordados nas aulas teóricas (Regras das atividades de laboratório).

Avaliação

Nota final= ( (AL*90%) + (RP*10%) ) Av = Atividades em laboratório (AL) + Relatórios de Pesquisa e/ou Seminários (RP)

Frequência mínima = 75%

Bibliografia

Básica

  • COULOURIS, George; DOLLIMORE, Jean; KINDBERG, Tim. Distributed Systems: Concepts and Design. 4th ed. Harlow, Essex: Addison-Wesley, 2005. ISBN: 0321263545.
  • TANENBAUM, Andrew S. Distributed Operating Systems. Upper Saddle River, NJ: Prentice-Hall, 1995. ISBN: 0131439340.
  • TANENBAUM, Andrew S.; STEEN, Maarten Van. Sistemas Distribuídos: Princípios e Paradigmas. 2. ed. São Paulo, SP: Prentice Hall Brasil: 2007. ISBN: 8576051427.

Complementar

cursos/if67c.txt · Last modified: 2023/03/17 12:21 by fonseca