mc714 sistemas distribu dos
play

MC714: Sistemas Distribu dos Prof. Lucas Wanner Instituto de - PowerPoint PPT Presentation

MC714: Sistemas Distribu dos Prof. Lucas Wanner Instituto de Computac ao, Unicamp Aula 1: Introduc ao e Fundamentos MC714 Sistemas Distrubu dos Professor Lucas Wanner lucas@ic.unicamp.br Hor ario Terc


  1. MC714: Sistemas Distribu´ ıdos Prof. Lucas Wanner Instituto de Computac ¸ ˜ ao, Unicamp Aula 1: Introduc ¸ ˜ ao e Fundamentos

  2. MC714 – Sistemas Distrubu´ ıdos Professor Lucas Wanner – lucas@ic.unicamp.br Hor´ ario Terc ¸as 21:00-23:00, Sala CB 06 Quintas 19:00-21:00, Sala CB 05 Website http://www.lucaswanner.com/sd Lista de Emails https://groups.google.com/d/forum/sd-2016-2 Todos os alunos matriculados foram adicionados ` a lista com seus emails da DAC. Solicite ingresso na lista caso n˜ ao tenha recebido notificac ¸ ˜ ao. 2 / 43

  3. MC714 – Sistemas Distrubu´ ıdos Ementa • Sistemas Distribu´ ıdos • Comunicac ¸ ˜ ao entre processos • Sistemas de arquivos • Servic ¸os de nomes • Coordenac ¸ ˜ ao • Replicac ¸ ˜ ao • Seguranc ¸a Bibliografia Texto principal: A. S. Tanenbaum and M. Van Steen. Distributed Systems: Principles and Paradigms. Second edition, Pearson, 2006. Link para download na p´ agina do curso. Coulouris, J. Dollimore, T. Kindberg, and G. Blair. Distributed Systems: Concepts and Design. Fifth Edition, Addison-Wesley, 2011. A.D. Kshemkalyani, M. Singhal, Distributed Computing: Principles, Algorithms, and Systems. Paperback edition, Cambridge University Press, 2011. 3 / 43

  4. Programa: Primeira Parte T´ opico Cap´ ıtulo Introduc ¸ ˜ ao e Fundamentos 1 Arquituras de sistemas distribu´ ıdos 2 Processos e Threads Revis˜ ao, 3 Clientes/Servidores, Virtualizac ¸ ˜ ao e N´ uvem 3 Comunicac ¸ ˜ ao: Revis˜ ao, Sockets Revis˜ ao, 4 Troca de Mensagens, Multicast 4 Disseminac ¸ ˜ ao de informac ¸ ˜ ao 4 Remote Procedure Call 4 Nomeac ¸ ˜ ao 5 Sincronizac ¸ ˜ ao de rel´ ogio 6 Rel´ ogios L´ ogicos 6 Exclus˜ ao m´ utua 6 Eleic ¸ ˜ ao de l´ ıder 6 4 / 43

  5. Programa: Segunda Parte T´ opico Cap´ ıtulo Consistˆ encia: Fundamentos, Modelos 7 Replicac ¸ ˜ ao: Gerˆ encia, Distribuic ¸ ˜ ao de conte´ udo 7 Tolerˆ ancia a falhas: Fundamentos, Comunicac ¸ ˜ ao confi´ avel 8 Commit distribu´ ıdo 8 ¸ ˜ Recuperac ao, Checkpointing 8 ¸ ˜ ¸ ˜ Arquivos: Arquitetura, Comunicac ao, Sincronizac ao 11 Arquivos: Consistencia e replicac ¸ ˜ ao, Tolerˆ ancia a falhas 11 Peer-to-Peer: Introduc ¸ ˜ ao, Distributed Hash Table (DHT) Coulouris 10 Peer-to-Peer: Chrod, Kademlia, BitTorrent Singhal 18 Web: Arquitetura, Comunicac ¸ ˜ ao, HTTP , SOAP , Caching 12 Seguranc ¸a em sistemas distribu´ ıdos 9 5 / 43

  6. Avaliac ¸ ˜ ao Componentes Provas: (P) Ser˜ ao aplicadas duas provas te´ oricas, P 1 e P 2 . Semin´ arios: (S) Semin´ arios ser˜ ao apresentados em sala de aula. Os grupos, datas, e t´ opicos para apresentac ¸ ˜ ao ser˜ ao definidos durante o semestre. Testes: (T) Ser˜ ao aplicados uma s´ ¸ ˜ erie de pequenos testes e exerc´ ıcios de implementac ao. A nota dos testes T ser´ a a m´ edia aritm´ etica entre os testes aplicados. Pol´ ıtica de atraso Cada dia em atraso implicar´ a em um desconto de 2.5/10 pontos para cada entreg´ avel. 6 / 43

  7. Avaliac ¸ ˜ ao M´ edia A m´ edia M da disciplina ser´ a calculada como: M = P 1 × 0 . 3 + P 2 × 0 . 4 + T × 0 . 2 + S × 0 . 1 Exame Alunos com m´ edia 2 . 5 ≤ M < 5 poder˜ ao fazer um exame final ( E ). Nota final A nota final F ser´ a calculada como: � min { 5 , M + E } caso 2 . 5 ≤ M < 5 e o aluno tenha realizado o exame. 2 F = caso contr´ M ario. 7 / 43

  8. Avaliac ¸ ˜ ao Datas Importantes P1: 06/10/2016 P2: 06/12/2016 Exame: 20/12/2017 8 / 43

  9. Integridade Acadˆ emica Pol´ ıtica de tolerˆ ancia zero Toda e qualquer violac ¸ ˜ ao de integridade acadˆ emica ser´ a punida at´ e o limite da autoridade do professor, incluindo mas n˜ ao limitado ` a nota zero na m´ edia final do curso para todos os envolvidos. Exemplos (n˜ ao exaustivos) de violac ¸ ˜ oes Cola e pl´ agio ¸ ˜ oes e c´ odigo (e.g., “dar uma olhada” no c´ Compartilhamento de soluc odigo) Falsificac ¸ ˜ ao de dados e resultados N˜ ao violac ¸ ˜ oes Grupos de estudo Discuss˜ ao de estrat´ egias de implementac ¸ ˜ ao, excluindo detalhes de c´ odigo 9 / 43

  10. Avaliac ¸ ˜ ao Como ir bem no curso (em ordem de importˆ ancia) Resolver os exerc´ ıcios de cada aula. 1 Ler os cap´ ıtulos do livro antes da aula correspondente. 2 Entregar soluc ¸ ˜ oes para testes dentro do prazo. 3 ¸ ˜ ao no semin´ Fazer uma boa apresentac ario. 4 Assistir ` as aulas. 5 10 / 43

  11. Estilo das Aulas Revis˜ ao breve da aula anterior. 1 Discuss˜ ao dos exerc´ ıcos da aula anterior. 2 Apresentac ¸ ˜ ao das perguntas para a aula. 3 Conte´ udo. 4 (em algumas aulas) Testes. 5 Participac ¸ ˜ ao Participac ¸ ˜ ao ser´ a ativamente encorajada na discuss˜ ao, revis˜ ao, e apresentac ¸ ˜ ao do conte´ udo. 11 / 43

  12. Programa T´ opico Cap´ ıtulo Introduc ¸ ˜ ao e Fundamentos 1 Arquituras de sistemas distribu´ ıdos 2 Processos e Threads Revis˜ ao, 3 Clientes/Servidores, Virtualizac ¸ ˜ ao e N´ uvem 3 Comunicac ¸ ˜ ao: Revis˜ ao, Sockets Revis˜ ao, 4 Troca de Mensagens, Multicast 4 Disseminac ¸ ˜ ao de informac ¸ ˜ ao 4 Remote Procedure Call 4 Nomeac ¸ ˜ ao 5 Sincronizac ¸ ˜ ao de rel´ ogio 6 Rel´ ogios L´ ogicos 6 Exclus˜ ao m´ utua 6 Eleic ¸ ˜ ao de l´ ıder 6 12 / 43

  13. Exerc´ ıcios Defina e compare sistemas distribu´ ıdos e sistemas paralelos. 1 Qual ´ e o papel de um middleware em sistemas distribu´ ıdos? 2 Dˆ e exemplos e defina diferentes tipos de transparˆ encia de distribuic ¸ ˜ ao. 3 Qual ´ e a diferenc ¸a entre transparˆ encia de migrac ¸ ˜ ao e transparˆ encia de relocac ¸ ˜ ao? 4 Defina escalabilidade. Quais t´ ecnicas s˜ ao usadas para atingir escalabilidade? 5 Qual ´ e a diferenc ¸a entre replicac ¸ ˜ ao e caching? 6 A vis˜ ao tradicional de transac ¸ ˜ oes diz que quando uma transac ¸ ˜ ao ´ e abortada, ´ e como 7 se a transac ¸ ˜ ao nunca tivesse acontecido. Dˆ e um exemplo onde isto n˜ ao ´ e verdade. Qual ´ e o papel de um coordenador de transac ¸ ˜ oes? 8 13 / 43

  14. Distributed System: Definition A distributed system is a piece of software that ensures that: a collection of independent computers appears to its users as a single coherent system Two aspects: (1) independent computers and (2) single system ⇒ middleware. Computer 1 Computer 2 Computer 3 Computer 4 Appl. A Application B Appl. C Distributed system layer (middleware) Local OS 1 Local OS 2 Local OS 3 Local OS 4 Network Source: Maarten van Steen, Distributed Systems: Principles and Paradigms 14 / 43

  15. Distributed System: Alternative Definition You know you have [a distributed system] when the crash of a computer you’ve never heard of stops you from getting any work done. -Leslie Lamport 15 / 43

  16. Goals of Distributed Systems Making resources available Distribution transparency Openness Scalability Source: Maarten van Steen, Distributed Systems: Principles and Paradigms 16 / 43

  17. Distribution Transparency Transp. Description Access Hide differences in data representation and invocation mechanisms Location Hide where an object is located Relocation Hide that an object may be moved to another location while in use Migration Hide that an object may move to another location Replication Hide that an object is replicated Concurrency Hide that an object may be shared by several independent users Failure Hide failure and possible recovery of an object Note Distribution transparency is a nice a goal, but achieving it is a different story. Source: Maarten van Steen, Distributed Systems: Principles and Paradigms 17 / 43

  18. Degree of Transparency Observation Aiming at full distribution transparency may be too much: Users may be located in different continents Completely hiding failures of networks and nodes is (theoretically and practically) impossible You cannot distinguish a slow computer from a failing one You can never be sure that a server actually performed an operation before a crash Full transparency will cost performance, exposing distribution of the system Keeping Web caches exactly up-to-date with the master Immediately flushing write operations to disk for fault tolerance Source: Maarten van Steen, Distributed Systems: Principles and Paradigms 18 / 43

  19. Openness of Distributed Systems Open distributed system Be able to interact with services from other open systems, irrespective of the underlying environment: Systems should conform to well-defined interfaces Systems should support portability of applications Systems should easily interoperate Achieving openness At least make the distributed system independent from heterogeneity of the underlying environment: Hardware Platforms Languages Source: Maarten van Steen, Distributed Systems: Principles and Paradigms 19 / 43

Recommend


More recommend