CS 422, Spring 2004. Course Information

CS 422 Course Information


General Information

Lectures:
MWF 1:30-2:20 PM

Instructor:
Arvind Krishnamurthy, 302 Watson, 432-6493, arvind@cs.yale.edu
Office hours: MW 11AM-Noon

Teaching Assistant:
Zheng Ma, 210 AKW, zheng.ma@yale.edu
Office hours: TBA
Please put "cs422" in subject line while sending email to the TA.

Course home page:   http://lambda.cs.yale.edu/cs422


Overview

This course covers the fundamentals of operating system design and implementation. Lectures present the central ideas and concepts (e.g., synchronization, deadlock, process management, storage management, file systems, security, protection, and networking) and explain how they are manifested in real operating systems. The programming assignments provide an opportunity for students to gain experience in implementing parts of an operating system (Nachos). This is, by necessity, a challenging and time consuming endeavor. Prerequisites: CS 323 Introduction to Systems Programming and Computer Organization.


Textbooks

The following textbook and research report are recommended:

  • A. Silberschatz, P. Galvin, and G. Gagne, Applied Operating System Concepts , John Wiley & Sons, Inc., 2000. ISBN 0-471-36508-4. You can purchase it from the Yale bookstore or on the web. After you get the book, check out the errata at http://www.bell-labs.com/topic/books/aos-book/errata-dir/index.html and fix all the errors.

  • A. Birrell. An Introduction to Programming with Threads. Research Report 35, DEC SRC, Jan 1989. Available on the course web page (postscript, pdf).
  • Also, the following books are optional readings:
  • A. Tanenbaum, Modern Operating Systems, Prentice-Hall, Inc, 1992. ISBN 0-13-588187-0.
  • A. Tanenbaum and A. Woodhull, Operating Systems --- Design and Implementation (Second Edition), Prentice-Hall, Inc, 1997. ISBN 0-13-638677-6.
  • B. Stroustrup, The C++ Programming Language (Third Edition), Addison-Wesley Pub Co, 1997. ISBN 0-201-88954-4.
  • K. Arnold and J. Gosling, The Java Programming Language (Second Edition), Addison-Wesley Pub Co, 1997. ISBN 0-201-31006-6.
  • F. Brooks Jr, The Mythical Man-Month: Essays on Software Engineering, Addison-Wesley Pub Co, 1995. ISBN 0-201-83595-9.
  • S. Maguire, Writing Solid Code, Microsoft Press, 1993. ISBN 1-55615-551-4.
  • M. McKusick, K. Bostic, M. Karels, and J. Quarterman, The Design and Implementation of the 4.4 BSD Operating System, Addison-Wesley Pub Co, 1996. ISBN 0-201-54979-4.
  • U. Vahalia, Unix Internals --- The New Frontiers, Prentice-Hall, Inc, 1996. ISBN 0-13-101908-2.

  • Computers

    You will be using the Intel Linux PCs in the Zoo computing lab. These machines are named as follows:

           aphid        bumblebee    cardinal    chameleon  cicada       
           cobra        cricket      frog        gator      giraffe
           grizzly      hare         hippo       hornet     jaguar       
           koala        ladybug      leopard     lion       macaw         
           monkey       newt         peacock     perch      python  
           rattlesnake  rhino        scorpion    swan       termite     
           tick         tiger        tucan       turtle     viper       
           zebra
    

    The server of these PCs is called artemis. To access these PCs, you can either directly login from their consoles in the Zoo, or just remotely login from other machines across the campus.

    If you plan to take the course for credit, you should get an account on these machines in the first week. Please also visit the following web site to create a cs422 class directory:

           http://www.yale.edu/zooaccts/zooacct.html
    

    Do not allow anyone else to use your accounts for any purpose. They are for your use alone, and you are responsible for any misuse. Your passwords control access to your accounts and should be kept secret.


    Grading

    Your grade will be calculated as follows: These weights are subject to minor variation.

    Exams are scheduled in advance; unless prior arrangements are made, a grade of zero will be recorded for missed exams.


    Collaboration Policy

    Programming, like composition, is an individual creative process. Individuals must reach their own understanding of the problem and discover a path to its solution. During this time, discussions with friends are encouraged. However, when the time comes to write the code that solves the problem, such discussions are no longer appropriate -- the program must be your own work (although you may ask teaching assistants or lab assistants for help in debugging).


    Assignments

    There will be five assignments; see the Assignments page (under development) for more information.


    Keeping In Touch

    The best way to contact the instructor and the TA is by electronic mail. All the course-related information will be kept on the web (URL: http://zoo.cs.yale.edu/classes/cs422). If you are working on character-based terminals, you can use lynx.

    Also, yale.cs.cs422 is a local newsgroup specifically for CS 422. You should read both the course home page and the newsgroup rather frequently as they appear for important information, such as lecture notes, instructions on submitting your assignments, clarifications and hints, last minute schedule changes, etc.

    You can use netscape to browse yale.cs.cs422, or you can use rn to read unread news. To view unread articles in yale.cs.cs422 using rn, just type "rn yale.cs.cs422". If you add the line "rn -c yale.cs.cs422" to your .login file, you'll be advised of unread articles in yale.cs.cs422 every time you log in.

    You are invited to post articles to yale.cs.cs422 if you have something to tell the class.