Computer Science 372
Operating Systems

Denison
CS372 Home Page
Computer Science 372
Operating Systems
Fall 2007
 
Professor: Thomas C. Bressoud Phone: 587-5630
Office: Olin 207 E-mail: bressoud@denison.edu
Office Hours: See Bressoud Fall Schedule Mailbox: Olin 201
Meeting Times: MWF, 8:30am-9:20am, Olin 220
Final Exam: A: ??? Dec ??, 2-4pm

Description

CS-372 is a one-semester course on the systems topic of operating systems.

In this course, we will study the principles of modern operating systems, whose fundamental charter is to manage a collection of concurrent processes. 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, including process synchronization and scheduling, resource management, memory management and virtual memory, and file systems. 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.

Textbook

The following textbook is required for the course.

bullet Deitel, Deitel, and Choffnes. Operating Systems, 3rd Edition. 2004, Pearson Prentice Hall Publishers. ISBN 0-13-124696-8.

Grade Determination

GeekOS Project: 35%
Midterm Exams: 25% (for 2)
Homeworks 20%
Final Exam: 15%
Class Participation: 5%

Course Web Page

A web page will be maintained for this course.  The web page will include the schedule for the course, all reading assignments, programming assignments, example programs, and other useful information, including announcements to the class.  I expect you to check the web page regularly.

http://www.denison.edu/~bressoud/cs372-f07/

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.  For the first two project deliverables, work on GeekOS will be individual. However, due to the high level of programming and relatively steep learning curve, subsequent project deliverables will be worked on in teams of two people. 

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 20% late penalty enforced from the moment the homework is overdue for up to 48 hours after the due date, and a 50% penalty thereafter.

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.
 

Policies and Student Responsibilities

Participation and Attendance
In general, we would like everyone to do their part to make this an enjoyable interactive experience. Hence in addition to attending class, we would like you 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.  Any day that you do not attend class, you (by definition) do not participate, and so be very careful about missing class, as it will affect your grade.

Your attendance is expected at each class meeting. Through 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. Such absences should be communicated to me in advance.

Readings and In-class Material

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.

It is very important that you keep up with the assigned reading. Read your book on a daily basis. Be especially sure to read the material in the appropriate chapter before coming to class so you will be ready to ask questions. All reading assignments are listed on the class web page. The material in the course is, by necessity, cumulative. Be warned that if you fall behind, you will not be able to catch up easily.

Exam Policy

Exams will be given in class on the day scheduled and may not be made up. On rare occasions, and with a Univeristy sanctioned excuse, I may allow an exam to be taken in advance. See me as early as possible to discuss this.

Homework Policy

There will be a number of written and programming assignments given during the semester which will be due in class on the date specified. No late homework assignments will be accepted, unless arrangements have been made with me well in advance. Since it will most likely not be obvious how long an assignment might take, you are well advised to start early. Like other classes at Denison, it is expected that you devote at least 3 hours to these assignments for each hour of class time. Homework assignments must be typed.

You may discuss homework problems with other students in the class, but written (and typed) work must be your own. In other words, you may talk about homework problems with your peers, but when it comes time to write your solutions, you are on your own. You may have general conversations about problem strategies, but you must leave these conversations without having written anything down. Keep in mind that it is quite easy for me to tell when two students have been working too closely. In such cases, I am obliged to report the instance to the Associate Provost.

You may not get help from students outside the class. If you have questions, come see me and I will be happy to help. You are also quite welcome to send me e-mail or call if you would like to discuss an assignment.

Disability Accomodation

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 reasonable accommodation based on documentation on file in their office.

Academic Integrity

The students and faculty of Denison University and the Department of Matematics and Computer Science are committed to academic integrity and will not tolerate any violation of this principle. Academic honesty, the cornerstone of teaching and learning, lays the foundation for lifelong integrity.

Academic dishonesty is, in most cases, intellectual theft. It includes, but is not limited to, providing or receiving assistance in a manner not authorized by the instructor in the creation of work to be submitted for evaluation. This standard applies to all work ranging from daily homework assignments to major exams. Students must clearly cite any sources consulted—not only for quoted phrases but also for ideas and information that are not common knowledge. Neither ignorance nor carelessness is an acceptable defense in cases of plagiarism. It is the student’s responsibility to follow the appropriate format for citations.

As is indicated in Denison’s Student Handbook, available through mydenison.edu, instructors must refer every act of academic dishonesty to the Associate Provost, and violations may result in failure in the course, suspension, or expulsion. (For further information, see http://www.denison.edu/student-affairs/handbook/article7.html.)

Topics

 

Have a great semester! If you need anything, please let me know.