Fall
2020. 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 0: Test Class
Class 1:
- Course
details and Introduction
- Administrivia
- Multicore
operating systems
- Everything
is OLD, comments by Rob Pike >[reference]<
- [notes, audio, video]
Class 2:
- History
of Multiprocessors and Distributed Systems
- Types
of Operating Systems
- Multicore
Architecture
- [notes, audio, video]
Class 3:
- CPU
architecture
- Multicore
Architecture – UMA and NUMA
- UMA
and caches
- Coherency
- [notes, audio, video]
Class 4:
- UMA
and coherent caches
- Race
conditions
- Locking
- Test
and set
- [notes, audio, video]
Class 5:
Class 6:
- Demo
– Race Conditions
- Interrupts
and modes
- System
calls
- Context
switches
- [notes, audio, video]
Class 7:
- Context
switches, scheduling
- Spin
locks and semaphores
- Blocking
(or mutex) semaphores
- [notes, audio, video]
Class 8:
- Kernel
executions, race conditions
- Kernel
– interrupt disable, non-preemptible, biglock,
general locks
- Semaphores
and how to use – synchronization
- producer
consumer
- Readers
& writers
- [notes, audio, video]
Class 9:
- Re-entrant
code
- Local
and global variables
- Processes
and threads
- Fork-join,
par
- Precedence
graphs
- Basic
pthreads
- Monitor
- intro
- [notes, audio, video]
Class 10:
- Monitors
- How
wait and signal works
- Pthreads and
monitors
- Coroutines
- [notes, audio, video]
Class11:
- Coroutines
and stack and stack pointer and return address >[reference]<
- Coroutine
context
- Adding
yield to coroutine
- Creating
and managing threads
- Project
2
- (The
audio and video are in 2 parts, because 2020 happened)
- [notes, audio-1,
audio-2, video-1,
video-2]
Monitor programs -> programs equivalence
Class 12:
Class 13:
Class 14:
Class 15:
Class 16:
Class 17:
Class 18:
·
Client server programming and reply
ports
·
Server state and stateless service
·
Cookies
·
Multithreading servers (and
recursion)
Class 19:
- Ports and messages
- Implementing local ports
- Implementing remote ports
- NetmsgServer >[reference]<
- Basic TCP-IP
- [notes, audio, video]
Class 20:
- Distributed Mutual Exclusion
- Lock Server
- Implementing server and clients
- Shared and Exclusive locks
- [notes, audio, video]
Class 21:
Class 22:
Mid Term
Answers
Class 23:
Class 24:
Class 25:
Class 26:
- Snapshot
algo discussion
- Informal
proof of correctness
- review
- [notes, audio, video]