George Mason University
Department of Computer Science

CS 471-001 Operating Systems

Spring 2023

Exploratory Hall L004 - MW 3:00 - 4:15

Instructor: Dr. Hakan Aydin

Description: This course covers the principles of operating systems theory and practice. Fundamental concepts such as processes, synchronization, scheduling, memory management, file systems, and security will be presented.

Prerequisites: (Grade of C or better in CS 310) and (grade of C or better in CS 367 or ECE 445). The students should be fluent in C programming language in order to complete the course work, which includes substantial programming projects. Prerequisites will be strictly enforced.

Course Format: This course is scheduled to be delivered face-to-face. That will be the default course delivery format. However, if the university makes a decision to switch to online delivery, or other extenuating conditions warrant, some class meetings can be held virtually. If that is the case, an announcement will be made to all the registered students and the meeting will be held virtually.

Course Outcomes: Upon completion of this course, the students should be able to:

Readings:
The main resource for this class is the lectures delivered by the instructor, supported by the course slides. There is no required textbook. As additional reading, the following textbooks are suggested:
Operating System Concepts by Silberschatz, Galvin and Gagne (9th or 10th Edition, John Wiley & Sons)
Operating Systems - Principles and Practice (2nd Edition, Recursive Books) by Anderson and Dahlin
Modern Operating Systems (5th Edition, Pearson) by A. S. Tanenbaum and Herbert Bos
Operating Systems: Three Easy Pieces (Online Book v1.00, Arpaci-Dusseau Books) by R. H. Arpaci-Dusseau and A. C. Arpaci-Dusseau

Instructor Office Hours: Tuesday 2:00 - 3:00 PM and by appointment (on Zoom: the link available on Blackboard)

Graduate Teaching Assistant (GTA): Zhemin An (zan2@gmu.edu)
GTA Office Hours: Monday 5:00 PM - 6:00 PM and Thursday 10:00 AM - 12:00 noon on Blackboard Collaborate Ultra (Virtual).

Topics:

Grading: Grading components will be as follows.

Quizzes and Homeworks will be completed on Blackboard. Midterm and Final Exams will be taken in class.

Grading Scale: The grades will be based on the following scale.

A+ 95%
A 90%
A- 88%
B+ 85%
B 80%
B- 78%
C+ 73%
C 68%
D 50%
F 0%

The final exam will be cumulative; that is, it will include all topics discussed during the term. A total score less than 50 or a final exam score less than 40 will result in F. No early midterm/final exams will be given and make-up exams are strongly discouraged.  A student should present an official and verifiable excuse to miss a midterm/final exam (such as a doctor's note).

Completed programming assignments must be submitted on the Blackboard. For group programming assignments, each member of the group must make a separate submission. If a student makes multiple submissions, only the last submission will be graded. It is critical that the students double check the files they are submitting, as submitting a wrong, corrupt, or empty file is very likely to result in a score of 0 for that assignment. Students are responsible for keeping back-ups of their work while they are working on a programming assignment. The students are required to take measures to protect the confidentiality of their class work on shared computers, including the zeus system (such as by using the proper directory and file protection settings).

All students must abide by the GMU Honor Code and CS Department's Honor Code and Academic Integrity Policies during the semester. The students are supposed to work individually on the assignments. Collaboration will be allowed only for the group assignments, within each group. We reserve the right to use automated tools such as MOSS to detect plagiarism. The violations of Honor Code will be reported to GMU Honor Council with the recommended sanction of F in the course (at a minimum).

The students, if they feel that their work is not accurately graded, must initiate contact with the grader within seven days that follows the availability of the grade on Blackboard. Grade contesting beyond this time window will not be allowed.

Questions about the programming projects should be directed to the Piazza forum or the section GTA. All other questions (lecture-, exam-, homework-related) should be sent to the instructor.

Class Home Page: Throughout the term, all course material (announcements, slides, handouts, etc.) will be available on the GMU Blackboard system. Important announcements will be also sent by e-mail to the students' GMU e-mail addresses.

Computer Accounts: All students should have accounts on CEC Unix cluster (aka zeus.vse.gmu.edu). Information can be found here. Your programs will be tested and graded on the CEC Unix Cluster. If you develop your programs on systems other than zeus, it will be your responsibility to port them to zeus before the submission deadlines.

Classroom Behavior: During the lectures, the students should avoid behavior that may distract others, including chatting, sleeping, playing games, eating, drinking. The use of electronic devices (including laptops, tablets, smartphones, etc.) is not allowed during the lectures. If you feel that your learning will be hampered by not having access to your tablet/laptop computer for note-taking or other course-related purpose, you should speak to the instructor at the beginning of the term.

Disability Statement: If you have a learning or physical difference that may affect your academic work, you will need to furnish appropriate documentation to GMU Disability Resource Center (DRC). If you qualify for accommodation, the DRC staff will give you a form detailing appropriate accommodations for your instructor. If you have such a condition, you must contact the instructor during the first week of the term about the issue.