Lectures - CSCI 402, Spring 2025, All Sections
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-s25/lectures.htmlwhere 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!
By default, live lectures will be recorded in Zoom (unless there are problems).
For serucity reasons, you must sign into your Zoom account using USC Shibboleth SSO (Single Sign-On).
Please note that this is different from signing into your Zoom account using your USC email address!
To check if you signed in into Zoom correctly, start Zoom and click on Settings if you are on your phone.
On top of the screen right next to your name, it should say LICENSED.
(If you are using a browser, then you should click on Profile and look for your User Type.)
If it doesn't say LICENSED (and says "Basic" instead), it means that you are signing into Zoom using your personal account.
In that case, you should sign out (on your phone, click on Profile, scroll all the way down to the bottomm and click on Sign Out).
Then sign in again. On the Sign In screen, don't enter your email address there,
but look for an SSO button instead. Click on the SSO button and enter "USC" as the
company domain and it will take you to the familiar USC Shibboleth SSO screen where you need to provide your USC NetID and password
(this is the same screen you get when you login to your USC email account).
Access to videos are protected by an additional level of security measure.
All videos here are on D2L, please enter your D2L user ID and password.
Please also see hints about using the D2L video viewer.
You also need to enable 3rd party cookies in your browser.
NOTE: Before you click on any video link, please make sure you have signed into USC Brightspace.
Please note that we are required to synchronized the two sections of CS 402. Therefore,
if you have a lecture that falls on 1/20 or 2/17 (which are university holidays),
you are expected to watch the lecture video on the next day.
(Please note that access to lecture notes and videos is restricted.)
Lecture 1 videos and lecture slides (for Jan 13, 2025):Lecture 2 videos and lecture slides (for Jan 15, 2025):
- part 1 slides (PDF) - course administration
- DEN section live lecture 1 video - 71 minutes
- Lecture 1 video (part 2 of 2) - 60 minutes (PDF) - course administration
(since we only have one section, "virtual switching" to another section is not applicable)Week 1 discussion video and slides:
- Lecture 2 video (part 1 of 2) - 40 minutes (PDF) - introduction (Ch 1)
- Lecture 2 video (part 2 of 2) - 34 minutes (PDF) - introduction (Ch 1), a simple OS (Ch 1)
- live Lecture 2 (house-keeping PDF)
- DEN section live lecture video - 47 minutes
- video (part 1 of 1) - 56 minutes (PDF) - gdb, warmup #1 (part 1)
- live discussion sections
- 10am live discussion section video - 50 minutes
Lecture 3 videos and lecture slides (for Jan 21 since Jan 20, 2025 is a university holiday):Lecture 4 videos and lecture slides (for Jan 22, 2025):
- video (part 1 of 2) - 41 minutes (PDF) - a simple OS (Ch 1)
(please also see lifetime of variables)- video (part 2 of 2) - 45 minutes (PDF) - a simple OS (Ch 1)
- no live lectures on Jan 20, 2025 - university holiday
Week 2 discussion video and slides:
- video (part 1 of 2) - 40 minutes (PDF) - a simple OS (Ch 1)
- video (part 2 of 2) - 43 minutes (PDF) - a simple OS (Ch 1), thread creation, termination (Ch 2)
- live Lecture 4 (house-keeping PDF)
- DEN section live lecture video - 55 minutes
- video (part 1 of 1) - 49 minutes (PDF) - warmup #1 (part 2)
- live discussion sections
- 10am live discussion section video - 36 minutes
Lecture 5 videos and lecture slides (for Jan 27, 2025):Lecture 6 videos and lecture slides (for Jan 29, 2025):
- video (part 1 of 2) - 41 minutes (PDF) - thread creation, termination (Ch 2)
- video (part 2 of 2) - 38 minutes (PDF) - thread synchronization (Ch 2)
- live Lecture 5 (house-keeping PDF)
- DEN section live lecture video - 20 minutes
Week 3 discussion video and slides:
- video (part 1 of 2) - 39 minutes (PDF) - thread synchronization (Ch 2)
- video (part 2 of 2) - 44 minutes (PDF) - thread synchronization (Ch 2)
- live Lecture 6 (house-keeping PDF)
- DEN section live lecture video - 21 minutes
- video (part 1 of 1) - 49 minutes (PDF) - warmup #2 (part 1)
- live discussion sections
- 10am live discussion section video - 26 minutes
Lecture 7 videos and lecture slides (for Feb 3, 2025):Lecture 8 videos and lecture slides (for Feb 5, 2025):
- video (part 1 of 2) - 40 minutes (PDF) - thread synchronization (Ch 2)
- video (part 2 of 2) - 39 minutes (PDF) - thread safety, deviations (Ch 2)
- live Lecture 7 (house-keeping PDF)
- DEN section live lecture video - 44 minutes
Week 4 discussion discussions video and slides:
- video (part 1 of 2) - 40 minutes (PDF) - thread safety, deviations (Ch 2)
- (slide 16 is slightly different from what's in the pre-recorded video)
- video (part 2 of 2) - 36 minutes (PDF) - thread safety, deviations (Ch 2)
- live Lecture 8 (house-keeping PDF)
- DEN section live lecture video - 30 minutes
- video (part 1 of 2) - 29 minutes (PDF) - warmup #2 (part 2)
- 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)- live discussion sections
- 10am live discussion section video - 32 minutes
Lecture 9 videos and lecture slides (for Feb 10, 2025):Lecture 10 videos and lecture slides (for Feb 12, 2025):
- video (part 1 of 2) - 44 minutes (PDF) - context switching, I/O (Ch 3)
- video (part 2 of 2) - 34 minutes (PDF) - context switching, I/O (Ch 3)
- live Lecture 9 (house-keeping PDF)
- DEN section live lecture video - 35 minutes
Week 5 discussion video and slides:
- video (part 1 of 2) - 40 minutes (PDF) - context switching, I/O (Ch 3)
- (the controller in front of meemory is removed to avoid confusing on slide 25)
- video (part 2 of 2) - 39 minutes (PDF) - context switching, I/O (Ch 3), dynamic storage allocation (Ch 3)
- (the controller in front of meemory is removed to avoid confusing on slides 25-34)
- live Lecture 10 (house-keeping PDF)
- DEN section live lecture video - 30 minutes
- 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)- live discussion sections
- 10am live discussion section video - 24 minutes
Lecture 11 videos and lecture slides (for 2/18 since Feb 17, 2025 is a university holiday):Lecture 12 videos and lecture slides (for Feb 19, 2025):
- video (part 1 of 2) - 44 minutes (PDF) - dynamic storage allocation (Ch 3)
- video (part 2 of 2) - 43 minutes (PDF) - static linking and loading (Ch 3)
- no live lectures on Feb 17, 2025 - university holiday
Week 6 discussion video and slides:
- video (part 1 of 2) - 38 minutes (PDF) - booting (Ch 3), a simple system (Ch 4)
- video (part 2 of 2) - 31 minutes (PDF) - a simple system (Ch 4)
- live Lecture 12 (house-keeping PDF)
- DEN section live lecture video - 34 minutes
- 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)- live discussion sections
- 10am live discussion section video - 25 minutes
Lecture 13 videos and lecture slides (for Feb 24, 2025):Lecture 14 videos and lecture slides (for Feb 26, 2025):
- video (part 1 of 2) - 44 minutes (PDF) - a simple system (Ch 4)
- video (part 2 of 2) - 41 minutes (PDF) - thread implementation strategies (Ch 5), threads implementations (Ch 5)
- live Lecture 13 (house-keeping PDF)
- DEN section live lecture video - 32 minutes
Week 7 discussion video and slides:
- video (part 1 of 2) - 44 minutes (PDF) - threads implementations (Ch 5)
- video (part 2 of 2) - 47 minutes (PDF) - interrupts (Ch 5)
- live Lecture 14 (house-keeping PDF)
- DEN section live lecture video - 29 minutes
- video (part 1 of 1) - 50 minutes (PDF) - more on kernel 1, faber_test.c
- live discussion sections
- 10am live discussion section video - 27 minutes
Lecture 15 videos and lecture slides (for Mar 3, 2025):Lecture 16 videos and lecture slides (for Mar 5, 2025):
- video (part 1 of 2) - 37 minutes (PDF) - interrupts (Ch 5)
- video (part 2 of 2) - 47 minutes (PDF) - scheduler activations model (Ch 5), storage management (Ch 4), files (Ch 1)
- live Lecture 15 (house-keeping PDF)
- DEN section live lecture video - 24 minutes
Week 8 discussion video and slides:
- video (part 1 of 2) - 39 minutes (PDF) - files (Ch 1)
- video (part 2 of 2) - 48 minutes (PDF) - files (Ch 1)
- live Lecture 16 (house-keeping PDF)
- DEN section live lecture video - 20 minutes
- video (part 1 of 1) - 52 minutes (PDF) - kernel 2
- (weenix version in PDF is 3.9.0 while video had version 3.8.0,
special_file_read() andspecial_file_write() are now invn_special.c )- live discussion sections
- 10am live discussion section video - 22 minutes
Lecture 17 videos and lecture slides (for Mar 10, 2025):Lecture 18 videos and lecture slides (for Mar 12, 2025):
- video (part 1 of 2) - 30 minutes (PDF) - files (Ch 1)
- video (part 2 of 2) - 40 minutes (PDF) - the basics of file systems (Ch 6)
- live Lecture 17 (house-keeping PDF)
- DEN section live lecture video - 16 minutes
Week 9 discussion video and slides:
- video (part 1 of 2) - 41 minutes (PDF) - the basics of file systems (Ch 6)
- video (part 2 of 2) - 49 minutes (PDF) - virtual memory (Ch 7)
- live Lecture 18 (house-keeping and midterm information PDF)
- 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.c
- live discussion sections
- 10am live discussion section video - 27 minutes
Lecture 19 videos and lecture slides (for Mar 24, 2025):Lecture 20 videos and lecture slides (for Mar 26, 2025):
- video (part 1 of 2) - 43 minutes (PDF) - virtual memory (Ch 7)
- video (part 2 of 2) - 50 minutes (PDF) - virtual memory (Ch 7)
- live Lecture 19 (house-keeping PDF)
- DEN section live lecture video - 24 minutes
Week 10 discussion video and slides:
- video (part 1 of 2) - 46 minutes (PDF) - virtual memory (Ch 7)
- video (part 2 of 2) - 38 minutes (PDF) - OS issues (Ch 7)
- no live Lecture 20 (midterm exam)
- video (part 1 of 1) - 60 minutes (PDF) - introduction to kernel 3, "
pframe.c " functions- live discussion sections
- 10am live discussion section video - 23 minutes
Lecture 21 videos and lecture slides (for Mar 31, 2025):Lecture 22 videos and lecture slides (for Apr 2, 2025):
- video (part 1 of 2) - 41 minutes (PDF) - OS issues (Ch 7)
- video (part 2 of 2) - 52 minutes (PDF) - OS issues (Ch 7)
- live Lecture 21 (house-keeping PDF)
- DEN section live lecture video - 28 minutes
Week 11 discussion video and slides:
- video (part 1 of 2) - 41 minutes (PDF) - OS issues (Ch 7)
- video (part 2 of 2) - 59 minutes (PDF) - OS issues (Ch 7)
- live Lecture 22 (house-keeping PDF)
- DEN section live lecture video - 24 minutes
- video (part 1 of 1) - 57 minutes (PDF) - more on kernel 3, address space implementation (vmarea, mmobj, pframe, page table), the elf32 loader
- live discussion sections
- 10am live discussion section video - 26 minutes
Lecture 23 videos and lecture slides (for Apr 7, 2025):Lecture 24 videos and lecture slides (for Apr 9, 2025):
- video (part 1 of 2) - 37 minutes (PDF) - performance improvements (Ch 6)
- 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 23 (house-keeping PDF)
- DEN section live lecture video - 20 minutes
Week 12 discussion video and slides:
- video (part 1 of 2) - 38 minutes (PDF) - crash resiliency (Ch 6)
- video (part 2 of 2) - 55 minutes (PDF) - directories and naming (Ch 6)
- live Lecture 24 (house-keeping PDF)
- DEN section live lecture video - 26 minutes
- video (part 1 of 1) - 52 minutes (TXT) - objdump, page fault handling, hello
- live discussion sections
- 10am live discussion section video - 31 minutes
Lecture 25 videos and lecture slides (for Apr 14, 2025):Lecture 26 videos and lecture slides (for Apr 16, 2025):
- video (part 1 of 2) - 44 minutes (PDF) - RAID, flash memory, case studies (Ch 6)
- video (part 2 of 2) - 46 minutes (PDF) - RAID, flash memory, case studies (Ch 6), devices (Ch 4)
- live Lecture 25 (house-keeping PDF)
- DEN section live lecture video - 24 minutes
Week 13 discussion video and slides:
- video (part 1 of 2) - 46 minutes (PDF) - devices (Ch 4), virtual machines, microkernels (Ch 4)
- video (part 2 of 2) - 45 minutes (PDF) - virtual machines, microkernels (Ch 4)
- live Lecture 26 (house-keeping PDF)
- DEN section live lecture video - 25 minutes
- video (part 1 of 1) - 52 minutes (TXT) -
fork() , user space shell- live discussion sections
- 10am live discussion section video - 34 minutes
Lecture 27 videos and lecture slides (for Apr 21, 2025):(Apr 23, 2025) - no pre-recorded lecture videos
- video (part 1 of 2) - 44 minutes (PDF) - virtual machines, microkernels (Ch 4)
- video (part 2 of 2) - 42 minutes (PDF) - virtual machines, microkernels (Ch 4), scheduling (Ch 5)
- live Lecture 27 (house-keeping PDF)
- DEN section live lecture video - 11 minutes
(no discussion video this week)
(no discussion video this week)Lecture 28 videos and lecture slides (for Apr 28, 2025):
Lecture 29 videos and lecture slides (for Apr 30, 2025):
- video (part 1 of 2) - 51 minutes (PDF) - scheduling (Ch 5)
- video (part 2 of 2) - 50 minutes (PDF) - scheduling (Ch 5)
- live Lecture 28 (house-keeping PDF)
- DEN section live lecture video - 9 minutes
- video (part 1 of 2) - 35 minutes (PDF) - scheduling (Ch 5)
- video (part 2 of 2) - 57 minutes (PDF) - scheduling (Ch 5), shared libraries (Ch 3)
- live Lecture 29 (house-keeping PDF)
- Lecture 29 videos will cover scheduling (Ch 5), shared libraries (Ch 3). You can get a preview by looking at slides from Fall 2024.
- (May 12, 2025) - DEN section final exam, [9:00:00am-9:40:00am) (firm)
The following are tentative slides (in PDF format) for this semester.
- Administrative
- 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 calls a "run" 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)
The number of minutes below are estimated lecture video minutes and they do not include "discussion" video minutes. Also, slide numbers below refers to the slide numbers in the Tentative Slides section above and they are also estimates since I may add or delete slides.Week #Lecture #DateMinutesLecture Topics111/1380course administration (slides 1-74)21/1580introduction (Ch 1) (slides 1-22), a simple OS (Ch 1) (slides 1-6)231/2080a simple OS (Ch 1) (slides 7-66)41/2280a simple OS (Ch 1) (slides 67-85), thread creation, termination (Ch 2) (slides 1-16)351/2780thread creation, termination (Ch 2) (slides 16-38), thread synchronization (Ch 2) (slides 1-14)61/2980thread synchronization (Ch 2) (slides 14-74)472/380thread synchronization (Ch 2) (slides 74-97), thread safety, deviations (Ch 2) (slides 1-18)82/580thread safety, deviations (Ch 2) (slides 19-59)592/1080context switching, I/O (Ch 3) (slides 1-90)102/1280context switching, I/O (Ch 3) (slides 90-135), dynamic storage allocation (Ch 3) (slides 1-11)6112/1780dynamic storage allocation (Ch 3) (slides 12-39), static linking and loading (Ch 3) (slides 1-45)122/1980booting (Ch 3) (slides 1-18), a simple system (Ch 4) (slides 1-32)7132/2480a simple system (Ch 4) (slides 33-61), thread implementation strategies (Ch 5) (slides 1-20), threads implementations (Ch 5) (slides 1-11)142/2680threads implementations (Ch 5) (slides 12-38), interrupts (Ch 5) (slides 1-29)8153/380interrupts (Ch 5) (slides 30-59), scheduler activations model (Ch 5) (slides 1-14), storage management (Ch 4) (slides 1-18), files (Ch 1) (slides 1-27)163/580files (Ch 1) (slides 28-72)9173/1080files (Ch 1) (slides 73-92)183/1280the basics of file systems (Ch 6) (slides 1-45), virtual memory (Ch 7) (slides 1-28)10193/2480virtual memory (Ch 7) (slides 29-73)203/2680virtual memory (Ch 7) (slides 74-93), OS issues (Ch 7) (slides 1-23)11213/3180OS issues (Ch 7) (slides 24-55)224/280OS issues (Ch 7) (slides 56-134)12234/780performance improvements (Ch 6) (slides 1-55), crash resiliency (Ch 6) (slides 1-38)244/980crash resiliency (Ch 6) (slides 39-60), directories and naming (Ch 6) (slides 1-27)13254/1480RAID, flash memory, case studies (Ch 6) (slides 1-38), devices (Ch 4) (slides 1-13)264/1680devices (Ch 4) (slides 14-28), virtual machines, microkernels (Ch 4) (slides 1-37)14274/2180virtual machines, microkernels (Ch 4) (slides 38-81), scheduling (Ch 5) (slides 1-3)15284/2880scheduling (Ch 5) (slides 4-63)294/3080scheduling (Ch 5) (slides 64-129), shared libraries (Ch 3) (slides 1-27)