CSE531: Distributed and
Multiprocessor Operating Systems
Computer Science and Eng.         Fulton School of Eng.


Home Description Text Book Lecture Notes Course Instances Announcements Projects Assignments Resource Links Contact


What happens in Class?

The course is heavy on lectures, discussions and classroom coverage of topics. Each time the class is taught, the structure content and sequence may change slightly. The following is a class by class topic list that is illustrative of the content of the course.

Class Detail

Class 1:
bulletIntroduction to the course -- exams, homeworks, projects, lectures, book
bulletIntroduction to Multiprocessor Operating Systems
bulletIntroduction to Distributed Operating Systems
bulletRamblings on Turing Machines and Distributed Systems Theory

Class 2:

bulletWhy multiprocessors
bulletMultiprocessor Classifications
bulletCaching in uniprocessors
bulletCaching in Multiprocessors
bulletCoherence problems, snoopy caches, cache coherent multiprocessors
bulletMemory contention, code and data
bulletRead write data contention

Class 3:

bulletMemory Contention and memory conflicts
bulletAtomicity, Race conditions
bulletErrors due to race conditions
bulletStructuring a OS kernel -- interrupt driven
bulletAPI calls
bulletMulti-threaded executions in the OS kernel
bulletAtomicity via Interrupt Disable

Class 4:

bulletCritical sections (mutual exclusion, progress, bounded waiting)
bulletSoftware solutions (Peterson, Dekker, Lamport)
bulletNeed atomicity to get atomicity (Hardware assist -- interrupt disable or test-and-set)
bulletSemaphores-- Dijkstra
bulletSemaphore implementations (queuing of PCBs in real systems)
bulletTest and set - atomic instructions
bulletUsing test and set to get atomicity

Class 5: Sept 7

bulletSemaphores (mutex locks) and Spin locks
bulletChoice of locks depending on hardware and application
bulletProcess Synchronization
bulletProducer consumer and variants
bulletone item buffer, bounded buffer, multiple produces/consumers
bulletSemaphore implementation for multiprocessors

Class 6: Sept 9

bulletReading assignment: Readers and Writers
bulletProcesses, threads and shared memory
bulletUNIX IPC
bulletProgramming concurrent threads

Class 7: Sept 14

bulletprogramming threads with fork/join, start-thread and cobegin-coend (parbegin-parend)
bulletthread properties and different types of threads
bulletbarrier synchronization
bullet POSIX Threads

Class 8:

bulletThreads explained
bulletFAQ on Threads
bullet Implementing user level threads (actual code)

Class 9:

bulletKernel threads and programming
bulletUser level threads
bulletHow to implement user level threads
bulletCooperating multitasking

Class 10:

bulletThreads, again
bulletNon preemptive, cooperative multiprogramming
bulletPreemptive threads
bulletKernel Level threads
bulletAtomicity/Synchronization/MT Safe libraries
bulletShared Memory Parallel Programming (loops, threads and barriers)

Class 11:

bulletScheduling in Multiprocessors (Round Robin, Co-Scheduling, Affinity Scheduling, Handoff Scheduling)
bulletParallel Programming - shared memory and message passing
bulletPVM, MPI, Open MP

Class 12:

bulletNUMA architecture and programming
bulletNORMA (Cluster) architecture and programming
bulletDistributed Systems.....
bulletAutonomy and collaboration
bulletLoad balancing, efficiency, reliability
bulletUSAGE: Distributed Application - Info sharing - resource sharing - reliability - flexibility
bulletIssues - TRANSPARENCY (access/location/replication/failure)

Class 13:

bulletPhysical/Logical centralization and distribution
bulletDistributable system models - message, object, shared memory
bulletHistory of Networking and Distributed Systems
bulletData-less Workstation Configuration for Sun-NFS
bulletDesign of Unix File System (inodes, inumbers)
bulletMounting remote directories, in NFS


Class 14:
bullet"namei" and "nsfd" - remote mounts and rewriting
bulletremote handles and local file descriptors
bulletremote open/read
bulletstateless servers
bulletclient caching
bulletScalability ->> Andre File System (AFS)

Andrew FAQ = http://www.angelfire.com/hi/plutonic/afs-faq.html

bulletOn campus implementation of AFS

Class 15:

bulletDistributable System Models (message, object, shared memory)
bulletBasics of Messages
bulletSemantics of SEND
bulletSemantics of RECEIVE
bulletProgramming with Send and Rcv
bulletUsing PORTS

Class 16:

bulletClient server programs
bulletWhy are servers needed (global state)
bulletPost assignment for multiple client single server (also connectionless communications)

Class 17:




How micro-kernels work


Advantages, Disadvantages of micro-kernels


 How to implement PORTS -- in single machine systems (or multiprocessors)



Class 18:

bulletPort implementations (Use a buffer and semaphores, and a producer consumer structure)
bulletPorts in multiprocessors
bulletPorts in distributed systems
bulletMessaging across a network

Class 19:

bulletGlobal ports, or distributed implementation of ports
bulletLocal and remote sends and receives
bulletThe NetMsg Service (network message service)
bulletadd network send and receive for message transport
bulletpath send and receive to interface with netmsg service
bulletuse threads for waiting in netmsg service
bulletnetmsg serice without threads (more the delivery of messages to the sender, in case the receiver has to wait)

Class 20:

bulletMultithreading servers
bulletUsing separate multiple processes
bulletDynamic threads
bulletStatic Threads
bulletPassing arguments to threads
bulletAdvantages, disadvantages of multithreading
bulletRecursive servers
bulletStateless/Single threaded servers and Cookies

Class 21:

bulletCookies revisted
bulletLock server
bulletLocking modes and semantics
bulletAlgortihms for locking - starvation prevention

Class 22:

bulletUpgrades and downgrades of locks
bulletRPC - introduction

Class 23:

bulletRPC properties and semantics (parameter passing)
bulletIDL for defining RPC
bulletIDL Compiler
bulletGeneration of RPC server
bulletGeneration of Client Stubs
bulletClient server version control
bulletIntroduction to DSM

Class 24:

bullet"page based" Distributed Shared Memory
bulletDSM server and DSM clients
bulletAlgorithms for client and server for coherence
bulletPage modes
bulletPage shuttling -- advantages and disadvantages of DSM
bulletFalse sharing -- and locking
bulletRelease Consistent DSM

Class 25:

bulletMuddy Children Problem (read Halpern and Moses, see reading list)
bulletHierarchies of Knowledge
bulletConsensus in Distributed Systems (Coordinated Attack Problem)
bulletTwo Phase Commit algorithm

Class 26:

bulletTime-Even Ordering-Lamport Clocks-Distributed Mutual Exclusion (see paper)

Class 27:

bulletDistributed Snapshots

Class 28: