Martin Luther King, Jr. Day
Martin Luther King, Jr. Day (wikipedia)
1. Dive into System programming
Prelecture: HW0. The lecture will assume you've made significant progress on this homework
How to crash in C
2. Dive into C programming
Prelecture: Intro to C Notes. The lecture will assume you've already reviewed and played with this material.
#2: 1/23 - 1/27
C Crash Course 2
See the Wikibook C Gotchas
C Crash Course 3
4. getenv, scanf, getline, fork
See the Wikibook Input and Output
Fork and wait
5. fork and waitpid
See the Wikibook forking
#3: 1/30 - 2/3
6. The fork-exec-wait pattern
See the Wikibook Fork, Exec, Wait
Signals for Process Control
7. Introducing POSIX signals to suspend and kill child processes. SIGSTOP, SIGKILL, SIGINT
See the Wikibook process control
Thanks for the heap memory
8. How to build a memory allocator. Placement algorithms. Fragmentation.
#4: 2/6 - 2/10
Memory allocators I
9. Hone your pointer skills when writing malloc and free.
See Memory, Part 2
Memory allocators II
10. Memory allocators part 2.
See Memory, Part 2
11. Introducing pthreads. stacks. Concurrency programming gotchas.
See Intro to Threads
#5: 2/13 - 2/17
Threads and mutex locks
12. Introducing pthreads. stacks, shared memory. creating and joining. Concurrency programming gotchas.
Mutexes and semaphores
13. Why we need Mutex locks and semaphores. Basic usage of pthread implementations. Common gotchas.
14. Mutex and Condition Variable examples. How to implement a lock (The critical section problem).
#6: 2/20 - 2/24
Critical Section Problem
15. Incorrect attempts to solve the Critical Section Problem. Introduction to Condition Variables.
Condition Variables II
16. Condition Variables. Implementing a semaphore using a Condition Variable.
See Condition Variables.
#7: 2/27 - 3/3
19. Introduction to Deadlock. Coffman conditions.
20. The Dining Philosophers problem
See Dining Philosophers.
#8: 3/6 - 3/10
21. Virtual memory
See Virtual Memory.
No lecture for EoH
#9: 3/13 - 3/17
Pipes, Files, VM II
23. POSIX Pipes, files, memory II
25. TCP/IP Header. IPv4 exhaustion. A web client
#10: 3/20 - 3/24
Spring Break: There will be no office hours or staff on piazza.
- Spring Break: There will be no office hours or staff on piazza.
#11: 3/27 - 3/31
26. Passive sockets. The 4 server calls and what they do. Gotchas.
TCP Server II
27. Socket Programming Gotchas. Intro to scheduling
Scheduling. TCP Handshake
28. Scheduling examples. The SYN ACKSYN ACK Handshake of TCP
29. Scheduling simulator. epoll
30. ext2/3/4 filesystem. inode
31. file meta data
32. Dirs and symlinks
33. Virtual f/s
34. Memory mapped files