Study Guide
Fall 2005
This study guide provides the objectives, requirements, and
timetable for this course.
Contact Information.
This information is given on the top level student page.
Click here to go to this page.
Introduction
The operating system is the heart of any computer. It stands between
the software that makes a computer productive and the hardware that
comprises the system. An operating system provides "an environment
in which a user can execute programs in a convenient and
efficient manner."
In this course we will explore the components common to modern
operating systems. We will begin with low level concepts that should
be familiar from the Computer Organization course and then work our
way into the four main areas of OS operation: process management,
memory management, file management, and security. We will talk about
concepts not particular implementations, though we will integrate
examples from different operating systems throughout our discussions.
To supplement our conceptual discussions we will work with a UNIX-like
operating system, Linux. We will begin working with systems programming in
Linux and work our way down into the kernel. All programming will be done in C in the
UNIX environment.
Warning. This is a difficult course. There are a myrid of intricate
details that must be mastered. Though each detail is in itself easily
grasped, the sum of details can be staggering and you will spend a lot of
time on the computer completing assignments.
You must have successfully completed the Introduction
to Computer Systems class (312-210) to take this course. I assume that you
are familiar with computer organization and have some knowledge of operating
system components.
In addition, I assume that you are familiar with either the lanaguage C or C++.
I will not teach this language in class, but you will be expected to do all
programming in this language.
Finally, I assume that you are familiar with Unix/Linux to the degree that it is
covered in 312-210. In particular, you will be required to use
gcc and other C programming tools under Unix/Linux and are expected to know
how to so some systems programming. The gcc
compiler and other programming tools are covered in the Beginning Linux Programming
book.
Operating Systems Concepts, 7th ed.,
Silberschatz, Galvin, Gagne, Wiley, 2005.
This book contains the conceptual information and much of the
practical information for the course. It will be used as
the primary reference for the classroom discussions.
Understanding Unix/Linux Programming
Bruce Molay, Prentice Hall, 2003. This book
is the reference for many of the projects that we will be doing.
Back to top
- Class lectures will not exactly follow the texts. You are expected to
attend all classes and attendence will be taken.
- You are accountable for all material covered, all announcements made,
and all handouts given out during class.
- Ways to reach me:
- . Come during office hours!!!
- Send electronic mail to
barr@ithaca.edu
- . Leave a note (including your name, schedule, phone number and
userid) either under my door or in the Math/Computer Science Department
Office 2nd floor Williams).
Back to top
| Quizzes |
15%. |
| Problem Sets (about 10) |
15%. |
| Exams (3 exams) |
40%. |
| Projects (4-6) |
25%. |
|
Class Attendence and Participation |
5%. |
Exam 1 will take place on tba Exam II
will take place on tba
The final exam will take place at tba
Note that the biggest part of your grade will be exams.
Back to top
- Class attendance is mandatory. You are responsible for all material
and announcements given in class. If you miss a class you are responsible
for obtaining the missed material/announcements.
- All assignments (problem sets and projects) must be turned in within 2 days
of the due date. Your
assignment will be docked 33% if it is a day late and 66% if it is two days
late. You may not turn in an assignment any later that 2 days late.
Always turn in whatever work is done at the due
time. You should have something finished (i.e., functioning and
commented), even if the entire assignment isn't completed. Individual
exceptions should be discussed with me at least 24 hours before the assignment is due.
- I will take one-half letter grade off your final grade for every assignment that is not
turned in within the required time period. You may miss one assignment without
penalty. Your assignment does not have to be done correctly, but you must show
good effort.
- You are required to turn in
hard copies of all code you write. Every program must contain a comment
giving your name and the assignment number. This introductory
comment should briefly describe the purpose of the program, describe
how it is implemented, given the major interface elements, etc.
- This is an upper level computer science course and you are expected to
know how to debug code. I will not debug code for you. I will suggest
debugging strategies with you if you have a problem, but you are responsible for
getting your programs to run.
- There is no make-up work available in this course. You must
keep up with the assignments.
- All problem sets other are expected to be INDIVIDUAL
work. All work handed in must be original. Duplicate or
very similar assignments receive negative grades. Flagrant cheating
(on an exam or project, or assignment) will result in (at
minimum) a FAILING GRADE for the course. General discussion is
allowed, but not sharing of answers, algorithms, or work.
- Projects will be done in teams of 2 people.
- SAVE your intermediate work until an assignment has been graded,
returned, and recorded. KEEP backup copies of the final versions of your
assignments and projects. KEEP copies of returned work (I may make a mistake
in recording the grade).
- Graded assignments will be returned in class. Work unclaimed in
class may be picked up later from outside my office. If you have a
question on a grade, bring it to my attention within one week of the
assignment's return.
- Periodically, I will post grades as we have them
recorded. It is your responsibility to check these listings to ensure
their correctness, within one week of the posting.
- Handwritten problem sets should be neat and easy to read (Or else type
them!). Include your name and problem set number on every page.
- Don't get behind in this class! Start each assignment as soon as it
is handed out,
so that you have time to ask questions and can use your time wisely.
Back to top