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-f20/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!

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 e-mail 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 e-mail 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 e-mail 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.)
All Sections
Lecture 1 (PDF) (6-up PDF) (Aug 17&18, 2020) - course administration, introduction (Ch 1)
Lecture 2 (PDF) (6-up PDF) (Aug 19&20, 2020) - introduction (Ch 1), a simple OS (Ch 1)
Lecture 3 (PDF) (6-up PDF) (Aug 24&25, 2020) - a simple OS (Ch 1), thread creation, termination (Ch 2)
Lecture 4 (PDF) (6-up PDF) (Aug 26&27, 2020) - thread synchronization (Ch 2)
Lecture 5 (PDF) (6-up PDF) (Aug 31&Sep 1, 2020) - thread synchronization (Ch 2), thread safety, deviations (Ch 2)
Lecture 6 (PDF) (6-up PDF) (Sep 2&3, 2020) - thread safety, deviations (Ch 2), context switching, I/O (Ch 3)
Lecture 7 (PDF) (6-up PDF) (Sep 7&8, 2020) - context switching, I/O (Ch 3), dynamic storage allocation (Ch 3)
Lecture 8 (PDF) (6-up PDF) (Sep 9&10, 2020) - static linking and loading (Ch 3), booting (Ch 3), a simple system (Ch 4)
Lecture 9 (PDF) (6-up PDF) (Sep 14&15, 2020) - a simple system (Ch 4), thread implementation strategies (Ch 5), threads implementations (Ch 5)
Lecture 10 (PDF) (6-up PDF) (Sep 16&17, 2020) - threads implementations (Ch 5), interrupts (Ch 5)
Lecture 11 (PDF) (6-up PDF) (Sep 21&22, 2020) - interrupts (Ch 5), scheduler activations model (Ch 5), storage management(Ch 4), files (Ch 1)
Lecture 12 (PDF) (6-up PDF) (Sep 23&24, 2020) - files (Ch 1)
Lecture 13 (PDF) (6-up PDF) (Sep 28&29, 2020) - files (Ch 1), exams (major mistakes about exam times on slide 33 has been corrected), the basics of file systems (Ch 6)
Lecture 14 (PDF) (6-up PDF) (Sep 30&Oct 1, 2020) - the basics of file systems (Ch 6), virtual memory (Ch 7)
Lecture 15 (PDF) (6-up PDF) (Oct 5&6, 2020) - virtual memory (Ch 7)
Lecture 16 (Oct 7&8, 2020) - midterm exams
Lecture 17 (PDF) (6-up PDF) (Oct 12&13, 2020) - virtual memory (Ch 7), OS issues (Ch 7)
Lecture 18 (PDF) (6-up PDF) (Oct 14&15, 2020) - OS issues (Ch 7)
Lecture 19 (PDF) (6-up PDF) (Oct 19&20, 2020) - OS issues (Ch 7)
Lecture 20 (PDF) (6-up PDF) (Oct 21&22, 2020) - performance improvements (Ch 6), crash resiliency (Ch 6)
Lecture 21 (PDF) (6-up PDF) (Oct 26&27, 2020) - crash resiliency (Ch 6), directories and naming (Ch 6)
Lecture 22 (PDF) (6-up PDF) (Oct 28&29, 2020) - RAID, flash memory, case studies (Ch 6), devices (Ch 4)
Lecture 23 (PDF) (6-up PDF) (Nov 2&3, 2020) - devices (Ch 4), virtual machines, microkernels (Ch 4)
Lecture 24 (PDF) (6-up PDF) (Nov 4&5, 2020) - virtual machines, microkernels (Ch 4), scheduling (Ch 5)
Lecture 25 (PDF) (6-up PDF) (Nov 9&10, 2020) - scheduling (Ch 5)
Lecture 26 (PDF) (6-up PDF) (Nov 11&12, 2020) - scheduling (Ch 5), shared libraries (Ch 3)

Preview:

  • Lecture 26 will cover scheduling (Ch 5) and shared libraries (Ch 3). Now that we are in the 2nd half of the semester, we will be following the Spring 2020 lecture schedule (please keep in mind that we have covered the first 6 weeks of lectures in a typical Fall/Spring semester in 4 weeks).
  • (Nov 19, 2020) - AM section final exam, 8am - 10am (firm)
  • (Nov 19, 2020) - PM section final exam, 11am - 1pm (firm)
  • (Nov 23, 2020) - DEN section final exam, 8am - 10am (firm)
The following are tentative slides (in PDF format) for this semester.
Please keep in mind that during the first 4 weeks of this semester, we are on an accelerated schedule. We will be covering the first 6 weeks of lectures in a typical Fall/Spring semester into 4 weeks.
Week # Dates Lecture Topics Assignments
1 8/17-8/20 administrative, introduction (Ch 1), a simple OS (Ch 1)  
2 8/24-8/27 a simple OS (Ch 1), thread creation, termination (Ch 2), thread synchronization (Ch 2) (warmup #1 due on Friday)
3 8/31-9/3 thread synchronization (Ch 2), thread safety, deviations (Ch 2), context switching, I/O (Ch 3)  
4 9/7
9/8-9/10
Labor Day holiday (no live lecture)
context switching, I/O (Ch 3), dynamic storage allocation (Ch 3), static linking and loading (Ch 3), booting (Ch 3),
a simple system (Ch 4)
(warmup #2 due on Friday)
5 9/14-9/17 a simple system (Ch 4), thread implementation strategies (Ch 5), threads implementations (Ch 5), interrupts (Ch 5)  
6 9/21-9/24 scheduler activations model (Ch 5), interrupts (Ch 5), storage management (Ch 4), files (Ch 1)  
7 9/28-10/1 files (Ch 1), the basics of file systems (Ch 6), virtual memory (Ch 7) (kernel 1 due on Friday)
8 10/5-10/6
10/7-10/8
virtual memory (Ch 7)
Midterm Exams (no live lecture)
 
9 10/12-10/15 virtual memory (Ch 7), OS issues (Ch 7)  
10 10/19-10/22 OS issues (Ch 7), performance improvements (Ch 6), crash resiliency (Ch 6) (kernel 2 due on Friday)
11 10/26-10/29 crash resiliency (Ch 6), directories and naming (Ch 6), RAID, flash memory, case studies (Ch 6), devices (Ch 4)  
12 11/2-11/5 devices (Ch 4), virtual machines, microkernels (Ch 4), scheduling (Ch 5)  
13 11/9-11/12 scheduling (Ch 5), shared libraries (Ch 3) (kernel 3 due on Friday)
Please keep in mind that during the first 4 weeks of this semester, we are on an accelerated schedule. We will be covering the first 6 weeks of lectures in a typical Fall/Spring semester into 4 weeks. The number of minutes are just estimates. Also, slide numbers are approximate since I may add or delete slides from time to time.
Week # Lecture # Dates Minutes Lecture Topics
1 1
2
8/17-8/18
8/19-8/20
120
120
administrative (slides 1-68), introduction (Ch 1) (slides 1-15)
introduction (Ch 1) (slides 16-22), a simple OS (Ch 1) (slides 1-65)
2 3
4
8/24-8/25
8/26-8/27
120
120
a simple OS (Ch 1) (slides 66-84), thread creation, termination (Ch 2) (slides 1-38)
thread synchronization (Ch 2) (slides 1-74)
3 5
6
8/31-9/1
9/2-9/3
120
120
thread synchronization (Ch 2) (slides 75-97), thread safety, deviations (Ch 2) (slides 1-42)
thread safety, deviations (Ch 2) (slides 43-58), context switching, I/O (Ch 3) (slides 1-90)
4 7
8
9/7-9/8
9/9-9/10
120
120
context switching, I/O (Ch 3) (slides 91-135), dynamic storage allocation (Ch 3) (slides 1-39)
static linking and loading (Ch 3) (slides 1-45), booting (Ch 3) (slides 1-18), a simple system (Ch 4) (slides 1-32)
5 9

10
9/14-9/15

9/16-9/17
80

80
a simple system (Ch 4) (slides 33-61), thread implementation strategies (Ch 5) (slides 1-20),
threads implementations (Ch 5) (slides 1-11)
threads implementations (Ch 5) (slides 12-38), interrupts (Ch 5) (slides 1-29)
6 11

12
9/21-9/22

9/23-9/24
80

80
interrupts (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)
files (Ch 1) (slides 28-72)
7 13
14
9/28-9/29
9/30-10/1
80
80
files (Ch 1) (slides 73-92), exams (slides 1-17), the basics of file systems (Ch 6) (slides 1-23)
the basics of file systems (Ch 6) (slides 24-45), virtual memory (Ch 7) (slides 1-28)
8 15
16
10/5-10/6
10/7-10/8
80
0
virtual memory (Ch 7) (slides 29-73)
Midterm Exams (no video)
9 17
18
10/12-10/13
10/14-10/15
80
80
virtual memory (Ch 7) (slides 74-93), OS issues (Ch 7) (slides 1-23)
OS issues (Ch 7) (slides 24-55)
10 19
20
10/19-10/20
10/21-10/22
80
80
OS issues (Ch 7) (slides 56-134)
performance improvements (Ch 6) (slides 1-55), crash resiliency (Ch 6) (slides 1-38)
11 21
22
10/26-10/27
10/28-10/29
80
80
crash resiliency (Ch 6) (slides 39-60), directories and naming (Ch 6) (slides 1-27)
RAID, flash memory, case studies (Ch 6) (slides 1-38), devices (Ch 4) (slides 1-13)
12 23
24
11/2-11/3
11/4-11/5
80
80
devices (Ch 4) (slides 14-28), virtual machines, microkernels (Ch 4) (slides 1-37)
virtual machines, microkernels (Ch 4) (slides 38-81), scheduling (Ch 5) (slides 1-3)
13 25
26
11/9-11/10
11/11-11/12
80
80
scheduling (Ch 5) (slides 4-63)
scheduling (Ch 5) (slides 64-129), shared libraries (Ch 3) (slides 1-25)