Time/Location: Section 1: 111 Chambers, 11:15-12:05 MWF Section 2: 062 Willard, 1:25-2:15 MWF

This schedule will likely change as the semester progresses. Please check frequently.

We will use the following textbook: "UNIX Systems Programming, 2nd Ed." by Robbins and Robbins. (USP)
Additionally, we will use "Operating Systems: Three Easy Pieces", by Remzi and Andrea Arpaci-Dusseau for a portion of the course. Link (OS3)

Academic integrity: We will compare the code for your programming assignments with those of others. Cheating on a programming assignment will result in a grade of 0 or more severe consequences for all involved.

Lec. no. Date Theme Specific topics Special remarks and announcements Reading material Scribes
1. 01/11 Introduction and overview Administration Slides posted on Angel
2. 01/13 C programming Basics Slides posted on Angel; sample scribe notes posted on Angel Agarwal, Aditya; Ali, Reem; An, Yuchen; Badwaik, Pranesh Vinay
3. 01/15 Pointers Slides posted on Angel; TA office hours up; scribe duties up Bashyam, Vishnu; Baun Matthew; Beidler, Michael; Berezanich, Michael
4. 01/20 Pointers (2); Address space Slides posted on Angel Betts, Nolan; Brennan, Kevin; Deshpande, Raveeja; Devic, Alexandar
5. 01/22 Address space (2); malloc/free, memory leak Slides posted on Angel Ch. 2.1, 2.3, 2.6 of USP Dijoseph Stephen; Eden, Jake; Fleuriot, Pierre; Geiger, Adam
6. 01/25 arrays, structs, strings, pre-processor Slides posted on Angel Gurnani, Dishti; Hall, Nicholas; Heilman, Matthew; Hendrick, Tyler
7. 01/27 linked list coding, file IO Slides posted on Angel; guest lecture by Neda Nasiriani (instructor out of town) Hernandez, Joseph; Ho Crystal; Horner, Jacob; Iaquinto, Christopher
8. 01/29 gcc, libraries, make PROJECT 1 RELEASE POSTPONED!; Slides posted on Angel Jiban, Mohammed; Kalani, Rahul; Kulick, Jack; Levine, Daniel
02/01 Class canceled!
9. 02/03 gdb, svn, tar/gzip, patch/diff, README Project 1 released!; Slides posted on Angel Malik, Waleed; Mankos, Michael; Marini, Joshua; Martin, Connor
10. 02/05 Shell programming Basics Slides posted on Angel Ch. 1 (skim), App. A of USP McAlpine, Azalee; Mendoza, Aleman; Mettler, Steven; Mitchell, Scott
11. 02/08 grep, awk, scripting Slides posted on Angel Mo, Mengyu; Naik, Aditya; Ni, Shilin; Nnamdi-Emetaron, Nnamdi Jnr
12. 02/10 Basic architectural support for multi-programming CPU modes, traps, interrupts Slides posted on Angel Ch. 1.3 of USP Oh, Jeongtaek; Onford, Pasquale; Othman, Muhammad Hazir; Owen, Charles
13. 02/12 Important interfaces; process management ISA, ABI, API, system call interface; process lifecycle Slides posted on Angel Paknejad, Bradley; Panucci, Julian; Patel, Akash; Patel, Darshan
14. 02/15 Process management fork, exec, top, process relationships Slides posted on Angel Ch. 3.1-3.3, 3.5 of USP Patel, Parth; Patin, Alexander; Philip, Shawn; Rabbitz, Michael
15. 02/17 wait, exit, background processes, daemons Slides posted on Angel; guest lecture by Cheng Wang (instructor out of town); Project 1 due; PROJECT 2 RELEASE POSTPONED! Ch. 3.4, 3.6, 11.5 of USP Rastogi, Shaurya; Ren, Andrew; Rong, Jesse; Saad, Yahya
16. 02/19 Message passing based inter-process communication (IPC) - signals Slides posted on Angel; guest lecture by Neda Nasiriani (instructor out of town) Ch. 8.1-8.5 of USP Sha, Meirui; Sharma, Dhruva; Stanton, Gabriel; Sturges, Christopher
17. 02/22 More message passing - pipes Slides posted on Angel Ch. 6.1-6.2 of USP Sundahl, Ian; Tahvildaran, David; Talwar, Sumedh; Temple, Jack
18. 02/24 Threads Pipes (2); Threads (1) - threads vs. processes Slides posted on Angel Ch. 12.1-12.3 of USP Tiwari, Vedant; Tu, Steven; Wang, Fanzhou; Wang Wei
19. 02/26 Threads (2) - pthreads Project 2 released! Ch. 12.1-12.3 of USP Wells, Rodney; Whitridge, Christopher; Witman, Daniel; Wu, Xiaoyan
20. 02/29 Threads (3) - pthreads Slides posted on Angel Ch. 12.1-12.3 of USP Advena, Ashley; Alfares, Nader; Allan, Evan; Almadi, Abdulmohsin
21. 03/02 Revision session 1 No slides (chalkboard) Antanavage, Emily; Bagdon, Edward; Bajpai, Utsav; Barczynski, John; Kela, Aditya
22. 03/04 Revision session 2 No slides (chalkboard) Chandra, Kanishk; Chaudhary, Ishaank; Chovan, Michael; Colega, Jacob
Spring break!
23. 03/14 Synchronization Race conditions No slides (chalkboard) Ch. 26 of OS3 NOTES UNDER REVISION: Cordle, Ian; Dabas, Ashna; Delis, Peter; DeMatt, Collin
24. 03/16 Revision session 3 No slides (chalkboard) Duerig, Andrew; Egan, Sean; Field, Matthew; Frazier, James
25. 03/18 Extended office hours Project 2 due
26. 03/21 Synchronization Atomicity, critical sections, mutual exclusion, locks No slides (chalkboard) Ch. 27.1-27.4, 28.1-28.2 of OS3 NOTES UNDER REVISION: Guo, Jiansheng; Gupta, Raghav; Gutman, Evan; Hicks, Mary; Fry, Tristan
E1. 03/22 Exam 1 10 Sparks, 8:15-10:15pm
27. 03/23 Producer-consumer problem using locks No slides (chalkboard) Higgins, James; Holt, Darius; Jiang, Kevin; Kallhoff, Anthony; Ghoname, Eyad
28. 03/25 More on using locks; liveness conditions No slides (chalkboard); Project 3 released (03/26) Ch. 29.1-29.2 of OS3 Kawchak, Thomas; Kenawell, Benjamin; Kosmorsky, Connor; Lehman, Samuel; Gleason, Ryan
29. 03/28 P3 discussion Guest lecture by Devin Pohly No slides (see P3 description) Leonard, Alyssa; Li Wei Jie; Lin, Yamin; Liu, Anan; Golding, Terrill
30. 03/30 Synchronization Shorcomings of locks; Introduction to condition variables (CVs) No slides (chalkboard) Ch. 30.1-30.2 of OS3 Lorenz, Stephen; Lutz, Tyler; Mewkalo, David; Nale, Joshua
31. 04/01 Examples of CV usage No slides (chalkboard) Ch. 30.1-30.2 of OS3 Pastore, Alison; Patel, Hiren; Patel, Suraj; Humbe, Anisha
04/04 Class canceled!
32. 04/06 Revision session 4 Focus on threads and synchronization No slides (chalkboard) Porupski, Luke; Qiu, Lawrence; Radic, Morgan; Zug, Ben; Reed, Trevor
33. 04/08 Exam 1 discussion No slides (chalkboard) Rivera, Paul Rex; Santy, Karl; Mysliwiec, Ryan
34. 04/11 Socket programming Slides posted on Angel Schoener, Christopher; Shah, Kalpan; Shanbhag, Varun; Phuyel, Ghana
04/13 Class canceled! Sok, Khem; Son, Jihoon; Steber, Bennett; Kim, Dong
35. 04/15 Slides posted on Angel; Project 4 released! (04/16) Liang, Jiaxin; Sundra, Hayley; Swartley, Kyle; Tang, Siqi
36. 04/18 Files and IO Slides posted on Angel Portions of Ch. 5 and 6 of USP Traister, Eric; Umandap, Titus Mathan; Varhade, Sonali
37. 04/20 Slides posted on Angel Portions of Ch. 4 of USP Li, Xiang; Waters, Michael; Webber, John; Wei, Glyn
38. 04/22 Slides posted on Angel; Project 3 due Portions of Ch. 4 of USP Lin, Chengwei; Lin, Jin; Tejeda, Wesley; Steele, Dylan; Singh, Manvendra; Blazier, Shane
39. 04/25 Revision session 5 No slides (chalkboard) Saxena, Sparsh; Rancourt, Peter; Rancourt, Peter; Barnes, Samuel; Waters, Michael
40. 04/27 Revision session 6 No slides (chalkboard) Yalamanchili, Abhiram; Young, Matthew; Zhang, Andrew; Bhonsle, Atul; Wright, Daniel
41. 04/29 Wrap-up Slides posted on Angel; Project 4 due Geoghan, Liam; Xie, Siwei; Yang, Yang; Brown, Kyle; Echevarria, Juan Carlos; Zhu, Yunzheng
E2. 05/04 Exam 2