Course Details

  • Course Number: 16:198:545
  • Course Type: Graduate
  • Semester 1: Spring
  • Credits: 3
  • Description:

    This course will cover the basic mechanisms for building distributed systems (e.g., RPC, synchronization, transactions, etc.), a number of relevant subsystems of distributed operating systems (e.g., distributed file systems, distributed shared-memory systems, etc.), and issues in wide-area distributed systems (e.g., security, wide-area clustering, etc.).

  • Category: B (M.S.), B (Ph.D.)
  • Prerequisite Information:

    16:198:519

  • Course Links: 16:198:519 - Operating System Theory
  • Topics:

        * Introduction
        * Distributed Mechanisms: user-level messaging (e.g., active message, VMMC, Fast Messages), MPI and higher-level communication protocols, RPC, distributed synchronization, and transactions.
        * Distributed Algorithms: distributed consensus, leader election, membership, distributed clocks.
        * Distributed Processor Scheduling: scheduling mixed parallel/sequential workloads, dynamic load sharing/balancing, and process/thread migration.
        * Distributed File Systems: distributed naming, cooperative caching, stateful vs. stateless servers, file replication and migration for load balancing, and case studies.
        * Distributed Shared-Memory Systems: memory coherency and consistency models, mechanisms for software DSM systems, and case studies.
        * Fault-Tolerance: roll-back recovery (checkpointing), coordinated and uncoordinated checkpointing, and logging.
        * Real-Time Distributed Systems: real-time scheduling (rate monotonic, deadline monotonic, and earliest deadline first) and real-time communication.
        * Wide-area Systems: system support for Internet services and wide-area clustering.
        * Security: threats and vulnerabilities, trusted computing base, authentication, mandatory access control, auditing, security policies, and intrusion detection.

  • Expected Work: A midterm examination, a final examination, and a course project, which is the cullmination of a series of assignments.