This course covers the fundamental concepts of operating systems, focusing on resource management and abstraction. This includes OS structure, processes and thread management, communication with peripherals (I/O), synchronization, deadlocks, memory management, Virtual Machines, cloud infrastructures, and abstractions for cloud computation. The workload for this class is heavy and programming intensive. And fun!
Announcements
- All content for this course can be found in the class’s shared google drive.
Your Immediate TODO
- Accept the invitation to the class’ google drive. Find the
class-information
document which starts with a number of links that you can use to proceed through this list. - Complete the “getting to know you” survey now. We cannot grade your work without this information.
- Find the Discord invite to our server, and join.
- Find a link to the first homework (
HW0
) via github classroom. - Please read about installing the class’ infrastructure: Ubuntu 20
LTS (see the class
resources for guidance) and
#tech-support
on discord if you have any issues.
Schedule
Lecture | Notes | Video/topic (Thanks Gabe!) |
---|---|---|
8/30 | Intro to OS. Setup class accounts | |
9/1 | Execution stack, system calls, exceptions | |
9/6 | Input/output and device interactions | |
9/8 | System structure: isolation & comms | |
9/13 | Processes (Up to minute 47) | |
9/15 | xv6 switch (after minute 47) | |
9/20 | Process API | |
9/22 | Inter-Process Communication (IPC) | |
9/27 | Threading | |
9/29 | Synchronization: Critical Sections | |
10/4 | Synchronization: Atomic Instructions | |
10/6 | Synchronization Abstractions | |
10/11 | Synchronization Examples | |
10/13 | Deadlock | |
10/18 | Midterm | |
10/20 | Scheduling Goals and Algorithms (first 61 minutes) | |
10/25 | No class. | Fall break |
10/27 | Multi-core Scheduling and Linux CFS (first 23 minutes) | |
11/1 | Real-time scheduling | |
11/3 | User-level memory management | |
11/8 | Slab & Buddy allocators | |
11/10 | Memory Protection | |
11/15 | Page-Tables | |
11/17 | FS API | |
11/22 | FS Indexing | |
11/24 | No class. | Thanksgiving break. |
11/29 | Catch up time | |
12/1 | FS Implementation | |
12/6 | FS Crash Consistency | |
12/8 | Security |
Assignemnts
Full info on all assignments is available to students in the class drive. These dates may be incorrect – see the class information file for the latest information!
- HW 0: Academic Integrity - due Sunday September 4, 2022
- HW 1: C Data Structures - due Monday September 19, 2022
- Resubmit by Friday September 30, 2022
- HW 2: xv6 Process Status - due Monday October 10, 2022
- Note: You may work individually or with one other student. After you set a team using the - form you may not change!
- Submit by Friday 11:59PM to get +5pt bonus
- HW 3: xv6 Threading - due 10/30
- Submit 72 hours early to get +5pt bonus
- HW 4: xv6 Locks - due 11/11
- Submit 72 hours early to get +5pt bonus
- HW 5: xv6 Memory Management - due 12/4
- Note: This is an individual assignment!
- Submit 72 hours early to get +5pt bonus
- Project: xv6 Containers - due finals week
- Create 3 person teams - 11/6
- Progress Check In - 12/1
- Code Deadline - 12/14
- Demos - 12/15-12/16