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/summer-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!
Live lectures will be held online in Zoom meetings. 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.
(Please note that access to lecture notes and videos is restricted.)
Please note that the lecture numbers below correspond to the lecture numbers in a Fall/Spring semester.
Week 1 May 16, 2024: May 17, 2024 (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)
- video recording of live discussion section on May 17, 2024 - 50 minutes
Week 2 May 21, 2024: May 23, 2024:
- 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 (48 minutes)
May 24, 2024 (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 (16 minutes)
- Discussion 2 video (part 1 of 1) - 49 minutes (PDF) - warmup #1 (part 2)
- video recording of live discussion section - 14 minutes
Week 3 May 28, 2024: May 30, 2024:
- 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 (20 minutes)
May 31, 2024 (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 (22 minutes)
- Discussion 3 video (part 1 of 1) - 49 minutes (PDF) - warmup #2 (part 1)
- video recording of live discussion section - 19 minutes
Week 4 Jun 4, 2024: Jun 6, 2024:
- 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 (21 minutes)
Jun 7, 2024 (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 (25 minutes)
- Discussion 4 video (part 1 of 2) - 29 minutes (PDF) - warmup #2 (part 2) - Prerequisite: finish the last Ch 2 video on Jun 4, 2024
- 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 - 33 minutes
Week 5 Jun 11, 2024: Jun 13, 2024:
- 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 (30 minutes)
Jun 14, 2024 (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)
- live lecture (house-keeping PDF) - video recording of live lecture (25 minutes)
- 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 - 18 minutes
Week 6 Jun 18, 2024: Jun 20, 2024:
- 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 (26 minutes)
Jun 21, 2024 (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 (16 minutes)
- Discussion 7 video (part 1 of 1) - 50 minutes (PDF) - more on kernel 1, faber_test.c
- video recording of live discussion section - 18 minutes
Week 7 Jun 25, 2024: Panopto Demo (please watch this after you have watched live lecture on Jun 25, 2024)
- 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 (66 minutes)
Jun 27, 2024:
- video (part 1 of 1) (4 minutes)
Jun 28, 2024 (week 7 discussion):
- 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)
- live lecture (house-keeping PDF) - video recording of live lecture (13 minutes)
- 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
- video recording of live discussion section - 23 minutes
Week 8 Jul 2, 2024: Jul 4, 2024:
- 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)
- no live lecture - midterm exam
Jul 5, 2024 (week 8 discussion): Prerequisite: you should probably only watch these videos when you are done with kernel 2
- no lecture videos or live lecture - university holiday
- 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)
- no live discussion section - university holiday
Week 9 Jul 9, 2024: Jul 11, 2024:
- 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 (37 minutes)
Jul 12, 2024 (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 (21 minutes)
- Discussion 12 video (part 1 of 1) - 52 minutes (TXT) - objdump, page fault handling, hello
- video recording of live discussion section - 33 minutes
Week 10 Jul 16, 2024: Jul 18, 2024:
- 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 (12 minutes)
Jul 19, 2024 (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 (9 minutes)
- Discussion 13 video (part 1 of 1) - 52 minutes (TXT) - fork(), user space shell
- video recording of live discussion section - 17 minutes
Week 11 Jul 23, 2024: Jul 25, 2024:
- 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 (13 minutes)
Jul 26, 2024: 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 25, 2024 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) - video recording of live lecture (10 minutes)
- (Jul 30, 2024) - final exam, 9:30am-10:10am (firm)
The following are tentative slides (in PDF format) for this semester.
- Administrative
- course administration (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)
The number of minutes are just estimates.
Also, slide numbers are approximate since I may add or delete slides from time to time.
Week # Dates Minutes Lecture Topics 1 5/16 120 course administration (slides 1-85), introduction (Ch 1) (slides 1-17) 2 5/21
5/23120
120introduction (Ch 1) (slides 18-22), a simple OS (Ch 1) (slides 1-66)
a simple OS (Ch 1) (slides 67-85), thread creation, termination (Ch 2) (slides 1-38)3 5/28
5/30120
120thread synchronization (Ch 2) (slides 1-74) thread synchronization (Ch 2) (slides 74-97), thread safety, deviations (Ch 2) (slides 1-38) 4 6/4
6/6120
160thread safety, deviations (Ch 2) (slides 39-59), context switching, I/O (Ch 3) (slides 1-90)
context 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)5 6/11
6/13120
120booting (Ch 3) (slides 1-18), a simple system (Ch 4) (slides 1-61)
thread implementation strategies (Ch 5) (slides 1-20), threads implementations (Ch 5) (slides 1-38), interrupts (Ch 5) (slides 1-29)6 6/18
6/20120
120interrupts (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)
files (Ch 1) (slides 54-92), the basics of file systems (Ch 6) (slides 1-23)7 6/25
6/27120
120the basics of file systems (Ch 6) (slides 24-45), virtual memory (Ch 7) (slides 1-44)
virtual memory (Ch 7) (slides 44-94), OS issues (Ch 7) (slides 1-23)8 7/2
7/40
120Midterm Exam (no video)
OS issues (Ch 7) (slides 24-89)9 7/9
7/11120
120OS issues (Ch 7) (slides 90-134), performance improvements (Ch 6) (slides 1-55), crash resiliency (Ch 6) (slides 1-38)
crash resiliency (Ch 6) (slides 39-60), directories and naming (Ch 6) (slides 1-27), RAID, flash memory, case studies (Ch 6) (slides 1-18)10 7/16
7/18120
120RAID, flash memory, case studies (Ch 6) (slides 19-38), devices (Ch 4) (slides 1-28)
virtual machines, microkernels (Ch 4) (slides 1-37)
virtual machines, microkernels (Ch 4) (slides 38-81), scheduling (Ch 5) (slides 1-30)11 7/23
7/25120
0scheduling (Ch 5) (slides 31-129), shared libraries (Ch 3) (slides 1-27)
(no video)12 7/30 0 Final Exam (no video)