Instructor: Ding Yuan
Course Number: ECE344

Home
Discussion (piazza)
Lab Documentation
Lab Assignments
Schedule and Lecture Notes
Grades (UofT Quercus)

Operating Systems

ECE344, Winter 2020
University of Toronto


Announcement

∗ [Mar/25] Due to COVID-19, we changed the grading schemes.

∗ [Mar/3] Midterm solution posted.

∗ [Feb/14] Past exams posted.

∗ [Jan/6] Sign up for lab groups here

∗ [Jan/6] Welcome to ECE 344!

Course Description

In this course discuss the principles in the design and implementation of operating systems software. Topics include: Introduction to operating systems concepts, process management, memory management, file systems for both hard drive and SSD, virtualization, and distributed operating systems. The laboratory exercises will require implementing a simple, but functional operating system from ground up.

This site provides instructor's lecture notes and all lab-related information.

Course announcements and the course discussion is on the Piazza web site.

Course grades are available at the UofT Quercus.

Suggested textbook (not required)

Operating Systems: Three Easy Pieces, Remzi H. Arpaci-Dusseau and Andrea C. Arpaci-Dusseau.

Modern Operating Systems (4th Edition), Andrew Tanenbaum and Herbert Bos, Prentice Hall. 2014

Course Information

The lecture and lab times and office hours are shown below:

Lecture Times: Mon. 16-18, Thu 17-18

Location: MC252

Lab Times: Wed. 15:00-18:00 (GB251), Thu. 9:00-12:00 (GB243 and GB251)

Office Hours: 10 minutes after each lecture.

Midterm exam: 2/24, 16:00 - 17:00, Location: MS 3153

Course Policies

Grading:
Final exam: 45%
Midterm exam: 25%
Lab assignment: 30% (2%, 7%, 9%, 12% respectively for each lab assignment) 75% (2%, 7%, 21%, 45% respectively for each lab assignment)

Missed Labs: Missed labs will be made up on a case-by-case basis. Please have appropriate documentation (i.e. doctor's note, etc...)

Cheating: Each group should work independently. You may confer with each other, but your work should be your own. You should understand your code well enough to describe it to the TA and make simple changes to it when asked to.