CS471 - Operating Systems - Fall'04


George Mason University
DEPARTMENT OF COMPUTER SCIENCE
Course Description


Fall 2004: Monday 4:30-7:10 PM at Innovation Hall room 204


Professor Daniel A. Menascé
ST2 Room 407
Course office hours: Monday 3:00-4:00 or by appt; e-mail all times
Phone: 703-993-1537
E-mail: menasce at cs.gmu.edu (please prefix the subject of your message with CS471)


CS 471 Home Page



DESCRIPTION :

CS 471 is a 3-credit course with grade C or better in CS330 and CS 365 as a prerequisite. Issues in multiprogramming. The course covers concurrent processes and synchronization mechanisms, processor scheduling, memory management, file management, I/O management, deadlock management, performance of operating systems, and projects dealing with synchronization in a multiprogrammed operating system and with virtual memory management.

Back to the top




GRADING POLICY :

Grades are based on two in-class exams (a midterm and a final), two projects, and assignemnts. Grades will be numerical on the scale 0-100. Your final numerical grade, G, is computed as follows:

G = 0.25 * Midterm + 0.15 * Project1 + 0.25 * Project2 +
0.25 * Final_Exam + 0.10 * Assignments

The following table is used to convert the final numerical grade to a letter grade:

G letter grade
[95,100] A+
[90,95) A
[85, 90) A-
[80, 85) B+
[75, 80) B
[70, 75) B-
[65, 70) C+
[60, 65) C
[55, 60) C-
[50, 55) D
[0, 50) F

There is no curving. No assignments will be accepted after the due date.

No extra credit assignments will be given after the semester is over to increase grades. The instructor may decide to give an extra-credit assignment during the semester. Everyone will be given the opportunity to do the extra-credit assignment.

Back to the top


SYLLABUS:

Weeks 1-2: Introduction to OSs and Computer System Structures
Week 2: Computer System Structures and OS Structures
Week 3: Processes
Week 4: Threads
Week 5: CPU Scheduling
Week 6: OS Performance
Week 7: Midterm
Weeks 8-9: Process Synchronization
Week 10: Deadlocks
Week 11: Memory Management
Week 12: Virtual Memory
Week 13: File System Interface
Week 14: File System Implementation

Back to the top


READINGS:

Required reading:

  1. A. Silberschatz, P.B. Galvin, and G. Gagne, Operating System Concepts with Java, Sixth Edition, John Wiley & Sons, 2004. If you are not familiar with Java or need a refresher, please check the Java Primer that comes with the book. You can also logon to ACM's Professional Development Center to take free Java online courses. Most of the slides used in the course are prepared by the authors of the book. Some slides were inserted by the instructor (see copyright notice). A complete set of slides on OS Performance was prepared by the instructor. The following is a list of the complete collection of all slides used in the course (two-per page): chapter 1, chapter 2, chapter 3, chapter 4, chapter 5, chapter 6, chapter 7a, chapter 7b, chapter 7c, chapter 8, chapter 9, chapter 10, chapter 11, chapter 12, OS Performance.

Other recommended readings:

  1. A. Tanenbaum, Modern Operating Systems, 2nd edition, Prentice-Hall 2001.
  2. W. Stallings, Operating Systems: Internals and Design Principles, 4th edition, Prentice Hall, 2000.
  3. T. Q. Pham and P. K. Garg, Multithreaded Programming with Windows NT, Prentice Hall, 1996.
  4. D. A. Menascé, V. Almeida, and L. W. Dowdy, Performance by Design: computer capacity planning by example, Prentice Hall, 2004.
  5. A. Tanenbaum, Distributed Operating Systems, Prentice Hall, 1995.
  6. M. Singhal and N. Shivaratri, Advanced Operating Systems, McGraw Hill, 1994.
  7. R. Chow and T. Johnson, Distributed Operating Systems and Algorithms, Addison Wesley, 1997.
  8. Daniel A. Menascé, Sliding through Operating Syste ms, 1996.

Back to the top


TEACHING ASSISTANT:

The TA for this course is Ms. Younhee Kim (ykim9@cs.gmu.edu). She will be available to answer technical questions about labs and projects. Programming questions should be addressed to the TA while conceptual questions should be addressed to your instructor. When sending a question to the TA, please prefix the subject with cs471. The TA's office hours are Wednesdays and Thursdays from 2 to 4pm in room 422A, ST II.

Back to the top

PROJECT

The first project will be an individual project and the second is a group project. For the second project, students will work in teams of at most three people. A single final group technical report is due for the second project. Besides the group report, each member of the group has to turn in an individual (one-page) report indicating his or her perception of how the work was distributed among the group members and what the percent contribution of each was. It is an unnacceptable work distribution to have one student write the report while others are involved in technical tasks. Everyone has to be involved in all aspects of the project: design, programming and testing, analysis and interpretation of the results, and report writing. Students should report any breakdowns on group organization and operational aspects immediately, so that these problems can be corrected. For projects to complete successfully, it is very important to plan ahead and follow a schedule. Starting to work on a project a few days before it is due, will very likely cause problems to its successful completion. The project due date will not be postponed unless major problems (e.g., machine unavailability, etc) occur.

Back to the top


RESOURCES:

  1. ACM's Special Interest Group in Operating Systems (SIGOPS).
  2. IEEE Computer Society's Distributed Systems Online.

Back to the top


IMPORTANT DATES :

See GMU Fall'04 Calendar. Important dates for this course follow.
First Class August 30, 2004.
Last day to submit Domicile Reclassification Application August 30, 2004.
Labor Day (no classes) September 6, 2004.
Last day to drop with no tuition liability September 14, 2004.
Last day to drop with no academic liability October 1, 2004.
Columbus Week (no classes) October 11, 2004.
Columbus Week (Midterm) October 12, 2004 (Tuesday).
Last Class December 6, 2004.
Final Exam December 13, 2004.

Back to the top


WEB BASED TUTORIALS and WORKBENCHES :

We will be using tutorial modules developed by the Hyperlearning Center to supplement the material covered in this course. In particular, we will use the Interprocess Synchronization and Virtual Memory Module .

A series of OS workbenches developed in Java illustrate, through animation, several concepts in OS.

Back to the top


IMPORTANT RULES :

No collaboration is allowed among students in any of the individual exams. Students are allowed to discuss with other students the solution of homework assignments. Collaboration in the project is only allowed within the group. Please make sure you are aware of GMU's as well as the CS dept's Honor Code.

Back to the top



Last updated: August 30, 2004.