This course examines the theory and implementation of modern operating systems. Topics covered are processes and threads, context switching, synchronization, scheduling, deadlock, dynamic memory allocation, virtual memory, storage devices, and file system implementation.
Location: SP 104.4
Location: SP 309
Grades will be weighted as follows:
The exam you do the best on will count for 30% of your overall grade. The exam you do the least well on will count for 20% of your overall grade. The exam in the middle will count for 25% of your overall grade.
Note: The final is a regularly scheduled final held during finals period.
I would really love to see you in each and every class. We’ll work on problems together during labs, and I will always leave time for questions during lecture. Our classes here at Vassar are small and coming to class is one of the best ways for you to learn the material. That being said, if you are not feeling well, please stay home and review recordings of the lectures posted online. I will make a best-effort attempt to record each lecture and post to the class website.
Please turn off or put your phone on “do not disturb” mode in class. Many studies have found a mobile phone to be an impediment to learning in class. Phone use is a distraction to all members of the class — especially yourself. In addition, cognitive and behavioral scientists have found that electronic devices can erode ability to concentrate. Consider this class to be an oasis from your device. If you would like to use your laptop for taking notes in class you are welcome to do so, but please come and talk to me. The use of any electronic devices for non-class related purposes is not allowed.
All assignments are due by the deadline stated on the assignment handout. You will receive a budget of five (5) late days for the course. These late days are provided to allow you to cope with most emergencies that prevent completing a lab on time, including computer problems, a cold, getting stuck at the airport, etc. Here is how late days work:
Late days are a tool to allow you to manage your time in the face of personal issues and to help smooth out burstiness in assignment due dates across classes. They are for when you are sick, when a short term emergency situation arises, when you have too many deadlines all at once, etc. Except for serious persistent personal issues (see below), you should not anticipate additional deadline leniency.
I hope that everyone in this class will remain happy and healthy. But, if you have a serious persistent personal issue, such as being hospitalized for an extended period or needing to leave the country for a family matter, please talk to your class advisor in the dean of studies office as soon as possible. Such issues consistently affect one’s ability to succeed in all classes, rather than just CMPU-334, and the class advisors are equipped to coordinate plans for dealing with them. I will cooperate with such plans, but I cannot construct them independently of the class advisors.
In this course, thh primary objective is for you to develop your own computational thinking and problem-solving skills. The process of struggling with a problem, debugging code, and arriving at a solution is where true learning happens. Tools like ChatGPT, Google Gemini, GitHub Copilot, and other Large Language Models (LLMs) can be powerful aids, but their misuse can severely hinder your learning and constitutes a serious breach of academic integrity. I discourage the use of LLMs in this class but I do not explicitly forbid them.
The guiding principle of the policy is this: You may use AI tools to assist your learning, but not to do the work for you. You are responsible for every line of code and answer you submit.
You may use AI assistants for the following purposes, provided you cite their use (see below):
mmap() system call in C and what does each one do?”fork() to know if I am in the parent or child process?”The following uses are strictly prohibited and will be treated as academic dishonesty:
fork(), exec(), and dup2().”README files. All written work must be your own.If you use an AI tool in any of the permitted ways, you must include a specific acknowledgement at the top of your submission files.
Example Acknowledgement:
/*
* Student: [Your Name]
* Assignment: Project 2 - A Simple Shell
*
* AI Usage Acknowledgement:
* I used ChatGPT 4.0 to help with this assignment in the following ways:
* 1. I was confused about how a single call to `fork()` could have two
* different return values. I asked the AI to explain this mechanism,
* which helped me structure the if/else logic for my parent and child
* processes correctly.
* 2. I asked for a conceptual explanation of how file descriptor redirection
* works at a high level before implementing it with `dup2()`.
*/The Golden Rule: If you find yourself copying and pasting code from an AI into your assignment, you are almost certainly violating this policy. If you are unsure whether your use of an AI tool is acceptable, please ask me first before you proceed.
This course is designed to challenge you and help you develop critical skills in understanding how Operating Systems work. The purpose of the lab and homework assignments isn’t just to get the answer, but for you to learn the underlying ideas and concepts in this course. Upholding academic honesty ensures that the work you submit is a true measure of your own understanding and effort.
This policy outlines the specific expectations for this class. It’s built on the principles of honesty, trust, fairness, and responsibility. We expect you to submit your own original work, properly credit the ideas of others, and understand the boundaries of acceptable collaboration. Please read the following guidelines carefully. Violating this policy can result in serious academic penalties, ranging from a zero on the assignment to failure of the course and referral to the university’s academic integrity office. If you’re ever unsure about what is permitted, or if you’re struggling with the material, please ask me for help.
Homework assignments must be the sole work of the student turning it in. If you need assistance on a homework assignment, feel free to ask me for help and please note the policy on the Use of AI and Large Language Models.
What is Cheating?
What is not Cheating?
If you (or someone you know) have experienced sexual harassment or sexual violence, including sexual assault, relationship violence, or stalking, know that you are not alone. Vassar has staff trained to support you in navigating campus life, accessing health and counseling services, providing academic and housing accommodations, and more. Vassar strongly encourages all community members to take action, seek support, and report incidents to the EOAA/Title IX Office at (845) 437-7924 or titleix@vassar.edu. For more information about confidential support on- and off-campus, https://offices.vassar.edu/savp/resources/.
Please be aware that faculty members must disclose information about suspected or alleged sexual harassment or other potential sexual misconduct to the EOAA/Title IX Office. When the EOAA /Title IX Office receives information, they will reach out to offer information about resources, rights, and procedural options. Response to this outreach and further participation with the EOAA / Title IX Office is voluntary. Meeting with EOAA / Title IX does not mean you must file a formal complaint or report to another entity, including law enforcement. This meeting can be for information and support only or to file a complaint and receive support.
I take accommodations very seriously, and I try to design the course with the ideal of “universal access” in mind. I believe that a course design that benefits students with atypical learning profiles benefits every student.
Academic accommodations are available for students who are registered with the Office of Accessibility and Educational Opportunity (AEO). Students in need of disability (ADA/504) accommodations should schedule an appointment with me early in the semester to discuss any accommodations for this course, which have been approved by the Office of Accessibility and Educational Opportunity, as indicated in your AEO accommodation letter.
Students who wish to request academic accommodations for a religious observance should email me no later than the end of the add period for Full-Term and First Six-Week courses. While requests can be made at any time, accommodations may be more limited if submitted after this period. If you have questions or concerns about your request, please contact the Office of Religious and Spiritual Life and Contemplative Practices or the Office of the Dean of Studies. Please note that accommodations do not exempt you from completing any coursework missed as a result of a religious observance.