Operating Systems

ECE344, Fall 2022
University of Toronto

Instructors: Prof. Jonathan Eyolfson and Prof. Ashvin Goel
Deadlock

Quick Links

HomeLectures (Prof. Eyolfson)Lectures (Prof. Goel)LabsPiazza DiscussionQuercus Website

Lecture Material (Prof. Goel)

Prof. Goel's ECE344 lecture material will be made available here as topics are covered in class.

This course, including your participation, may be recorded on video. Any recorded videos will be available to students for viewing remotely. The instructors will provide instructions on how to access the course videos in class.

Course videos and materials belong to your instructor, the University, and/or other source depending on the specific facts of each situation, and are protected by copyright. In this course, you are permitted to download session videos and materials for your own academic use, but you should not copy, share, or use them for any other purpose without the explicit permission of the instructor. For questions about recording and use of videos in which you appear please contact your instructor.

Week Topic Material
A. Overview of the Course
1 Introduction to Operating Systems slides
1 OS Design Concepts slides
1 Intro Code tarball
B. OS-Related Hardware
1 Overview of Hardware slides
1, 2 CPU Modes, MMU slides
2 Traps slides
2 System Call Code tarball
C. Understanding Threads and Processes
2 Threads slides
2 Processes slides
2 Threads Code tarball
3 Program Address Space slides
3 Address Space Code tarball
D. Threads API and Implementation
3 Threads API slides
3 Threads Implementation slides
3 User Versus Kernel Threads slides
3 Fun Threads Question pdf
E. Mutual Exclusion
4 Introduction to Mutual Exclusion slides
4 Implementing Mutual Exclusion Locks slides
4 Locking Code tarball
4 Using Locks slides
4 Misusing Locks slides
4 Locking Question (not discussed in class) pdf
F. Synchronization
5 Introduction to Synchronization slides
5 Monitors slides
5 Semaphores slides
5 Synchronization Problems slides
5 US Canada Question (not discussed in class) txt file
5 Tree Planting Question (not discussed in class) txt file
5 Thread Wait Question (not discussed in class) pdf
G. Unix Processes and Threads
6 Unix Processes slides
6 Posix Threads slides
6 Unix System Calls Question (not discussed in class) pdf
H. Scheduling
6 Introduction to Scheduling slides
6 Batch Scheduling slides
7 Round-Robin Scheduling slides
7 Priority Scheduling slides
7 Scheduling Question pdf
I. Overview of Memory Management
7 Memory Management Overview slides
7 Address Space Demo Code tarball
J. Virtual Memory Hardware
8 Paging slides
8 Paging Question 1 pdf
8 Paging Question 2 pdf
8 Paging Question 3 (not discussed in class) pdf
8, 9 TLB pdf
9 TLB Question 1 pdf
9 TLB Question 2 (not discussed in class) pdf
K. Virtual Memory
9 Demand Paging slides
9 Demand Paging Question pdf
9 Virtual Memory Implementation slides
9,10 Processes and Virtual Memory slides
10 Malloc Demo Code tarball
10 Heap Demo Code tarball
10 Mmap Demo Code tarball
10 Kernel Address Space slides
10 Virtual Memory Question 1 (not discussed in class) pdf
10 Virtual Memory Question 2 (not discussed in class) pdf
L. Page Replacement
10 Page Replacement Algorithms slides
10 Page Replacement Question (not discussed in class) pdf
M. Disks and Storage Hardware
11 Disks and RAID slides
11 RAID Question 1 (not discussed in class) pdf
11 RAID Question 2 (not discussed in class) pdf
N. File Systems
11 Introduction to File Systems slides
11 FS Links Demo Code tarball
11,12 File System Design slides
12 Unix File System slides
12 File System Question 1 (not discussed in class) pdf
12 File System Question 2 (not discussed in class) pdf
12 File System Question 3 (not discussed in class) pdf