This course covers the basic principles of operating systems. Major
concepts to be discussed include processes and threads,
concurrency and synchronization,
CPU scheduling, memory management, storage,
file systems, and security.
(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.
Required textbook:
1. Operating System Concepts, 10th edition, Silberschatz, Galvin, and Gagne. Wiley.
Recommended textbooks:
1. Computer Systems - A Programmer's Perspective, 3rd edition, Bryant and O'Hallaron. Pearson, 2016.
2. Operating
Systems: Three Easy Pieces, by
Remzi H. Arpaci-Dusseau and Andrea C. Arpaci-Dusseau (free online)
3. Operating System Concepts, by Silberschatz,
Galvin and Gagne, 10th Edition, John Wiley & Sons 2018, ISBN: 978-1-118-06333-0.
Upon completion of this course, the students should be able to:
Demonstrate knowledge of operating systems features, evolution, and
design
Show an understanding of the need for concurrent operation of multiple
tasks (processes/threads) and an ability to solve basic process
synchronization problems that arise from concurrent operation
settings
Demonstrate knowledge of process scheduling, basic memory management,
storage systems, and file system management
Be able to implement basic algorithms for OS services such as memory
management and process scheduling
Demonstrate knowledge of security threats to an operating system from
both processes and networked sources and show an understanding of
protection techniques
Demonstrate knowledge of how system calls work along with the mechanisms for interrupt handling
There will be several programming projects in using the Operating
System OS/161. All projects will be programmed using the C language.
Submission of the projects is via the
Blackboard.
Projects are very time-consuming, and most likely are significantly
more time-consuming than your projects in other
classes. You will need to understand the OS kernel code, design new
OS features, and implement and test them!
Each project will come with the specific instructions, as well as
late penalty.
There is no late token. Always start your project as early as you can!
Remember to frequently backup your work.
If your code does not compile, you will get no credit.
We reserve the right to use MOSS and other software to detect plagiarism.
40% Final exam (The final exam will be cumulative; that is, it will include all topics discussed during the term.)
No credit if your project does not compile. Late homework/projects
will have a penalty (specified in each assignment) and will not be accepted
3 days after the due date. There is no make-up for missed exams.
The students are responsible for keeping back-ups of their work while
they are working on an assignment.
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, corrupted, or empty file will result in a score of 0 for that assignment.
If you think your work is not correctly graded then you must
initiate contact with the grader within a week of receiving the grade
(either email or on the
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-) should be sent to the instructor.
AI tools:
The use of assistive technology or artificial-intelligence-based tools
is not allowed in any assignment/project/assessment.
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.
All students must abide by the
GMU Academic Standards 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 Academic Office
without any exception. The university procedures for adjudicating such
violations, including types of sanctions and GMU
Sanctions Matrix can be found at the following link . All students must be
familiar with the Academic Standards code, as well as
Common Policies Affecting All Courses at George Mason University.
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.
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 talk to the instructor during the first week of the term about the issue.