[TEC.INF.4M] Sistemas Distribuídos
Informações Gerais sobre a Disciplina/Turma:
- Disciplina: TEC.1031 - Sistemas Distribuídos
- Turma em Andamento: 20252.4.03806.361.1M
- Período de aulas desta turma/disciplina: 09/09/2025 a 10/02/2026
- Carga-Horária: 30h (40 aulas)
- Professor: Ricardo Kléber
- Aulas Semanais: Terças (08:50 as 10:20)
- Local: Laboratório de Redes (D-18) | IFRN/CN
- E-Mail do Professor: ricardokleber@ricardokleber.com.br
Programa da Disciplina
- Curso: Curso Superior de Tecnologia em Sistemas para Internet
- Disciplina: Sistemas Distribuídos
- Carga-Horária: 30h (40h/a)
- Pré-Requisito(s): --
- Número de créditos: 2
Ementa
Conceituação e caracterização de processos; conceituação e caracterização da comunicação entre processos e de aspectos envolvidos no projeto de sistemas distribuídos; conceituação e caracterização dos principais modelos de comunicação e estudo de tópicos relacionados à sincronização em sistemas distribuídos; conceituação e caracterização dos principais serviços utilizados em sistemas distribuídos.
Objetivos
- Apresentar os principais tópicos relacionados a Sistemas Distribuídos;
- Habilitar o aluno a desenvolver uma aplicação simples, de forma distribuída, utilizando os conceitos e ferramentas discutidos na disciplina.
Bases Científico-Tecnológicas (Conteúdos)
- Processos
- Introdução ao conceito de processo;
- Condições de corrida;
- Regiões críticas;
- Exclusão mútua;
- Semáforos;
- Troca de mensagens.
- Introdução aos Sistemas Distribuídos
- Objetivos;
- Aspectos de projeto: 1.Transparência; 2.Flexibilidade; 3.Confiabilidade; 4.Performance.
- Escalabilidade.
- Comunicação nos sistemas distribuídos
- Modelo cliente-servidor;
- Introdução aos protocolos da Internet;
- Chamara remota a procedimentos;
- RMI (Remote Method Invocation);
- Sockets.
- Sincronização em Sistemas Distribuídos
- Sincronização através de clock;
- Exclusão mútua;
- Algoritmos eletivos;
- Transações atômicas;
- Deadlocks.
- Suporte a Threads
- Conceitos;
- Multithreading.
- Serviços de nomes e diretórios distribuídos
- Sistemas de arquivos distribuídos
- Componentes para computação distribuída
Procedimentos Metodológicos
Aulas teóricas expositivas; aulas práticas em laboratório; desenvolvimento de projetos; leitura de textos, palestras, seminários, visitas técnicas, pesquisas bibliográficas.
Recursos Didáticos
Livros, leitura de textos, manuais, palestras, seminários, pesquisas bibliográficas; quadro branco, computador, projetor multimídia, vídeos.
Avaliação
Avaliações escritas e práticas; trabalhos individuais e em grupo (lista de exercícios, estudos dirigidos, pesquisas); apresentação dos trabalhos desenvolvidos na forma de seminários.
Bibliografia Básica
- TANENBAUM, Andrew S.; STEEN, Maarten Van; MARQUES, Arlete Simille. Sistemas distribuídos: princípios e paradigmas. 2. ed. São Paulo: Pearson Prentice Hall, 2007. 402 p. il.
- COULOURIS, G et al. Sistemas Distribuídos: Conceitos e Projetos. 5. ed. Porto Alegre: Bookman, 2013. 1048 p. il.
- PACHECO, Peter. An introduction to parallel programming. Elsevier, 2011.
Bibliografia Complementar
- ARUNDEL, John; DOMINGUS. DevOps nativo de nuvem com Kubernets. São Paulo: Novatec Editora LTDA. 2019
- STEVENS, R. W. Programação de rede UNIX: API para soquetes de rede. Porto Alegre: Bookman.
- FOROUZAN, B. Comunicação de Dados e Redes de Computadores. Porto Alegre: Bookman.
- ROSS, K.; KUROSE, J. Redes de Computadores e a Internet: uma nova abordagem. São Paulo: Addison Wesley.
- HWANG, Kai; DONGARRA, Jack; FOX, Geoffrey C. Distributed and cloud computing: from parallel processing to the internet of things. Morgan Kaufmann, 2013.
Software(s) de Apoio:
- Sistema Operacional Windows e Linux; Linguagem de programação com suporte a sockets; Linguagem de programação com suporte a chamada remota de procedimentos.