| Week | Topics | Chapter/Assigned Reading |
|---|---|---|
| Jan. 9 | Intro to process model; system calls; cpu/memory state; signals; modes of linking; |
class lecture, xv6:syscall.c, xv6:sysproc The UNIX Time-Sharing System |
| Jan. 16 | University holiday: Martin Luther King Jr.'s Birthday -- no class. | |
| Jan. 23 | UNIX shell, fork/exec/wait; linking and loading; env vars; file descriptors, I/O re-direction |
Ch. 4--6, Ch. 2 (code), Ch. 5 (code); xv6: file.c, sysfile.c, pipe.c, proc.[ch] |
| Jan. 30 | POSIX Threads, Concurrency; a first look at Locks |
Ch. 28--31, xv6:spinlock.c Required readings: Optional readings: |
| Feb. 6 | Virtual Memory, clock algo.; Cache/MMU/TLB |
class lecture; Ch. 13--15, Ch. 17--19, xv6: memlayout.h, exec.c, kalloc.c, mmu.h, and vm.c Required reading: Virtual memory, processes, and sharing in multics Optional suggested reading: What Every Programmer Should Know About Memory |
| Feb. 13 | CPU Caches; Device I/O; |
class lecture |
| Feb. 20 | University holiday: President's Day -- no class. | |
| Feb. 27 | Midterm Exam; static and dynamic linking |
|
| Mar. 6 | Spring break -- no class. | |
| Mar. 13 | Guest Lecture: Intro to ELF; | |
| Mar. 20 | Scheduling | get/setcontext, and xv6:swtch.S xv6:fs.c Ch. 7, Ch. 8, Ch. 10 Readings: |
| Mar. 27 | Filesystems | Class lecture; Ch. 37 - 43 xv6: fs.c,file.c,sysfile.c,exec.c Readings: |
| Apr. 3 | Virtual Machines | class lecture ostep.org: App B |
| Apr. 10 | Linux Containers, Docker, Cloud, Orchestration | class lecture |
| Apr. 17 | University holiday: Patriot's Day -- no class. | |
| Apr. 24 | Final Projects Due | Project Presentations |