Lab Handouts
-
Lab 01:
File Systems and System Calls
[Video Tutorials:
Problem 1,
Problem 2,
Problem 3, and
Problem 4]
[solution]
-
Lab 02:
Multiprocessing and Unix Tools
[Video Tutorials:
Problem 1,
Problem 2,
Problem 3,
Problem 4, andz
Problem 5]
[solution]
-
Lab 03:
Parallel Programming
[Video Tutorials:
Problem 1,
Problem 2,
Problem 3]
[solution]
-
Lab 04:
assign3 Redux and Threads
[Video Tutorials:
Problem 1,
Problem 2]
[solution]
-
Lab 05:
Threads vs. Processes
[Video Tutorials:
Problem 1,
Problem 2,
Problem 3, and
Problem 4]
[solution]
-
Lab 06:
ThreadPool and Networking
[Video Tutorials:
Problem 1,
Problem 2,
Problem 3, and
Problem 4]
[solution]
-
Lab 07:
proxy Redux, MapReduce
[Video Tutorials:
Problem 1,
Problem 2]
[solution]
Slides
-
Lecture 01:
Introductions and Course Syllabus
[markdown]
-
Lecture 02:
Filesystem APIs
[markdown]
-
Lecture 03:
Filesystem APIs, Take II
[markdown]
-
Lecture 04:
Filesystem Wrap, Multiprocessing Intro
[markdown]
-
Lecture 05:
More on fork, Simple Synchronization
[markdown]
-
Lecture 06:
Shells, execvp, Pipes, and Interprocess Communication
[markdown]
-
Lecture 07:
Pipes, pipe, Interprocess Communication, and dup2
[markdown]
-
Lecture 08:
Signals, Signal Handlers, Signal Masks, and kill
[markdown]
-
Lecture 09:
Virtual Memory and Process Scheduling, 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, Ice Cream Parlor Simulation
[markdown]
-
Lecture 14:
Multithreading Wrap, Introduction to Networking, Simple Sequential Server
[markdown]
-
Lecture 15:
Sequential and Concurrent Servers, web-get HTTP Client
[markdown]
-
Lecture 16:
System Calls, Implementing getClientSocket and getServerSocket
[markdown]
-
Lecture 17:
MapReduce Overview
[markdown]
-
Lecture 18:
Principles of System Design
[markdown]
-
Lecture 19:
Nonblocking I/O
[markdown]
-
Lecture 20:
Nonblocking I/O
[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.