Schedule
Slides will be posted after class.
Most dates are tentative. The schedule will be updated as the semester progresses.
WEEK | DAY | Slides & Examples | Topic & Reading | Assignments |
Week 1 | Sep 03 | Introduction to Course, Operating Systems
Chapter 1, Dinosaur book | Log into your Linux account | |
Sep 05 | ||||
Sep 07 | First day of class | |||
Week 2 | Sep 10 | Jeff Chase's Computer Architecture Overview Systems Programming: Bash, C Helpful Shell-scripting Resources:
C -- Arrays, Pointers, Structs, Streams, Files Make | Assignment 1: Bash Scripting | |
Sep 12 | Drop/Add ends | |||
Sep 14 | Assignment 2 | |||
Week 3 | Sep 17 | Operating Systems: Kernel/User Mode, Booting, System Calls Git Review: Workflow, Git Handbook Using VMs Dinosaur Book, Chapter 1, 2 | ||
Sep 19 | ||||
Sep 21 | Project 1: Introduction and Booting - Due Tuesday, October 2 at 11:59:59 | |||
Week 4 | Sep 24 | Dual Mode Syscalls, Exceptions, Interrupts Interrupt Handling Processes, Process Management, Processes in Unix Dinosaur book, Chapter 2-3 | ||
Sep 26 | ||||
Sep 28 | ||||
Week 5 | Oct 01 | Process Scheduling Interprocess Communication Dinosaur Book, Chapters 3, 5 OSTEP: CPU Scheduling and The Multi-Level Feedback Queue | ||
Oct 03 | Project 2: System Calls - Due Monday, October 15 at 11:59:50 | |||
Oct 05 | ||||
Week 6 | Oct 08 | Interprocess Communication: Tradeoffs Threads Chapter 4, Dinosaur book | ||
Oct 10 | ||||
Oct 12 | Reading Days | |||
Week 7 | Oct 15 | Implementing Threads Concurrency Problems, Synchronization An introduction to programming with threads, Birrell Java Concurrency Programming Chapters 4-5, Dinosaur book SEDA: An Architecture for Well-Conditioned, Scalable Internet Services, A Retrospective on SEDA | ||
Oct 17 | Project 3: Loading and Executing Programs + Shell - Due November 2 | |||
Oct 19 | Exam | |||
Week 8 | Oct 22 | Synchronization: Race Conditions, Critical Sections, Safety, Liveness, Mutual Exclusion Synchronization Mechanism: Locks Dinosaur book, Chapter 6 | ||
Oct 24 | ||||
Oct 26 | ||||
Week 9 | Oct 29 | Implementing Locks Synchronization Mechanisms: Condition Variables, Monitors, and Semaphores Synchronization Problems: Taking Turns, Producer-Consumer Problems (e.g., Bounded Buffer) Semaphores - The Little Book of Semaphores Dinosaur book, Chapters 6--7 Position: Why Threads are a Bad Idea (for most purposes) - compares threads and events | ||
Oct 31 | ||||
Nov 02 | ||||
Week 10 | Nov 05 | Synchronization Problems: Producer-Consumer, Dining Philosophers, Deadlock Synchronization Wrap-up Dinosaur Book, Chapters 6-7 File Systems Intro Dinosaur Book, Chapter 9 | Synchronization Assignment - Due Monday, November 12 | |
Nov 07 | ||||
Nov 09 | ||||
Week 11 | Nov 12 | File Systems: abstractions, metadata, inodes, directories File System Performance Dinosaur Book, Chapters 13--15 | ||
Nov 14 | Project 4: Writing Files + Improved Shell | |||
Nov 16 | ||||
Week | Nov 19 | Thanksgiving Break | ||
Nov 21 | ||||
Nov 23 | ||||
Week 12 | Nov 26 | Storage: RAID, Dinosaur Book, Chapter 11 Memory Management Virtual Memory - Requirements Segmentation vs Paging, External and Internal Fragmentation Dinosaur Book, Chapter 9-10 | ||
Nov 28 | Project 5: Processes and Multiprogramming | |||
Nov 30 | ||||
Week 13 | Dec 03 | Virtual Memory - Mechanisms and Policies (Memory Allocation, Page Replacement) Hardware Support: MMU, TLB Dinosaur Book, Chapter 10 Wrap up, Future of Operating Systems | ||
Dec 05 | ||||
Dec 07 | ||||
Week | Dec 10 | Final Exam | ||
Dec 12 | ||||
Dec 14 |