<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
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
Modelos de máquinas paralelas.
Modelos de Máquinas paralelas:
PRAM (Parallel Random Access Machine);
BSP (Bulk Synchronous Parallel Model);
CGM (Coarse Grained Multicomputer);
LogP.
Granularidade, níveis de paralelismo.
Conceitos de granularidade e paralelismo.
Granularidade fina e grossa.
Níveis de paralelismo: nível de instrução, ambiente multi-thread, nível de chip, cluster, grid.
Máquinas multiprocessadores e multi-computadores: topologia, arquiteturas fortemente acopladas e fracamente acopladas.
Máquinas multiprocessadores.
Máquinas multi-computadores.
Ambientes fortemente acoplados e fracamente acoplados.
Conceito de sistemas operacionais distribuídos e sistemas operacionais de rede.
Processos: threads, clientes, servidores, código móvel e agentes de software.
Definição e principais características de sistemas distribuídos.
Motivação para o desenvolvimento de aplicações distribuídas.
Exemplos de sistemas distribuídos.
Desafios no desenvolvimento de aplicações distribuídas: heterogeneidade, abertura, segurança, gerenciamento de falhas, escalabilidade, controle de concorrência e transparência.
Arquiteturas em sistemas distribuídos: cliente-servidor, processos pares (peer-to-peer), servidores múltiplos, códigos móveis, agentes de software.
Middlewares para aplicações distribuídas.
Comunicação entre objetos distribuídos.
Referência de objetos remotos.
Serviço de nomes.
Representação externa de dados.
Arquitetura de eventos e notificações.
Middlewares para aplicações distribuídas.
Atividade em laboratório: desenvolvimento de aplicações distribuídas.
Sincronização em Sistemas distribuídos.
Modelo de Interação: sistemas distribuídos síncronos e sistemas distribuídos assíncronos.
Sincronização interna e externa de relógios físicos.
Tempo lógico e relógios lógicos.
Características da comunicação entre processos.
Primitivas de comunicação.
Atividade em laboratório: comunicação entre processos via soquetes.
Coordenação e acordo em Sistemas distribuídos.
Coordenação e acordo em sistemas distribuídos: algoritmos para implementação de exclusão mútua entre processos.
Transações distribuídas: modelos, classificação e controle de concorrência.
Propriedades ACID de uma transação.
Estados de uma transação.
Protocolos de efetivação de uma transação.
Transações planas e aninhadas.
Leituras sujas, cancelamento em cascata, escritas prematuras.
Controle de concorrência: travas e bloqueios; ordenação por indicação de tempo; controle de concorrência otimista.
Impasses (deadlocks).
Atividade em laboratório: desenvolvimento de aplicações distribuídas.
Tópicos de Tolerância a falhas e segurança.
Modelo de Falhas: falhas em processos e em canais de comunicação.
Tópicos de tolerância a falhas.
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
-
Journal of Parallel and Distributed Systems. Elsevier. ISSN: 0743-7315. Disponível em: <
http://www.sciencedirect.com/science/journal/07437315> ou no Portal de periódicos da CAPES <http:
www.periodicos.capes.gov.br/>.
* KUROSE, James F.; ROSS, Keith W. Redes de Computadores e a Internet: uma Abordagem Top-down. 3. ed. São Paulo, SP: Pearson Addison Wesley, 2006. ISBN 8588639181.
* TANENBAUM, Andrew S. Sistemas Operacionais Modernos. 3. ed. São Paulo: Pearson, 2008. ISBN: 9788576052371.
Outros recursos: