SE350


Operating Systems

Details


Time & location

Lectures: T, Th 14:30 - 15:50, Online

Tutorials: W 15:30 - 16:20, Online

Teaching team
Prof. Seyed Majid Zahedi

Instructor

Prof. Seyed Majid Zahedi

Book appointments here

Irene Huang

Lab instructor

Irene Huang

Book appointments here

Karim Walid Abdelazim Elhammady

GTA

Karim W. A. Elhammady

Sulav Shrestha

GTA

Sulav Shrestha

Description
This course is an introduction to the fundamentals of operating systems design and implementation. Topics include processes, threads, concurrency, synchronization, scheduling, memory management, file systems, device management, and security.
Prereq
CS240, (CS246 or CS247), ECE222; Software Engineering students only
Antireq
CS350, ECE254, ECE354, MTE241
Readings

Main textbook

Optional references

Evaluation
Coursework will include the following components.
  • Quizzes (20%)
  • Lab Projects (50%)
  • Final (30%)
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 2022. 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 28
Quiz 9 is available on LEARN.
Mar 21
Quiz 8 is available on LEARN.
Mar 14
Quiz 7 is available on LEARN.
Mar 7
Quiz 6 is available on LEARN.
Feb 28
Quiz 5 is available on LEARN.
Feb 7
Quiz 4 is available on LEARN.
Jan 31
Quiz 3 is available on LEARN.
Jan 24
Quiz 2 is available on LEARN.
Jan 17
Quiz 1 is available on LEARN.
Jan 7
The link for booking office-hour appointments with Prof. Zahedi is active now.
Jan 5
Please sign up for the course on Piazza.

Schedule (tentative)


Week Day Content Reading Event
1 Th 1/6

Introduction

Slides: PPTX, PDF

Recording: Youtube, Teams

OSPP 1
2 Tu 1/11

OS concepts

Slides: PPTX, PDF

Recording: Youtube, Teams

OSPP 2, 3, 4.1-4.5

Optional:

Group sign-up deadline (8:30 EST)
W 1/12
Th 1/13

Recording: Youtube, Teams

3 Tu 1/18

Recording: Youtube, Teams

W 1/19
Th 1/20

Recording: Youtube, Teams

Q1 deadline (23:00 EST)
4 Tu 1/25

Synchronization

Slides: PPTX, PDF

Recording: Youtube, Teams

OSPP 5.1-5.6 and 6.5
W 1/26
Th 1/27

Recording: Youtube, Teams

Q2 deadline (23:00 EST)
5 Tu 2/1

Recording: Youtube, Teams

P1 deadline (8:30 EST)
W 2/2

Tutorial slides: PPTX, PDF

Recording: Youtube, Teams

Th 2/3

Multithreaded kernels

Slides: PPTX, PDF

Recording: Youtube, Teams

OSPP 4.5-4.8, 5.7-5.8 Q3 deadline (23:00 EST)
6 Tu 2/8

Recording: Youtube, Teams

W 2/9
Th 2/10

Recording: Youtube, Teams

Q4 deadline (23:00 EST)
7 Tu 2/15

Uniprocessor scheduling

Slides: PPTX, PDF

Recording: Youtube, Teams

OSPP 7.1

Optional:

W 2/16
Th 2/17

Recording: Youtube, Teams

8 Tu 2/22 Reading week
W 2/23
Th 2/24
9 Tu 3/1

Recording: Youtube

P2 deadline (8:30 EST)
W 3/2
Th 3/3

Address translation

Slides: PPTX, PDF

Recording: Youtube, Teams

OSPP 8.1-8.2 Q5 deadline (23:00 EST)
10 Tu 3/8

Recording: Youtube, Teams

W 3/9
Th 3/10

Caching

Slides: PPTX, PDF

Recording: Youtube, Teams

OSPP 8.3 and 9.1-9.4

Optional Readings:

Q6 deadline (23:00 EST)
11 Tu 3/15

Recording: Youtube, Teams

W 3/16
Th 3/17

Recording: Youtube, Teams

Q7 deadline (23:00 EST)
12 Tu 3/22

Demand paging

Slides: PPTX, PDF

Recording: Youtube, Teams

OSPP 9.5-9.7
W 3/23
Th 3/24

I/O subsystem and storage devices

Slides: PPTX, PDF

Recording: Youtube, Teams

OSPP 11.3, 7.5, and 12

Q8 deadline (23:00 EST)

13 Tu 3/29

Recording: Youtube, Teams

P3 deadline (8:30 EST)
W 3/30
Th 3/31

Recording: Youtube, Teams

Q9 deadline (23:00 EST)
14 Tu 4/5

File systems

Slides: PPTX, PDF

Recording: Youtube, Teams

OSPP 11.1-11.2 and 13

Last day of classes

Resources


Slides

Slides are uploaded on github.

Sample exams

Waterloo SE350 W22

Waterloo SE350 W20

Waterloo SE350 W19

Berkeley CS162

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 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.

What is the 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

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.