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 on Blackboard Collaborate Ultra.
Course Outcomes: Upon completion of this course, the students should be able to:
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 (4th Edition, Pearson) by A. S. Tanenbaum
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:30 - 3:30 PM and by appointment (on Blackboard Collaborate Ultra).
Graduate Teaching Assistant (GTA):
Zhemin An (email@example.com)
GTA Office Hours: Monday 4:30 PM - 5:30 PM and Friday 10:00 AM - 12:00 noon on Blackboard Collaborate Ultra (Virtual).
Undergraduate Teaching Assistant (UTA):
Deepak Srinivas Rayapati (firstname.lastname@example.org)
UTA Office Hours: Tuesday 3:30 PM - 5:00 PM on Blackboard Collaborate Ultra (Virtual).
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
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.
COVID Safety Plan: We will strictly follow Mason Covid Safety Plan (which can be accessed here). In particular, all individuals must wear masks in classrooms and buildings at all times, regardless of vaccination status. Given the highly contagious nature of some Covid variants, higher-quality masks (e.g., N95, KN95, KF94) are strongly recommended. In addition, as per Mason Safety Plan, everyone visiting the campus is required to complete the Mason Daily Covid Check on a daily basis. Everyone should keep a copy of their Mason Daily Covid Check status email readily available.
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.