Skip to content
lectern.tv
MIT6.S081Systems & CSundergraduate· 2020

Operating System Engineering

Prof. Frans Kaashoek & Robert Morris

Dissects UNIX operating system design around xv6 on RISC-V: page tables, traps, system calls, interrupts, locking, thread scheduling, crash-safe file systems, and virtual memory.

Start Lecture 121 lectures · 31h total
Syllabus progress0 of 21 watched
MIT 6.S081: Operating System Engineering

Syllabus

21
Lecture 1· 1:19:57

Operating System Engineering: Introduction and Examples (MIT 6.S081, Lecture 1)

This introductory lecture to MIT's 6.S081 course outlines fundamental operating system concepts, including system calls, process isolation, and virtual memory, through concrete examples.

Lecture 2· 1:20:47

OS Organization and System Calls (MIT 6.S081, Lecture 3)

This lecture, part of MIT's 6.S081 Operating System Engineering course, details the fundamental organization of an operating system, focusing on the interface between user-level applications and the kernel through system calls.

Lecture 3· 1:33:05

Page Tables (MIT 6.S081, Lecture 4)

This lecture, part of MIT's 6.S081 Operating System Engineering course, rigorously details the architecture and function of page tables, translating virtual addresses to physical memory addresses in a modern operating system. Topics include page table entries, multi-level paging, and the Translation Lookaside Buffer (TLB).

Lecture 4· 1:15:08

RISC-V Calling Convention and Stack Frames (MIT 6.S081, Lecture 5)

This lecture, part of MIT's operating systems course, details the RISC-V calling convention and its implications for managing stack frames during function calls. It covers argument passing, return values, and local variable storage within the stack.

Lecture 5· 1:27:30

Isolation & System Call Entry/Exit (MIT 6.S081, Lecture 6)

This lecture, part of MIT's 6.S081 Operating System Engineering course, rigorously details the mechanisms of process isolation and the precise entry and exit protocols for system calls, fundamental to kernel design.

Lecture 6· 1:27:14

Operating System Engineering (MIT 6.S081, Lecture 7 Q&A for Labs)

This session addresses student inquiries regarding lab assignments for MIT's 6.S081 Operating System Engineering course, focusing on practical implementation challenges and debugging strategies within a kernel development context. It offers insights into process management, system calls, and synchronization primitives.

Lecture 7· 1:22:08

Page Faults (MIT 6.S081 Fall 2020, Lecture 8)

This lecture from MIT's advanced operating systems course details the mechanisms and handling of page faults within a virtual memory system. It covers the hardware context switching and software interrupt handling required for robust memory management.

Lecture 8· 1:37:18

Interrupts (MIT 6.S081 Fall 2020 Lecture 9)

This lecture from MIT's 6.S081 course meticulously details the architecture and implementation of interrupts within an operating system, covering exception handling, system call mechanisms, and the interaction between hardware and kernel-level software components.

Lecture 9· 1:32:56

Lecture 10: Multiprocessors and Locks (6.S081)

This lecture delves into the architecture of multiprocessor systems, examining the challenges of concurrent access to shared resources. It details the implementation and use of locks as a critical synchronization primitive to ensure data integrity.

Lecture 10· 1:31:27

Lecture 11: Thread Switching (6.S081)

This lecture from MIT's 6.S081 course meticulously details the mechanisms of thread switching, including saving and restoring CPU state, managing kernel stacks, and the role of the scheduler in context switching within an operating system kernel.

Lecture 11· 1:25:27

Lecture 13: Sleep & Wakeup (6.S081)

This lecture from MIT's 6.S081 course meticulously details the implementation of sleep and wakeup mechanisms within operating system kernels, crucial for process synchronization and avoiding busy-waiting in concurrent systems. It examines the underlying primitives and potential race conditions.

Lecture 12· 1:25:39

Lecture 14: File Systems (6.S081)

The lecture introduces the core concepts and design principles of file systems, explaining how data is organized, stored, and retrieved on persistent storage. It covers fundamental structures such as inodes, directories, and data blocks.

Lecture 13· 1:30:30

Lecture 15: Crash Recovery (6.S081)

This session investigates strategies for ensuring file system consistency and data integrity following system crashes. It discusses journaling techniques and logging mechanisms used to restore a file system to a valid state.

Lecture 14· 1:39:12

Lecture 16: File System Performance and Fast Crash Recovery (6.S081)

This lecture explores methods to enhance file system performance, focusing on caching, buffering, and optimizing disk I/O. It also examines advanced techniques for achieving faster and more robust crash recovery.

Lecture 15· 1:23:16

Lecture 17: Virtual Memory for Applications (6.S081)

The lecture elucidates the concept of virtual memory and its benefits for application development, including memory protection and efficient resource utilization. It covers page tables, demand paging, and memory-mapped files.

Lecture 16· 1:34:20

Lecture 18: OS Organization (6.S081)

This session surveys different architectural models for operating systems, contrasting monolithic kernels, microkernels, and exokernels. It discusses the trade-offs in design concerning performance, security, and extensibility.

Lecture 17· 1:37:29

Lecture 19: Virtual Machines (6.S081)

This lecture introduces the principles of virtual machines, covering full virtualization, paravirtualization, and hardware-assisted virtualization. It examines the role of hypervisors in creating isolated execution environments.

Lecture 18· 1:34:28

Lecture 20: Kernels and High Level Languages HLL (6.S081)

The session discusses the challenges and benefits of implementing operating system kernels using high-level programming languages. It explores how language features can impact kernel safety, performance, and development efficiency.

Lecture 19· 1:33:15

Lecture 21: Networking (6.S081)

This lecture covers the fundamental concepts of network communication within an operating system context. It delves into network protocols, sockets, and the kernel's role in managing network interfaces and data transmission.

Lecture 20· 1:30:48

Lecture 22: Meltdown (6.S081)

This specialized lecture dissects the Meltdown security vulnerability, explaining its microarchitectural basis in speculative execution and its implications for kernel memory protection. It covers the technical details of the attack and mitigation strategies.

Lecture 21· 1:28:07

Lecture 23: RCU (6.S081)

The lecture introduces Read-Copy-Update (RCU), a powerful synchronization mechanism used in operating system kernels for concurrent data access. It explains how RCU enables lock-free reads while managing writes efficiently.