15-440 Tentative Schedule

Week 1

  • Administrivia, Limitations (DSM, n*1/m vs m) of Distributed Systems, Promise of Distributed Systems
  • Systems, Distributed Systems, and Some OS Bits

Week 2

  • Network: Wires through IP
  • Networking: UDP, TCP and above

Week 3

  • Communication: Sockets, RPC, RMI
  • Scheduling, Concurrency, and Shared Memory

  • Project #1 Assigned (Tuesday)

Week 4

  • Shared Memory Concurrency control (Atomic operations, mutexes, condition variables, semaphores, producer-consumer, reader-writer)
  • Time in distributed systems: Physical and Logical

  • Project #1 Due

Week 5

  • Consistency and Replication: Consistency Models
  • Consistency and Replication: Quorums and Management, Best-Effort Management

  • Project #1 Due (Tuesday)

  • Project #2 Assigned (Thursday)

Week 6

  • Distributed Mutual Exclusion, Election
  • 2PC, Multicast, Distributed Transactions, ACID, BASE, CAP

Week 7

  • Fault Tolerance: Agreement (Two Armies, Generals)
  • Midterm Exam

Week 8

  • Fault Tolerance: Logging
  • Fault Tolerance: Checkpointing

  • Project #2 Due

Mid-Semester Break

  • No classes

Week 9

  • Programming models: MPI
  • Programming models: OpenMP

  • Project #3 Assigned

Week 10

  • Programming models: Map-Reduce
  • Processor Allocation and Process Migration

Week 11

  • Condor, OpenPBS
  • Distributed File Systems (DFS): NFS, AFS, Coda

Week 12

  • Distributed File Systems with non-Posix-like semantics (Lustre, HDFS, MogileFS, etc)
  • Security: Threats, Policies, and Models

  • Project #3 Due

Week 13

  • Cryptography, Security Protocols, and Secure System Design
  • Carnival -- No class

  • Project #4 Assigned

Week 14

  • Anonymous routing and Tor, Distributed Hahsing
  • Virtualization, I

Week 15

  • Virtualization, II
  • Wrap-up

  • Project #4 Due

Final Exams

  • Enjoy!