Monday | Tuesday | Wednesday | Thursday | Friday |
jan 13 week 1 |
jan 14 LEC 1: Introduction, slides, and Xv6 book Preparation: Read Xv6: Ch 2 OS Organization (for your amusement: Unix) Assignment: Lab shell: Unix shell |
jan 15 | jan 16 LEC 2: C Programming, slides, and examples Preparation: Read Introduction in Lab firstlab: C Programming, Pointers: 5.1- 5.6, and Structures: 6.1-6.4 in Kernighan & Ritchie Assignment: Lab firstlab: C Programming |
jan 17 |
jan 20 week 2 Martin Luther King Day |
jan 21 LEC 3: C Programming - Xv6 API, slides, and examples Preparation: Read Xv6: Ch 1 OS Interfaces |
jan 22 | jan 23 DUE at 8AM: Lab firstlab: C Programming LEC 4: C Programming - Xv6 API, slides, and examples Preparation: Read Bitwise Operators: 2.9, Pointers: 5.1- 5.6, and Structures: 6.1-6.4 in Kernighan & Ritchie Assignment: Lab util: Unix utilities |
jan 24 |
jan 27 week 3 |
jan 28 LEC 5: 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 |
jan 29 | jan 30 DUE at 8AM: Lab util: Unix utilities LEC 6: RISC-V Calling conventions, slides Preparation: Read RISC-V Calling Convention |
jan 31 DROP w/o W |
feb 3 week 4 |
feb 4 LEC 7: 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 Assignment: Lab syscall: System calls |
feb 5 | feb 6 LEC 8: Virtual Addressing Preparation: Read OSTEP: Ch 15: Address Translation, Ch 16: Segmentation, and Ch 18:Intro to Paging. | feb 7 |
feb 10 week 5 |
feb 11 DUE at 8AM: Lab syscall: System calls 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 |
feb 12 | feb 13 LEC 8: Page Faults, slides Preparation: Read Xv6: Section 4.6 Page Faults Assignment: Lab pgtbl: Page Tables |
feb 14 |
feb 17 week 6 |
feb 18 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 |
feb 19 | feb 20 DUE at 8AM: Lab pgtbl: Page Tables LEC 10: Locking, slides Preparation: Read Xv6: Ch 6 Locking with kernel/spinlock.h and kernel/spinlock.c Assignment: Lab traps: Traps |
feb 21 |
feb 24 week 7 |
feb 25 Review Material from First Half of Class Prepare for Midterm Exam Discuss Second Half Material |
feb 26 | feb 27 Midterm Exam |
feb 28 |
mar 3 week 8 Spring Break |
mar 4 Spring Break |
mar 5 Spring Break |
mar 6 Spring Break |
mar 7 Spring Break |
mar 10 week 9 |
mar 11 Review Midterm Exam Begin Second Half of Material |
mar 12 | mar 13 DUE at 8AM: Lab traps: Traps LEC 11: Scheduling Basics Preparation: Read OSTEP: Ch 6: Direct Execution and Ch 7: Scheduling. |
mar 14 |
mar 17 week 10 |
mar 18 LEC 12: Scheduling Fair Preparation: Read OSTEP: Ch 8: MLFQ and Ch 9: Lottery. |
mar 19 | mar 20 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 Assignment: Lab scheduling: Scheduling |
mar 21 DROP w/o F |
mar 24 week 11 |
mar 25 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 |
mar 26 | mar 27 DUE at 8AM: Lab scheduling: Scheduling LEC 15: Crash recovery, slides Preparation: Read Xv6: Ch 8 logging sections and kernel/log.c |
mar 28 |
mar 31 week 12 |
apr 1 LEC 17: File system performance and fast crash recovery Preparation: Read Journaling the Linux ext2fs Filesystem (1998) Assignment: Lab fs: File Systems |
apr 2 | apr 3 LEC 18: Concurrency - Threads Intro Preparation: Read OSTEP: Ch 26: Concurrency Intro and Ch 27: Threads API. |
apr 4 |
apr 7 week 13 |
apr 8 DUE at 8AM: Lab fs: File Systems LEC 19: Concurrency - Locks Preparation: Read OSTEP: Ch 28: Locks |
apr 9 | apr 10 LEC 20: Concurrency - Condition Variables, Semaphores Preparation: Read OSTEP: Ch 30: Condition Variables Ch 31: Semaphores. Assignment: Lab thread: Multithreading |
apr 11 |
apr 14 week 14 |
apr 15 Cushion Day - snow, extra time, etc |
apr 16 | apr 17 DUE at 8AM: Lab thread: Multithreading Cushion Day - snow, extra time, etc |
apr 18 |
apr 21 week 15 |
apr 22 Special Lab Day - Security Lab. Preparation: Read and aswer the questions in Lab Security. Assignment: Lab security: Security |
apr 23 | apr 24 DUE at 8AM: Lab shell: Unix shell Review Material from Entire Class Prepare for Final Exam |
apr 25 |
apr 28 week 16 - Exams |
apr 29 Final Exam (date/time TBD): 8:30-11 |
apr 30 Exam Week |
may 1 Exam Week |
may 2 Exam Week |
Questions or comments regarding CPSC 405? Send e-mail to Gusty at ecooper@umw.edu.
Top // CPSC 405 home // Last updated 8-Aug-2024 13:30 EST