1. Dive into System programming
Prelecture: HW0. The lecture will assume you've made significant progress on this homework
2. Dive into C programming
Prelecture: Intro to C Notes. The lecture will assume you've already reviewed and played with this material.
Labor day
4. getenv, scanf, getline, fork
See the Wikibook Input and Output
7. Introducing POSIX signals to suspend and kill child processes. SIGSTOP, SIGKILL, SIGINT
See the Wikibook process control
How to build a memory allocator. Placement algorithms. Fragmentation.
Introducing pthreads. stacks, shared memory. creating and joining. Concurrency programming gotchas.
Why we need Mutex locks and semaphores. Basic usage of pthread implementations. Common gotchas.
Mutex and Condition Variable examples. How to implement a lock (The critical section problem).
Incorrect attempts to solve the Critical Section Problem. Introduction to Condition Variables.
Condition Variables. Implementing a semaphore using a Condition Variable.
See Condition Variables.
Implementing a barrier. Implementing the R/W Problem using Condition Variables.
Moving data using pipes, seekable streams, named pipes, behavior with fork
POSIX Pipes and random access files
Robust error handling. EINTR. Intro to TCP,UDP,IP
No lecture
Redundant Array of Inexpensive Disks (RAID), the various RAID levels
Fall Break - Piazza responses limited
Fall Break - Piazza responses limited
Fall Break - Piazza responses limited
Intro to select, poll, and epoll
Signal sets, checking pending signals, sigaction vs. signal
See Signals from the coursebook.