Overview
This course is an introduction to the fundamentals of operating systems design and implementation. Topics include process and thread management, multiprocessing, real-time kernel development, scheduling, queue management, memory and caching, permanent storage management, file systems, I/O device management, and security. Prereq: ECE 252; Antireq: CS 350, ECE 254, SE 350
Instructor
Ziqiang Patrick Huang, Office: E7-5424 (ziqiang.huang AT uwaterloo.ca)
Lab Instructor
Maran Ma (maran.ma AT uwaterloo.ca)
Graduate Teaching Assistants
Neeraj Nagar (nnagar AT uwaterloo.ca)
Darryl Jiayin Wu (dj2wu AT uwaterloo.ca)
Xuanrui (Bill) Zeng (x64zeng AT uwaterloo.ca)
Lectures, Tutorials, Labs
For lecture, tutorial, and lab schedules, see the Undergraduate Schedule of Classes. Labs are mandatory. Tutorials are used to 1) introduce lab projects and 2) review & practice lecture materials
Makeup Lectures
We have 5 makeup lectures tentatively scheduled throughout the term. Whether they will be used will depend on the pace of the course. Students will be notified (in class & through emails) beforehand if we intend to use any of them.
Discussion Forum
We will use Piazza for class discussions. The system is highly catered to getting you help fast and efficiently from classmates, the TAs, the lab instructor and myself. Rather than emailing questions to the teaching staff, you should post your questions on Piazza. The Piazza course site is here
Office Hours
Patrick's: by appointment
Maran and a TA will be present during all lab sessions. In weeks without lab sessions, a TA will be available for office hours by appointment. You can email the corresponding TA to set up office hours for questions related to each lab:
Lab1: Darryl
Lab2: Bill
Lab3: Neeraj
Textbooks
Operating Systems: Principles and Practice (2nd Edition) (Will be posting relevant chapters below with schedules)
Operating Systems: Three Easy Pieces (freely available online); Operating System Concepts (10th Edition) (Optional, recommended as supplementary readings)
Gradings
Quizzes (15%)
Lab projects (45%)
Final (40%)
*No need to pass individual components to pass the course.
Quizzes
There will be a total of 5 quizzes, each covering roughly 2 weeks of lecture materials. The quizzes are NOT meant to be exams, their purpose is to help you stay on top of the lecture materials and not fall behind. Quizzes are done on Learn. Each quiz will have ~20 questions, selected randomly among a question pool, mostly true/false or multiple-choice questions. Each quiz is given 2 hours (more than enough) and must be completed in one sitting. Quizzes are open books in the sense that students may consult their textbook, course notes, and materials posted on the course webpage. Use of any other resource (including online services such as stackexchange.com) is prohibited. While taking quizzes, students may not communicate directly or indirectly with any person. Students may not discuss nor disclose quiz questions with anyone. Any suspected plagiarism or infractions of this honor code will be reported to the appropriate Associate Dean. The quiz schedule(tentative) can be found below:
(Every quiz is released at 4 pm on the release date, and due 11 pm on the due date, you can take it in any 2-hour window in between)
Release Date | Due date | |
Quiz 1 | May 21 | May 24 |
Quiz 2 | June 4 | June 7 |
Quiz 3 | June 25 | June 28 |
Quiz 4 | July 9 | July 12 |
Quiz 5 | July 25 | July 28 |
Lab Projects
There will be a total of 3 lab projects, each covering an important aspect of RTOS. The project is done in groups of four. Five is not allowed and three is not recommended. The workload is fixed regardless of the size of the group. All group members receive the same grade for each project. LEARN is used for group sign-up. You are allowed to form groups with students in a different lab section but in the same class, provided that it does not cause conflicts with other courses/labs for any of the group members and all members can attend the same lab section. After the deadline, any student without a group will be randomly assigned to a group. Explaining concepts to someone in another group, discussing algorithms/testing strategies with other groups, and searching online for generic algorithms (e.g., hash table) are allowed. Sharing code and test cases with another group, open-sourcing code (e.g., hosting code publicly on GitHub) even after this term, copying/reading another group's code and test cases, and copying/reading online code and test cases from prior years are not allowed. Any suspected plagiarism or infractions of this honor code will be reported to the appropriate Associate Dean. More details about the lab can be found in the lab manual.
Lab project schedule(tentative) and mark distribution can be found below:
Release Date | Due date | Weight | |
Group Sign-up | May 14 | 2% | |
Lab1 | May 16 | June 10 | 32% |
Lab2 | June 11 | July 2 | 24% |
Lab3 | July 3 | July 29 | 32% |
Lab attendance | 10% |
Exams
There will be one final exam for this course. The time and location for the final exam will be posted when they are available. There is no midterm exam for this course.
Late Policy
There are three grace days (including weekends) that can be used for late submissions without incurring any penalty. When all grace days are used, a 15% penalty is applied per day for late submissions. Please be advised that to simplify the bookkeeping, late submissions are rounded up. A ten-minute late submission receives the same penalty as a fifteen-hour late submission. Submissions after three penalized days are not accepted.
Policy on the use of Generative Artificial Intelligence (GenAI)
This course includes the independent development and practice of specific skills, such as programming, reasoning, and application of logic. Therefore, the use of Generative artificial intelligence (GenAI) trained using large language models (LLM) or other methods to produce text, images, music, or code, like Chat GPT, DALL-E, or GitHub CoPilot, is not permitted in this class. Unauthorized use in this course, such as running course materials through GenAI or using GenAI to complete a course assessment is considered a violation of Policy 71 (plagiarism or unauthorized aids or assistance). Work produced with the assistance of AI tools does not represent the author’s original work and is therefore in violation of the fundamental values of academic integrity including honesty, trust, respect, fairness, responsibility and courage (ICAI, n.d.).
You should be prepared to show your work. If the use of GenAI is suspected where not permitted, you may be asked to meet with your instructor or TA to provide explanations to support the submitted material as being your original work. Through this process, if you have not sufficiently supported your work, academic misconduct allegations may be brought to the Associate Dean.
University Policies
Academic Integrity. In order to maintain a culture of academic integrity, members of the University of Waterloo community are expected to promote honesty, trust, fairness, respect and responsibility. [Check http://www.uwaterloo.ca/academicintegrity for more information.]
Grievance. A student who believes that a decision affecting some aspect of his/her university life has been unfair or unreasonable may have grounds for initiating a grievance. Read Policy 70, Student Petitions and Grievances, Section 4, http://www.adm.uwaterloo.ca/infosec/Policies/policy70.htm. When in doubt please be certain to contact the departments administrative assistant who will provide further assistance.
Discipline. A student is expected to know what constitutes academic integrity [check http://www.uwaterloo.ca/academicintegrity] to avoid committing an academic offense, and to take responsibility for his/her actions. A student who is unsure whether an action constitutes an offense, or who needs help in learning how to avoid offenses (e.g., plagiarism, cheating) or about rules for group work/collaboration should seek guidance from the course instructor, academic advisor, or the undergraduate Associate Dean. For information on categories of offenses and types of penalties, students should refer to Policy 71, Student Discipline, http:://www.adm.uwaterloo.ca/infosec/Policies/policy71.htm. For typical penalties check Guidelines for the Assessment of Penalties, http://www.adm.uwaterloo.ca/infosec/guidelines/penaltyguidelines.htm.
Appeals. A decision made or penalty imposed under Policy 70 (Student Petitions and Grievances) (other than a petition) or Policy 71 (Student Discipline) may be appealed if there is a ground. A student who believes he/she has a ground for an appeal should refer to Policy 72 (Student Appeals) http://www.adm.uwaterloo.ca/infosec/Policies/policy72.htm.
Note for Students with Disabilities. The AccessAbility Services, located in Needles Hall, Room 1132, collaborates with all academic departments to arrange appropriate accommodations for students with disabilities without compromising the academic integrity of the curriculum. If you require academic accommodations to lessen the impact of your disability, please register with AccessAbility Services at the beginning of each academic term.
The University of Waterloo Territorial Acknowledgement The University of Waterloo acknowledges that much of our work takes place on the traditional territory of the Neutral, Anishinaabeg, and Haudenosaunee peoples. Our main campus is situated on the Haldimand Tract, the land granted to the Six Nations that includes six miles on each side of the Grand River. Our active work toward reconciliation takes place across our campuses through research, learning, teaching, and community building, and is co-ordinated within the Office of Indigenous Relations.
Lecture & Tutorial Schedules(tentative), Topics, Reading Assignments
Week of |
Topics |
Reading Assignments |
Tutorials (LP: Lab Project, R&P: Review & Practice, NA: No tutorial that week) |
May 6 |
Introduction |
OSPP 1 | LP Overview (Maran) |
May 13 |
OS concepts |
OSPP 2 (and 3 to refresh your memory) | LP 1 (Darryl) |
May 20 May 27 |
Multithreaded kernels Synchronizations |
OSPP 4.5-4.8, 5.7-5.8 (and 5.2 - 5.6 to refresh your memory) |
R&P 1 (Darryl) NA |
June 3 |
Memory Allocation | OSTEP 17 | R&P 2 (Darryl) |
June 10 |
Uniprocessor scheduling |
OSPP 7.1 | LP 2 (Bill) |
June 17 |
Midterm Week |
||
June 24 July 1 |
Multiprocessor scheduling Real-time systems |
OSPP 6.1-6.3, 7. 2-7.3 OSPP 7.4 |
R&P 3 (Neeraj) LP3 (Neeraj) |
July 8 |
Address translation | OSPP 8.1-8.2 | R&P 4 (Neeraj) |
July 15 |
Caching | OSPP 8.3 and 9.1-9.4 | NA |
July 22 July 29 |
File Systems |
OSPP 11.1-11.2 and 13 |
R&P 5 (Bill) NA |
Aug 12 (9-11:30am) |
Final Exam |