ECE350


Real-time Operating Systems

Details


Time & location

Lectures: M, F 10:00 - 11:20, E7 4053

Tutorials: Th 16:30 - 17:20, E7 4053

Teaching team
Prof. Seyed Majid Zahedi

Instructor

Prof. Seyed Majid Zahedi

Book appointments here

Aravind Vellora Vayalapra

Head GTA

Aravind Vellora Vayalapra

Harneet Kaur

GTA

Harneet Kaur

Karim Walid Abdelazim Elhammady

GTA

Karim W. A. Elhammady

Hadi Omidi

GTA

Hadi Omidi

Mohammed Sajjad Jafri

GTA

Mohammed Sajjad Jafri

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 (15%)
  • Lab projects (45%)
  • Final (40%)
Contingency proviso
We are facing unusual and challenging times. The course outline presents the instructor’s intentions for course assessments, their weights, and due dates in Winter 2023. As best as possible, we will keep to the specified assessments, weights, and dates. To provide contingency for unforeseen circumstances, the instructor reserves the right to modify course topics and/or assessments and/or weight and/or deadlines with due and fair notice to students. In the event of such challenges, the instructor will work with the Department/Faculty to find reasonable and fair solutions that respect rights and workloads of students, staff, and faculty.

Announcements


Mar 25
Quiz 7 is available on LEARN.
Mar 10
Quiz 6 is available on LEARN.
Mar 3
Quiz 5 is available on LEARN.
Feb 17
Lab manual for P2 is updated on github. Performance metric is added to the rubric.
Feb 11
Quiz 4 is available on LEARN.
Feb 3
Quiz 3 is available on LEARN.
Jan 27
Quiz 2 is available on LEARN.
Jan 20
Quiz 1 is available on LEARN.
Jan 9
Lab manual is released on GitHub
Jan 9
Please sign up for the course on Piazza.

Schedule (tentative)


Week Day Content Reading Event
1 M 1/9

Introduction

Slides: PPTX, PDF

OSPP 1
Th 1/12

P1 tutorial

Slides: PDF

F 1/13

OS concepts

Slides: PPTX, PDF

OSPP 2 (and 3 to refresh your memory)

Optional:

Group sign-up deadline (14:00 EST)
2 M 1/16
Th 1/19

ARM A9 tutorial

F 1/20
3 M 1/23

Multithreaded kernels

Slides: PPTX, PDF

OSPP 4.5-4.8, 5.7-5.8 (and 5.2-5.6 to refresh your memory) Q1 deadline (23:00 EST)
Th 1/26
F 1/27
4 M 1/30 Q2 deadline (23:00 EST)
Th 2/2
F 2/3

+Make-up session

Uniprocessor scheduling

Slides: PPTX, PDF

OSPP 7.1

Optional:

5 M 2/6

Q3 deadline (23:00 EST)

P1 deadline (14:00 EST)

Th 2/9

Tutorial slides: PPTX, PDF

F 2/10
6 M 2/13

Multiprocessor scheduling

Slides: PPTX, PDF

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

Optional:

Q4 deadline (23:00 EST)
Th 2/16
F 2/17

+Make-up session

7 M 2/20 Reading week
Th 2/23
F 2/24
8 M 2/27 Midterm week
Th 3/2
F 3/3
9 M 3/6

Real-time systems

Slides: PPTX, PDF

OSPP 7.4

Optional:

Q5 deadline (23:00 EST)
Th 3/9
F 3/10

+Make-up session

10 M 3/13

Address translation

Slides: PPTX, PDF

OSPP 8.1-8.2

Q6 deadline (23:00 EST)

P2 deadline (14:00 EST)

Th 3/16
F 3/17
11 M 3/20

Caching

Slides: PPTX, PDF

OSPP 8.3 and 9.1-9.4

Optional Readings:

Q7 deadline (23:00 EST)
Th 3/23
F 3/24

+Make-up session

12 M 3/27

Demand paging

Slides: PPTX, PDF

OSPP 9.5-9.7 Q8 deadline (23:00 EST)
Th 3/30
F 3/31

I/O subsystem and storage devices

Slides: PPTX, PDF

OSPP 11.3, 7.5, and 12
13 M 4/3

Q9 deadline (23:00 EST)

P3 deadline (14:30 EST)

Th 4/6
F 4/7

File systems

Slides: PPTX, PDF

OSPP 11.1-11.2 and 13
14 M 4/10

Last day of classes

Resources


Slides

Slides are uploaded on github.

Sample exams

Waterloo ECEE350 W23

Waterloo ECEE350 W22

Waterloo SE350 W20

Waterloo SE350 W19

Berkeley CS162

Past recordings

Lectures from previous offerings of the course are available on Youtube for F'20, W'21, and W'22.

Policies


In-person sessions

Emergency remote-teaching contingency

Live sessions will be held on MS Teams during scheduled course times. To allow students to ask questions and participate freely, live sessions will not be recorded.

Assessments

Quiz policy

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.

Emergency self-isolation contingency

You will have few days to take each quiz. Out of 9 quizzes, only the highest 7 will be considered. Therefore, students can miss 2 quizzes without the need for any justifications.

Emergency remote-final-examination contingency

There will be no remote final exam. In the event of an emergency, the weight of the final exam will be distributed between quizzes and the lab projects. Quizzes will have a new weight of 35% and the lab projects will have a new weight of 65%.

Lab projects

Group 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. All group members receive the same grade for each project.

LEARN is used for group sign-up. Please note that grace days do not apply to group sign-up deadline. After the deadline, any student without a group will be randomly assigned to a group.

Students can quit their group and join a new one only once. Students need to notify the lab instructor in writing at least one week before the nearest lab deadline. The split-up happens after the lab deadline. If a group member leaves their group, all members of the group loose their group-sign-up points.

Explaining concepts to someone in another group, discussing algorithms/testing strategies with other groups, helping someone from another group to debug their code, 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.

Emergency self-isolation contingency and lateness 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 book-keeping, late submissions are rounded up. A ten-minute-late submission receives the same penalty as a fifteen-hour-late submission. Submissions after three days are not accepted.

Other policies

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.

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.

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.

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.

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.