Week
Monday
Wednesday
Friday
1/18 - 1/24
- HW0 is out
- Lab: Know Your Tools Released
System Programming
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.
1/25 - 1/31
- Lab: Know Your Tools Due
- Lab: Extreme Edge Cases Released
- MP: Pointers Gone Wild Released
2/1 - 2/7
- Quiz 1: Sign up!
- Lab: Extreme Edge Cases Due
- Lab: Utilities Unleashed Released
- MP: Pointers Gone Wild Due
- MP: Vector Released
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.
2/8 - 2/14
- Lab: Utilities Unleashed Due
- Lab: Mini Valgrind Released
- MP: Vector Due
- MP: Shell Released
2/15 - 2/21
- Quiz 2: Sign up!
- Lab: Mini Valgrind Due
- Lab: Mangled Mutexes Released
- MP: Shell Due
- MP: Malloc Released
Threads and mutex locks
12. Introducing pthreads. stacks, shared memory. creating and joining. Concurrency programming gotchas.
See wikibook week 4
Mutexes and semaphores
13. Why we need Mutex locks and semaphores. Basic usage of pthread implementations. Common gotchas.
See wikibook week 5.
Critical Section Problem
14. Mutex and Semaphore examples. How to implement a lock (The critical section problem).
See wikibook week 5
2/22 - 2/28
- Practice Midterm: Sign up!
- Lab: Mangled Mutexes Due
- Lab: Terrible Threads Released
- MP: Malloc Part 1 Due
Critical Section Problem II
15. Incorrect attempts to solve the Critical Section Problem. Introduction to Condition Variables.
See wikibook week 6.
Condition Variables
16. Condition Variables. Implementing a semaphore using a Condition Variable.
See wikibook week 6.
Reader Writer Problem
17. Implementing a barrier. Implementing the R/W Problem using Condition Variables.
See wikibook week 7
2/29 - 3/6
- Midterm 1: Sign up!
- Lab: Terrible Threads Due
- Lab: Broken Barriers Released
- MP: Malloc Part 2 Due
Producer Consumer. RW II
18. Implementing the Producer Consumer using semaphores. Analysis of Reader Writer solutions.
See wikibook week 7.
3/7 - 3/13
- Quiz 3: Sign up!
- Lab: Broken Barriers Due
- Lab: Overworked Interns Released
- MP: Password Cracker Released
3/14 - 3/18
- Lab: Overworked Interns Due
- Lab: Ideal Indirection Released
- MP: Password Cracker Part 1 Due
- MP: Password Cracker Part 2 Due
No lecture
No lecture
3/19 - 3/27
- Spring Break: There will be no office hours or staff on piazza.
SPRING BREAK!
SPRING BREAK!
SPRING BREAK!
3/28 - 4/3
- Quiz 4: Sign up!
- Lab: Mad Mad Access Pattern Released
- Lab: Ideal Indirection Due
- MP: Parmake Released
Scheduling. TCP Handshake
28. Scheduling examples. The SYN ACKSYN ACK Handshake of TCP
See wikibook week 11