Operating Systems

ECE344, Fall 2022
University of Toronto

Instructors: Prof. Jonathan Eyolfson and Prof. Ashvin Goel

Quick Links

HomeLectures (Prof. Eyolfson)Lectures (Prof. Goel)LabsPiazza DiscussionQuercus Website

Course Objectives

This course is an introduction to operating systems. An operating system is a layer of low-level software that runs directly on computer hardware and below running applications. It's purpose is to:

  1. Provide abstractions to hide the messiness and complexities of hardware to simplify application programming.
  2. Provide virtualization so that each application runs as if it is the only application running on the hardware, even if multiple applications run simultaneously.
  3. Provide isolation so that one running application cannot access, or modify, the state or behavior of another running application, whether accidentally or maliciously.

The high-level goals of this course is to have students understand the design and implementation of operating systems software. Topics include: introduction to operating systems concepts, process management, memory management and file systems. Time permitting, we will discuss additional topics. The laboratory exercises will require implementing software that helps understand core operating system concepts. You can also check the course description in the academic calendar.

The learning outcomes of the course include:

Course Instructors

Section Instructor Email
L0101 Ashvin Goel ashvin@eecg.toronto.edu  Course administrator
L0102, L0103 Jonathan Eyolfson j.eyolfson@utoronto.ca

Course Overview

This site provides lecture material (Prof. Eyolfson, Prof. Goel) and lab information.

Course announcements and course discussion will be on the Piazza web site. Please sign up for this course on Piazza. You should post any questions about the course on Piazza before sending individual mails to the TAs or the instructors. You can provide course feedback by posting private notes on Piazza. These notes are only visible to instructors and TAs.You can provide course feedback by sending a direct email to the instructors or TAs. Note that we do not allow posting anonymous or private notes.

As a student, you should feel free to answer questions posed by other students on Piazza. In fact, we will assign 3 extra bonus marks to the five students who qualitatively contributed the most by answering other students' questions.

Course quizzes, grades and course evaluations will be available at the UofT Quercus website.


The suggested text book for this course is: Modern Operating Systems (4th Edition) by Andrew Tanenbaum.

The instructors recommend the following book highly: Operating Systems: Three Easy Pieces by Remzi H. Arpaci-Dusseau and Andrea C. Arpaci-Dusseau. You can access freely available chapters of the book from the book website or support the authors by buying it.

Course Schedule

The course schedule in shown in the table below.

Instructor Time and Location
Section 1: Prof. Ashvin Goel
Lectures Tue 12-1pm (SF3202), Thu 12-1pm (SF3202), Fri 12-1pm (SF3202)
Office hour Thu 1-2pm (SF2001B)
Section 2: Prof. Jonathan Eyolfson
Lectures Mon 9-10am (GB220), Wed 9-10am (GB220), Thu 9-10am (GB220)
Office hour Thu 2-3pm (BA5110)
Section 3: Prof. Jonathan Eyolfson
Lectures Mon 1-2pm (GB119), Tue 2-3pm (GB119), Thu 1-2pm (GB119)
Office hour Tue 3-4pm (BA5110)

The labs and the final exam for all the sections will be held at the same time as shown below.

Time and Location
Labs Tue 9-12pm (GB243, GB251), Wed 3-6pm (GB243, GB251), Fri 12-3pm (GB243, GB251)
Online Quizzes Sep 29 8-9pm (Thu), Oct 20 8-9pm (Thu), Nov 17 8-9pmNov 24 8-9pm (Thu)
Final Exam Dec 12, 9:30am-12:00pm

Lectures: Your may attend the lectures for any of the sections but please do not switch lectures because the sections may not be synchronized.

Tutorial: There are no tutorials in this course.

Office Hour: The purpose of the office hour is to get clarifications on the lecture material. The instructors will be available for office hour weekly to meet with students individually or in small groups. No new material will be covered in the office hour.

Lab Sessions: The labs are designed so that they can be done online. However, you can attend one three-hour lab session each week to discuss lab-related questions and get one-on-one help with TAs during part of the lab sessions. Labs are marked by TAs outside the lab sessions, so attending the lab sessions is not mandatory.

Quizzes: There will be three online quizzes during the term. Each quiz will be 45 minutes long, with 15 additional minutes provided for uploading your answers.

Final Exam: The details of the final exam will be announced later.

Marking and Evaluation

There will be several labs and quizzes during the term. There will also be a final exam during the final exam period. The details of the quizzes and final exam will be provided in class and on the course web site. The composition of the final mark is as follows:

A repository of past exams is available on the lab machines in the /cad2/ece344f/exams directory. The exam questions are organized by year and also by specific course topic. These files are in the PDF file format. You can view the files on the lab machines using a PDF reader, or you can copy these files to your home machine and view them there.

We do not provide or mark problem sets in the course. The repository of past exams is your best resource for preparing for exams. Answers for most questions have been provided. Feel free to get additional clarifications about the questions or their answers on the Piazza website.

Students will have a week to contest a grade. Please submit a short explanation justifying the reasons for resubmission.

Course Outline

The following is a list of the topics, and the corresponding reference in the Modern Operating Systems (Tanenbaum) book. Please keep in mind that this list of topics is tentative and is intended to serve as a general guide only.

Topic Week Reference
1. Introduction to OS Concepts Week 1 Textbook Chapter 1
2. Process Management Textbook Chapter 2
Threads and Processes Weeks 2 and 3
Mutual Exclusion Week 4
Synchronization Week 5
Scheduling Week 6
Process Management System Calls Week 6
3. Memory Management Textbook Chapter 3
Introduction to Memory Management, Paging Week 7
TLB, Demand Paging Week 8
Memory Management System Calls Week 9
Page Replacement Week 10
4. I/O and File Systems Textbook Chapters 4, 5
Disks Week 10
File Systems Week 11
File System Consistency Week 12
5. Introduction to Cloud Computing, Virtualization Time permitting Instructor's notes

Independent Work

Students are encouraged to discuss with one another issues and problems that arise in the course of solving the lab assignments. However, plagiarism and cheating will not be tolerated under any circumstances. Cheating includes, but is not limited to, generating expected output in an attempt to fool the automated marking script. It is also an offense to allow others to copy and submit your work for credit, whether with or without your knowledge. So, it is your responsibility to protect your work from being copied by others.

We will check all submitted code to ensure that it is not similar to others.

A reasonable rule of thumb to follow during a discussion is that nobody should leave the discussion with written notes of what was said. It is unlikely that two individuals that have discussed various approaches to a problem will write highly similar programs unless one or both have a written record of what was said.

For more details, please refer to the Academic Integrity web site at the university.

Accommodations and Mental Health Support

If you have a learning need requiring an accommodation, the University of Toronto recommends that students register as soon as possible with Accessibility Services.

The University of Toronto and the Faculty of Applied Science & Engineering offer a wide range of free and confidential services that can assist you with health and mental health challenges. If you find yourself feeling distressed and in need of more immediate support resources, consider reaching out to the counsellors at My Student Support Program (MySSP) or visiting the Feeling Distressed webpage.

Follow-On Courses

Once you have taken this course, here is some information about follow-on courses that may interest you.