Class Notes for CSE 531
This page contains bulleted lists of topics covered in class.
No detail.
(spelling errors and typo's have not been checked carefully).
An article on Network Operating Systems
(overview)
A
set of lecture notes. Please read the section entitled
"Distributed Systems - II"
Class 1: August 26th
- Introduction to distributed computing
- What is distribution
- Types of networking
- Distributed Algorithms
- Classifications of machines (UMA, NUMA, SIMD, MIMD)
Class 2: August 28th
- Multiprocessor machines (MIMD, SIMD, UMA, NUMA, NORMA)
- Design and use of MIMD/UMA machines
- Bus, cache architecture
- OS design considerations for UMA machines
- Re entrant OS, Spin locks
Class 3: Sept.3rd
- Spin locks contd.
- Mutex locks
- OS design issues - for UMA machines
- NUMA machines - how to use them
- Programming methods for NUMA machines. Applications for
NUMA.
Class 4: Sept 8th
- NORMA machines
- Programming and use strategies for NORMA machines
- PVM, MPI Linda
Class 5: Sept 10th
- Linda continued
- Distributed Computing introduced
- Evolution of networking and distributed computing
- Basic Facilities - telnet/rsh/ftp/mail
- Information and resource sharing
- Networked file systems, NFS, AFS
Class 6: Sept 15th
- Why are Dist Systems good?
Distributed Applications
Information Sharing
Resource Sharing
Better Price Performance
Higher Reliability
faster throughput
growth/flexibility/
- What is a Dist OS - integration of autonomous computers.
- Issues:
Transparency - *- access, *- location, *- replication, *-
failure
Reliability - *- Fault avoidance, *- fault tolerance, *-
failure detection and *- recovery
Flexibility - microkernels
Performance - *- caching, *- less copying, *- low latency
protocols, *- reduce network traffic
Scalability - *- avoid centralized *- do things on
clients
Class 7: Sept 17th
- The message passing paradigm
- Distribution and distributable system designs
- Basic message passing API
- Writing trivial applications with message passing
Class 8: Sept 22nd
- Important:
Homework handed out: Submit
problems 1, 2, 3, 5, 10.
- Client Server programs - program skeletons
- Matching clients and servers - creating client ports and
passing to server
- Locating servers via name service
- Attributes of name service - well known ports,
replication
- Multithreaded servers - introduction
Class 9: Sept 24th
- Attributes and properties of multithreaded servers
- Programming multithreaded servers
- Global memory, state etc. Statefull and Stateless servers
- Architecture of multithreaded servers - fixed number of
threads versus dynamic number of threads
Class 10: Sept 29th
- Multithreading servers, and properties of different
approaches to multithreading
- Coroutines
Class 11: Oct 1st
- User Level Multithreading - non-preemptive
- Pre-emptive multithreading (user level)
Class 12: Oct 6th
- Threads continued
- Architecture of Client/Server/Message based distributed
operating systems
Class 13: Oct 8th
- Microkernels, performance issues, hybrid kernels
- Implementation of send/receive
Class 14: Oct 13th
- Implementation of message passing systems
- Capabilities and access rights
Class 15: Oct 15th - MID TERM EXAM
- Exam will be held in class, during the class
period. Extra time allocation may not be possible.
- Exam is open book, open notes.
- Any impropriety during the exam will be treated
seriously.
Class 16: Oct 20th
- Capabilities, contd.
- Location independent naming
- Centralized, Distributed Locking
- Read write locking service (with upgrades and downgrades)
Project 1: Simple Lock
Manager
Class 17: Oct 22nd
- Remote Procedure Calls
- Interface Definition Language (stubs, server loops,
client server bindings, marshalling...)
Class 18: Oct 27th
- RPC Semantics
- What is Distributed Shared Memory
- DSM Semantics
- How is DSM implemented
Class 19: Oct 29th
- Sequential Consistent DSM
- Server algorithms
- Page invalidations
Class 20: Nov 3rd
- Page shuttling
- Using locking in DSM system
Class 21 Nov 5th
- Release Consistent DSM
- using XOR to update pages
Class 22: Nov 10th
- Project: Building a DSM server and DSM clients
Class 23: Nov 12th
- More Project Details
- The Muddy Children Problem
- Common Knowledge Definition
Class 24: Nov 17th
- How common knoledge theory shows consensus and hence
almost any distributed programming is impossible in
distributed system (where there is a chance of lost
messatges)
- Clocks in Distributed Systems
- Physical clock synchronization to real time (reading
assignment)
- Concept of logical clocks
- Lamport Clocks
- Vector Clocks
Class 25: Nov 19th
- Project Clarifications
- Vector Clocks
- Snapshots - what is it, why use it, how to get it
- Snapshots, Chandy/Misra/Haas Algorithm
- Proof of correctness
Class 26: Nov 24th
- Project/Snapshots, clarifications
- Distributed Mutual Exclusion
- Centalized Algo
- Lamport Algo
- Ricart/Agrawal Algo
- Maekawa Algo
Class 27: Nov 26th
- Replication Control Algorithms
Class 28: Dec 1st
Class 29: Dec 3rd
- Scheduling in Distributed Systems
Class 30: Dec 8th
- Distributed Deadlock Detection (Chandy and Misra probe
algorithm)
- Wrap up