Fall 2000. Distributed/Multiprocessor Operating Systems.
Class
synopsis
- just a brief outline of topics covered in class
Class 1: August 22 2000
Class 2: August 24
- UMA NUMA and NORMA
- SIMD and MIMD machines
- Applications for UMA/NUMA/NORMA machines
- Parallel processing - PVM, MPI and Open MP
- Operating Systems for UMA machines
- What is a kernel - reentrant kernels
Class 3: Aug 29 x
- Operating system structure and how uniprocessor operating systems work
- User and protected modes and service routines
- Unix structure and Windows NT structure. Pro's and Con's of the "old" and "new" architecture
- What is a "non pre-emptible kernel" - and why uniprocessors use it
- Why does it not work for multiprocessors
- Replacing Interrupt Disabling with SPIN LOCKS
- SPIN LOCKS and Test and Set (important - please understand this one)
- Why Spin locks are bad for uniprocessors and OK for multiprocessors
- -> Multiprocessor kernels and spin locks and reentrancy and efficiency and busy waitin - a long discussion
- USER LEVEL LOCKING: Mutex locks versus Spin locks
- user level spin locks are terrible in uniprocessors, GREAT in multiprocessors
Class 4: Aug 31
- Scheduling in Multiprocessors (main topic)
- Scheduling in Uniprocessors - how schedulers work
- timer interrupts, context switching, interrupt handling, PCB's
- Round robin
- How to extend round robin to a multiprocessor system
- ---protect the queues, use per processor task pointer, etc
- Scheduling algorithms - gang scheduling, smart scheduling, processor
affinity and so on.
Class 5: Sept. 5
- NUMA Communications
- Linda and how to use in parallel processing
- Towards distributed systems
- Minicomputer systems - centralized is good
- Minicomputer model, microcomputer (workstation) model, add servers - or go
to the processor pool model
- What is a distributed operating system - pros and cons
- Networking, tcp-ip - mail, uucp and progress
- Shared file systems.
Class 6: Sept. 7
- Sun NFS and remote mounts
- Datalass worstation configurations
- How does the Unix file System work - "namei" and mount points
- Processing system calls - remote and local file detection
Class 7: Sept. 12
- The Sun NFS system internals
- NFS Client and NFS Server
- Stubs for open/read/write
- The NFS Protocol
- Stateless File service in NFS
- Handling handles
Class 8: Sept. 14
- Scalability and the Andrew File System
- What are are Dist Systems used for?
-. Distributed Applications
-. Information Sharing
-. Resource Sharing
-. Better Price Performance
-. Higher Reliability
-. faster throughput
-. growth/flexibility/
- Transparency of:
*- access,
*- location,
*- replication,
*- failure
- Reliability
*- Fault avoidance,
*- fault tolerance,
*- failure detection and
*- recovery
- Scalability
*- avoid centralized
*- do things on clients
Class 9: Sept. 19
- Computing Communities and Process Migration
Class 11: Sept. 26
- Message Passing Architecture
- Semantics of message passing
- Writing programs with message passing
- Using ports for communication
- Simple client server programs
Class 12: Sept. 28
- Message Passing continued
- Implementing Ports and messages
- Writing complex programs using message passing (nesting servers)
- Name service
HOMEWORK ASSIGNMENT
Class 13: Oct. 3
- Multi-threading - why we need it
- Writing single threaded servers - problems with waiting for nested
services
- Non-blocking single threaded servers, how to service multiple request
concurrently
- Using cookies to keep track of progress
- Messy service routines!
Class 14: Oct. 5
- Toward multi-threading - coroutines
- hw to handle coroutines
- building multithreading at the user level
- starting and scheduling threads
- a design and implementation of a threads package
Class 15: Oct. 10
- recap of message passing systems
- clarifications of threads concepts
- kernel level threads
- preemptive and non-preemptive threads - race conditions, atomicity,
synchronization
- microkernels - what why and how
- desirable features of microkernel based systems
Class 16: Oct. 12
- Recap and review of topics covered
- Q/A
- Microkernels - efficiency issues
- Using LRPC to speed up microkernel performance
Class
[no class]: Oct. 17
Class 17: Oct. 19
Class 18: Oct. 24
- Lecture on API Interception and Computing Communities
Class 19: Oct. 26
- Lock management
- Advisory and mandatory locking
- Centralized and Distributed Algorithms
- Lock server
- Semantics of locks
- Implementing locks using messages (simple)
- Implementing Shared and Exclusive locks using a single threaded lock
server
Class 20: Oct. 31
- Semantics of lock service
- State Diagrams, error cases
- Downgrading locks
- Upgrading locks
- Discussion on cases of starvation and fairness
- Deadlocks, detection and recovery
Class 21: Nov. 2
- Remote Procedure Calls
- Shortcomings of message passing
- Concept of RPC
- Programming with RPC
- Parameter types
- The IDL and the stubs
Class 22: Nov. 7
- IDL Stubs and RPC bahaviour
- How RPC works
- Nameserver, versions
- Binding in RPC systems
- CORBA
Class 23: Nov. 9
- Exams handed back. Discussion of Exam paper
- Object based operating systems using the RPC framework
- Object invocations by thread stack switching
Class 24: Nov. 14
PROJECT #2 - a full
featured lock server
- Distributed Shared Memory
- Shared memory segments in centralized operating systems
- DSM via page shuttling - exclusive one-by one use (provides coherence and
sequential consistency)
- DSM via read and write mode pages (page faulting, DSM server)
- Algorithms for invalidation based DSM
Class 25: Nov. 16
- DSM systems with weaker consistency
- Release consistency
- Implementation of release consistent DSM's and the relationship with
locking (data race free)
Class 26: Nov. 21
- The Muddy Children problem
- Hierarchies of knowledge
- Common knowledge is impossible in distributed systems.
- The consensus problem - the Byzantine generals problem
- The two phase commit protocol.
Class
[No class]: Nov. 23
- Thanksgiving break - no class
Class 27: Nov. 28
Class 28: Nov. 30
Class
[No Class]: Dec. 5 - see project demo schedules
FINAL
EXAM:
Thu Dec 7th 12:20p- 2:10p
Happy Holidays!!!