CS170: Winter '09

Operating Systems 

News

  • Join the class GoogleGroup

General Information

    Lectures: Mon/Wed, 2:00PM--3:15PM, Phelps 3523
    Professor: Ben Zhao, ravenben at cs.ucsb.edu
    TA: Xin Mao
    Section:
    • Friday 3:00-3:50PM, Phelps 1401
    Office Hours:
    • Ben: Mondays 1PM-2PM and by appointment, 1123 HFH
    • Xin: TBD in CSIL

    Class Email List: CS170-W09 Google Group
    Prerequisites: CS 130A/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 (Mon 1-2PM) in order to answer questions on the materials covered in class and the exams.

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.  We will also be reading from Prof. Andrew Tanenbaum's Operating Systems Design and Implementation book. 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.

I know that textbooks these days are in general ridiculously expensive, so I don't mind if you read the library copy or an older edition, as long as you make sure you know the material covered.

  • Introduction to operating systems
  • Computer system structures
  • Operating system structures
  • Process management
  • Threads
  • CPU scheduling
  • Process synchronization
  • Deadlocks
  • Memory management
  • Virtual memory
  • File systems
  • Secondary storage structures
  • 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 5-7 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 I am more likely to announce a quiz on a day when I see fewer students showing up at lecture. Following suggestions from prior quarters, I will allow each student to miss 1 quiz without penalty, for special circumstances such as job interviews and doctor appointments.

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%

Project Submission and Late Policy

Project assignments are due at 11:59:59PM on the night it's due. We'll use the turnin program to submit all projects. Instructions will be included on each project page. I would very much like to not deal with late projects in this class.  Having said that, I do understand that everyone might need a little help every once in a while.  So I will allow a submission extension of two days for *one* project.  After that, everyone should have learned a lesson about the time required to complete these projects, and late work will not be graded: no points, no credit, nothing. Also be aware that the extension cannot be applied to project 0.

Policy on Cheating and Plagarism

One word 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.  We have detected and punished this type of behavior in the past.