CSE 306 Course Information (Fall 2009)
Course Objectives and Description
The purpose of the course is to familiarize students with basic concepts
and techniques found in modern computer operating systems.
This will be done through readings from the textbook, which discuss
various operating system concepts, through lectures intended to amplify
and augment the textbook material, and through homework assignments,
which will consist primarily of programming assignments in which you
will implement portions of an actual operating system.
The programming assignments will be performed using primarily the Java
programming language, and will revolve around a Java version of the
NACHOS system. NACHOS was originally written in C++ by Prof. Tom Anderson
of Berkeley. The version we will use is based on a Java translation
made by Prof. Peter Druschel of Rice University, which was subsequently
reorganized, partly rewritten and extended by Prof. Stark.
A small amount of programming (test applications to run run under NACHOS)
will use the ANSI C programming language.
Official Course Goals
The following are the official course goals agreed upon by the
faculty for this course.
- Introduce the fundamental concepts underlying modern operating systems,
including virtual memory and multiprogramming.
- Provide students with a working knowledge of the components of operating
systems, including file systems, the I/O subsystem,
and the CPU scheduler.
- Give students experience designing and implementing simplified versions
of the main modules of operating systems.
- Professor
- Eugene W. Stark
- E-mail:
Eugene W. Stark
- Office: 1414 Computer Science Building
- Phone: (631) 632-8444
- Fall 2009 Office Hours: Mondays, 1-4PM
- Teaching Assistant(s):
- Rui Qiao
- E-mail:
ruqiao@cs.sunysb.edu
- Fall 2009 Office Hours:
Wednesdays 1:00PM-2:00PM, Fridays 11:30AM-12:30PM
TA Office Hours are held in CS 2110.
Prerequisite
You must have taken CSE 219 and CSE 220 to take this course.
Class Time/Place
Tuesday and Thursday, 2:20PM-3:40PM, SB Union 236.
Examinations
There will be just one exam, held during Finals Week at the scheduled time:
Friday, December 18, 11:15AM-1:45PM. You must take the final exam at
the scheduled time -- no make up exams will be given.
Textbook
The course will center on the programming project.
The textbook will serve as a source of background material on operating
systems, which will be helpful in understanding how to implement the
project.
Though I will not lecture "out of the book", I will assume that everyone
will read the sections of the text that are related to the
material covered in the course.
Material from the text will be fair game for the final exam.
See the Schedule of Topics for the correspondence
between the lecture and textbook material.
Recommended Text
- Stallings
Operating Systems, Internals and Design Principles
(6th edition),
Pearson, 2009.
ISBN-10: 0-13-600632-9.
ISBN-13: 978-0-13-600632-9.
(amazon.com)
(All students should become familiar with the material
in this book.)
Other References
I have used the following books (in their numerous editions) as the
course text in the past.
- Tanenbaum,
Modern Operating Systems,
(3rd edition),
Prentice Hall, 2007.
ISBN-10: 0-13-600663-9.
ISBN-13: 978-0136006633.
(amazon.com)
- Abraham Silberschatz, Peter Galvin, Greg Gagne
Operating System Concepts
(seventh edition),
Wiley, 2004. ISBN 0-471-69466-5
(amazon.com)
The following textbook has more detailed descriptions of the internals
of the Unix operating system. I base some of my lectures on materials
from this book. You may also find that the more detailed, concrete
descriptions will give you some ideas about how you might organize
your own code for the homework assignments.
- Marshall Kirk McKusick, Keith Bostic, Michael J. Karels,
and John S. Quarterman, The Design and Implementation of the
4.4BSD Operating System, Addison Wesley, 1996.
(There are other versions of this book with similar material.
Older versions exist for the 4.2BSD and 4.3BSD systems,
and a newer version exists for the FreeBSD Operating System.)
Handouts
This semester, all course handouts, including homework assignments,
will be available on the Web for you to download and print,
if desired. No paper copies will be handed out.
It is assumed that you know how to use a Web browser and have regular
access to the Internet. Start from my home page at the following URL:
http://www.cs.sunysb.edu/~stark/
and follow the link to reach the CSE306 home page.
I will try to announce in class when new homeworks and handouts are available,
but ultimately it will be your responsibility to check the course WWW pages
regularly to find out if there is anything new.
Homework
There will be homework assigned regularly, and each assignment will be
due roughly two weeks after it is issued. I expect that there will
be five homework assignments in all.
The homework assignments will be very challenging and likely very
time-consuming.
They will consist of programming exercises in which you will modify and
implement various components of the NACHOS operating system.
I feel it is very important that you do the homework in this course,
and I have adjusted the weighting of the homework portion of the grade
(see Grading below) to help motivate you.
Students will work in pairs on the homework assignments.
If you cannot find a partner, let me know and I will try to help match
you up with someone.
You are not required to work with a partner, but you may,
and in most cases I think you will find it helpful to do so.
Also, I create the homework assignments with the idea in mind that there
will be two people working on them.
You must turn the homeworks in on the day they are due.
Students are urged to plan ahead to avoid problems due to congestion
or failure of computer facilities at the last minute.
If your program is incomplete or is not working by the due date, turn in
whatever you have. Any homeworks that are submitted after the due date
might or might not be graded, at the convenience of the course staff.
Late homeworks that are not graded will be held until the end of the semester,
in which case I will have a look at them to decide whether you will be
receiving a fair final grade. Generally speaking, if your homework assignment
is not graded due to late submission, at my discretion you will receive
either a zero for that assignment or you will receive a score equal to the
average grade you received on all your homeworks that were graded.
If some sort of emergency prevents you from submitting your homework on time,
supplying me with suitable documentation might influence the choice I make,
but please do not ask me to tell you that it is "OK" to submit your homework
late. It is never "OK" to submit your homework late, but you will benefit
more from submitting a late homework than if you submit nothing at all.
Programming assignments will be handed in electronically, using a method
detailed here.
We (the TA's and I) will be able to spend only a very limited time grading
each assignment, and will not be able to do much in the way of "decoding"
your submissions.
It is your responsibility to make sure that the
information you hand in electronically demonstrates very clearly that you
did the work that was assigned.
The final grade will be determined as follows:
The raw scores obtained by a student on each assignment and exam will be
standardized for that particular assignment or exam
by converting them to percentile scores, or else by applying a linear
transformation to map the scores to a standard [0, 100] scale.
A weighted sum of the resulting standardized scores will then be formed
(with weights as shown below) to obtain a composite score for each student.
- Homework (60%):
HW0 and HW1 will each count 6% of the final grade,
and HW2-5 will each count 12% of the final grade.
- Final examination. (40%)
Finally, the composite scores will be ranked, and I will apply a subjective
method of my choice to determine the cutoffs for each grade category.
Absolute performance standards, the distribution of composite scores,
and information derived from late homeworks are factors likely to
contribute to this decision.
The Pass/No Credit (P/NC) option is not available for this course.
This policy applies to all CSE/ISE undergraduate courses
except CSE 101, 110, 130, 230, and 301.
Students in CSE 587
In accordance with the policies detailed in the
CS Department Graduate Handbook,
under certain conditions students admitted to the M.S. program
may be permitted to register for this course under the CSE 587 designation.
The following special conditions apply to such students:
- Students registered for CSE 587 must complete the programming
assignments individually -- they are not permitted to work with
a partner as are students registered for CSE 306.
- For the purpose of assigning final course grades, students in CSE 587
will be regarded as a completely separate group from those registered
for CSE 306. Thus the distribution of letter grades assigned
to students in CSE 587 will have no impact on the distribution of
letter grades assigned to students in CSE 306, and vice versa.
Academic Dishonesty
Read This! Students may work in pairs (i.e. everyone may
have a partner) on the homework, and each pair of partners will produce a
single submission for each of the assignments. You may discuss the
programming assignments with anyone you like, however each pair of students'
coding must be their own work, and only their own work. Any evidence
that source code has been copied, shared, or transmitted in any way
between non-partners (this includes using source code downloaded from the
Internet or written by others in previous semesters!) will be regarded as
evidence of academic dishonesty.
The College of Engineering and Applied Sciences regards academic dishonesty
as a very serious matter, and provides for substantial penalties in such
cases, such as receiving an 'F' grade, or expulsion from the University.
For more information, obtain a copy of the CEAS guidelines on academic
dishonesty from the CEAS office.
Be advised that any evidence of academic dishonesty will be treated with
utmost seriousness. Those involved will be prosecuted to the fullest extent
permitted by the University and College laws.
All students taking this course are required to complete
this form
in which you acknowledge specific activities that are and are not
permitted in this course.
No grades will be issued for anyone who has not completed this form.
The following statement about academic dishonesty, adopted by the
Undergraduate Council on September 12, 2006, is required to be included
in syllabi for all undergraduate courses:
"Each student must pursue his or her academic goals honestly and be
personally accountable for all submitted work. Representing another
person's work as your own is always wrong. Any suspected instance of
academic dishonesty will be reported to the Academic Judiciary. For
more comprehensive information on academic integrity, including
categories of academic dishonesty, please refer to the
academic judiciary website."
Students with Disabilities
"If you have a physical, psychological, medical or learning disability
that may impact on your ability to carry out assigned course work, I
would urge that you contact the staff in the
Disability Support Services office (DSS), ECC Building (behind SAC),
632-6748/TDD. DSS will review your concerns and determine, with you,
what accommodations are necessary and appropriate. All information
and documentation of disability is confidential."
Students who require assistance during emergency evacuation are encouraged
to discuss their needs with their professors and Disability Support
Services. For procedures and information go to
this web site
and search Fire Safety and Evacuation and Disabilities.
Critical Incident Management
Stony Brook University expects students to respect the rights,
privileges, and property of other people. Faculty are required
to report to the Office of Judicial Affairs any disruptive
behavior that interrupts their ability to teach, compromises
the safety of the learning environment, or inhibits students'
ability to learn.
An outline of the course can be found by clicking on the following link:
topics.html.