Lecture Slides and Videos
Below find lecture slides and videos for 2017 and 2016 along with videos for previous years.
Geoffrey Challen has been taping his OS lectures since 2012, resulting in hundreds of hours of freely available online content. Browse the lectures below or subscribe to the lecture feed or YouTube channel.
2017
Discussion of introduction to Hints for Computer System Design by Butler Lampson.
Continuation of a discussion of performance and benchmarking, and introduction to Amdahl's Law.
Discussion of the process of benchmarking and performance improvement.
Discussion of file system caching and its impacts on consistency.
Discussion of efficiently translating virtual addresses to physical addresses.
Introduction to the challenge of OS energy management and the address space abstraction.
Introduction to MLFQ, Con Kolivas, Linux development, and the Rotating Staircase Deadline Scheduler.
An overview of simple schedulers including the know-nothings (random, round-robin) and oracle schedulers.
Completion of a discussion of thread states followed by a motivation of the what, when and how of thread scheduling.
Introduction to the thread abstraction and discussion of different threading implementations.
Introduction to the root of kernel privilege, interrupts and exception handling. Completion of wait and exit.
Discussion of deadlock and completion of the process interface including a discussion of exec.
Introduction to file handles and file descriptors and the process life cycle.
Introduction to the process abstraction and standard UNIX utilities.
Introduction to an introduction to operating systems, the course staff, and course policies.
2016
Discussion of Cells: A Virtual Mobile Smartphone Architecture by Jeremy Andrus et al.
Discussion of "An Analysis of Linux Scalability to Many Cores" by Silas Boyd-Wickizer et al.
Continuation of a discussion of performance and benchmarking, followed by an introduction to Hints for Computer System Design by Butler Lampson.
Discussion of the process of benchmarking and performance improvement.
Discussion of the Atlantis paper by James Mickens and collaborators.
Discussion of file system caching and its impacts on consistency.
Discussion of efficiently translating virtual addresses to physical addresses.
Introduction to the challenge of OS energy management and the address space abstraction.
Introduction to MLFQ, Con Kolivas, Linux development, and the Rotating Staircase Deadline Scheduler.
An overview of simple schedulers including the know-nothings (random, round-robin) and oracle schedulers.
Completion of a discussion of thread states followed by a motivation of the what, when and how of thread scheduling.
Introduction to the thread abstraction and discussion of different threading implementations.
Discussion of ways that applications can get the kernel's attention.
Introduction to the root of kernel privilege, interrupts and exception handling.
Completion of the process interface including a discussion of exec, wait, and exit.
Continuation of an introduction to synchronization primitives and a discussion of several classic synchronization problems.
Completion of a discussion of critical sections, and an overview of locks and condition variables.
Completion of a discussion of fork including the use of pipes, and the beginning of a unit on synchronization.
Continuation of a discussion of the process abstraction and introduction to file handles and file descriptors.
Introduction to the process abstraction and standard UNIX utilities.
Introduction to an introduction to operating systems, the course staff, and course policies.