Operating Systems

ECE344, Fall 2020
University of Toronto

Instructors: Michael Stumm and Ashvin Goel
Deadlock

Quick Links

HomeLecture MaterialLab AssignmentsExam ValidatorPiazza DiscussionQuercus WebsiteECE344 calendar

Course Objectives

Welcome to ECE344! The goal 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 objectives of the course include:

Course Overview

This site provides all lecture and lab-related 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. Note that we do not allow posting anonymous notes.

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

We will be using Zoom for tutorials, office hour and lab hours. Below, when we use the term "online", we mean a Zoom online session.

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

This year we will be using a flipped classroom format. We will provide slides and videos for the lecture material. You are expected to go over this material by yourself.

Tutorials, office hours, lab sessions and quizzes will be conducted online at the times shown in the table below.

Day Time Dates
Tutorial Thursday 11-12pm Every week, except reading week
Office Hour Monday 11-12pm Every week, except reading week
Lab Sessions Tuesday 3-4pm Every week
Wednesday 12-1pm Every week
Quizzes Wednesday 11-12pm Week 3, Sept 30
Wednesday 11-12pm Week 6, Oct 21
Wednesday 11-12pm Week 8, Nov 4
Wednesday 12-1pm Week 11, Nov 25Dec 2
Final Exam TBD

Tutorial: The tutorial session will be led by the instructors. Each instructor will have their own tutorial session. We will review some of the lecture material, but you are expected to have seen the slides and videos before the tutorial. We will also provide demos, and answer your questions during this tutorial. Please do attend the tutorials to get help with the course material.

Office Hour: The purpose of the office hour is to get clarifications on the lecture material. The instructors will meet with students in small groups during the office hour. If a student prefers, they can meet an instructor individually. No new material will be covered in the office hour.

Lab Sessions: Students can also discuss lab-related questions and get one-on-one help with TAs during the lab sessions. Labs are marked by TAs outside the lab sessions, so attending the lab sessions is not mandatory.

Quizzes: Each quiz will be 45 minutes long, with 15 additional minutes provided for uploading your answers.

Final Exam: The final exam schedule will be announced once it is available.

The ECE344 course schedule described above, and other relevant ECE344 times, such as when labs are released or closed, are available from the ECE344 public calendar. This calendar also provides all Zoom related information for accessing the online sessions. You can also use the following URL to include this calendar in your own calendar: https://calendar.google.com/calendar/ical/41vh9edfb5bjjqhd5n3gngv0og%40group.calendar.google.com/public/basic.ics

Marking and Evaluation

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

This year, you will be doing all the lab assignments, quizzes and the final exam online.

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.