T,R
10:30 - 11:45 pm, IN 134
Prerequisites | Description | Readings | Topics | Grading | Lateness | Home Page
Professor Richard Carver
703-993-1550
rcarver@cs.gmu.edu
Course office hours: (After class) T, R 1:00 - 1:30pm
Sci & Tech II Room 343
PREREQUISITES :
C or better in CS330 and CS365
DESCRIPTION :
Students will learn about the design and operation of modern operating systems and middleware.
In addition to understanding the technology involved, students will also understand the reasons
behind design decisions made by different operating systems. They will become educated users
of operating systems, able to understand the choices that each operating system makes in
its design and how those choices relate to the needs of a user. The course covers
multi-threaded programming and its implementation in the operating system,
persistent storage, network communication, virtual memory, more abstract forms of
communication provided by middleware, transaction systems, and security. Even if students
will never expect to be involved in the development of an operating system, they will come
out of the course with an understanding that enables them to write better software applications
that use operating system and middleware services.
READINGS:
Max Hailperin, Operating Systems and Middleware: Supporting Controlled Interaction,
Course Technology, 2006, ISBN 0534423698.
Students will be assigned readings in the textbook for each class. Students are expected to do each reading before coming to class. The readings are intended to give students grounding in the subject that will be further explained in the lecture. Lectures will be an opportunity to ask questions and explore the subjects in depth. The slides used in the course were prepared by the author of this book and will be available on the course web site.
Introduction to OSs and Computer System Structures (Ch. 1) | |
Threads (Ch. 2) | |
Scheduling (Ch. 3) | |
Synchronization (Ch. 4) | |
Atomic Transactions (Ch. 5) | |
Virtual Memory (Ch. 6) | |
Processes and Protection (Ch. 7) | |
Files and Other Persistent Storage (Ch. 8) | |
Networking (Ch. 9) | |
Messaging, RPC, and Web Services (Ch. 10) | |
Security (Ch. 11) | |
Grades are based on two in-class exams (a midterm and a final), homework assignments, and programming projects. Grades will be numerical on the scale 0-100. Your final numerical grade, G, is computed as follows (tentatively):
G = (0.25 * Midterm) + (0.25 * Final_Exam) + (0.50 * Homework and Programming Assignments)
The following table is used to convert the final numerical grade to a letter grade:
G | letter grade |
---|---|
[98,100] | A+ |
[92,97] | A |
[90, 91] | A- |
[88, 89] | B+ |
[82, 87] | B |
[80, 81] | B- |
[78, 79] | C+ |
[70, 77] | C |
[60, 69] | D |
[0, 59] | F |
Grades will not be curved.
LATENESS:
The late submission policy is as follows: assignments will be marked down 3%
for each late day, for the first 3 days after the due date. Starting
on the fourth day, assignments will be marked down 10% per day.
The TA for this course is Ankur Agarwal.
Office Hours: Thursdays : 12 noon - 1pm, Rm 365.
Phone: 703 993 1544
Email: aagarwa2@gmu.edu
The TA is available to answer technical questions about assignments. When sending a question to the TAs, please prefix the subject with CS471.
HONOR CODE:
Violations of the honor code will result in severe penalties. Click here for the CS Department's Links to materials on the honor code, ethics and integrity.
CLASS HOME PAGE:
CS471 has a home page (http://www.cs.gmu.edu/~rcarver/cs471/)
WEB BASED TUTORIALS and WORKBENCHES :
Several tutorial modules have been developed by the Hyperlearning Center to supplement the material covered in this course: Interprocess Synchronization and Virtual Memory Module .
A series of OS workbenches developed in Java illustrate, through animation, several concepts in OS.
No collaboration is allowed among students in any of the individual
exams.
Please make sure you are aware of GMU's as well as the CS dept's Honor Code.