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


Emin Gün Sirer
4119A Upson Hall, (607) 255-7673, egs@cs
Office Hours: Monday and Friday 2:30 pm - 3:30 pm (or by appt.)

TA information and Office Hours

Monday10:30-11:30328 UpsonShrini
Monday2:30-3:304119A UpsonGun
Tuesday10:00-11:00326 UpsonRanjita
Thursday3:00-4:005153 UpsonIndranil
Friday11:00-12:005138 UpsonBen
Friday2:30-3:304119A UpsonGun
All class-related questions should be sent to cs414@cs.cornell.edu.

Course Description

CS 414/415 covers introductory operating system design and implementation. We will 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. All students enrolled in 414 this spring must also be enrolled in 415 and complete the practicum project. The project will require a substantial programming effort.


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.

Textbook and Reading Assignments

Reading assignments are from the textbook unless noted otherwise.

Abraham Silberschatz and Peter Galvin. Operating System Concepts. Fifth Edition, Addison-Wesley Longman, Mass., 1998.


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.