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

  1. 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.
  2. Complete the “getting to know you” survey now. We cannot grade your work without this information.
  3. Find the Discord invite to our server, and join.
  4. Find a link to the first homework (HW0) via github classroom.
  5. 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