Slides
-
Lecture 01:
Introductions and Course Syllabus
[markdown]
-
Lecture 02:
Introduction to Filesystem APIs
[markdown]
-
Lecture 03:
More Filesystem APIs, Naming and Layering
[markdown]
-
Lecture 04:
Filesystem Wrap, Introduction to fork
[markdown]
-
Lecture 05:
More on fork, Simple Synchronization
[markdown]
-
Lecture 06:
Shells, execvp, Pipes, and Interprocess Communication
[markdown]
-
Lecture 07:
Pipes, subprocess, Interprocess Communication, and Signals
[markdown]
-
Lecture 08:
Masking Signals, kill, Virtual Memory, OS Schedulers
[markdown]
-
Lecture 09:
Multiprocessing Wrap, Introduction to Multithreading
[markdown]
-
Lecture 10:
Race Conditions, Preventing Them, Transition from C to C++ Threads
[markdown]
-
Lecture 11:
Philosophers, Deadlock, Permission Slips
[markdown]
-
Lecture 12:
Condition Variables, Semaphores, Reader Writers, and Myth Busters
[markdown]
-
Lecture 13:
myth-busters and ice-cream-parlors
[markdown]
-
Lecture 14:
Introduction to Networking
[markdown]
-
Lecture 15:
Servers, Clients, HTTP, System Calls
[markdown]
-
Lecture 16:
Networking Wrap
[markdown]
-
Lecture 17:
MapReduce Overview
[markdown]
-
Lecture 18:
[markdown]
The primary links are HTML slides, the markdown and PDF links lead to online versions of the raw
markdown used to generate the slides and the PDF of those slides, respectively. (The markdown
and PDF versions are more easily searched than the online slide decks are.)
In general, I recommend you refer to the online versions and not create local copies, just in case
I need to fix typos or inject clarifications.