Topics Typically Covered in Course
Introduction and History of Distributed Systems
Design Approaches
Layered Approach
Kernel based Approach
Virtual Machine based Approach
Why Advanced Operating Systems are Distributed
System Models
Client/Server
Peer to Peer
Model-View-Controller
Communications
Local Area Networks
Wide Area Networks
Message Passing
Remote Procedure Calls (RPC) and Remote Method Invocations (RMI)
Internet Protocols
Wireless Lans
Transactions and Concurrency Control
Locks
Optimistic Concurrency Control
Timestamp ordering
Comparison of methods for concurrency control
Distributed Transactions and Objects
Events and notifications
Distributed Mutual Exclusion
Lamport’s Logical Clocks
Vector and Matrix Clocks
Two-Phase Commit and Two-Phase Locking for Distributed transactions
Replication
Fault Tolerant Services
Transactions with replicated data
Distributed Multimedia Systems
Characteristics of Multimedia data
Quality of Service management
Resource management
Stream adaptation
Name Services
Name servires and the Domain Name System (DNS)
Directory services
The X.500 and LDAP Directory Services
Time and Global States
Clocks, events, and process states
Synchronizing physical clocks
Logical time and logical clocks
Global states
Distributed debugging
Coordination and Agreement
Distributed mutual exclusion
Elections
Coordination and agreement in group communication
Consensus and related problems
PAXOS and RAFT algorithms for Consensus
Cloud Computing
Virtual Machines
Hadoop and MapReduce
Case Studies
Amazon AWS
Cloudera
Cassandra
Zookeeper
Chubby
MongoDB
Bayou and Coda
CORBA
Bayou
Coda
Mapreduce
Kafka