ECE344: Operating Systems

Announcements:

Course Staff Information:

Instructor: David Lie
Email: lie@eecg.toronto.edu
Office: SF2001C

Grade Allocation and Exam Type:

Final: 50%
Midterm: 25% 
Labs: 25%
 
Calculator Type: 4 (None)
Exam Type: C Single Cheat Sheet

The midterm will take place Week of  Oct 31st.  Exact Date and Time TBD

Course Resources:

Blackboard Course Webpage: https://portal.utoronto.ca

There is not required textbook for the course, only course notes in the form of slides. Questions should be addressed to the bulletin board on the course web page, which will be monitored daily. While we will try to check the board as often as possible, this does not necessarily mean you will get an answer for your questions in less than 24 hours.

Lectures:

Lectures will be posted on the portal website a week before.  You are encouraged to print them and bring them to lecture.

Labs:

All labs will be done on the ECF machines.  You may do the labs on your own machines at home, but it is your responsibility to make sure that they work on the ECF machines where .  As a result, it is important that you follow the submission instructions for each lab carefully.  Labs will be done in groups of 2.

Each lab will be graded in the lab.  A TA will ask you questions about your code and ask you to demonstrate to them that the code works.  In addition for some labs, you will be asked to make a small change to your lab at the beginning of the lab period.  The change should be trivial to make if you have organized your code well and understand how it works.  Thus, think ahead when writing your code!

The course consists of 4 labs and one optional lab as follows.  The labs are challenging, so be sure to pace yourself and not leave anything to the last minute.  By the end of this, you will have implemented a good part of a simple operating system -- something you can brag about on your resume and to your non-computer literate friends!  Some labs span several weeks and will have milestones every 1 or 2 weeks:

Lab 0: An Introduction to OS161 - Due Week of Sept 19
Lab 1: Synchronization - Due Week of Sept 26
Lab 2: System Calls - Due Oct 3 & Oct 10
Lab 3: Virtual Memory - Due Oct 24,  Nov 14 & Nov 28
Lab 4: File system - Bonus!

You may also find a good deal of lab documentation to help you out here.

Very Optional: If you want to see your OS actually run on real hardware instead of sys161 (the OS161 emulator), it happens that the architecture os161 runs on (mips) is essentially the same as the one used by the Altera nios processor you've used in other courses.  

Course Policies:

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.   

Course Schedule:

Week Lecture Lab
Sept 5 Intro
Sept 12 Fundamentals and Overview
Sept 19 Threads & Processes Lab 0
Sept 26 Threads & Processes/Synchronization Lab 1
Oct 3 Synchronization Lab 2.0
Oct 10 Memory Management Lab 2.1
Oct 17 Instructor away, no lecture Lab 3.0
Oct 24 Memory Management Lab 3.0
Oct 31 Memory Management/Scheduling Midterm, no lab
Nov 7 Scheduling Lab 3.1
Nov 14 File Systems & Disk Management Lab 3.1
Nov 21 File Systems & Disk Management Lab 3.2
Nov 28 Virtualization and Hypervisors Lab 3.2
Dec 5 Cloud Computing, Mobile OS

Lab Group Signup:

©2011David Lie - all rights reserved. Last modified: 2011-09-19