CS 475 - Operating Systems - Syllabus
Course Description
One the most complex software systems ever assembled, the modern operating system serves as the interface between the human and the machine. This course traces how the simple idea of “resource sharing” unravels into some of the most confounding problems and original breakthroughs in computer science. Course topics include process and thread management, input/output, CPU scheduling, concurrency and synchronization, memory management, virtual memory, and caching. Students taking this course will learn how to deal with the intricacies of low-level programming, parallel computing, and tackling synchronization problems. The C programming language will be taught.
Prerequisites
A grade of C- or higher in the following course(s) is required:
- CSCI 281: Assembly Language and Computer Architecture
Required Textbook
- Silberschatz, Galvin, and Gagne. Operating Systems Concepts. 8th Ed. or greater. (Required)
- Suzanne J. Matthews, Tia Newhall, Kevin C. Webb. Dive into Systems (Free) (Required for learning C)
Student Course Outcomes
Students taking this course will:
- Be proficient in C.
- Be proficient in the use of the Linux environment for coding, compilation, debugging, and testing.
- Understand the objectives and functions of modern operating systems.
- Understand reasons for using interrupts, dispatching, and context switching to support concurrency.
- Compare and contrast the common algorithms used for both preemptive and non-preemptive scheduling of tasks in operating systems.
- Understand concurrency issues in multiprocessor systems.
- Understand techniques for achieving synchronization in an operating system.
- Accurately analyze code to identify race conditions and appropriate solutions for addressing race conditions.
- Design and implement concurrent programs using proper synchronization techniques.
- Summarize the principles of virtual memory as applied to caching and paging.
Course Topics
- The history and current state of computer systems
- Process management
- Threads (pthread) and parallel programming
- Interrupts and system calls
- CPU scheduling
- Synchronization of concurrent programs
- Memory management and virtual memory
- File systems
Grades
Your overall grade is broken down as as follows:
% Weight | |
---|---|
Participation | 5% |
Homework Assignments | 40% |
Midterm I | 15% |
Midterm II | 18% |
Final Exam | 22% |
Clasroom Policies
Attendance and Participation
Regular attendance and participation in class are required. Attendance, to be graded out of 10 “participation points,” applies toward your final grade. I deduct 2 points for each unexcused absence, 1 point for being late, and 1 point for engaging in activities that can disrupt others: scrolling through your phone, texting, playing games on your laptop, etc.
Final Letter Grades
These are the cutoffs when assigning your final letter grades. Please note that decimals are ignored (e.g., 89.99% = B+). The cutoffs below might come down, but will not be set higher.
Final Average | Letter Grade |
---|---|
100% - 95% | A |
94% - 90% | A- |
89% - 87% | B+ |
86% - 83% | B |
82% - 80% | B- |
79% - 77% | C+ |
76% - 73% | C |
72% - 70% | C- |
69% - 67% | D+ |
66% - 63% | D |
62% - 60% | D- |
59% and below | F |
During Class: No Laptops and No Phones
Laptop computers and other handheld devices are a common distraction during lectures. Except on lab days and for those who can provide documentation of need from the office of student accommodations, please don’t bring your laptops to lectures. Please turn your phones off, or at least put your phones on silent during lecture.
Academic Integrity
I adhere to the university’s academic integrity policy. If a student is caught misrepresenting their work, then at minimum, they will receive an automatic zero for the assignment and the case will be reported upstream, which may affect the student’s athletic and scholarship eligibilities. To avoid such problems, use common sense and when in doubt, ask me for advice. Examples of academic dishonesty include, but are not limited to, the following:
- Copying the work of another student or former student.
- Copying work found online or on generative AI platforms (see section below for expanded discussion into AI assistance).
- Communication of any form during exams.
The Do’s and Don’ts of Using ChatGPT
When used properly, ChatGPT, Gemini, and other generative AI are powerful tools and can be a great help in understanding the technical contents of this course. Because of that, on surface, I am not opposed to their use for my classes. However, there are clear boundaries that, when crossed, could lead to severe consequences for students. Here are some do’s-and-don’ts guidelines on how to properly use these tools for this class:
- Do use it to be your personal tutor, and that is as far as it should go. Use it to explain concepts you don’t fully grasp. When helping with homework, prompt it with things like, “Without providing me with any code solution …”
- Do use it to explain code to you. Is there a piece of code we went over in class that is hard to understand? Paste it into the prompt, and have it explain line-by-line as well as holistically on how everything comes together.
- Do use it to explain your errors to you. Paste in your code and the errors you receive when compiling or running it. Have it comment on any issues without simply giving you the fix.
- Do use it to explain any mathematics that you might need to know for an assignment or lab.
- Don’t turn anything in that was generated by these tools. In general, copying-and-pasting (even with superficial modifications) without citation is considered plagiarism, and will be treated as such.
- Don’t underestimate how easy it is for us to detect cases where students are turning in code written by generative AI tools.
- Don’t forget that you will still need to demonstrate proficiency on all your exams to pass the course. Doing well on homework assignments is only a necessary but insufficient condition to pass!
Late Policy, Extensions, and Makeup
Late Deduction
For each day that a homework assignment is late beyond the due date (or the adjusted date according to your accommodations), I assess a \(3^d\%\) deduction, where \(d\) is the number of days late including weekends.
Deadline Extensions
Ample time is provided to complete each assignment, and I do not assign work that has not already been covered in lectures. Generally, no extensions be will given for assignments. The exception is when you can provide documentation for unique circumstances, or if you have student accommodations. As a general rule of thumb, come talk to me and explain what might be going on.
Exam Policies
-
Makeup: I expect you to be present on the day of exams. I do not offer makeups unless you can document an extenuating circumstance. The following do not count as extenuating circumstances: experiencing a cold, overslept, mental-health day, family visiting, traveling, etc. Exam days are listed on my course calendar and will not change. Plan accordingly!
-
Final Exam: You must show up on the scheduled day of the final exam. These dates are set by the university and cannot be rescheduled. Please do not ask for exceptions.
-
The following items are prohibited to use on the day of exams: Phones (even with Wifi disabled), headphones, and other mobile devices.
-
Student Accommodations: It is your responsibility to inform me if you will be taking exams at the accommodations office well-ahead of time, so that I have time to provide exam copies to their office.
University, Academic, and Administrative Policies
There are many university policies and resources that offer guidance on how to be safe and make the most of your college education. Here are a few that you should take a moment to review:
-
Please review university emergency preparedness, response procedures and a training video posted at www.pugetsound.edu/emergency/.
-
Protect yourself and others from COVID-19 by following our ongoing campus safety protocols, posted here: www.pugetsound.edu/emergency/communicable-disease-outbreak-prevention/university-response-covid-19/protect-yourself
-
For information on academic and administrative policies (such as policies on grade policies, leaves of absence, declaring a major, academic integrity, and academic petitions) please refer to the University Bulletin located here: www.pugetsound.edu/sites/default/files/2023-08/AD23BULLETIN_online_Academic%20and%20Administrative%20Policies.pdf
-
If you are seeking a religious accommodation in an academic course or program, please follow the process provided in the university’s policy on Student Religious Accommodations in Academic Courses or Programs, available at www.pugetsound.edu/office-university-counsel/policies/campuswide-policies/student-religious-accommodations-academic-courses-or-programs
-
If you have any concerns about prohibited harassment or discrimination that may be affecting you or others at Puget Sound, please contact the university’s Title IX Coordinator/Equal Opportunity Officer, Wheelock 218, 253.879.3793, website: www.pugetsound.edu/title-ix-equal-opportunity, email: titleix-eoo@pugetsound.edu. The Title IX Coordinator/Equal Opportunity Officer can explain available options and help address concerns informally or formally.
-
If you have a physical, psychological, medical or learning disability that may impact you as a student at Puget Sound, please contact Student Accessibility and Accommodation, Howarth 105, 253.879.3399, website: pugetsound.edu/saa, email: saa@pugetsound.edu. They will determine with you what accommodations are necessary and appropriate.
-
You must uphold the school’s Academic Integrity Code found here: https://www.pugetsound.edu/academic-integrity. Any suspected cheating (plagiarizing code, copying homework solutions, etc.) will be reported to the Registrar, which may result in possible suspension/expulsion and loss of financial aid.