|




| |
Course Details at a Glance
|
|
Lectures: |
Mon.,
Wed.,
Thurs., Fri., 1:30 - 2:20 p.m., Olin 220 |
| Instructor: |
Thomas C. Bressoud, Olin 207, 587-5630,
bressoud@denison.edu |
| Handouts: |
Hardcopies: In-class or at my office |
| Exam Code |
F, Thursday, Dec. 16, 2-4pm |
|
Description
|
In this course, we will study the principles of modern operating
systems. Generally speaking, an operating system provides a set of
abstractions (e.g., files, memory, console I/O) to an application
programmer so that the programmer need not worry about low level details
of the underlying hardware. Programs themselves are abstractly viewed as
a collection of concurrent processes. The operating system must
correctly and efficiently manage these processes (or threads) as well as
other computer resources. Therefore, we will spend a lot of time
studying how to correctly handle concurrency and how resources such as
memory and files are managed by the operating system.
There will be two (relatively independent) lines of work in this
class. First, the lectures, assigned reading, and written homework
assignments will primarily focus on fundamental operating system
concepts. Second, through a sequence of programming assignments (the
GeekOS projects), you will apply these concepts to the construction
of your own operating system capable of supporting the execution of
user-level C programs.
|

Textbooks
|
|
The following textbook is required for the course:
 | Abraham Silberschatz, Peter Galvin, and Greg Gagne.
Operating System Concepts with Java, 6th Edition, John Wiley &
Sons, Inc,
2004. ISBN 0-471-48905-0.
|
 | Jessen Havill,
An Introduction to Linux at
Denison, 2003. |
|

Course Web Page
|
A web page will be maintained for this
course. The web page will include reading, homework, and project
assignments, scheduling of events (including midterms) and other useful
information. Please check it regularly:
http://www.denison.edu/~bressoud/cs372-f04
|

Prerequisite
|
|
CS-281 (Computer Organization) is a
prerequisite for this course. |

Final Grade Determination
|
| GeekOS Project: |
40% |
| Midterm Exams: |
20% (10% each) |
| Homeworks |
15% |
| Final Exam: |
20% |
| Class Participation: |
5% |
|

Course Work
|
-
The Project:
-
Over the course of the semester, you will implement a significant
portion of an operating system called GeekOS. This requires both a large
volume of code and a very good understanding of the underlying hardware
architecture and the design of the operating system. Due to the high level
of programming and relatively steep learning curve, you will work in teams of
two people. Groups are specifically not allowed to collaborate.
These programming projects presuppose that you are comfortable with Linux, C++,
and we will cover additional skills in programming in straight C.
-
-
Homework:
-
There will be a number of homework assignments given during the
semester. The
purpose of the homework is generally intended to reinforce the conceptual
material from the book and will cover a wide variety of topics. Many
questions will be of the variety that could also appear on exams. Homeworks are due in class
on the date specified. I will accept late homeworks, but with a 50%
penalty enforced from the moment the homework is overdue.
You may discuss how to solve homework problems with other students in the class,
but written work must be your own. You may not get help on homework
from students outside the class. Of course, you are always welcome to come
see me for help.
Homework solutions must be typed in a word processor of your
choice. I would recommend that you learn
and use LaTeX, a markup based typesetting program that is widely used in
the research community. Let me know if you need help getting
started.
-
Exams:
-
There will be two midterm exams.
Each midterm will cover its respective section of the course material. Note that
this means the second midterm exam is not cumulative, and is weighted equally
with the first exam. All exams will be closed book, closed notes.
Tentative dates for the midterms are given in the class schedule, but these may
change (later or earlier), depending on our rate of progress. The final
exam is cumulative and will also be closed-book, closed-note.
-
Class Participation:
-
For this class to be successful,
students must be engaged in the material by first doing the readings ahead of
time, and second by participating in class. You will be expected to actively
participate by asking questions, joining in our discussions, etc. Note that
there is a significant portion of your grade attributed to class participation.
Also, we have an extremely small class size. I view this as a great
opportunity whereby we can work closely and gain a deeper understanding of this
material.
|

Student Responsibilities
|
-
Attendance:
-
Your attendance is expected at each class meeting. Per the class participation
portion of the grade, I will reduce your grade for absences. Up to 3
excused absences will be tolerated without affecting your grade.
-
Readings:
-
You are responsible for the content of reading assignments, lectures and
handouts, as well as announcements and schedule changes made in class,
whether or not you are present. If you must miss a class, you are
responsible to get what you missed. Exams will be given
in class on the day scheduled and may not be made up.
-
Out-of-class Time:
-
Material in any class is not learned or mastered simply by
attending class. The student needs to spend the time outside of class
doing the readings, discussing the issues with fellow students, and discussing
topics with the professor. In many respects, out of class time is, in
fact, more important than lecture time. A good rule of thumb is that you
should be spending 12-14 hours of quality time outside of class per week
on a 4 credit hour course.
|

Other Issues
|
-
Disability Accommodation:
-
Any student who thinks he or she may need an accommodation based on the
impact of a disability should contact me privately as soon as possible
to discuss your specific needs. I rely on the Office of Academic Support
in Doane 104 to verify the need for accommodation based on documentation
on file in their office.
-
Academic Integrity:
-
Do your own individual homeworks and projects.
Do NOT copy from another person. There should be no reason for two
nearly identical assignments. Usually a warning will be given first and
then an incident of academic fraud will be reported for subsequent incidents.
|

Course Outline -- for tentative outline, see the
Schedule page.
|
|