CSSE 332 - Operating Systems
Rose-Hulman Institute of Technology
Computer Science and Software Engineering
Winter 2007-2008

Course Syllabus

 

Catalog Course Description

Students learn fundamental concepts of modern operating systems by studying how and why operating systems have evolved. Topics include:

Students implement parts of an operating system as a means of exploring the details of some of these topics.

Meeting times and places

Prerequisites

Instructors

Archana Chidanandan
Office: F225
E-mail: chidanan@rose-hulman.edu
Ph No.: 812-877-8358

Delvin Defoe
Office: F214
E-mail: defoe@rose-hulman.edu
Ph No.: 812-877-8815

Assistants

          The assistants are available at the following times in lab F225:

TA Time (7:00 to 9:00 PM)
Joshua Burbrink Wednesday
Jonathan Collins (Cody) Thursday and Sunday
Matthew Jacobs Monday
David Schamber Tuesday

Texts

Course Schedule

Week starting

Topics

Readings

Milestone

11/26 (1)

Course Overview / Intro. to Linux, VMWare, and C Programming

Ch. 1, Ch. 2

 

 

Intro to C Programming

 

 

 

Intro to C Programming

 

 

12/03(2)

Intro to C Programming

 

 

 

Intro to C Programming

 

 

 

Intro to C Programming

 

 

12/10(3)

File Systems

Ch. 12

 

 

File Systems

Ch. 12

 

 

Files Systems

Ch. 12

 

12/17 (4)

Exam 1

Ch. 3

Tuesday

 

The Process Model

Ch. 3

 

 

The Process Model

Ch. 3

Queue (Thursday night)

 

Winter break

 

 

01/ 07(5)

The Process Model

Ch. 3

 

 

Threads

Ch. 4

 

 

Concurrency

Ch. 5

P2M1(third session)

01/14 (6)

Mutual Exclusion and Semaphores

Ch. 5

 

 

Monitors and Message Passing

Ch. 5

 

 

FAT12 Project Design Review

 

 

01/21 (7)

Deadlock and Deadlock Avoidance

Ch. 6

P2M2(Tuesday)

 

Deadlock and Deadlock Avoidance

Ch. 6

 

 

Exam

 

 

01/28 (8)

Memory Management

Ch. 7

 

 

Memory Management and Virtual Memory

Ch. 7 and Ch. 8

 

 

Virtual Memory

Ch. 8

 

02/04 (9)

Virtual Memory

Ch. 8

P2M3(Monday)

 

Process Scheduling

Ch. 9

Assign P3

 

Process Scheduling

Ch. 9

 

02/11 (10)

Scheduling

Ch. 10

 

 

Disk and I/O Scheduling

Ch. 11

 

 

Disk and I/O Scheduling

Ch. 11

P3 due(Friday)

02/20

Finals week

 

 

Assignments

There will be regular readings from the textbook. These readings are listed on the Schedule page of the course web site.

There will be frequent and challenging programming projects. These projects let you explore the details of real-world operating systems problems by implementing selected parts of an operating system. We anticipate that you will spend considerable time working on these projects. Mastery of the concepts in the projects is required in order to pass the course. Some of these projects will be done in groups, while others individually.

There are three scheduled exams - two midterms and a final. If you have a schedule conflict you must arrange a make-up exam as soon as possible. Failure to do so in a timely manner may result in a score of zero on the exam.

There will be a number of in-class exercises and quizzes (online and in-class). Some of these will be done individually, while others in groups. Both the individual and group exercises and quizzes will count equally toward your final grade. 

Late Policy

No late work can be accepted. This applies to all the quizzes, exercises and programming projects.

Grading

Any web-based quizzes will be graded automatically by ANGEL.

Programming projects will be graded by the student assistants using criteria provided by the instructor. You will assist them in this process by demonstrating your program(s) to them and possibly helping them run the program(s) themselves. If you have concerns with the methodology or criteria that they use in grading your projects, you should address those concerns to the course instructors, not the graders. Group-based projects will also involve evaluation of team-members by each team-member.

Exams and most in-class exercises will be graded by the instructor.

Your course grade will be based on your grades on the in-class exercises, quizzes, projects, and exams, as follows:

Quizzes/In-class exercises/Homework 20%
Programming Projects 35%
Exam 1 15%
Exam 2 15%
Final exam 15%

Generally, 90-100% is an A, 80-89% is a B, etc. However, in order to pass the course,

Collaboration and Academic Integrity

Collaboration is required on group programming projects. The group will normally turn in a single solution. All members of the group should understand the solution, and are responsible for helping each other do so.

Collaboration is prohibited on individual programming projects and exams.

When you collaborate, you must properly credit your collaborators and clearly indicate the extent of the collaboration. Failure to properly acknowledge collaboration can be considered cheating. See the departmental statement on academic honesty.

Depending on specific circumstances, dishonesty on any assignment may result in a penalty grade for that assignment, a lowered course grade, or a failing grade in the course. More importantly, such dishonesty destroys your own self-esteem. So don't cheat.

ANGEL site

This course has an ANGEL site. Some of the ways that the ANGEL site will be used are:

It is your responsibility to check the ANGEL site periodically and regularly for these announcements.