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
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
- 50% project
- 20% paper summaries
- 20% paper presentations
- 10% class discussion
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
- Critical study and discussion of recent literature in each of the core topic areas. This will include brief (25-30 minute) presentation of research papers by students and involvement in discussions.
- Summaries of papers.
- A term project that involves designing, constructing, and evaluating an interesting software system related to the problems and techniques discussed in class.
Topics planned
This course will be a broad survey of Networked Systems research, rather than an in-depth study of a particular sub-area.
- Early distributed systems
- Distributed file systems
- Placement and lookup services
- Coordination Services
- Distributed shared logs
- Disk-based key-value stores
- Designing key-value stores for SSDs
- In-memory computing (e.g. RAMCloud, FaRM)
- Experiences with large-scale systems (e.g., Twitter, Facebook)
- Non-volatile Memory
- Operating systems for high throughput and low latency
- Library operating systems and unikernels
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:
- Tanenbaum, Modern Operating Systems, 4th ed. (Background reading, UTM library), QA76.76 .O63 T359 2015
- Saltzer & Kaashoek, Principles of Computer System Design, 2009
- Coulouris, Dollimore & Kindberg, Distributed Systems: Concepts and Design, 4th ed., QA76.9 .D5 C68 2005X (that there is a 5th edition of this text, but it is not available at the UofT library)
- Lynch, Distributed Algorithms, QA 76.9.D5L96 1996
- Lynch, Merritt, Weihl & Fekete, Atomic Transactions, QA 76.545.A86 1994
- Bernstein, Hadzilacos & Goodman, Concurrency Control and Recovery in Database Systems, QA 76.9.D3 B48 1987
- Silberschatz, Korth & Sudershan, Database System Concepts, 4th ed. QA76.9 .D3 K67 2002
- Kshemkalyani & Singhal, Distributed Computing: Principles, Algorithms, and Systems
- Mullender, Distributed Systems, 2nd ed. QA 76.9.D5D5937 1993
- Özsu & Valduriez, Principles of Distributed Database Systems (there is a new 4th edition (2020) that might be available)
- Herlihy & Shavit, The Art of Multiprocessor Programming. UTM library, QA76.6.H5244 2008
- Raynal, Concurrent Programming: Algorithms, Principles and Foundations.
- Harchol-Balter, Performance Modeling and Design of Computer Systems: Queuing Theory in Action.
- Jain, The Art of Computer Systems Performance Analysis. QA 76.9 E94J32 1991
- Schneier, Secrets and lies: digital security in a networked world, also, QA 76.9.A25S352 2000X
- Gray & Reuter, Transaction processing: concepts and techniques. QA 76.545.G73 1993
Conferences
These conferences are the major arenas for the publication of new ideas in computer systems research:
- SOSP - Symposium on Operating Systems Principles
- OSDI - Symposium on Operating Systems Design and Implementation
- NSDI - Network Systems Design and Implementation
- FAST - Conference on File and Storage Technologies
- ASPLOS - Architectural Support for Programming Languages and Operating Systems
- ATC - USENIX Annual Technical Conference
- EuroSys
- SIGCOMM - Computer Communication
- SIGMETRICS - Computer/communication system performance
- ISCA - International Symposium on Computer Architecture
- HotOS - Hot Topics in Operating Systems Workshop
- IEEE S&P - Security & Privacy
- Usenix Security
- ACM CCS - Computer and Communications Security
Final Note
* Everything here is subject to change.