CS 414, Introduction To Operating Systems
and
CS 415, Practicum in Operating Systems

Instructor

Ken Birman
4119B Upson Hall, (607) 255-9199, ken@cs.cornell.edu
Office Hours: I'm around most mornings, and usually in the afternoon until 2pm.  Instead of rigid office hours I suggest that people just drop in and catch me.  But I'll promise to be in the office from 10-11 am MW and 11-12 am F unless I am physically out of town.

TA information and Office Hours

PhD TAs (full-time TAs)

userID

First Name

Last Name

Office and Phone
djw49@cornell.edu Dan  Williams   
yc326@cornell.edu Yejin Choi  
manpreet@cs.cornell.edu Manpreet Singh  

MEng TAs (half-time TAs):

userID

First Name

Last Name

ak234@cornell.edu Alex Kirshenbaum
as246@cornell.edu  Alex Livshits
ctk7@cornell.edu Charles Kimberly

Office Hours

DayTimeLocationPerson
M10-114119B Upson Ken
M1-25132 Upson
Tu12-15154 Upson
Tu3-54162 Upson
W10-114119B Upson Ken
W1-25132 Upson
Th12-15154 Upson
F10-114119B Upson Ken
 

General class-related questions should be sent to cs414@cs.cornell.edu.

Course Description

CS 414 covers introductory operating system design and implementation. We'll cover the basics of operating systems, namely structure, concurrency, scheduling, synchronization, memory management, filesystems, security and networking. We will also discuss advanced topics such as ubiquitous computing and extensible systems. The course is open to any undergraduate who has mastered the material in CS 314. Many students enrolled in 414 this fall will also want to enroll in 415 and complete the practicum project. The project will require a substantial programming effort.

Our emphasis tends to be on "fundamental" issues that arise in many kinds of systems.  Thus, instead of teaching you everything there is to know about Linux, or about Windows XP, we'll be looking at issues that both kinds of systems need to grapple with.  Over the years our students have consistently found that this emphasis on the basics is the best preparation for working with specific systems -- whether Windows, Linux, or even something quite remote from a traditional O/S such as Java on J2EE or a language like C# in the Microsoft .NET framework.  The deeper questions "port" from platform to platform, while anything you might learn about such and such a Linux system call would be very specific to Linux and probably not all that useful on other computing systems.

Just the same, our homework assignments will include some hands-on exposure to the operating system interface on the computer platform of your choice -- either Windows or Linux, although the accounts we provide to undergraduates are for Windows systems.

There won't be a lot of programming in CS414.  We focus the practical side of the course on the CS415 project, and encourage everyone to give it a try.

Administrative

This class has three components: lectures, weekly reading assignments, and a class project. You are expected to keep up with and excel at all three.

Prerequisites

We have a formal prerequisite, namely CS314.  However, in Spring 2003, it seems that CS 314 didn't spend enough time on some of the topics that we refer "back" to in CS414.  Accordingly, we'll schedule a "CS314 review" session on Monday Sept 1, probably in the late afternoon.  Time and place to be announced.  The slides from this review are here if you are wondering what it covers.

Textbook and Reading Assignments

Abraham Silberschatz and Peter Galvin. Operating System Concepts. Sixth Edition (Windows XP Update), Wiley 2003.  

 

Note: Older editions are fine too, but you'll need to figure out the page numbering on your own in that case.  They haven't really changed this book much since the 5th Edition, and we won't do much with the Windows XP material that was added in 2003.  Carpenter Library has at least one copy on reserve.  But be careful to check the title and author list.  There are several books with similar titles.

Note:  A second text, Hennesey and Patterson, is sometimes cited on the course syllabus.  This is not a required text -- in fact, it is the text used in Cornell's CS/ECE 314 course.  We cite it so that you can look up CS314 material that we mention in CS414, but you won't need this book.  Carpenter Library should have a copy.

Projects (CS415)

As mentioned above, CS414 does not have any large programming projects.  Homework assignments may involve some coding but usually not full-scale programs you would compile and execute. Generally, these problems will be similar to problems you might find on the exams.   However, CS414 students are strongly encouraged to also enroll in CS415, our project "course".

This semester, the project component of the course will involve three projects which will start small and build up to an ad-hoc networking system on handheld computers. The first two project assignments will involve building a prototype operating system. The first assignment is to implement our own threads, scheduling, and synchronization mechanisms at user level on top of NT. We will use the facilities provided by NT mostly to bootstrap our own OS. The second one will add preemption and introduce interrupt-driven networking. For the third assignment, we will switch from NT to CE devices (Palmax 600's) donated by Microsoft. We have 30 Palmax 600's with wireless networking cards for this course. The "default" class project for this semester will involve peer-to-peer messaging in an ad-hoc network. Students are encouraged to work in pairs and to modify their project.

Academic Integrity

As with all other classes at Cornell, you are expected to maintain a high level of ethical standards and integrity in this course. This means that all work you submit must be the result of your own individual effort.

You may discuss homework problems with other students in the class, but you may not collaborate on the actual writing of the problem sets or development of solutions. Under no circumstances would it be acceptable for two or more students to turn in substantially similar answers to a homework problem, or to have possession of each others' homeworks. Everyone with whom you discussed the homework set must be cited on the submitted homeworks. No part of the homework may be copied from or be based on solution sets on the web - also keep in mind that the solution sets on the web are often incomplete and incorrect.

The same standards apply for group projects, though at the group level. Group members are expected to turn in the result of their collaborative work with other members of the same group. They may discuss their strategy with other groups. No group should at any time be in possession of another group's solution. It is your responsibility to protect your work from unauthorized access.

Any violations of the academic integrity code will be penalized according to the Cornell Academic Integrity Policy, and may result in failure in the course, suspension, or expulsion from the university.