GENERAL INFORMATION - http://www.cs.columbia.edu/~nieh/teaching/w4118
|
Meeting Times and Location:
Fall 2001, MW2:40-3:55PM, 535 Mudd
(overflow in 545 Mudd)
Prerequisites:
COMS W3156 Introduction to Software Engineering,
COMS W3824 Computer Organization,
COMS W3101 Programming in C (or working knowledge of C),
knowledge of basic UNIX programming
Description:
Design and implementation of operating systems. Topics include
process synchronization and interprocess communication, memory
management, virtual memory, interrupt handling, processor scheduling,
device management, I/O, and file systems. Hands-on study of Linux
operating system design and kernel internals.
The course has received some press recently for innovation in being
the first to employ virtual machine technology to provide students with
hands-on experience in kernel-level development. See
VMware
Press Release,
Inter@ctive Week, and
Dr. Dobb's Journal.
|
INSTRUCTIONAL STAFF
|
- Instructor:
Prof. Jason Nieh,
nieh@cs.columbia.edu,
939-7160, office hours: MW4:00-5:00PM CSC 518
- TA:
Ravi Gadhia,
rvg@cs.columbia.edu,
office hours: TF12:00-2:00PM TA Rm
- TA:
Nate Kidwell,
nek8@columbia.edu,
office hours: M9:00-11:00AM TA Rm
- TA:
Ilia Malkovitch,
ilia@columbia.edu,
office hours: W5:30-7:30PM TA Rm
- TA:
Dinesh K Subhraveti,
dinesh@cs.columbia.edu,
office hours: T3:30-5:30PM, R12:15-2:15PM CSC 520
- CVN TAs:
Ravi Gadhia and
Ilia Malkovitch
|
COURSE MATERIALS
|
- Required Text:
Applied Operating System Concepts, Avi Silberschatz, Peter Galvin, Greg Gagne, John Wiley and Sons, New York, NY, 2000 (available from
Amazon.com,
Barnes & Noble,
and Labyrinth Books).
See also Errata. Three copies on reserve in Engineering Library.
- Required Linux Reference:
Understanding the Linux Kernel,
Daniel P. Bovet, Marco Cesati,
O'Reilly & Associates, Sebastopol, CA, 2000 (available from
Amazon.com,
Barnes & Noble,
and Labyrinth Books).
One copy on reserve in Engineering Library.
- Computing Requirements:
$50 CS account
fee required, which will provide on-campus access to
x86 PC running Redhat Linux 7.1, GNU C development environment, and
VMware Workstation 2.0.4-1142 for Linux.
CVN students should have at least telnet access to these facilities.
|
COURSE GRADE
|
50%:
|
Homework Assignments:
There will be six homework assignments. Your lowest homework assignment
grade will be dropped in calculating your grade. Each assignment will have
both non-programming and programming problems. The programming
problems will involve kernel-level programming in the Linux operating
system. |
20%:
|
Midterm:
The midterm is one class period, closed book, calculator permitted.
The midterm will cover all material discussed in the course up to the
week before the exam.
|
30%:
|
Final:
The final exam is scheduled at the normal final exam time for this
class period. The final is closed book, calculator permitted. The final
is cumulative and will cover all material discussed in the course.
|
0%:
|
No "extra credit" work
|
HOMEWORK POLICY
|
All work is due by the date and time specified in the respective assignment;
there are no extensions. It is much better to submit partially
complete homework on time and get partial credit for your work than to
submit late homework for no credit. Homeworks submitted after the
beginning of the class when they are due are considered late. Late
homeworks will not be accepted unless there is a valid medical or
family condition with appropriate documentation submitted to the
instructor.
The homework deadline for CVN students is the same as the deadline for
in-class students. The only exception to this is that CVN students may
submit the individual written part of a homework assignment up to 24 hours
after the deadline for in-class students. Note that the deadine for the group
programming part of a homework assignment is the same for CVN and in-class
students.
Submissions should be made electronically. After a successful
submission, you will receive a confirmation email from the class
account with a list of files received. In case of not receiving the
confirmation, try again and contact the TA staff. You can submit
multiple times, but the last submission is what counts. Each
submission will be time stamped. Proper submission is your
responsibility; we strongly urge you to make sure you understand the
submission process and submit early.
If you disagree with any grade, submit your grievance in writing
to the grader responsible, documenting the merits of your case. The
grader will respond likewise in writing. If you are still
dissatisfied you may appeal in like manner to the instructor, who will
only examine the written record of the dispute, and will respond in
writing. "Writing" does not include email. For a grade dispute to be
considered, the written grievance must be submitted in writing within
two weeks of when the respective assignment or exam is returned.
|
PROGRAMMING POLICY
|
For your convenience, all programming can be developed on any
machine that can run Linux and VMware. However, only those programs
which compile using the gcc compiler on the
CLIC
machines will be graded. Furthermore, it is critically important that
all submitted program listings and executions be thoroughly documented.
All programs must compile; programs that do not compile will receive a
grade of zero. Usually the homework assignments will only state the
major objectives of the program to be written; it will be often up to
you to make design decisions about things like I/O, efficiency, error
handling, and so on. Make sure you provide adequate test cases to
indicate the correctness and robustness of your approaches. In
general, the failure of a grader to understand your work or to
appreciate the thoroughness of its testing will be considered to be
your error.
|
COLLABORATION POLICY
|
We encourage you to help one another in understanding the concepts,
algorithms, or approaches needed to do the homework assignments for
this class. However, what you turn in must be your own, or for group
projects, your group's own work. Copying other people's code, solution
sets, or from any other sources is strictly prohibited. The homework
assignments must be the work of the students turning them in. Anyone
found violating the class collaboration policy will be punished severely.
We will use an automated system for detecting cheating that performs
pairwise comparisons of all homework assignments with all others, reporting
suspicious similarities.
All students or groups whose assignments are determined to
be obviously very similar will receive a zero on the respective homework
assignment for the first offense, and will receive an F for the course for
the second offense ("all" means both the copy-er and copy-ee). More
serious cases of cheating, such as copying someone's work without their
knowledge or cheating on exams, will result in the person cheating
receiving an F. In addition, each
offense will be reported to the Dean's office, which may result in
further disciplinary action, including suspension or expulsion from the
program. Penalties will be given without discussion or warning; the first
notice you receive may be a letter from the Dean. Note that you are
responsible for not leaving copies of your assignments lying around and
for protecting your files accordingly.
|
OPEN DOOR POLICY
|
We would like the course to run smoothly and enjoyably. Feel free to
let us know what you find just, good, and interesting about the
course. Let us know sooner about the reverse. See us, leave us a
note, or send us email.
|
|