Operating Systems (CS 471)
Syllabus - Spring 2022
1 Course Basics
Course Overview
CS471 provides an introduction to the principles of operating systems theory and practice. Fundamental concepts such as processes, synchronization, scheduling, memory management, file systems, and security will be presented.
Topics for this semester will include.
- Operating System Fundamentals
- Processes
- Concurrency and Synchronization
- CPU Scheduling
- Memory Management and Virtual Memory
- File and Storage Systems
- Security
1.0
Active Learning
- We will be engaging in Active Learning during this semester.
- The room is set up where several students will be sitting around small group tables.
- Everyone will be sitting closely together around
circular tables in the classroom.
- There is no concept of the 'front' or 'back' of the classroom, as I'll be walking throughout the room during the lectures.
- There are monitors on each wall to show the current information on the lecture slides that we're discussing.
- Before each lecture, the full slides with explanations and examples will be available on Blackboard to review.
- During each lecture, we will use a subset of these and focus on the discussion, derivation, concepts, and exercises on those topics.
- This will be our opportunity to discuss and work together on mastering the various concepts and algorithms that are used in our Operating Systems.
- After each lecture, go through the slides for additional details on the topics.
- Watch the topic videos for any topic that you would like more details on.
- There is an ~15 minute long video where I go through the full material on the slides and slowly work out the examples from the slides, for every topic in the course.
- Homework will involve material from the slides,
which is our primary resource for the course, and
lectures.
- Homeworks are used to help bridge, by referencing the concepts and details from the information on the slides, and allowing additional practice on the activities and exercises that we focus on in the lecture.
- Review the Textbook for deeper study into the
topics.
- The free, online textbook is supplementary material and deeper explanations on these topics.
- The primary material for the course will still be
from the slides.
1.1 Schedule
- The planned course schedule will be found on Blackboard under Schedule when Blackboard is Opened.
- All courses will meet in-person at the times listed in the following section using Blackboard Collaborate Ultra.
1.2 Professor and Section Information
Face Masks and In-Person Classes:
- As of August 11, 2021, everyone, including those who are
vaccinated, are required to wear a face mask in buildings.
- In-Person Classes are all going to be held as scheduled.
- If anything changes, we will let you know any
alternate meeting policies as needed.
- Blackboard Collaborate is the online instructional
method that we would be using in that scenario.
- More Information on the Safe Return to Campus is in Section 3 of the Syllabus.
Lecture | Professor | Class Time | Class Location | ||
---|---|---|---|---|---|
001 | Prof. Kevin Andrea | kandrea (at) gmu (dot) edu | MW 12:00pm - 1:15pm |
Horizon Hall 2016 |
|
004 |
Prof. Kevin Andrea |
kandrea (at) gmu (dot) edu |
TR 12:00pm - 1:15pm |
Horizon Hall 2016 |
GTA for Section 001 is Michael Crawshaw
(mcrawsha@gmu.edu)
GTA for Section 004 is Nathan Spivy (nspivy@gmu.edu)
Your Professor will be responsible for all lecture and course material, as well as grading your examinations.
Your GTA will be responsible for providing assistance
for and ultimately grading your course projects.
Their Contact Information and Office Hours will be
available on Piazza (link in section 1.7).
This is a 3-credit course.
1.3 Office Hours
- For Exam and Homework Grading Questions, see your Professor
- For Project Assistance, post on Piazza or see your
Section GTA in their Office Hours
- For Project Grading Questions, email or see your GTA
in their Office Hours
1.4 Prerequisites
The prerequisites are automatically and strictly enforced.
- Grade of C or better in CS 310 and
- Grade of C or better in (CS 367 or ECE 445)
1.5 Course Outcomes
The CS department has identified these outcomes as ones that must be met throughout the semester.
- 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 techniques and their impact on performance.
- Be able to implement basic algorithms for OS services such as memory management and process scheduling.
- emonstrate 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.
1.6 Required 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. For this reason, there is no
one required textbook. The lectures are the
primary resource for the course.
The following textbooks, however, all cover the same
topics, albeit in slightly different ways. Any of
these books may be used as supplemental reference for the
course. The one book that will be referred to
the most is the following book, which is available
completely for free online.
Operating Systems: Three Easy Pieces (Online Book, Arpaci-Dusseau Books) by R.H. Arpaci-Dusseau and A.C. Arpaci-Dusseau. Available: http://pages.cs.wisc.edu/~Eremzi/OSTEP/
Additionally, these other textbooks are also good resources for in-depth discussions of Operating Systems topics. They generally cover the same topics as the Three Easy Pieces textbook:- 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
None of these books are required, but if you are
interested in more detailed analyses of different
implementations we discuss in class, or would like more
information about any topic, all four of these books are
good references for the same OS design concepts we will
cover in class.
1.7 Piazza
- You will be added to Piazza by your Professor at
the beginning of the Semester.
- There is an access code to protect the site.
- If you do not have access to Piazza, please email your Professor and they will manually add you to Piazza.
- Piazza Course Link: https:// piazza.com/gmu/spring2022/cs471
- All questions concerning Projects should go through Piazza.
- All messages you write will be private only, but any of the course GTAs across all of the sections will be able to respond to your question about the projects.
- Assignments will be posted to Blackboard and are
common to all sections.
1.8 Blackboard
- http://mymason.gmu.edu
- All digital work is submitted to Blackboard by the given deadlines.
- Grades are posted on Blackboard for all assignments.
1.9 Computer Accounts
- All work must compile and run on Zeus. This is the reference machine architecture and all projects will be tested and graded on the Zeus server.
- Zeus is an x86-64 Architecture server running RHEL 8.5 Linux.
- All grading occurs on this system; other systems might be more forgiving for memory errors, and you don't want to find that out with your grade!
- To access Zeus from off campus, you will need to set up a Virtual Private Network (VPN).
- Instructions for accessing Zeus in general, and from off campus, are in the following link.
2 Grading
The course will have two midterms and a final, which will all in-person. Much of the work during the semester will be completing projects, as well as regular online homework assignments.
In general, all grades should be available about one week
after turning it in, with exam grades approximately two
weeks after the exam date.
2.1 Semester Grades
Weighting of Assessments:
Category | grade % | notes |
---|---|---|
Projects | 30% Total | Approximately Three Projects (PA0 -
PA2) Note: Each Project is Weighted Differently |
Homework Assignments | 15% Total | Approximately 6 Homeworks |
Midterms |
15% Each (30% Total) | |
Final Exam | 25% | Cumulative |
In order to pass the course, a minimum score of 40% is required on the Final Exam.
2.2 Grading Scale
Grades will be assessed on the following scale:
Grade | Cut-off | Grade | Cut-off | Grade | Cut-off | Grade | Cut-off |
---|---|---|---|---|---|---|---|
A+ | 98 % | B+ | 88% | C+ | 78% | D | 60% |
A | 92 % | B | 82% | C | 72% | F | 0% |
A- | 90 % | B- | 80% | C- | 70% |
Grades will not be rounded prior to assessing the letter grades.
2.3 Calculating Semester Grades
- You should always be able to calculate your semester grade at any point in the semester with the weightings and the scales above.
- There will be no make-up or extra-credit assignments at the end of the semester; your grade should be a measure of your semester-long progress.
- This is not a course that receives a curve at the end. Wherever your grade is headed, that is the outcome you should expect after continued efforts.
2.4
Projects (Programming Assignments)
- Projects are significantly more involved than in previous classes.
- You will be working on an OS kernel. There will be hundreds of files in the build.
- You will be designing new OS features and integrating them into the kernel.
-
- Start your projects early. You will need extra time to design your solution before programming.
- You will need time to design test cases for your projects as well. Test cases will not be provided.
- There is a significant design and code reading
component to these projects.
- Projects are due at a specific time on a specific day.
- Each Project will Specify Rules and Penalties for that
Project.
- In General, there will be a late penalty stated on each project.
- Submissions late by over 2 days will not be accepted.
- (eg. If it is due on Friday at 11:59pm, it
cannot be submitted for credit at any time on
Monday)
-
- Submit your projects early and often.
- Do not wait until the last minute, submission may take extra time at the deadlines.
- Always submit at least a few minutes before the deadline.
- There are No Late Tokens.
- The Deadlines are fixed, though each project will specify any late penalties.
- Code that doesn't compile will likely get a very, very
low score. It specifically must compile on the
zeus
server. - Turning it in on BlackBoard: Each Project
will contain submission instructions.
- Turning in the wrong files will likely result in a zero.
- Backup your work! Catastrophic computer
failure will not be cause for an extension.
- Use a backup service such as DropBox (or any
cloud service), emailing yourself, storing to a
USB drive, whatever it takes.
- Just don't put it in a public git repository
where others can find it (this has happened
before).
- Every semester multiple students' computers die, are stolen, or otherwise 'lose' programs and digital work. Don't be the student who forgot to (frequently) back up your work!
2.5 Homework Assignments
- There will be occasional homework assignments.
- The homework assignments will all be assigned on Blackboard.
- These will cover the major topics in the course and
will be your best way to prepare for the exams.
2.6 Tests and Final Exam
- There will be two Midterms and one Final Exam.
- All exams will be adminstered in-class, using the full class time.
- Details will be provided by your Professor ahead of any exam.
- If you know you will miss a test, let your Professor know as soon as possible to coordinate an alternate time.
-
- The reason for missing a test must be verified with documentation and may not be automatically granted.
- If you miss a test (without prior approval), and a
valid reason is verified with documentation (ER visit,
traffic accident, etc.), we may elect to allow the final
exam to count the extra amount to give you a sort of
do-over. This policy is not automatic, however.
- If you miss the final, there is very little I can do for you. Don't miss the final!
-
- The Dean has to approve any requests to take missed final exams.
- This is only granted for medical or other extraordinary circumstances.
- The final can not be given early. You are starting the course with knowledge of the schedule (see GMU's Final Exam Calendar for the latest schedule, updated as weather events require).
2.7 Contested Grades
- If you feel points have been incorrectly deducted, contact the grader:
-
- Tests and Homework Assignments: Contact your Professor.
- Projects: Contact your GTA
- If you have not initiated contact within one week
of the grade being made available, it is permanent.
- No grade-hunting in the last couple of weeks!
- We strive to grade each student's work fairly and uniformly, often through specific test cases and grader-group-discussions, which might even be automated as part of the grading process.
2.8 Course Repetition
- There is a limit of three graded attempts for this course.
- A Withdrawal (W) does not count as a graded attempt.
- Please see AP. 1.3.4 in the University Catalog and consult with your academic advisor if you have any questions.
3 Safe Return to Campus
- All students taking courses with a face-to-face
component are required to take Safe Return to Campus
Training prior to visiting campus.
- Training is available in Blackboard
- https://www2.gmu.edu/safe-return-campus/communications-and-training
- Similarly, all students in face to face and hybrid courses must also complete the Mason COVID Health Check daily, seven days a week. The COVID Health Check system uses a color code system and students will receive either a Green, Yellow, or Red email response.
- Students are required to follow the university's public health and safety precautions and procedures outlined on the university Safe Return to Campus webpage.
- Websites on Face Masks and Vaccination Requirements:
- https://www2.gmu.edu/safe-return-campus/personal-and-public-health/face-coverings
- https://www2.gmu.edu/safe-return-campus/vaccination-requirements
- Student Assistance (Financial):
- Only students who receive a "green" notification are permitted to attend courses with a face-to-face component. If you suspect that you are sick or have been directed to self-isolate, please quarantine or get testing. Faculty are allowed to ask you to show them that you have received a Green email and are thereby permitted to be in class.
4 The Honor Code
The honor code at George Mason is an important part of our academic culture. A degree from this institution should be a direct measure of your own progress and abilities, and as such at all times we must ensure that all work that should be your own is your own.
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 Office of Academic Integrity. 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 recommendation is failure in the course and will be
accompanied by an academic integrity seminar. It's a
pretty sure-fire way to lose a semester and lose some
implicated friends; please don't put yourself through that
experience!
4.0
General Rules of Thumb
- You are not allowed to use code from the Internet.
- This includes Stackoverflow, Chegg, github, or any other site with code.
- You are not allowed to discuss any implementation (code) or design decisions with anyone outside of your group.
- This includes prior students and students from other sections or students outside of your group.
- You are not allowed to share or use any code from any other student.
4.1
General Rules of Thumb
- It is your responsibility to ...
- lock your computers with a password,
- not post your code to websites like Pastebin that are
publicly accessible,
- not post code to any public repositories,
- If you use services like Github, 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
4.2 Some Specifics and Links
- All students will abide by GMU's Honor Code.
- All work must be your own. If you are caught cheating, you and every other involved student will be turned in to the honor court.
- See the 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.
5 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.
6 Disability Services
- Students with a disability or other condition (documented with GMU's Office of Disability Services) that may impact academic performance should speak with the professor ASAP to discuss appropriate accommodations.
- We are quite happy to assist as is appropriate, but it must be documented ahead of time by ODS.
-
- Bringing the paperwork with you to a scheduled exam or at the deadline for a project or assigned homework is far too late!
- Even if you don't know if you plan on utilizing the accommodations ahead of time, it's in your best interest to prepare them ahead of time.
- Here are some rules about Accommodations and their
use on Projects and Homework Assignments:
(source: https://ds.gmu.edu/wp-content/uploads/2020/11/Extended-Time-on-Out-of-Class-Assignments-Policy.pdf) - The
extended time on out of class assignments
accommodation does not apply for the following:
• Assignments for which due date has already passed (accommodations are not retroactive)
• Extending assignments beyond the end of course date (not intended to replace an
“incomplete”)
• Partner/group projects (Contact Disability Services for consultation as needed)
7 Sexual Harassment and Interpersonal Violence
- As a faculty member and designated "Responsible Employee," I am required to report all disclosures of sexual assault, interpersonal violence, and stalking to Mason's Title IX Coordinator per university policy 1412. If you wish to speak with someone confidentially, please contact the Student Support and Advocacy Center (703-380-1434), Counseling and Psychological Services (703-993-2380), Student Health Services, or Mason's Title IX Coordinator (703-993-8730; cde@gmu.edu).
8 Privacy and Email
- Students must use their GMU email account to receive
important University information, including communications
related to this class.
- I can not respond to messages sent from or send messages to a non-Mason email address.
- To protect your privacy, I 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.
- 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.
All course materials posted to Blackboard 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.