Martin Luther King, Jr. Day (wikipedia)
Dive into System programming
Prelecture: HW0. The lecture will assume you've made significant progress on this homework
Dive into C programming
Prelecture: Intro to C Notes. The lecture will assume you've already reviewed and played with this material.
See the Wikibook C Gotchas
getenv, scanf, getline, fork
See the Wikibook Input and Output
fork and waitpid
See the Wikibook forking
The fork-exec-wait pattern
See the Wikibook Fork, Exec, Wait
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.
Hone your pointer skills when writing malloc and free.
Memory allocators part 2.
Introducing pthreads. stacks. Concurrency programming gotchas.
See Intro to Threads
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.
Introduction to Deadlock. Coffman conditions.
The Dining Philosophers problem
See Dining Philosophers.
See Virtual Memory.
No lecture for EoH
POSIX Pipes, files, memory II
TCP/IP Header. IPv4 exhaustion. A web client
Passive sockets. The 4 server calls and what they do. Gotchas.
Socket Programming Gotchas. Intro to scheduling
Scheduling simulator. epoll
ext2/3/4 filesystem. inode
file meta data
Memory mapped files
See Memory Mapped.