CSC2227S: Topics in the Design and Implementation of Operating Systems
Summer 2021

News

May 4, 2021 - Welcome! Please note that the first class meeting will be on May 11th. Make sure you have read the first set of papers and are prepared to participate in discussion of them next week!

You should receive an email from the HotCRP conference management system when your account is created with login information. If you did not, please send me an email with your preferred email address.

When you sign in, you can get a list of all papers for this term by entering "#discuss" in the Search box, selecting "Submitted" from the drop-down and then clicking the "Search" button. From there, you can click on the paper titles and enter reviews for this week's papers. You should also click on the "Review preferences" link on the main page, and enter a numeric preference for each paper. Guidelines for how to choose values are given on that page.

Overview

Course Info Sheet

This course examines the design, implementation and analysis of selected aspects of operating systems with a focus on networked systems and the impact of emerging hardware such as persistent memory. It covers topics such as: resource naming and discovery, scheduling and load balancing; fault-tolerance, availability, and persistence; distributed communication models; and storage. We will explore these topics in the context of a variety of system designs including local and distributed systems.

This is a seminar-style course based on occasional lectures, paper presentations by students, and discussions of readings. The focus is on the principles used in the design of networked systems and algorithms and data structures used in their implementation. Readings include case studies, seminal papers, and recent conference and journal articles.

General Information

Meeting Time/Place: Tuesdays 1-4pm, online via Zoom
Instructor: Angela Demke Brown
Office: online
Email: middle-name -at- cs.toronto.edu

 

Although the class is scheduled for 3 hours, I do not expect to use more than 2 hours in most weeks.

Grading

Prereqs

Members of this class are expected to have taken an operating systems course equivalent to UofT's CSC 369 and achieved a grade of A or better. This includes familiarity as a user with an interactive operating system (e.g., Unix) and solid understanding of basic concepts in the design and implementation of operating systems. Students without this prerequisite knowledge are likely to struggle.

Some knowledge of advanced OS topics such as are covered in UofT's CSC 469/CSC 2208 is also assumed. In particular, students should be familiar with common OS structuring techniques (e.g. monolithic vs microkernels and virtual machine basics), performance evaluation strategies, synchronization, and basic aspects of distributed systems (e.g. timing and failure models, consensus, vector clocks, replicated state machines, etc.).

Components

Topics planned

This course will be a broad survey of Networked Systems research, rather than an in-depth study of a particular sub-area.

Books

There is no assigned textbook. However, there will be a variety of readings that will be available through the review management system, or linked from the course webpage. The following list of books are available through the UofT library. They may be useful for background reading and deeper study:

Conferences

These conferences are the major arenas for the publication of new ideas in computer systems research:

Final Note

* Everything here is subject to change.