Fall 2019.
Distributed/Multiprocessor Operating Systems.
Class synopsis
Disclaimer:
This is a set of notes that summarize the class
coverage of material. By no means is this comprehensive or is a substitute for
class notes and attendance. Also, updating of this page is not guaranteed to be
frequent.
This page will be updated as class progresses....
Class 1:
Class 2:
- OS classes
- Virtualization
- CPU architectures
- Multicore Architectures
- UMA, NUMA, NORMA
- [notes, audio]
Class 3:
- UMA, NUMA, NORMA
- UMA and Cache Coherency
- Processes and threads
- Kernels and reentrancy
- System calls
- [notes, audio]
Class 4:
- Parallel Programming
- Scheduling multiple CPUs
- Kernel preemption
- Race conditions and locking
- [notes, sorry, no audio]
Class 5:
- Locking, semantics
- Locking with interrupt disabling, and spin locks >[assembly code]<
- Building Mutex locks
- [notes, audio]
Class 6:
- How Interrupts work
- How system calls work >[reference]<
- How context switching works
- [notes, audio]
Class 7:
- Semaphore (classical, Dijkstra)
- Spinning semaphores
- Blocking Semaphores
- [notes, audio]
Class 8:
- Using semaphore
- Producer Consumer and readers writers code
- Monitors
- [notes, audio]
Class 9:
- Monitors and pthreads
- Monitors and semaphores
- Coroutines and Threads
- [notes, audio]
Class 10:
- Implementing Threads
- Writing a scheduler
- Non-preemptive Scheduling
- [notes, audio]
Class
11, 12 and 13 are available on Canvas (look at the “Pages” menu item)
Class 11:
- Implementing Semaphores
- Control flow in Non-preemptive Scheduling
- Reentrancy and Kernels
- Multicore scheduling
Class 12:
- Scheduling User and Kernel Threads
- Barriers
- OS architectures
Class 13:
- Parallel Programming
- Open MP
- MPI >[reference]<
- Linda
Class 14:
Class 15:
Class 16:
Class 17:
- Andrew File System >[reference]<
- Message Passing >[reference]<
- Semantics of send receive
- Client server programming and reply ports
- [notes, audio]
Class 18:
- Client server programming and reply ports
- Server state and stateless service
- Cookies
- Multithreading servers (and recursion)
- [notes, audio]
Class 19:
- Multithreading servers programming
- Implementing ports, one machine
- Distributed Ports
- Net Message Server >[reference]<
- [notes, audio]
Class 20:
- Distributed Mutual Exclusion
- Lock server, simple
- Deadlocks
- [notes, audio]
Class 21:
- Lock server with shared locks, deadlock detection and
upgrades
- RPC >[reference]<
- [notes, audio]
Class 22:
Class 23:
Class 24:
Class 25:
Class 26:
- Distributed Snapshots -- continued
- Class Review
- [notes, audio]