Operating Systems (CS 571)
Syllabus - Fall 2024
Course Overview
Instructor:
| Dr. Kevin Andrea |
Course:
| CS 571 |
Credits:
| 3 |
Repetition:
|
- May not be repeated for credit.
- May be repeated with permission of the CS Department for any unsatisfactory grades.
- Satisfactory Grades are B- and above. (see AP. 1.3.4 in the Catalog)
|
Modality:
| In-Person Lecture (Online Lectures only in Snow Days or Campus Shutdowns) |
Course Description:
CS 571 provides an introduction to the principles of operating systems
theory and practice. Fundamental concepts such as processes,
synchronization, scheduling, memory management, file systems,
distributed systems, and security will be presented.
This course will prepare you for further courses in the Systems and Networking area, to include CS 635 (Foundations of Parallel Computation), CS 672 (Computer System Performance Evaluation), and CS 675 (Distributed Systems), among others.
Textbook
In this class, the main resource for the material will be the
lectures and slides delivered by the instructor. There are many, many
different ways to approach these topics, and each operating system (and
each different version or that code) may support completely different
implementations. The lectures are the primary resource for the course.
Required Textbook: "Operating Systems: Three Easy Pieces" (Online Book, Arpaci-Dusseau Books) by R.H. Arpaci-Dusseau and A.C. Arpaci-Dusseau.
Recommended Textbook: "The C Programming Language", 2nd ed. by Brian Kernighan and Dennis Ritchie, Prentice Hall, 1988.
- All programming in this course will be done in the C programming
language. This book provides a good reference for C that may be
helpful during the course.
Additional Resources: The following older textbooks also are
good resources. These are not required, but if you would like
additional references that cover the same topics, a recent edition of
any of the following books will present in-depth discussions on the core
topics.
- Operating System Concepts by Silberschatz, Galvin and Gagne (John Wiley & Sons)
- Operating Systems - Principles and Practice (2nd Edition, Recursive Books) by Anderson and Dahlin
- Modern Operating Systems (Pearson) by A. S. Tanenbaum
Recommended Prerequisites
These are recommended prerequisites for this course. This course assumes you are comfortable with programming in C as a strong requirement.
All programming assignments will be programmed in C and you will need
to be able to read and assess existing C code as the starting point for
your programming assignments.
- Grade of C or better in an Undergraduate Data Structures Course, AND
- Grade of C or better in an Undergraduate Systems Programming Course, AND
- Grade of C or better in an Undergraduate C Programming Course
Topics for this Semester Will Include:
- Operating System Fundamentals
- Processes
- Concurrency and Synchronization
- CPU Scheduling
- Memory Management and Virtual Memory
- File and Storage Systems
- Distributed Systems
- Security
Sections
All sections are taught in-person.
Section |
Time |
Location |
002 |
M 4:30pm - 7:10pm |
Sandbridge Hall room 107 |
Schedule
Planned Schedule and Timeline: https://cs.gmu.edu/~kandrea/F24/CS571_Schedule_F24.html
- The planned course schedule is also found on Canvas under Schedule
Office Hours
Office Hours Policies
- For Programming Assignment Questions and Programming Assignment Grading see the GTA Office Hours and Piazza.
- For Homework Grading or Exam Grading Questions See Prof. Andrea's Office Hours.
- For Questions on Topics and Material please stop by for any Office Hours.
Office Hours Locations and Maps
Professor's Office Hours (For Lecture Topics, Homework and Exam Assistance and Grading)
GTA Office Hours (For Programming Assignment Assistance and Grading)
Canvas and Piazza
Canvas
- Canvas is currently being prepared for the semester.
- An email will be sent once it is ready to login.
Canvas Link: https://canvas.gmu.edu
Important Notice: This course will be hosted on Canvas this
semester. Please ensure you are familiar with accessing and navigating
this platform. Resources and support are available at: https://lms.gmu.edu/getting-started-students/ to help you get started. If you have any questions, do not hesitate to reach out to me or contact the ITS Support Center (support@gmu.edu) for assistance.
CS 571 Canvas Page
- Contains all Lecture Slides, Livecode, Programming Assignment Assignments, Homeworks, Course Grades
- All Programming Assignments are Posted and Submitted on Canvas.
- All Homeworks will be done online through with Gradescope.
- The link to access homeworks and all homework grades will be on Canvas.
Piazza
This term we will be using the Piazza discussion board for
programming assignment discussions only.
- For security, you will be added to the Piazza board by your Professor manually.
- Once the semester begins, if you do not have access to our Piazza board, please email Prof. Andrea.
Piazza Link: To Be Announced
Piazza Policies
- Piazza is only for Programming Assignment-related Questions
- The GTAs are the programming assignment managers for this semester.
- All of the Operating System GTAs work together on Piazza to provide answers to questions.
- All questions you ask will be Private only, but all GTAs are able to read and respond to the.
- Make sure you can access Piazza before the first Programming Assignment!
- Piazza is the best place for Programming Assignment related questions
- Make sure to provide information about what debugging steps you've already taken to narrow the problem down.
- Please do not post cell phone photos of your code.
- You can copy and paste into Piazza, which does have Syntax Highlighting
- Do not ask any questions about other topics or any grading on Piazza
- If you have any questions about course topics unrelated to the
programming assignment, or about any grading questions, please feel
free to come in to either the Professor or to our GTA office hours.
- Do not post any questions about Homeworks on Piazza.
- Piazza is for Programming Assignments only.
Grading
The course will have two midterms and a final. Much of the work
during the semester will be completing programming assignments, as well
as regular homework activities.
In general, all grades should be available about two weeks after submission.
Semester Grades
Category |
Grade % |
Notes |
Programming Assignments |
30% |
PA0 - PA2 are each weighted differently |
Homeworks |
15% |
Approximately 7 homework assignments |
Midterms (2x) |
15% Each (30% Total) |
No Replacement Policies |
Final |
25% |
Cumulative |
Grading Scale
For Graduate Courses, a B- or higher is a Satisfactory Grade.
If you earn below a B-, you will need to repeat the course.
Grade |
Cut-Off |
Grade |
Cut-Off |
A |
≥ 90% |
B |
≥ 75% |
C |
≥ 65% |
F |
< 65% |
Grade Contesting
- For Exams and Homework Assignments: Contact Professor Andrea
- For Programming Assignments: Contact Your Grader GTA
- If you are unable to come to a resolution with your GTA, please contact your Professor.
Grading Policies
- There are no make-up programming assignments, homeworks, or exams.
- There are no additional extra-credit assignments.
- There are no late-tokens for programming assignments.
- There is no course-long curve at the end of the semester.
Programming Assignment Policies
- Canvas Submission must be made by the Programming Assignment Due Date
- Each Programming Assignment lists any Late Policies/Penalties on the Assignment Itself.
- Any Programming Assignment submitted after the final deadline for late submissions will receive a zero on the assignment.
- Your code must compile and run on the Zeus server to be graded.
Zeus is the official server on which OS/161 will be run.
- Check your submission to make sure it is the correct tar file!
- Turning in the wrong files will result in a zero.
- Back up your work!
- Catastrophic computer/file failure or corruption will not be cause for an extension.
- Do not put your code in any public repository where others can find it.
- You may use private repositories (the course GitLab server is the offical repository for your work.).
- Programming Assignments take significantly longer than other courses:
- You will be working on an OS Kernel. There will be hundreds of source files.
- You will be designing and implementing new OS features for the Kernel.
- You will be designing and implementing applications to use your new OS features.
- Start your Programming Assignments early. You will need extra time for design!
- You will need time to read and trace the existing code, design your solution, implement your solution, and test your solution.
- Test cases will not be provided.
- There is a significant design and code reading component to these programming assignments.
- Submitting a Programming Assignment:
- Each Project will contain detailed submission instructions.
- Do not wait until the last minute as submission may take extra time at deadlines due to server loads.
- Late Work:
- Late submission policies are specified on each Programming Assignment directly.
- No submission will be accepted after the listed deadline for late submissions.
- Accommodations will extend the original deadline and allow for late submissions following this.
- If you have pre-approved accommodations, you must contact Prof. Andrea prior to any deadlines.
- Contesting Programming Assignment Grades:
- You have One Week After Grades are Released to contact your grader GTA with a grading issue.
- After this one week period, all grades will be fixed.
Exam Policies
- There are no make-up exams.
- There are no drops or replacements for exams.
- Exams are in-person using pencil and paper.
- In general, no computers, cell phones, books, calculators, or other such resources are allowed.
- You can bring in one page (8.5"x11" US Letter) with handwritten notes (both sides of the paper are allowed) for each exam.
- Missing an Exam:
- If you will miss an exam, let your Professor know immediately and we can coordinate alternate times.
- The reason will be verified with documentation and an alternate time is not automatically granted.
- If an exam is missed without excuse, a valid reason with documentation will be required.
- This is not commonly granted, but would cover ER visits, accidents, etc.
- With a valid excuse, we may elect to use your Final Exam to replace your Midterm in such a case.
- Missing an exam without an excuse or valid reason will result in a 0 for the exam.
- Do not miss the Final Exam. This requires College Dean's Approval to make-up.
- Midterm Grades will be Posted via Gradescope and open for Grade Contesting through that Program.
- Contesting Exam Grades:
- You have One Week After Grades are Released to initiate a Grade Contest Request in Gradescope with a grading issue.
- This lets you fill in information about the request and we can communicate directly on each contested question.
- After this one week period, all exam grades will be fixed.
- For the Final, the exam will not be returned, however,
you can contact your Professor to get a summary of all missed
questions, or to make an appointment to see the exam.
Homework Policies
- There are no make-up homework assignments.
- Each homework will be linked on Canvas, but will be provided online via Gradescope.
- Homework assignments are generally assigned following a major topic in the course.
- You will generally have one week to complete and submit the homework assignment.
-
- Submission is done on Gradescope with a button at the bottom of the page.
- Only the last submission before the deadline will be seen.
- Submission is how Gradescope saves progress.
- Please submit often to make sure your work is saved.
- There is no additional submission needed. We grade the last submitted copy from Gradescope directly.
- Homework Assignments submitted after the deadline will get a Zero grade.
- No Homework Assignment is Dropped, and No make-up assignments are provided.
- Contesting Homework Grades:
- You have One Week After Grades are Released to contact your Professor with a grading issue.
- Please use the "Contest Grade" feature in Gradescope.
- This alerts me to the question and allows you to enter a statement for me to read on the question itself.
- After this one week period, all homework grades will be fixed.
Computer Accounts
This is a Systems Programming class. Unlike a
general-purpose C courses for any computer system, this course is based
on building programs for a specific system. For CS 571, that system is
an emulated server that is running Zeus.
Zeus is a Linux computer running Red Hat Enterprise Linux and is
administerd by the College of Engineering and Computing for our use.
Some of our programs will involve libraries that have been pre-built on
Zeus, and some programs will use system specific features that may only
build properly on Zeus.
Connecting to Zeus
Zeus Policies
- All Programming Assignments must Compile and Run on Zeus
- All Programming Assignments will be Tested and Graded only on Zeus.
- You may develop wherever and using whichever tools you like.
- You will need to ensure your work builds and runs on Zeus before submission.
- A programming assignment that will not compile on Zeus cannot be graded.
- Remember, C has certain guarantees and others that are only
'system dependent'. It still needs to run properly on Zeus to be graded.
- You will need to set up the Campus VPN to access Zeus from off-campus.
Accommodations
Disability Services at George Mason University is committed to
upholding the letter and spirit of the laws that ensure equal treatment
of people with disabilities. Under the administration of University
Life, Disability Services implements and coordinates reasonable
accommodations and disability-related services that afford equal access
to university programs and activities. Students can begin the
registration process with Disability Services at any time during their
enrollment at George Mason University. If you are seeking
accommodations, please visit https://ds.gmu.edu/ for
detailed information about the Disability Services registration
process. Disability Services is located in Student Union Building I (SUB
I), Suite 2500. Email: ods@gmu.edu. Phone: (703) 993-2474.
Student responsibility: Students are responsible
for registering with Disability Services and communicating about their
approved accommodations with their instructor in advance of any relevant class meeting, assignment, or exam.
Course Accommodations Policies
- Please email or hand your Contact Sheet to your Professor at the beginning of the semester.
- Accommodations for Test Times will use the Proctoring Center.
- Homework Times will be Extended in Accordance with the Contact Sheet Accommodations.
- For Programming Assignments, Contact your Professor before the Original Deadline for an approved Extension.
Academic Standards (Honor Code)
Academic Standards exist to promote authentic scholarship, support
the institution’s goal of maintaining high standards of academic
excellence, and encourage continued ethical behavior of faculty and
students to cultivate an educational community which values integrity
and produces graduates who carry this commitment forward into
professional practice.
As members of the George Mason University community, we are
committed to fostering an environment of trust, respect, and scholarly
excellence. Our academic standards are the foundation of this
commitment, guiding our behavior and interactions within this academic
community. The practices for implementing these standards adapt to
modern practices, disciplinary contexts, and technological advancements.
Our standards are embodied in our courses, policies, and scholarship,
and are upheld in the following principles:
- Honesty: Providing accurate information in all academic endeavors, including communications, assignments, and examinations.
- Acknowledgement: Giving proper credit for
all contributions to one’s work. This involves the use of accurate
citations and references for any ideas, words, or materials created by
others in the style appropriate to the discipline. It also includes
acknowledging shared authorship in group projects, co-authored pieces,
and project reports.
- Uniqueness of Work: Ensuring that all
submitted work is the result of one’s own effort and is original,
including free from self-plagiarism. This principle extends to written
assignments, code, presentations, exams, and all other forms of academic
work.
Violations of these standards—including but not limited to
plagiarism, fabrication, and cheating—are taken seriously and will be
addressed in accordance with university policies. The process for
reporting, investigating, and adjudicating violations is outlined in the university’s procedures.
Consequences of violations may include academic sanctions, disciplinary
actions, and other measures necessary to uphold the integrity of our
academic community.
The principles outlined in these academic standards reflect our
collective commitment to upholding the highest standards of honesty,
acknowledgement, and uniqueness of work. By adhering to these
principles, we ensure the continued excellence and integrity of George
Mason University’s academic community.
Student responsibility: Students are
responsible for understanding how these general expectations regarding
academic standards apply to each course, assignment, or exam they
participate in; students should ask their instructor for clarification
on any aspect that is not clear to them.
We take the honor code quite seriously. Any attempts at copying or
sharing code, algorithms, or other violations of the honor code simply
will not be tolerated.
As seductively simple as it may seem to just copy and paste work
from a friend or online source, remember that it is just as easy to
compare your work electronically, and discover the similarities. We use
automated software to flag suspicious cases, and then review them by
hand to find the cases that must be submitted to the Academic Standards
Office. Repeat to yourself: it's not worth trying to cheat. We will
catch it, and sadly but surely, we will turn it in.
The penalty for cheating will always be far worse than a zero grade, to ensure it's not worth taking the chance.
- The usual Sanction applied is Level 2 (Failure in the course).
- It's a pretty sure-fire way to lose a semester and lose some
implicated friends; please don't put yourself through that experience!
Course Policies
- You are not allowed to use code from the Internet.
- This includes Stackoverflow, Chegg, Github, ReplIt, TutorialPoint, or any other site with code.
- You are not allowed to use code from Generative AI.
- All work submitted in this course must be your own original work.
- The use of AI writing/programming tools, such as CoPilot or
ChatGPT, are prohibited in this course and will be considered a
violation of academic integrity.
- In order to do the higher-level work in this field (CS 471 as
well as CS 475, CS 455, CS 440, CS 468), you need to understand/apply
fundamental concepts and skills without the use of AI tools.
- Practicing without the use of these tools are critical to the process of learning.
- All academic integrity violations will be reported to the office of Academic Integrity.
- You are not allowed to discuss any implementation (code) or design decisions with any other student.
- This includes prior students and students from other sections.
- You are not allowed to share or use any code from any other student (including past students)
- This includes posting your code to a public GitHub repository.
Student Responsibilities
- It is your responsibility to ...
- lock your computers with a password,
- not post your code to websites like Pastebin or ReplIt that are publicly accessible,
- not post code to any public repositories,
- (If you use services like Github/Gitlab) make sure your repo is set private.
- guard your USB drives and computers,
- not upload your files to someone else's computer, etc.
- You will be liable for any access gained to your public or unprotected code.
- If you are in a team with other students for another class, ensure CS 571 files are protected.
- Make sure none of your work is possible to access by any other student.
- GTAs are allowed to help you in your Programming Assignments! But there are some limitations.
- TAs can help you with designing data structures, the overall algorithm used, C programming in general, and fixing any bugs.
- TAs can not give you code, allow you to copy code from someone else, or help you write your code.
Academic Standards Links and Specifics
- All Students are required to abide by GMU's Academic Standards.
- All work must be your own.
- If we see anything we cannot explain by any other means except cheating, we are required to submit to the honor court.
- CS Honor Code Policies Page: https://cs.gmu.edu/resources/honor-code/
- See these CS Honor Code Policies to understand better what constitutes cheating in the CS setting.
- It clarifies some scenarios that are unique to our sorts of assignments.
- Here are Prof. Snyder's thoughts about the Honor Code in a CS classroom.
Sexual Harassment and Interpersonal Violence Policies
As a part of George Mason University’s commitment to providing a
safe and non-discriminatory learning, living, and working environment
for all members of the University community, the University does not
discriminate on the basis of sex or gender in any of its education or
employment programs and activities. Accordingly, all non-
confidential employees, including your faculty member, have a legal
requirement to report to the Title IX Coordinator, all relevant details
obtained directly or indirectly about any incident of Prohibited Conduct
(such as sexual harassment, sexual assault, gender-based stalking,
dating/domestic violence). Upon notifying the Title IX Coordinator of
possible Prohibited Conduct, the Title IX Coordinator will assess the
report and determine if outreach is required. If outreach is required,
the individual the report is about (the “Complainant”) will receive a
communication, likely in the form of an email, offering that person the
option to meet with a representative of the Title IX office.
For more information about non-confidential employees, resources, and Prohibited Conduct, please see University Policy 1202:
Sexual and Gender-Based Misconduct and Other Forms of Interpersonal
Violence. Questions regarding Title IX can be directed to the Title IX
Coordinator via email to TitleIX@gmu.edu, by phone at 703-993-8730, or in person on the Fairfax campus in Aquia 373.
Student opportunity: If you prefer to speak to someone confidentially, please contact one of Mason’s confidential employees in Student Support and Advocacy (SSAC), Counseling and Psychological Services (CAPS), Student Health Services (SHS), and/or the Office of the University Ombudsperson.
Privacy
All course materials posted to Canvas or other course site are
private; by federal law, any materials that identify specific students
(via their name, voice, or image) must not be shared with anyone not
enrolled in this class.
To protect your privacy, we also cannot list your GMU email address
on any public forum or provide it to any other students. You may, of
course, give your email address to any other students.
Video recordings of class meetings that are shared only with the
instructors and students officially enrolled in a class do not violate
FERPA or any other privacy expectation.
Personal Privacy Statements
- If we ever do have to have an online session (eg. Snow Day), I will Never require anyone to have any cameras/webcams active.
- I believe that requiring any video from you for an online lecture is an invasion of your personal privacy and of your space.
- I will never require or even allow the use of any video cameras.
- Others may have different policies, and that's for them to
decide on the best policies for their own courses. This is simply my
own personal policy.
FERPA and Email
The Family Educational Rights and Privacy Act (FERPA) governs the disclosure of education records for eligible students and is an essential aspect of any course. Students must use their GMU email account to
receive important University information, including communications
related to this class. Instructors will not respond to messages sent
from or send messages regarding course content to a non-GMU email
address.
Student responsibility: Students are responsible
for checking their GMU email regularly for course-related information,
and/or ensuring that GMU email messages are forwarded to an account they
do check.
All course materials posted to Canvas or other course site are
private; by federal law, any materials that identify specific students
(via their name, voice, or image) must not be shared with anyone not
enrolled in this class.
To protect your privacy, we also cannot list your GMU email address
on any public forum or provide it to any other students. You may, of
course, give your email address to any other students.
Video recordings of class meetings that are shared only with the
instructors and students officially enrolled in a class do not violate
FERPA or any other privacy expectation.
Personal Privacy Statements
- If we ever do have to have an online session (eg. Snow Day), I will Never require anyone to have any cameras/webcams active.
- I believe that requiring any video from you for an online lecture is an invasion of your personal privacy and of your space.
- I will never require or even allow the use of any video cameras.
- Others may have different policies, and that's for them to
decide on the best policies for their own courses. This is simply my
own personal policy.
Inclusion
Every student in this class is exactly where they belong and it is our
honor to welcome each of you to join us in learning throughout this
semester. Every student in this class, regardless of background, sex,
gender, race, ethnicity, class, political affiliation, physical or
mental ability, veteran status, nationality, or any other identity
category, is an equal member of our class.
You have the right to be called by whatever name you wish, to be
referred to by whatever pronoun you identify, and to adjust these at any
point.
If you feel uncomfortable in any aspect of our instruction that
results in any barrier to your inclusion in this course, please contact
your professor directly.
Email Address and Required Subject Information
Prof. Andrea Email: kandrea @ gmu.edu
- Be very careful when entering my email. kandreas, kandrew, and other addresses are not me!
Put [CS 571] at the front of your subject so we can filter it into the right folder.
Example Subject:
- [CS 571] Question about my midterm grade
Email Policies
- We can only answer emails from a GMU email account.
- We cannot respond to messages sent from or to a non-Mason email address.
- My Policy is to get a Reply back to you within the next working day.
- This means if you email at 4am on a Tuesday, I should have a reply no later than Wednesday night.
- This also means if you email me at 11:58pm on Friday, I should have a reply no later than the next Monday night.
- Even if my reply is just to let you know I got it, I will reply in this timeframe.
- If you do NOT get a reply the next working day:
- Somehow I missed your email. Send Me a Reply to that Email to make sure I get it.
- This is not annoying me or offending me. If you do not get a reply by the next working day, Please email again so I don't miss it!
- I have had a lot of email issues over the last year in particular. Please, don't let anything go by without getting a reply from me.