CS134a: Computing Systems

Course Description

This first term course is an introduction to operating systems. We will not focus on any particular operating system, but we will be using examples from a number of operating systems like UNIX, Linux, or the various MS operating systems. The purpose of the course is to describe the concepts that underlie all of these operating systems--concepts like processes, virtual memory, I/O, communication, filesystems, scheduling, and security. CS20 is not required for this course, but it is recommended, and it will be important for the second term CS134b. Check with the instructor if you have questions.

Catalog Entry

CS 134a. 3-3-3 Computing systems
Prerequisites: CS20 or permission of the instructor.
Operating systems, monolithic and micro-kernels, virtual machines. Naming, memory management, segmentation, paging, and virtual memory. Filesystems and I/O. Threads, processes, scheduling, locks, semaphores, and mutual exclusion. Security policies, access-control, certificate-passing, and language-based security.

CS134b. 3-6-3 Computing systems, compilers, and languages
Prerequisites: CS134a or permission of the instructor.
Programming models and languages for operating systems. Execution environments, storage management, and operating system interfaces. Binding mechanisms, abstraction, optimization, and code generation. Parsing and lexical analysis. Students will build a working compiler.

CS134c. 3-3-3 Advanced computing systems
Prerequisites: CS134b or permission of the instructor.
Programming and computing environments. Parallel and distributed operating systems, cache coherency, virtual network paging, SIMD and MIMD models. Language-based operating systems. Modular kernels, kernel/user abstraction weakening. Naming, distributed security policy, resource management. Mobile code. Execution models for non von-Neumann machines.

Web Page

The course web page is located at http://www.cs.caltech.edu/cs134/cs134a. All course materials will be available at this site.

Required Reading

The textbook for this term is Modern Operating Systems (Fifth Edition), Andrew Tanenbaum, Prentice Hall, 2001, ISBN 0-13-031358-0. The book may be purchased at the Caltech bookstore. This is a widely available textbook, you may want to check prices at online bookstores like ecampus.com, efollet, etc.

Course Meetings

Lectures are held in 74 Jorgensen, MWF 2pm. Attendance at lecture is expected. The lectures will complement rather than replicate material in the textbook.

Teaching Staff

 Name Title Email Office Office Hours
Jason Hickey Asst Prof jyh@cs.caltech.edu 260 Jorgenson M 3pm, W 3pm
Justin Smith TA justins@cs.caltech.edu 160D Jorgensen R 8-9pm
Suleyman Gokyigit TA sg@cs.caltech.edu 66 Jorgensen T 3-4pm, R 3-4pm
Cristian Tapus TA crt@cs.caltech.edu 160E Jorgensen T 8-9pm

Message Forums and Bulletin Boards

Homework Assignments

There will be a total of 9 homework assignments, one per week due each Monday. There will be no homework assignment during the week of the midterm. Homeworks are due by 3pm on the due date.

Laboratory Assignments

There will be a total of 4 laboratory assignments, with the following due dates:

  1. Oct 17: Processes
  2. Nov 7: Scheduling
  3. Nov 21: Filesystems
  4. Dec 5: Memory Management

In these assignments, you will be working on the Linux operating system. You may work at home, or on the machines in JRG 154. You will be given a boot CD to allow you to use the lab machines. Since the machines are normally FreeBSD, you will have to reboot a machine to use it. Be careful--log in first and check that nobody is logged in before you reboot. Once you reboot, you will have your own personal IP, so you can reboot with abandon. After you have finished working on the lab, please reboot back into FreeBSD.

You will need a CS account for this class. You may sign up at sysadmin.cs.caltech.edu. The lab descriptions will contain information about how to submit your assignment, but this will usually be to a submit directory in your CS134 Linux directory. More later.

Collaboration Policy

Collaboration on the homework and lab assignments is encouraged. You may discuss the problems freely, and you may solve the problems together. However, you must write up your assignments (and code) yourself. Do not copy while you do the write-up. Collaboration is not allowed on the exams.

Solutions are usually posted on the due date. Naturally, do not look at the solution before you hand in your submission.

Exams

There will be a midterm and a final. The midterm and final will cover material from the textbook, lectures, homework and laboratory assignments.

Grading

The breakdown of points is as follows:

Homeworks

25

Lab Assignments

40

Midterm

15

Final

20

The course is graded letter-only. E-grades are given only in exceptional circumstances.

Extensions will not be granted. However, grades will be computed based on the best 8 of 9 homework assignments, and there will be extra credit lab work so that you can make up work that you may have missed. The late penalty is 25% for up to 1 week late, and 50% off after that. Late exams will not be accepted.