- Mondays 5-5:50PM, GIRV 1112
- Mondays 6-6:50PM, GIRV 1112
- Ben: Tues 1-2pm @ my lab: Phelps 3534
- Ravi: 12:45-1:45PM, Tues/Thur, GSL
- Tanuj: 11AM-1PM, Mondays, TA trailer
When and Where: Tues/Thur, 2-3:15PM, CHEM 1171
Professor: Ben Zhao, ravenben at cs.ucsb.edu
TAs: Tanuj Mittal, Ravi K. S. Babu
Reader: Darshan Maiya
Piazza Class Page: CS170
Prerequisites: CS130A/125 and CS/ECE 154
IntroductionThis course focuses on the study of Operating System design and implementation, and serves as an introduction into the study of computing systems. Main topics include: processes; interprocess communication and synchronization; input-output, file systems, memory management and networking. The class itself has two main components, a design side that will be emphasized in lectures, and an implementation side that will be explored through several programming projects. The programming component of the course should build upon your previous experiences in CS130 or CS125 and give you a real taste of systems programming. I will hold weekly office hours (Tues 11-noon) in order to answer questions on the materials covered in class and the exams. The TAs will handle detailed questions on projects and provide additional discussions on class material.
I will cover all of the course material in class in a presentation form, and will put the notes online in PDF format before the start of each lecture. Feel free to print them out and mark your notes on them. Doing so will save you time from copying down basic terminology, allowing you to instead focus on understanding the material instead of working as a recorder during lecture. PLEASE finish the required reading before coming into lecture. I will lecture assuming you have read the material, and skipping reading assignments will just make it harder for you to keep up in lectures.
Textbook: Operating Systems: Principles and Practice, by Tom Anderson and Mike Dahlin, Recursive Books, 2nd Edition, August 2014.
Optional Reference: Operating Systems: Design and Implementation (the Minix book), by Andrew Tanenbaum, Prentice Hall, any recent edition.
Topics: Here is a rough list of some of the topics we'll cover in lecture. Topics vary in depth and detail of coverage.
- Introduction to Operating Systems
- Computer System Structures
- Operating System Structures
- Process /Thread Management
- CPU Scheduling
- Process Synchronization / Deadlocks
- Memory Management / Virtual Memory
- File Systems / Secondary Storage
- Security / Protection
Class participation is a critical part of your evaluation in the course. This means coming to class and actively learning the material. To encourage (on-time) attendance to each class, I will be scheduling a sequence of roughly 5 short quizzes throughout the quarter. These quizzes are scheduled more or less randomly, and generally include a single straight-forward question on material from the previous lecture. Missing a lecture day when a quiz is announced means a zero score on the quiz. Note that quizzes are more likely to be announced on days when fewer students show up at lecture.
Projects (4) = 50%
Midterm Exam = 20%
Midterm Exam #2 = 20%
Class Quizzes (5-7) = 10%