#1: 1/16 - 1/20
-
HW0 is out
- Lab: Know Your Tools Released
- 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.
#2: 1/23 - 1/27
- Lab: Know Your Tools Due
- Lab: Extreme Edge Cases Released
- MP: Pointers Gone Wild Released
- Lab: Know Your Tools Due
- Lab: Extreme Edge Cases Released
- MP: Pointers Gone Wild Released
#3: 1/30 - 2/3
- Quiz 1: Sign up!
- Lab: Extreme Edge Cases Due
- Lab: Utilities Unleashed Released
- MP: Pointers Gone Wild Due
- MP: Vector Released
- 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.
#4: 2/6 - 2/10
- Lab: Utilities Unleashed Due
- Lab: Mini Valgrind Released
- MP: Text Editor Due
- MP: Shell Released
- Quiz 1: CBTF Thursday-Sunday
- Lab: Utilities Unleashed Due
- Lab: Mini Valgrind Released
- MP: Text Editor Due
- MP: Shell Released
- Quiz 1: CBTF Thursday-Sunday
#5: 2/13 - 2/17
- Quiz 2: Sign up!
- Lab: Mini Valgrind Due
- Lab: Teaching Threads Released
- MP: Shell Due
- MP: Malloc Released
- Quiz 2: Sign up!
- Lab: Mini Valgrind Due
- Lab: Teaching Threads Released
- MP: Shell Due
- MP: Malloc Released
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.
Condition Variables
14. Mutex and Condition Variable examples. How to implement a lock (The critical section problem).
#6: 2/20 - 2/24
-
Practice Midterm: Sign up!
-
Lab: Teaching Threads Due
-
Lab: Splendid Synchronization Released
-
MP: Malloc Part 1 Due
- Practice Midterm: Sign up!
- Lab: Teaching Threads Due
- Lab: Splendid Synchronization Released
- MP: Malloc Part 1 Due
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.
Reader Writer Problem
17. Implementing a barrier. Implementing the R/W Problem using Condition Variables.
#7: 2/27 - 3/3
-
Midterm 1: Sign up!
-
Lab: Splendid Synchronization Due
-
Lab: Deadlock Resiliant Mutexes Released
-
MP: Malloc Part 2 Due
- Midterm 1: Sign up!
- Lab: Splendid Synchronization Due
- Lab: Deadlock Resiliant Mutexes Released
- MP: Malloc Part 2 Due
Reader Writer Problem & Deadlock
18. Implementing Reader Write. Introduction to Deadlock.
See The Reader Writer Problem and Deadlock.
#8: 3/6 - 3/10
-
Quiz 3: Sign up!
-
Lab: Broken Barriers Due
-
Lab: Overworked Interns Released
-
MP: Password Cracker Released
- Quiz 3: Sign up!
- Lab: Broken Barriers Due
- Lab: Overworked Interns Released
- MP: Password Cracker Released
Pipes and Files
22. POSIX Pipes and random access files
No lecture
No lecture for EoH
#9: 3/13 - 3/17
-
Lab: Overworked Interns Due
-
Lab: Ideal Indirection Released
-
MP: Password Cracker Part 1 Due
-
MP: Password Cracker Part 2 Due
- Lab: Overworked Interns Due
- Lab: Ideal Indirection Released
- MP: Password Cracker Part 1 Due
- MP: Password Cracker Part 2 Due
Errno. Networking Intro
24. Robust error handling. EINTR. Intro to TCP,UDP,IP
#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.
SPRING BREAK!
SPRING BREAK!
SPRING BREAK!
#11: 3/27 - 3/31
-
Quiz 4: Sign up!
-
Lab: Mad Mad Access Pattern Released
-
Lab: Ideal Indirection Due
-
MP: Parmake Released
- Quiz 4: Sign up!
- Lab: Mad Mad Access Pattern Released
- Lab: Ideal Indirection Due
- MP: Parmake Released
#14: 4/17 - 4/21
-
Lab: Finding Filesystems Due
-
Lab: Mad Mad Access Pattern Released
-
MP: Networking Nightmare Continued
- Lab: Finding Filesystems Due
- Lab: Mad Mad Access Pattern Released
- MP: Networking Nightmare Continued