MondayTuesday WednesdayThursday Friday
aug 26
aug 27
LEC 1: Introduction, slides, and examples (handouts: xv6 book)
Preparation: Read Xv6: Ch 1 OS Interfaces (for your amusement: Unix)
Assignment: Lab util: Unix utilities
Assignment: Lab shell: Unix shell
aug 28 aug 29
LEC 2: C Programming in Xv6, slides, and examples
Preparation: Read Bitwise Operators: 2.9, Pointers: 5.1- 5.6, and Structures: 6.1-6.4 in Kernighan & Ritchie
aug 30
sep 2
Labor Day
sep 3
Lab Day - Work in class on lab utilities.
sep 4 sep 5
LEC 3: OS Design, slides
Preparation: Read Xv6: Ch 2 OS Organization and xv6 code: kernel/proc.h, kernel/defs.h, kernel/entry.S, kernel/main.c, user/initcode.S, user/init.c, and skim kernel/proc.c and kernel/exec.c
Homework 1 due: Question
sep 6
DUE: Lab util
sep 9 sep 10
LEC 4: RISC-V Calling conventions, slides
Preparation: Read RISC-V Calling Convention
Homework 2 due: Question
Assignment: Lab syscall: System calls
sep 11 sep 12
LEC 5: System Call Entry/Exit and Traps, slides
Preparation: Read Xv6 Ch 4 Traps, except 4.6 and kernel/riscv.h, kernel/trampoline.S, and kernel/trap.c
Homework 3 due: Question
sep 13
DROP w/o W
sep 16 sep 17
Lab Day - Work in class on lab system calls.
sep 18 sep 19
LEC 6: Virtual Addressing
Preparation: Read OSTEP: Ch 15: Address Translation, Ch 16: Segmentation, and Ch 18:Intro to Paging.
Homework 4 due: Question
sep 20
DUE: Lab syscall
sep 23 sep 24
LEC 7: Page Tables
Preparation: Read Xv6: Ch 3 Page Tables and kernel/memlayout.h, kernel/vm.c, kernel/kalloc.c, kernel/riscv.h, and kernel/exec.c
Homework 5 due: Question
Assignment: Lab pgtbl: Page Tables
sep 25 sep 26
LEC 8: Page Faults, slides
Preparation: Read Xv6: Section 4.6 Page Faults
Homework 6 due: Question
sep 27
sep 30 oct 1
Lab Day - Work in class on lab page tables.
oct 2 oct 3
LEC 9: Device drivers, slides
Preparation: Read Xv6: Ch 5 Interrupts and kernel/kernelvec.S, kernel/plic.c, kernel/console.c, kernel/uart.c, kernel/printf.c
Homework 7 due: Question
oct 4
DUE: Lab pgtbl
oct 7 oct 8
LEC 10: Locking, slides
Preparation: Read Xv6: Ch 6 Locking with kernel/spinlock.h and kernel/spinlock.c
Homework 8 due: Question
Assignment: Lab traps: Traps
oct 9 oct 10
LEC 11: Scheduling Basics
Preparation: Read OSTEP: Ch 6: Direct Execution and Ch 7: Scheduling.
Homework 9 due: Question
oct 11
oct 12 - oct 15
Fall Break
oct 16 oct 17
LEC 12: Scheduling Fair
Preparation: Read OSTEP: Ch 8: MLFQ and Ch 9: Lottery.
Homework 10 due: Question
oct 18
DUE: Lab traps
oct 21 oct 22
LEC 13: Scheduling Details, Scheduling Coordination, code, slides
Preparation: Read Xv6: Ch 7 Scheduling at least through Section 7.6, and kernel/proc.c, kernel/swtch.S, kernel/sleeplock.c
Homework 11 due: Question
Assignment: Lab scheduling: Scheduling
oct 23 oct 24
LEC 14: File systems, slides
Preparation: Read Xv6: Ch 8 File system (except for logging sections) and kernel/bio.c, kernel/fs.c, kernel/sysfile.c, kernel/file.c
Homework 12 due: Question
oct 25
oct 28 oct 29
Lab Day - Work in class on lab scheduling.
oct 30 oct 31
LEC 15: Crash recovery, slides
Preparation: Read Xv6: Ch 8 logging sections and kernel/log.c
Homework 13 due: Question
Assignment: Lab fs: File Systems
nov 1
DROP w/o F
DUE: Lab scheduling
nov 4 nov 5
Voting Day - Use your time to work on
Assignment: Lab Shell: Unix shell
nov 6 nov 7
LEC 17: File system performance and fast crash recovery
Preparation: Read Journaling the Linux ext2fs Filesystem (1998)
Homework 14 due: Question
nov 8
nov 11 nov 12
Lab Day - Work in class on lab fs.
nov 13 nov 14
LEC 18: Concurrency - Threads Intro
Preparation: Read OSTEP: Ch 26: Concurrency Intro and Ch 27: Threads API.
Homework 15 due: Question
nov 15
DUE: Lab fs with locks
nov 18 nov 19
LEC 19: Concurrency - Locks
Preparation: Read OSTEP: Ch 28: Locks
Homework 16 due: Question
Assignment: Lab thread: Multithreading
nov 20 nov 21
LEC 20: Concurrency - Condition Variables, Semaphores
Preparation: Read OSTEP: Ch 30: Condition Variables
Ch 31: Semaphores.
Homework 17 due: Question
nov 22
nov 25 nov 26
Lab Day - Work in class on lab thread.
nov 27 nov 28 - dec 1
Thanksgiving Break
nov 29
dec 2
DUE: Lab thread
dec 3
Special Lab Day - Security Lab.
Preparation: Read and aswer the questions in Lab Security.
Assignment: Lab security: Security
dec 4 DUE: Lab shell dec 5
LAST DAY OF CLASSES
Final Exam Presentations
dec 6
dec 9
Exam Week
dec 10
Final Exam Presentations: 8:30-11
dec 11
Exam Week
dec 12
Exam Week
dec 13
Exam Week


Questions or comments regarding CPSC 405? Send e-mail to Gusty at ecooper@umw.edu.

Creative Commons License Top // CPSC 405 home // Last updated 8-Aug-2024 13:30 EST