CS170: Operating Systems
This course focuses on the study of operating system design and implementation, and serves as an introduction into the study of computing systems. The main topics include: processes; interprocess communication and synchronization; memory management; file systems; input-output; security. 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 will give you a real taste of systems programming and the inner workings of a real-world OS (Minix). I will cover the course material in class in a presentation form. This material is based on the book "Operating Systems - Design and Implementation (3rd edition)" by A. Tanenbaum and A. Woodhull. This book provides a nice mix of OS concepts and an in-depth treatment of Minix 3.
Class participation is a critical part of your evaluation in the course. This means attending class and actively learning the material. To encourage (on-time) attendance to each class, I will be scheduling a sequence of several 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.
The grading for 170 will come from two exams (midterm and final), programming projects on Minix, and some in-class quizzes. For the Minix projects, you will learn to extend the functionalities of a real Unix-style operating system that can run natively on your hardware or on a virtual machine (such as Qemu or VMware).
Project Submission and Late Policy
Project assignments are due at 11:59:59PM on the night it is due. For details on how to submit your assignment, you should read the project submission page (which is coming soon).
Policy on Cheating and Plagiarism
A note on cheating. We encourage you to talk with your classmates and discuss your approaches on projects, but any actual copying of code is cheating. Cheating will result in a 0 on the assignment, and depending on severity, can result in a failing grade or possible administrative action by UCSB.