Ken Birman
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
Day | Time | Location | Person |
---|---|---|---|
M | 10-11 | 4119B Upson | Ken |
M | 1-2 | 5132 Upson | |
Tu | 12-1 | 5154 Upson | |
Tu | 3-5 | 4162 Upson | |
W | 10-11 | 4119B Upson | Ken |
W | 1-2 | 5132 Upson | |
Th | 12-1 | 5154 Upson | |
F | 10-11 | 4119B Upson | Ken |
General class-related questions should be sent to cs414@cs.cornell.edu.
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.
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.
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.
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.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.