ECE350 Real-time Operating System (Spring 2024)

 

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 23 July 26

 

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 (Bill)

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 (Neeraj)

NA

Aug 12

(9-11:30am)

Final Exam