[ This is a BACKUP server. Do NOT use unless the primary server is DOWN. ]
In the lecture slides and videos section below, I will post lecture slides and pre-recorded lecture videos before 6pm on the day before the live lecture. Within 24 hours after a live lecture is over, I will add the recording of the live lectures there as well. For a high-level preview of future lectures, please see the tentative slides section below. For a detailed breakdown of each lectures, please see the detailed schedule section below.To download all the PDF files below in one command (so you can study for exams), do the following inside a terminal in Ubuntu 16.04:
wget -r -l 1 --user=USERID --password=PASSWORD http://merlot.usc.edu/cs402-m25/summer-lectures.html
where USERID and PASSWORD are the user ID and password used to access protected content from our class web site.
But please note that the lecture slides can change at any time without notice. Therefore, it's a good idea to re-run the above command often
to synchroniza your copy with the server!
If you have trouble accessing one of the videoes directly, please try the following. Go to USC Brightspace to our class, click on Content and click on Week N on the left side, where N is a week number, then click on the lecture video you want to access. In this case, you are looking at a basic MP4 video player. Then click on the icon at the bottom of the video player that has an arrow pointing to the right-top corner of your screen (it says "Watch In Panopto" if you hover your mouse over it), if it all works, you will be viewing the video in the Panopto video player which is a better video player with more features. If not, you would see a screen that asks you to login to D2L or Panopto. Go back to the previous screen and click on the video to start playing the video in the basic MP4 player for about 10 seconds. Then click on the icon at the bottom of the video player that has an arrow pointing to the right-top corner of your screen (it says "Watch In Panopto" if you hover your mouse over it), this time, it should works. The browser will also memorize your Panopto/D2L credentials. From this point on, you can come back to this web page and click on the video links directly.
Please note that the lecture numbers below correspond to the lecture numbers in a Fall/Spring semester.
May 22, 2025:May 23, 2025 (week 1 discussion):
- part 1 of Lecture 1 (PDF) - course administration
- Lecture 1 video (part 2 of 2) - 54 minutes (PDF) - course administration
- Lecture 2 video (part 1 of 2) - 40 minutes (PDF) - introduction (Ch 1)
- Discussion 1 video (part 1 of 1) - 56 minutes (PDF) - gdb, warmup #1 (part 1)
May 27, 2025:May 29, 2025:
- Lecture 2 video (part 2 of 2) - 34 minutes (PDF) - introduction (Ch 1), a simple OS (Ch 1)
- Lecture 3 video (part 1 of 2) - 41 minutes (PDF) - a simple OS (Ch 1)
- Lecture 3 video (part 2 of 2) - 45 minutes (PDF) - a simple OS (Ch 1)
- live lecture (house-keeping PDF) - video recording of live lecture (55 minutes)
May 30, 2025 (week 2 discussion):
- Lecture 4 video (part 1 of 2) - 40 minutes (PDF) - a simple OS (Ch 1)
- Lecture 4 video (part 2 of 2) - 43 minutes (PDF) - a simple OS (Ch 1), thread creation, termination (Ch 2)
- Lecture 5 video (part 1 of 2) - 41 minutes (PDF) - thread creation, termination (Ch 2)
- live lecture (house-keeping PDF) - video recording of live lecture (25 minutes)
- Discussion 2 video (part 1 of 1) - 49 minutes (PDF) - warmup #1 (part 2)
- video recording of live discussion section - 24 minutes
Jun 3, 2025:Jun 5, 2025:
- Lecture 5 video (part 2 of 2) - 39 minutes (PDF) - thread synchronization (Ch 2)
- Lecture 6 video (part 1 of 2) - 39 minutes (PDF) - thread synchronization (Ch 2)
- Lecture 6 video (part 2 of 2) - 44 minutes (PDF) - thread synchronization (Ch 2)
- live lecture (house-keeping PDF) - video recording of live lecture (42 minutes)
Jun 6, 2025 (week 3 discussion): Prerequisite: finish all lecture videos on thread synchronization
- Lecture 7 video (part 1 of 2) - 40 minutes (PDF) - thread synchronization (Ch 2)
- Lecture 7 video (part 2 of 2) - 39 minutes (PDF) - thread safety, deviations (Ch 2)
- Lecture 8 video (part 1 of 2) - 40 minutes (PDF) - thread safety, deviations (Ch 2)
- (slide 16 in PDF is slightly different from what's in the pre-recorded video)
- live lecture (house-keeping PDF) - video recording of live lecture (43 minutes)
- Discussion 3 video (part 1 of 1) - 49 minutes (PDF) - warmup #2 (part 1)
- video recording of live discussion section - 35 minutes
Jun 10, 2025:Jun 12, 2025:
- Lecture 8 video (part 2 of 2) - 36 minutes (PDF) - thread safety, deviations (Ch 2)
- Lecture 9 video (part 1 of 2) - 44 minutes (PDF) - context switching, I/O (Ch 3)
- Lecture 9 video (part 2 of 2) - 34 minutes (PDF) - context switching, I/O (Ch 3)
- live lecture (house-keeping PDF) - video recording of live lecture (24 minutes)
Jun 13, 2025 (week 4 discussion):
- Lecture 10 video (part 1 of 2) - 40 minutes (PDF) - context switching, I/O (Ch 3)
- Lecture 10 video (part 2 of 2) - 39 minutes (PDF) - context switching, I/O (Ch 3), dynamic storage allocation (Ch 3)
- Lecture 11 video (part 1 of 2) - 44 minutes (PDF) - dynamic storage allocation (Ch 3)
- Lecture 11 video (part 2 of 2) - 43 minutes (PDF) - static linking and loading (Ch 3)
- live lecture (house-keeping PDF) - video recording of live lecture (33 minutes)
- (no sound during the first 25 seconds of the video)
- Discussion 4 video (part 1 of 2) - 29 minutes (PDF) - warmup #2 (part 2) - Prerequisite: finish the last Ch 2 video on Jun 10, 2025
- Prerequisite: you should probably only watch the following videos after you are done with warmup2
- Discussion 4 video (part 2 of 2) - 22 minutes (PDF) - introduction to kernel assignments (part 1)
- (weenix version in PDF is 3.9.0 while video had version 3.8.0, line numbers in kmain.c are different)
- Discussion 5 video (part 1 of 1) - 53 minutes (PDF) - introduction to kernel assignments (part 2)
- (weenix version in PDF is 3.9.0 while video had version 3.8.0, line numbers in kmain.c are different)
- video recording of live discussion section - 41 minutes
Jun 17, 2025:Jun 19, 2025:
- Lecture 12 video (part 1 of 2) - 38 minutes (PDF) - booting (Ch 3), a simple system (Ch 4)
- Lecture 12 video (part 2 of 2) - 31 minutes (PDF) - a simple system (Ch 4)
- Lecture 13 video (part 1 of 2) - 44 minutes (PDF) - a simple system (Ch 4)
- live lecture (house-keeping PDF) - video recording of live lecture (44 minutes)
Jun 20, 2025 (week 5 discussion):
- Lecture 13 video (part 2 of 2) - 41 minutes (PDF) - thread implementation strategies (Ch 5), threads implementations (Ch 5)
- Lecture 14 video (part 1 of 2) - 44 minutes (PDF) - threads implementations (Ch 5)
- Lecture 14 video (part 2 of 2) - 48 minutes (PDF) - interrupts (Ch 5)
- no live lecture - Juneteenth (non-instructional day)
- Discussion 6 video (part 1 of 1) - 55 minutes (PDF) - kernel 1, kmain.c
- (weenix version in PDF is 3.9.0 while video had version 3.8.0, line numbers in kmain.c are different)
- video recording of live discussion section - 23 minutes
Jun 24, 2025:Jun 26, 2025:
- Lecture 15 video (part 1 of 2) - 37 minutes (PDF) - interrupts (Ch 5)
- (slide 29 in PDF is slightly different from what's in the pre-recorded video)
- Lecture 15 video (part 2 of 2) - 47 minutes (PDF) - scheduler activations model (Ch 5), storage management (Ch 4), files (Ch 1)
- Lecture 16 video (part 1 of 2) - 39 minutes (PDF) - files (Ch 1)
- live lecture (house-keeping PDF) - video recording of live lecture (24 minutes)
Jun 27, 2025 (week 6 discussion):
- Lecture 16 video (part 2 of 2) - 48 minutes (PDF) - files (Ch 1)
- Lecture 17 video (part 1 of 2) - 30 minutes (PDF) - files (Ch 1)
- Lecture 17 video (part 2 of 2) - 40 minutes (PDF) - the basics of file systems (Ch 6)
- live lecture (house-keeping PDF) - video recording of live lecture (21 minutes)
- Discussion 7 video (part 1 of 1) - 50 minutes (PDF) - more on kernel 1, faber_test.c
- video recording of live discussion section - 35 minutes
Jul 1, 2025:Jul 3, 2025:
- Lecture 18 video (part 1 of 2) - 41 minutes (PDF) - the basics of file systems (Ch 6)
- Lecture 18 video (part 2 of 2) - 49 minutes (PDF) - virtual memory (Ch 7)
- Lecture 19 video (part 1 of 2) - 43 minutes (PDF) - virtual memory (Ch 7)
- live lecture (house-keeping and exam logistics PDF) - video recording of live lecture (62 minutes)
Jul 4, 2025 (week 7 discussion):
- no lecture videos or live lecture - university holiday
- Discussion 8 video (part 1 of 1) - 52 minutes (PDF) - kernel 2
- Discussion 9 video (part 1 of 1) - 52 minutes (TXT) - kernel 2 polymorphism, vfs.c, vnode.c, file.c, vfs_syscall.c, vn_mmobj_ops.c, ramfs.c, vfstest.c, faber_fs_test
- no live discussion section - university holiday
Jul 8, 2025:Jul 10, 2025:
- Lecture 19 video (part 2 of 2) - 50 minutes (PDF) - virtual memory (Ch 7)
- Lecture 20 video (part 1 of 2) - 46 minutes (PDF) - virtual memory (Ch 7)
- Lecture 20 video (part 2 of 2) - 38 minutes (PDF) - OS issues (Ch 7)
- no live lecture - midterm exam
Jul 11, 2025 (week 8 discussion): Prerequisite: you should probably only watch these videos when you are done with kernel 2
- Lecture 21 video (part 1 of 2) - 42 minutes (PDF) - OS issues (Ch 7)
- Lecture 21 video (part 2 of 2) - 52 minutes (PDF) - OS issues (Ch 7)
- Lecture 22 video (part 1 of 2) - 42 minutes (PDF) - OS issues (Ch 7)
- live lecture (house-keeping PDF) - video recording of live lecture 36 minutes
- Discussion 10 video (part 1 of 1) - 60 minutes (PDF) - introduction to kernel 3, the elf32 loader
- Discussion 11 video (part 1 of 1) - 57 minutes (PDF) - more on kernel 3, address space implementation (vmarea, mmobj, pframe, page table)
- video recording of live discussion section - 25 minutes
Jul 15, 2025:Jul 17, 2025:
- Lecture 22 video (part 2 of 2) - 59 minutes (PDF) - OS issues (Ch 7)
- Lecture 23 video (part 1 of 2) - 37 minutes (PDF) - performance improvements (Ch 6)
- Lecture 23 video (part 2 of 2) - 53 minutes (PDF) - performance improvements (Ch 6), crash resiliency (Ch 6)
- slide 58: please note that the textbook refers to a "run" as an "extent"
- live lecture (house-keeping PDF) - video recording of live lecture (25 minutes)
Jul 18, 2025 (week 9 discussion):
- Lecture 24 video (part 1 of 2) - 39 minutes (PDF) - crash resiliency (Ch 6)
- Lecture 24 video (part 2 of 2) - 55 minutes (PDF) - directories and naming (Ch 6)
- Lecture 25 video (part 1 of 2) - 44 minutes (PDF) - RAID, flash memory, case studies (Ch 6)
- live lecture (house-keeping PDF) - video recording of live lecture (13 minutes)
- Discussion 12 video (part 1 of 1) - 52 minutes (TXT) - objdump, page fault handling, hello
- video recording of live discussion section - 40 minutes
Jul 22, 2025:Jul 24, 2025:
- Lecture 25 video (part 2 of 2) - 46 minutes (PDF) - RAID, flash memory, case studies (Ch 6), devices (Ch 4)
- Lecture 26 video (part 1 of 2) - 46 minutes (PDF) - devices (Ch 4), virtual machines, microkernels (Ch 4)
- Lecture 26 video (part 2 of 2) - 45 minutes (PDF) - virtual machines, microkernels (Ch 4)
- live lecture (house-keeping PDF) - video recording of live lecture (14 minutes)
Jul 25, 2025 (week 10 discussion):
- Lecture 27 video (part 1 of 2) - 44 minutes (PDF) - virtual machines, microkernels (Ch 4)
- Lecture 27 video (part 2 of 2) - 42 minutes (PDF) - virtual machines, microkernels (Ch 4), scheduling (Ch 5)
- Lecture 28 video (part 1 of 2) - 51 minutes (PDF) - scheduling (Ch 5)
- live lecture (house-keeping PDF) - video recording of live lecture (14 minutes)
- Discussion 13 video (part 1 of 1) - 52 minutes (TXT) - fork(), user space shell
- video recording of live discussion section - 28 minutes
Jul 29, 2025:Jul 31, 2025:
- Lecture 28 video (part 2 of 2) - 50 minutes (PDF) - scheduling (Ch 5)
- Lecture 29 video (part 1 of 2) - 35 minutes (PDF) - scheduling (Ch 5)
- Lecture 29 video (part 2 of 2) - 57 minutes (PDF) - scheduling (Ch 5), shared libraries (Ch 3)
- live lecture (house-keeping PDF) - video recording of live lecture (18 minutes)
Aug 1, 2025: No discussions this week. (We are covering exactly the same discussions material and doing exactly the same programming assignments as in all previous semesters.)
- No pre-recorded lecture videos for Jul 31, 2025 since all materials have been covered! (We are covering exactly the same lectures material and doing exactly the same programming assignments as in all previous semesters.)
- live lecture (house-keeping PDF)
- (Aug 5, 2025) - final exam, 9:30am-10:10am (firm)
- Administrative
- course administration (PDF)
- quiz information (PDF)
- exam logistics (PDF)
- housekeeping (PDF) (frequent updates)
- Ch 1 - Introduction
- introduction (PDF)
- a simple OS (PDF)
- files (PDF) (will go over this 2nd after Ch 5)
- Ch 2 - Multithreaded Programming
- thread creation, termination (PDF)
- thread synchronization (PDF)
- thread safety, deviations (PDF)
- Ch 3 - Basic Concepts
- context switching, I/O (PDF)
- dynamic storage allocation (PDF)
- static linking and loading (PDF)
- shared libraries (PDF) (will go over this 8th after Ch 7)
- booting (PDF)
- Ch 4 - Operating-System Design
- a simple system (PDF)
- storage management (PDF) (will go over this first after Ch 5)
- devices (PDF) (will go over this 5th after Ch 7)
- virtual machines, microkernels (PDF) (will go over this 6th after Ch 7)
- Ch 5 - Processor Management
- thread implementation strategies (PDF)
- thread implementations (PDF)
- interrupts (PDF)
- scheduler activations model (PDF)
- scheduling (PDF) (will go over this 7th after Ch 7)
- Ch 6 - File Systems
- the basics of file systems (PDF)
- performance improvements
(PDF)
(will go over this first after Ch 7)
- slide 52: please note that the textbook refers to a "run" as an "extent"
- crash resiliency (PDF) (will go over this 2nd after Ch 7)
- directories and naming (PDF) (will go over this 3rd after Ch 7)
- RAID, flash memory, case studies (PDF) (will go over this 4th after Ch 7)
- Ch 7 - Memory Management
- Miscellaneous
- blank slides (for use by instructor) (PDF)
Week #DateMinutesLecture Topics15/22120course administration (slides 1-85), introduction (Ch 1) (slides 1-17)25/27120introduction (Ch 1) (slides 18-22), a simple OS (Ch 1) (slides 1-66)5/29120a simple OS (Ch 1) (slides 67-85), thread creation, termination (Ch 2) (slides 1-38)36/3120thread synchronization (Ch 2) (slides 1-74)6/5120thread synchronization (Ch 2) (slides 74-97), thread safety, deviations (Ch 2) (slides 1-38)46/10120thread safety, deviations (Ch 2) (slides 39-59), context switching, I/O (Ch 3) (slides 1-90)6/12120context switching, I/O (Ch 3) (slides 90-135), dynamic storage allocation (Ch 3) (slides 1-39), static linking and loading (Ch 3) (slides 1-45)56/17120booting (Ch 3) (slides 1-18), a simple system (Ch 4) (slides 1-61)6/19120thread implementation strategies (Ch 5) (slides 1-20), threads implementations (Ch 5) (slides 1-38), interrupts (Ch 5) (slides 1-29)66/24120interrupts (Ch 5) (slides 30-65), scheduler activations model (Ch 5) (slides 1-14), storage management (Ch 4) (slides 1-18), files (Ch 1) (slides 1-53)6/26120files (Ch 1) (slides 54-92), the basics of file systems (Ch 6) (slides 1-23)77/1120the basics of file systems (Ch 6) (slides 24-45), virtual memory (Ch 7) (slides 1-44)7/3120virtual memory (Ch 7) (slides 44-94), OS issues (Ch 7) (slides 1-23)87/80Midterm Exam (no video)7/10120OS issues (Ch 7) (slides 24-89)97/15120OS issues (Ch 7) (slides 90-134), performance improvements (Ch 6) (slides 1-55), crash resiliency (Ch 6) (slides 1-38)7/17120crash resiliency (Ch 6) (slides 39-60), directories and naming (Ch 6) (slides 1-27), RAID, flash memory, case studies (Ch 6) (slides 1-18)107/22120RAID, flash memory, case studies (Ch 6) (slides 19-38), devices (Ch 4) (slides 1-28), virtual machines, microkernels (Ch 4) (slides 1-37)7/24120virtual machines, microkernels (Ch 4) (slides 38-81), scheduling (Ch 5) (slides 1-30)117/29120scheduling (Ch 5) (slides 31-129), shared libraries (Ch 3) (slides 1-27)7/310(no video)128/50Final Exam (no video)