This summer, I am trying out a flipped classroom format. Lectures in this class has always been recorded, so there's nothing new there, and we will stick to that. Lecture 1 sill simply be a recorded lecture. Please check out the information about DEN lectures and discussion sections videos to see how to gain access to recorded lectures. Starting with Lecture 2, lecture video (usually broken into multiple videos) will be posted the day before the scheduled lecture time and your assignment is to watch the video by the end of that day. I will hold a Zoom meeting during live lecture time and this meeting is only for questions and answers about the lecture video and related programming assignments. Such a live lecture will end when no one has any more questions.

Lecture slides I used for a recorded lecture video are posted in the section below. For a preview of future lectures, please see the tentative slides section below. We will be following the schedule of Summer 2019 approximately. If you take the lecture dates of Summer 2019 and add 5 days to it, you will get approximately what I will be covering on the corresponding date this summer.

Last semester, someone complained that the lecutre videos were much longer than the scheduled lecture time. The reason that happened was because I can slow down when I don't have a time constratint. But I have to cover all the slides below because this class has a fixed syllabus. I will not give you more material or less material! It's just that the time to deliver the material can be longer or shorter depending whether I talk faster or slower! This summer, I will try my best to stick to the 2 hours per lecture time frame by spending less times on some slides since you can ask me questions (and you should ask me questions) during live lecture time.

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 (preferable in an empty directory):

    wget -r -l 1 --user=USERID --password=PASSWORD http://merlot.usc.edu/cs402-s21/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.

(Please note that access to lecture notes is restricted.)

Preview:

  • Lecture 21 will cover scheduling (Ch 5) and shared libraries (Ch 3).
  • (Aug 4, 2020) - final exam (firm)
The following are tentative slides (in PDF format) for this semester.
Week # Dates Topics Comments
1 administrative, (Ch 1) introduction, (Ch 1) a simple OS (warmup #1 starts on Wednesday)
2 (Ch 1) a simple OS, (Ch 2) thread creation  
3 (Ch 2) thread creation, termination, synchronization, thread safety, deviations (warmup #2 starts on Wednesday)
4 (Ch 3) context switching, I/O, dynamic storage allocation, linking, loading, booting  
5 (Ch 4) a simple system, (Ch 5) threads implementations (kenel #1 starts on Wednesday)
6 (Ch 5) interrupts, (Ch 4) storage management, (Ch 1) files  
7 (Ch 6) the basics of file systems, (Ch 7) virtual memory (kenel #2 starts on Wednesday)
8
midterm exam
(Ch 7) virtual memory
 
9 (Ch 7) OS issues, (CH 6) performance improvements, (Ch 6) crash resiliency (kenel #3 starts on Wednesday)
10 (Ch 6) directories and naming, (Ch 6) RAID, flash memory, case studies, (Ch 4) devices, (Ch 4) virtual machines, microkernels  
11 (Ch 5) scheduling, (Ch 3) shared libraries  
12 final exam