University of Toronto ECE 344
Professor Jon Eyolfson · University of Toronto · 14 lectures with notes
Students in this class: ask your lecturer for the class code, and these lectures will already be in your library when you sign up.
ECE344 Fall 2026 (Sec 1) Lec 1 - Why Operating Systems?
ECE344 uses Linux and xv6 to show how operating systems manage resources and shape the behavior of everyday programs.
ECE344 Fall 2026 (Sec 1) Lec 2 - Kernels
System calls form the protected boundary between user programs and the kernel, regardless of programming language.
ECE344 Fall 2026 (Sec 1) Lec 3 - Libraries
A library’s shared ABI determines whether programs keep working when its implementation changes.
ECE344 Fall 2026 (Sec 1) Lec 4 - Process Creation
Unix process creation hinges on fork’s parent-child split and execve’s replacement of a process image.
ECE344 Fall 2026 (Sec 1) Lec 5 - Process Management
Linux parents must collect child exit statuses; otherwise, terminated children become zombies and surviving children may be reparented.
ECE344 Fall 2026 (Sec 1) Lec 7 - Advanced IPC
Pipe EOF depends on closing every write end; close-on-exec also enables reliable exec-failure reporting.
ECE344 Fall 2026 (Sec 1) Lec 8 - Event Loops and Process Groups
Combine signalfd and poll to handle child exits and input in one efficient, single-threaded event loop.
ECE344 Fall 2026 (Sec 1) Lec 9 - Virtual Memory
Virtual memory uses per-process page tables and MMU hardware to translate addresses while isolating processes from one another.
ECE344 Fall 2026 (Sec 1) Lec 10 - Page Tables
SV39 uses a three-level page-table tree to make sparse virtual address spaces far cheaper to represent.
ECE344 Fall 2026 (Sec 1) Lec 11 - Page Faults
Jon Eyolfson connects SV39 page-table translation, TLB performance, and demand paging through BRK, MMAP, and page-fault handling.
ECE344 Fall 2026 (Sec 1) Lec 12 - Basic Scheduling
Scheduling policies trade off waiting time, responsiveness, fairness, and the overhead of switching processes.
ECE344 Fall 2026 (Sec 1) Lec 14 - Threading Models
User threads are fast and library-managed, but only kernel-visible threads can run in parallel or block independently.
ECE344 Fall 2026 (Sec 1) Lec 13 - Threads
Pthreads share a process’s memory but have independent stacks, making synchronization and argument lifetime essential.
ECE344 Fall 2026 (Sec 1) Lec 13 - Threads
Pthreads make concurrency inexpensive, but shared memory, thread lifetimes, and scheduling order demand careful design.