CS 423: Operating System Design

Fall 2024

Instructors
Ramnatthan Alagappan
ramn@illinois.edu
3122 Siebel Center

Tianyin Xu
tyxu@illinois.edu
4108 Siebel Center

Lectures
Tue/Thu 2:00–3:15pm
2100 Sidney Lu Mech Engr Bldg

Honorary Instructor
Jongyul Kim
jyk@illinois.edu
4101 Siebel Center

Teaching Assistant
Siyuan Chai, siyuanc3@illinois.edu
Jinghao Jia, jinghao7@illinois.edu
Xuhao Luo, xuhaol2@illinois.edu

Office Hours
Mon: 5-6pm, Chai, 4108 Siebel Center
Tue: 3:15-4pm, Alagappan, 2100 Sidney Lu Mech Engr Bldg
Tue: 5-6pm, Jia, 4108 Siebel Center
Wed: 5-6pm, Luo, 4108 Siebel Center
Thu: 3:15-4pm, Xu, 2100 Sidney Lu Mech Engr Bldg
Thu: 5-6pm, Chai, 4108 Siebel Center
Fri: 2-3pm, Luo, 4108 Siebel Center
Fri: 3-4pm, Jia, 4108 Siebel Center
Forums
Piazza

Course Overview

This course introduces students to the next step in operating system design (after CS 241 or equivalent). Students will understand the main operating system functions in class and analyze their implementation through a series of machine problems that require modifications to operating system code. Students will also be exposed to the concepts of virtual machines and issues of distribution such distributed files systems and map-reduce operators for distributed computation. The course will conclude with a series of advanced topics.

Please contact the instructor if you have questions regarding the material or concerns about whether your background is suitable for the course.

Textbooks

Course Text:

The textbook is FREE (read Remzi and Andrea's blogpost: Why Textbooks Should be Free). You are expected to read the chapters of the textbook that are discussed in class.

Optional Reading:

You may find the Linux Kernel Development book to be helpful when completing yours MPs.

Course Schedule

The following table outlines the schedule for the course. We will update it as the quarter progresses.

Date Lecture Readings Homework MP C4 Reading  
8/27 Course Intro (slides) CH 1, CH 2     Reading Papers ALL
8/29 Basic Concepts and Systems Programming (slides) CH 4, CH 13 CH 36     TX
9/3 The Kernel Abstraction (slides), CH 6,     UNIX TX
9/5 MP0 Walkthrough, Q&A (Jinghao)     MP-0 Out JJ
9/10 Interrupts (slides), The Programming Interface (slides) CH 5, CH 14   Linux APIs JK
9/12 Concurrency & Threads (slides) CH 26, CH 27   MP-1 Out TX
9/17 MP1 Walkthrough, Q&A (slides) (Siyuan and Xuhao)   MP 0: Due Kconfig TA
9/19 Synchronization I (slides) CH 28, CH 29     RA
9/24 Synchronization II (slides) CH 30, CH 31     Heisenbugs TX
9/26 Scheduling (slides) CH 7, CH 8     TX
10/1 How to debug your kernel code? CH 9, CH 10   MP-2 Out Scheduler bugs JJ
10/3 Linux Scheduler (slides) CH 15, CH 16, CH 17   MP 1: Due JK
10/8 Memory Management I (slides) CH 18 CH 19, CH 20     Mesa monitors TX
10/10 MP2 Walkthrough, Q&A (slides) (Xuhao)       TA
10/15 Memory Management II (slides) CH 21, CH 22, CH 23     Page table TX
10/17 Memory Management III (slides)       TX
10/22 Midterm Review, Q&A (slides)       Huge pages TX
10/24 Midterm Exam (solution)     MP 2: Due NA
10/29 Midterm exam walkover       Xen TX
10/31 MP3 Walkthrough, Q&A (slides) (Siyuan)     MP 3: Out TA
11/5 Virtualization I (slides) (Jiyuan) Appendix B     Firecracker TX
11/7 Kernel Extensibility and eBPF (slides)         TX
11/12 Virtualization II (slides)     MP 4: Out FFS RA
11/14 MP4 Walkthrough, Q&A (Jinghao) CH 37, CH 39, CH 44     TA
11/19 Disks and Files (slides)     MP 3: Due LFS RA
11/21 File System I (slides) CH 40, CH 41     RA
Fall Break Fall Break   Food. Lots of it. Sleep. Lots of it. NA
12/3 File System II (slides) CH 42, CH 43     Crash consistency RA
12/5 Advanced Storage     RA
12/10 Final Review, Q&A (slides)     MP 4: Due RA
12/11-12 Final Exam Take home     NA

Grading

The course will involve 5 machine problems, several homeworks, a midterm, and a final. Unless otherwise noted by the instructor, all work in this course is to be completed independently. If you are ever uncertain of how to complete an assignment, you can go to office hours or engage in high-level discussions about the problem with your classmates on the Piazza boards.

Grades will be assigned as follows:

Course Expectations

The expectations for the course are that students will attend every class, do any readings assigned for class, and actively and constructively participate in class discussions. Class participation will be a measure of contributing to the discourse both in class, through discussion and questions, and outside of class through contributing and responding to the Piazza forum.

Out of respect for your classmates, I ask that you turn off all laptops, tablets, and phone screens for the duration of each class!

More information about course requirements will be made available leading up to the start of classes

Ethics Statement

This course will include topics related computer security and privacy. As part of this investigation we may cover technologies whose abuse could infringe on the rights of others. As computer scientists, we rely on the ethical use of these technologies. Unethical use includes circumvention of an existing security or privacy mechanisms for any purpose, or the dissemination, promotion, or exploitation of vulnerabilities of these services. Any activity outside the letter or spirit of these guidelines will be reported to the proper authorities and may result in dismissal from the class and possibly more severe academic and legal sanctions.

Academic Integrity Policy

The University of Illinois at Urbana-Champaign Student Code should also be considered as a part of this syllabus. Students should pay particular attention to Article 1, Part 4: Academic Integrity. Read the Code at the following URL: http://studentcode.illinois.edu/.

Academic dishonesty may result in a failing grade. Every student is expected to review and abide by the Academic Integrity Policy: http://studentcode.illinois.edu/. Ignorance is not an excuse for any academic dishonesty. It is your responsibility to read this policy to avoid any misunderstanding. Do not hesitate to ask the instructor(s) if you are ever in doubt about what constitutes plagiarism, cheating, or any other breach of academic integrity.

Students with Disabilities

To obtain disability-related academic adjustments and/or auxiliary aids, students with disabilities must contact the course instructor and the as soon as possible. To insure that disability-related concerns are properly addressed from the beginning, students with disabilities who require assistance to participate in this class should contact Disability Resources and Educational Services (DRES) and see the instructor as soon as possible. If you need accommodations for any sort of disability, please speak to me after class, or make an appointment to see me, or see me during my office hours. DRES provides students with academic accommodations, access, and support services. To contact DRES you may visit 1207 S. Oak St., Champaign, call 333-4603 (V/TDD), or e-mail a message to disability@uiuc.edu. Please refer to http://www.disability.illinois.edu/.

Emergency Response Recommendations

Emergency response recommendations can be found at the following website: http://police.illinois.edu/emergency-preparedness/. I encourage you to review this website and the campus building floor plans website within the first 10 days of class: http://police.illinois.edu/emergency-preparedness/building-emergency-action-plans/.

Family Educational Rights and Privacy Act (FERPA)

Any student who has suppressed their directory information pursuant to Family Educational Rights and Privacy Act (FERPA) should self-identify to the instructor to ensure protection of the privacy of their attendance in this course. See http://registrar.illinois.edu/ferpa for more information on FERPA.

CS Values and Code of Conduct

All members of the Illinois Computer Science department -- faculty, staff, and students -- are expected to adhere to the CS Values and Code of Conduct. The CS CARES Committee is available to serve as a resource to help people who are concerned about or experience a potential violation of the Code. If you experience such issues, please contact the CS CARES Committee. I am also available for issues related to this class.

Credit

The course is designed by Professor Adam Bates who taught it during 2017--2019.