ECE350


Real-time Operating Systems

Details


Time & location

Lectures: Tu,Th 11:30-12:50 (EST)

Tutorials: Th 16:30 - 17:20 (EST)

Teaching team
Prof. Seyed Majid Zahedi

Instructor

Prof. Seyed Majid Zahedi

Book appointment here

Reinier Torres Labrada

Lab instructor

Reinier Torres Labrada

Book appointment here

Ali H. A. Abyaneh

GTA

Ali H. A. Abyaneh

Aliasghar Iman

GTA

Aliasghar Iman

Alireza Lotfi Takami

GTA

Alireza Lotfi Takami

Di Wang

GTA

Di Wang

Madhurdeep Singh

GTA

Madhurdeep Singh

Maizi Liao

GTA

Maizi Liao

Navpreet Kaur

GTA

Navpreet Kaur

Pouya Kananian

GTA

Pouya Kananian

Zehan Gao

GTA

Zehan Gao

Description
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
ECE252
Antireq
CS350, ECE254, SE350
Readings

Main textbook

Optional references

Evaluation
Coursework will include the following components.
  • Quizzes (35%)
  • Lab Projects (65%)

There will be 5 lab projects and 11 quizzes (almost one quiz per week). Only the 6 highest quiz grades will count toward the 35% quiz grad for each student.

We reserve the right to change these weights at any time during the term without prior notice.

Announcements


Feb. 22
Quiz 4 is posted on LEARN.
Feb. 13
Lab 3 is released on github.
Feb. 08
Quiz 3 is posted on LEARN.
Feb. 04
Navpreet has joined the teaching team as a GTA.
Feb. 01
Quiz 2 is posted on LEARN.
Jan. 29
Lab 2 is released on github.
Jan. 28
Irene and Fatemeh have left the ECE350 teaching team, and Reinier and Zehan have join the team.
Jan. 25
Quiz 1 is posted on LEARN.
Jan. 15
Lab 1 is released on github.
Dec. 29
Please sign up for the course on Piazza.

Schedule (tentative)


Week Day Lecture Reading Event
1 Tu 01/12

Introduction

Slides: PPTX, PDF

Recording: Youtube, Teams

OSPP 1

Th 01/14

Recording of lecture: Youtube, Teams

Recording of tutorial: Teams

Group sign-up deadline (16:30 EST)

2 Tu 01/19

OS concepts

Slides: PPTX, PDF

Recording: Youtube, Teams

OSPP 2 (and 3 to refresh your memory)

Optional:

Th 01/21

Recording: Youtube, Teams

3 Tu 01/26

Recording: Youtube, Teams

Th 01/28

Multithreaded kernels

Slides: PPTX, PDF

Recording of lecture: Youtube, Teams

Recording of tutorial: Teams

OSPP 4.5-4.8, 5.7-5.8 (and 5.2-5.6 to refresh your memory)

L1 deadline (16:30 EST)

Q1 deadline (23:30 EST)

4 Tu 02/02

Recording: Youtube, Teams

Th 02/04

Tutorial slides: PPTX, PDF

Recording of lecture: Youtube, Teams

Recording tutorial: Teams

Q2 deadline (23:30 EST)
5 Tu 02/09

Uniprocessor scheduling

Slides: PPTX, PDF

Recording: Youtube, Teams

OSPP 7.1

Optional:

Th 02/11

Recording of lecture: Youtube, Teams

Recording of tutorial: Teams

L2 deadline (16:30 EST)

Q3 deadline (23:30 EST)

6 Tu 02/16 Reading week
Th 02/18
7 Tu 02/23

Multiprocessor scheduling

Slides: PPTX, PDF

Recording: Youtube, Teams

OSPP 6.1-6.3, 7.2-7.3, and OSTEP 10

Optional:

Th 02/25

Recording: Youtube, Teams

Q4 deadline (23:30 EST)
8 Tu 03/02

Real-time systems

Slides: PPTX, PDF

Online lecture: Teams

OSPP 7.4

Optional:

Th 03/04

Address translation

Slides: PPTX, PDF

Online lecture: Teams

OSPP 8.1-8.2 Q5 deadline (23:30 EST)
9 Tu 03/09

Online lecture: Teams

Th 03/11

Caching

Slides: PPTX, PDF

Online lecture: Teams

Online tutorial: Teams

OSPP 8.3 and 9.1-9.4

Optional Readings:

L3 deadline (16:30 EST)

Q6 deadline (23:30 EST)

10 Tu 03/16 Scheduled pause
Th 03/18 Online lecture: Teams Q7 deadline (23:30 EST)
11 Tu 03/23

Demand paging

Slides: PPTX, PDF

Online lecture: Teams

OSPP 9.5-9.7
Th 03/25

I/O subsystem and storage devices

Slides: PPTX, PDF

Online lecture: Teams

Online tutorial: Teams

OSPP 11.3, 7.5, and 12

L4 deadline (16:30 EST)

Q8 deadline (23:30 EST)

12 Tu 03/30 Online lecture: Teams
Th 04/01 Online lecture: Teams Q9 deadline (23:30 EST)
13 Tu 04/06

File systems

Slides: PPTX, PDF

Online lecture: Teams

OSPP 11.1-11.2 and 13
Th 04/08 Online lecture: Teams

L5 deadline (16:30 EST)

Q10 deadline (23:30 EST)

14 Tu 04/13

Reliable storage

Slides: PPTX, PDF

Online lecture: Teams

OSPP 14

Last day of class!

Q11 deadline is on 04/22 (23:30 EST)

Resources


Slides

Slides are uploaded on github.

Sample exams

Waterloo SE350 W20

Waterloo SE350 W19

Berkeley CS162

Past recordings

Recordings of lectures from Fall 2020 are uploaded on Youtube and can be found here.

FAQ


Quizzes

What is (and is not) allowed during and after quizzes?

Quizzes are open book 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. During each quiz, students are allowed to email course instructors if they have any question or need any clarification. While taking quizzes, students may not communicate directly or indirectly with any person except the course instructors. 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.

Lab projects

What is the group-work policy?

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. Each group must have a project manager, who is responsible for coordinating the group. This role can rotate between members. Explaining concepts to someone in another group, discussing algorithms/testing strategies with other groups, helping debug someone else's code (in another group), and searching online for generic algorithms (e.g., hash table) are allowed. Sharing code or test cases with another group, open-sourcing code (e.g., on GitHub) even after this term, copying OR reading another group's code or test cases, and copying OR reading online code or 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.

How is each group member graded for each project?

Each member gets a fraction of the group's grade based on their contributions. To quantify each member's contributions, members rate each other between 0 and 10 after submitting each project. For an average rating of more than 8, the fraction is 1. For an average rating of less than 8 and more than 7, the fraction is 0.8. For an average rating of less than 7 and more than 6, the fraction is 0.6. For an average rating of less than 6 and more than 4, the fraction is 0.4. The fraction becomes 0 for an average rating of less than 4. Students can appeal their average ratings if there is a ground. Instructors will make the final decisions in those cases after hearing from all parties involved.

What is the lateness policy?

There are five grace days (including weekends) that can be used for late submissions without incurring any penalty. A group split-up will consume one grace day. When you use up all your grace days, a 15% per day late penalty will be applied to a late submission. Please be advised that to simplify the book-keeping, late submission is counted in a unit of day rather than hour or minute. A one-hour-late submission is considered a one-day-late submission, so is a fifteen-hour-late submission. Unless notified otherwise, we always take the latest submission from Gitlab. You are required to notify lab TAs (preferably by email) when you have used grace days.

Other policies

What is the academic integrity policy?

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 the Office of Academic Integrity for more information.

What is the grievance policy?

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. When in doubt, please be certain to contact the department's administrative assistant who will provide further assistance.

What is the discipline policy?

A student is expected to know what constitutes academic integrity to avoid committing an academic offense, and to take responsibility for his/her actions. Check the Office of Academic Integrity for more information. 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. For typical penalties, check Guidelines for the Assessment of Penalties.

What is the appeals policy?

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.

Do you use an automatic system to detect plagiarism?

Moss (Measure Of Software Similarity) will be used to screen each project in this course. Students' submissions are stored on a U.S. server, therefore students will be given an alternative if they are concerned about their privacy and/or security. Students will be given due notice about arrangements and alternatives for the use of Moss in this course.