This course covers topics in advanced operating systems and distributed systems such as naming, security, resource sharing, and remote execution, concurrency and distributed communication, fault-tolerance, availability, and persistence. The course will emphasize design principles of distributed systems, algorithms and data structures used, and evaluation methodologies.
Distributed Systems (CS 534)
Programs\Type | Required | Core Elective | Area Elective |
Business Analytics - With Thesis | * | ||
Computer Science and Engineering - With Bachelor's Degree | * | ||
Computer Science and Engineering - With Master's Degree | * | ||
Computer Science and Engineering - With Thesis | * | ||
Cyber Security - With Bachelor's Degree | * | ||
Cyber Security - With Master's Degree | * | ||
Cyber Security - With Thesis | * | ||
Data Science - With Thesis | * | ||
Electronics Engineering and Computer Science - With Bachelor's Degree | * | ||
Electronics Engineering and Computer Science - With Master's Degree | * | ||
Electronics Engineering and Computer Science - With Thesis | * | ||
Electronics Engineering - With Bachelor's Degree | * | ||
Electronics Engineering - With Master's Degree | * | ||
Electronics Engineering - With Thesis | * | ||
Energy Technologies and Management-With Thesis | * | ||
Industrial Engineering - With Bachelor's Degree | * | ||
Industrial Engineering - With Master's Degree | * | ||
Industrial Engineering - With Thesis | * | ||
Leaders for Industry Biological Sciences and Bioengineering - Non Thesis | * | ||
Leaders for Industry Computer Science and Engineering - Non Thesis | * | ||
Leaders for Industry Electronics Engineering and Computer Science - Non Thesis | * | ||
Leaders for Industry Electronics Engineering - Non Thesis | * | ||
Leaders for Industry Industrial Engineering - Non Thesis | * | ||
Leaders for Industry Materials Science and Engineering - Non Thesis | * | ||
Leaders for Industry Mechatronics Engineering - Non Thesis | * | ||
Manufacturing Engineering - Non Thesis | * | ||
Manufacturing Engineering - With Bachelor's Degree | * | ||
Manufacturing Engineering - With Master's Degree | * | ||
Manufacturing Engineering - With Thesis | * | ||
Materials Science and Nano Engineering-(Pre:Materials Science and Engineering) | * | ||
Materials Science and Nano Engineering-(Pre:Materials Science and Engineering) | * | ||
Materials Science and Nano Engineering - With Thesis (Pre.Name: Materials Science and Engineering) | * | ||
Mathematics - With Bachelor's Degree | * | ||
Mathematics - With Master's Degree | * | ||
Mathematics - With Thesis | * | ||
Mechatronics Engineering - With Bachelor's Degree | * | ||
Mechatronics Engineering - With Master's Degree | * | ||
Mechatronics Engineering - With Thesis | * | ||
Molecular Biology, Genetics and Bioengineering (Prev. Name: Biological Sciences and Bioengineering) | * | ||
Molecular Biology, Genetics and Bioengineering-(Prev. Name: Biological Sciences and Bioengineering) | * | ||
Molecular Biology,Genetics and Bioengineering-With Thesis (Pre.Name:Biological Sciences and Bioeng.) | * | ||
Physics - Non Thesis | * | ||
Physics - With Bachelor's Degree | * | ||
Physics - With Master's Degree | * | ||
Physics - With Thesis | * |
CONTENT
OBJECTIVE
The main objective of this course is to study the fundamentals of distributed systems. It focuses on the layer of software that needs to be built on top of computer networks to enable the development of distributed applications.
LEARNING OUTCOMES
- Explain what a distributed system is, why a computer system should be designed as a distributed system, and what the desired properties of such systems (transparency, scalability, openness) are.
- List the principles underlying the functioning of distributed systems, identify the problems and challenges associated with these principles.
- Explain properties of distributed algorithms.
- Explain different software architectures used in distributed systems (e.g., client-server, multi-tier, peer-to-peer, structured, unstructured, object-based, data-centered)
- Design and build distributed system software using both basic OS mechanisms (e.g., primitives for communication, multi-threading, concurrency etc.) and higher-level middleware services (e.g., RPC, RMI, message passing, queuing systems, etc.)
- Develop distributed programs that communicate via remote method invocation (RMI) or equivalent communication technologies.
- Explain the importance of efficient naming schemes in distributed systems
- Identify possible synchronization problems in a distributed system and describe appropriate solutions to them
- Describe how consistency and replication affect distributed system design, identify possible resulting problems and corresponding solutions
- Explain what fault tolerance is, why it is needed in distributed systems,
- Identify the security problems in distributed systems, list a set of security primitives that can be utilized in addressing security issues distributed systems such as access control, delegation, authentication, authorization
Update Date:
ASSESSMENT METHODS and CRITERIA
Percentage (%) | |
Final | 30 |
Midterm | 25 |
Assignment | 30 |
Group Project | 15 |
RECOMENDED or REQUIRED READINGS
Textbook |
Andrew S. Tanenbaum and Maarten van Steen. Distributed Systems: Principles and Paradigms, 2nd Edition, Prentice Hall, 2007, ISBN: 0-13-239227-5. |
Readings |
- Remzi H. Arpaci-Dusseau and Andrea C. Arpaci-Dusseau. Operating Systems: Three Easy Pieces, 1.00 Edition, Published by CreateSpace Independent Publishing Platform, 2018, ISBN: 978-1985086593. |