General Information
- 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
Sections:
Office Hours:
Piazza Class Page: CS170
Prerequisites: CS130A/125 and CS/ECE 154
Introduction
This 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 Quizzes
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.
Grading Policy
The grading for 170 will come from two exams, four programming projects on the MINIX operating system, and 5-7 in-class quizzes. For the MINIX projects, you will learn to extend the functionalities of a real operating system. For all projects except for Project 0, you will be working in groups of two.
Projects (4) = 50%
Midterm Exam = 20%
Midterm Exam #2 = 20%
Class Quizzes (5-7) = 10%