Syllabus Updated January 11, 2018


Topics Covered

This course covers the following topics:

Disks, File systems, I/O, Threads & Processes, Scheduling, Virtual Memory, Protection & Security, Interrupts, Concurrency & Synchronization.

Assignments

  • Assignment 0: Raspberry Pi Setup
  • Assignment 1: Shell and Bootloader
  • Assignment 2: SD Driver and FAT File System
  • Assignment 3: Spawn
  • Assignment 4: Multitasking and Multicore

Textbook

There is no textbook for this course.

Schedule

Week Monday Wednesday
Jan 8 Introduction to CS140e
• Slides
Introduction to Rust I
• Code (pdf) | Code (rs) | Rusty Types Reading
• Assignment 0 Released
• Read TRPL v2: Chapters 1 - 11
Jan 15 Martin Luther King Jr. Day (no class/lab!)
• Assignment 0 Due
Introduction to Rust II
• Container Cheat Sheet
• Assignment 1 Released
• Read TRPL v2: Chapters 13 - 19
Jan 22 What is an OS? The shell, GPIO, UART.
• UART Communication Basics
I/O & Disks
• CS140 (~15 years ago) Slides | Recent CS140 Slides
Jan 29 File Systems I Introduction to Rust III
• Rust Q&A Submission Due
Feb 5 File Systems II Memory Allocation, FAT32
• Assignment 1 Due
Feb 12 Virtual Memory I
• Assignment 2 Released
Virtual Memory II
Feb 19 President's Day (no class/lab!) Virtual Memory III
Feb 26 Processes & Scheduling
• Boards | CS140 Slides
Interrupts & Exceptions
• Boards
Mar 5 IPC & Scheduling
• Boards | CS140 Slides
• Assignment 2 Due
System Calls & Isolation
• Boards
Mar 12 Virtual Machines
• Assignment 3 Released
Synchronization
• Boards
Mar 19 • Assignment 3 Due • Final Exam Due
Schedule is tentative and subject to change.