Скачать 11.55 Kb.
|
Department and Course Number: CS 499 Course Title: Introduction to Distributed Computing Total Credits: 4 Course Coordinator: Daisy F. Sang, Professor of Computer Science Last Update: October 7, 2003 Current Catalog Description Distributed computation models. Network architecture and internetworking. Distributed objects and remote invocation. Synchronization and distributed algorithms. Processes and threads. Transaction and distributed file servers. Case studies. 4 lectures/problem-solving. Prerequisite: CS 241 with grades of C or better, or consent of instructor. Textbook G Coulouris, J Dollimore, T Kindberg, Distributed Systems: Concepts and Design. Third Edition. Addison-Wesley, 2001 Reference H Attiya, and J Welch, Distributed Computing: Fundamentals, Simulations and Advanced Topics. McGraw Hill, 1998. N Lynch, Distributed Algorithms. Morgan Kaufmann, 1996. G Tel, Introduction to Distributed Algorithms. Second Edition. Cambridge University Press, 2000. J Farley, Java Distributed Computing. O'Reilly, 1998. Goals A recognition of the complexity involved with developing communication software systems. An overall perspective of key distributed programming concepts, techniques, and tools. An introduction to distributed algorithms, synchronization, communications and transactions. Prerequisites by Topic Data Structures and Algorithms Programming Proficiency Basic Operating Systems Basic Computer Systems Topic Characterizations of distributed systems (2 hours) Distributed computation models (2 hours) Network architectures (2 hours) TCP and UDP (2 hours) Internet addressing (2 hours) Java socket programming (4 hours) Distributed objects and remote invocation (2 hours) Broadcast, convergecast, leader election (4 hours) Routing algorithms (4 hours) Mutual exclusion (2 hours) Distributed Agreement (2 hours) Network File System (NFS) (2 hours) Domain Name System (DNS) (2 hours) Object replication and consistency control (2 hours) Recovery and Fault Tolerance (4 hours) Laboratory Projects Implementation of a two-way chat application consisting of a server and multiple clients. Java socket-based communication was used. (2 week) Implementation of a distributed bank with a set of branches. TCP was used for communication between branch server objects and branch GUI objects. (2 week) Implementation of a distributed bank with message logs for recovery from branch server fail stop failure. (3 weeks) CSAB Category Content
Theoretical Content Formal message passing network model and distributed algorithms are covered. Fundamental distributed algorithmic problems include broadcast, convergecast, election, resource allocation, mutual exclusion, deadlock detection, consensus and clock synchronization. Complexity measures such as communication complexity and time complexity for distributed algorithms are used for worst-case analysis. |