Operating Systems

CS-372: Fall 2004

Home
Syllabus
Schedule
Project
Contact Information

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:

bulletAbraham Silberschatz, Peter Galvin, and Greg Gagne.  Operating System Concepts with Java, 6th Edition, John Wiley & Sons, Inc, 2004.  ISBN 0-471-48905-0.
 
bulletJessen 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.

Home | Syllabus | Schedule | Project | Contact Information

 All rights reserved, Thomas C. Bressoud and Denison University.
For problems or questions regarding this web contact bressoud@denison.edu.
Last updated: 08/21/04.