Course Information

CS422/522: Operating Systems, Spring 2008, Yale University

  • Administrative
  • Overview
  • Textbooks and Resources
  • Computers
  • Grading
  • Collaboration Policy
  • Attendance
  • Keeping In Touch

  • Administrative Information

    Lectures:
    MW 1:00-2:15 PM, Room 500 AKW

    Instructor:
    Zhong Shao, 314 Watson, 432-6828, shao-zhong@cs.yale.edu
    Office hours: MW 4:00-5:00 PM, or by appt.

    Teaching Assistant:
    Alex Vaynberg, 312 Watson, office: 432-2349, cell: (804)519-2540 alv@cs.yale.edu
    Office hours: TBA.

    Website:
    URL: http://flint.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 practical operating systems. Students will be working on a series of six programming assignments leading to a small but real operating system. Prerequisites: CS 323 Introduction to Systems Programming and Computer Organization.


    Textbooks and Resources

    The following textbook and research report are required:

  • A. Silberschatz, P. Galvin, and G. Gagne, Operating System Concepts (Seventh Edition) , John Wiley & Sons, Inc., 2005. ISBN 0-471-69466-5. You can purchase it from the Yale bookstore or on the web.
  • A. Birrell. An Introduction to Programming with Threads. Research Report 35, DEC SRC, Jan 1989. Also available on the course web page (postscript, pdf).
  • The following online tutorial and documentation are valuable resources for the course programming assignments:
  • Object file format
  • Executable and Linkable Format (ELF)
  • Assembly programming resources
  • A Guide to Programming on Intel IA 32 PC Architecture
  • Using as, the GNU assembler
  • The Art of Assembly Language (local copy)
  • Official Intel IA32 manuals
  • Intel Architecture Software Developer's Manual, Volume 1: Basic Architecture
  • Intel Architecture Software Developer's Manual, Volume 2: Instruction Set Reference Manual
  • Intel Architecture Software Developer's Manual, Volume 3: System Programming Guide
  • Also, the following reference books are optional readings and are on reserve at the Becton Library:
  • T. Shanley, Protected Mode Software Architecture, MindShare, Inc., 1996. ISBN 0-20-155447-X. This book rehashes several IA32 manuals by Intel.
  • B. W. Kernighan and D. M. Ritchie, The C Programming Language (Second Edition), Prentice-Hall 1988. ISBN 0-13-110362-8. The definitive guide to C, but see also the excellent online C reference http://www.cs.cf.ac.uk/Dave/C/CE.html.
  • Frank van Gilluwe, Undocumented PC (Second Edition), Addison-Wesley Professional 1996. ISBN 0-20-147950-8. This book was written for hard-core PC software hackers. It has information about various Intel architectures (8086, 286, 386, 486, Pentium, Pentium Pro) and PC systems. No need to read this book to do the projects.
  • A. Tanenbaum, Modern Operating Systems (Second Edition), Prentice-Hall, Inc, 2001. ISBN 0-13-031358-0. Another excellent OS textbook.
  • F. Brooks Jr, The Mythical Man-Month: Essays on Software Engineering, Addison-Wesley Pub Co, 1995. ISBN 0-201-83595-9. How to organize and plan a large-scale software development project.
  • S. Maguire, Writing Solid Code, Microsoft Press, 1993. ISBN 1-55615-551-4. Tips for writing bug-free C code.

  • 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      hippo        hornet      jaguar     ladybug      
           lion         macaw        monkey      newt       peacock     
           perch        python       rattlesnake rhino      scorpion    
           swan         termite      tick        turtle     viper      
    

    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 (or to just sign up for a zoo account):

           http://zoo.cs.yale.edu/accounts.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.

    The midterm exam is scheduled in class on Wednesday on March 5th, 2008. Unless prior arrangements are made, a grade of zero will be recorded for missed exam. The participation grades will be based on the students' contributions in the class discussion.


    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).

    Do not, under any circumstances, copy another team's program. Writing code for use by another or using another's code in any form violates the University's academic regulations and will be dealt with harshly.


    Attendance

    Attendance at lectures is expected but will not be recorded. Students are, however, fully responsible for all material presented in lectures, even if some of it does not appear in the "official" lecture notes. Class attendance is recommended strongly.

    Lecture notes will be made available. Watch for an announcement of their availability.


    Keeping In Touch

    The best way to contact the instructor and the TA is by electronic mail. To get help quickly, your best bet is to send email to cs422ta@cs or cs422@cs (where your message will also be forwarded to every student in the class). All the course-related information will be kept on the web (URL: http://flint.cs.yale.edu/cs422).


    Copyright (c) 2000 - 2008, Zhong Shao, Dept. of Computer Science, Yale University.