CSSE 332 - Operating Systems
Rose-Hulman Institute of Technology
Computer Science and Software Engineering
Winter 2007-2008
Course Syllabus
Students learn fundamental concepts of modern operating systems by studying how and why operating systems have evolved. Topics include:
- CPU scheduling
- process synchronization
- memory management
- file systems
- I/O systems
- privacy and security
- performance evaluation.
Students implement parts of an operating system as a means of exploring the details of some of these topics.
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
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 |
|
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 |
|
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.
No late work can be accepted. This applies to all the quizzes, exercises and programming projects.
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,
- You must complete each project, and
- You must have a passing average on the exams.
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.
This course has an ANGEL site. Some of the ways that the ANGEL site will be used are:
- Web-based quizzes over assigned reading.
- As a forum for discussion and to ask questions regarding the course.
- Announcements regarding quizzes, homework, projects, exams and other course-related topics.
It is your responsibility to check the ANGEL site periodically and regularly for these announcements.