CS 324: Introduction to Operating System
Course Information and Syllabus
Class Meetings
Tuesday, Thursday 10:00 am to 11:15 am
Instructor
| Instructor: | Dr. Clifton Presser |
| Office: | Glatfelter 213 |
| Phone: | (717) 337-6639 |
| Email: |
cpresser@gettysburg.edu
|
| Office Hours: |
Wednesday 1:00 pm to 3:00 pm
Tuesday, Thursday 1:00 pm to 2:30 pm
Drop in anytime my door is open or make an appointment.
|
|
Class web site
You are responsible for checking the class web site regularly.
Announcements and assignments will be posted on the Moodle course management system.
Prerequisites
CS 216
Gettysburg Curricular Goals
This course satisfies the Quantitative, Inductive and Deductive Reasoning goal of the Gettysburg Curriculum.
Text
Operating Systems: Three Easy Pieces by Remzi H. Arpaci-Dusseau ,Andrea C. Arpaci-Dusseau, and Peter Reiher. Available free online.
Topics
See the schedule below for more detail.
| OS Data Structures | Process Management |
| Threads | Scheduling |
| Deadlocks | Memory Management |
| Input/Output Systems | Synchronization |
| File Systems | Security |
Learning Outcomes
Students will..
- Be able to trace a process through its life cycle in a computer.
- Be able to explain the objectives and functions of an operating system.
- Be able to explain fundamental OS related algorithms and data structures.
- Be able to describe the effects and demands concurrency places on an operating systems.
- Be able to identify and trace through scheduling algorithms.
- Be able to describe the functionality of various components of an OS.
- Be able to write code with thread synchronization constructs.
- Be able to write utilities with bash scripts.
- Be able to decode memory addresses using paging and segmentation.
Course Credit
According to the College Catalog's section on Degree Requirements: "For transfer of credit to other institutions, the College recommends equating one course unit with 4 semester hours." This valuation is in alignment with our 32 course requirement for graduation.
The federal government defines a credit hour as the equivalent amount of work as 50 minutes in class and two hours out of class for one semester.
Therefore, this course should be the equivalent work of three hours and twenty minutes in class and 8 hours outside of class.
Since the course meets two and a half hours per week, the assignments include a "fourth hour" item each week.
Attendance Policy
You are expected to attend class regularly and keep up with the assigned material.
Grading Policy
Assignments
Homework will be due at the beginning of class. Late work will be graded with a 20% deduction. Homework turned one week after the deadline will receive no credit. Homework will be graded by the second class meeting or one week after they are submitted, whichever is later. Otherwise, all students who have turned the assignment in on time will receive a 10% bonus.
Unless otherwise specified, all assignments are weighted
equally. Some assignments may count double. Such
changes will be noted on the assignment specifications.
Classwork
From time to time you will be asked to write programs, complete worksheets, take quizzes, give short presentations, or answer questions in class.
Fourth Hour
Fourth Hour assignments require an additional exercise outside of class meeting times.
Colloquium Attendance
Each student is required to attend at least two Computer Science Colloquia during the semester. If your schedule does not permit you to attend one or more, please see me to discuss an alternative.
Tests
There will be 2 tests during the semester, their dates are given
in the schedule below. Make-up tests will only be given under special circumstances.
The final exam is cumulative. The date is determined by the registrar.
The tests and the final will be proctored in the classroom.
Grade Distribution
| Assignments | 18% |
| Fourth Hour | 15% |
| Classwork | 15% |
| Colloquia | 2% |
| Tests | 30% |
| Final Exam | 20% |
Grade Ranges
| A+ | 98-100 | A | 93 - 98 | A- | 90
- 92 |
| B+ | 88 - 89 | B | 83 - 87 | B- | 80 -
82 |
| C+ | 78 - 79 | C | 73 - 77 | C- | 70 -
72 |
| D+ | 68 - 69 | D | 60 - 67 | F | below
60 |
Honor Code and Honor Code Violations
All Gettysburg College students are expected to abide by the Honor Code.
All work in this course is to be done individually
unless the instructor specifically states otherwise.
This includes assigned projects as well as regular class work. The use
of the
computer may make it more tempting and easier to pass off another
person's
work as your own. This is UNACCEPTABLE.
The department is always very aggressive about enforcement of the Honor
Code.
Guidelines for following the honor code:
- Do not represent anyone else's work as your own.
- Do not search the Internet (or any other source) for solutions to the assignments unless told to do so.
- When an assignment requires that you search for an answer, provide references to your sources.
- Do not share your work with other students, unless you are working on a group project.
- You may ask a fellow student for help if you get stuck, and they may provide advice, but they may not provide a complete or partial solution.
- Tests and the final exam will taken in class and will be proctored.
Generative AI Tools
Generative AI tools such as ChatGPT can be powerful aids to completing a variety of work. You will undoubtedly use them in your careers. They will likely become the de-facto standard for building computer applications in the future.
In this course, we may employ these tools from time to time, both in class and work you do alone. However, you may not use them for any submitted work unless there are specific instructions to do so. Using these tools on assignments without permission is a violation of the Honor Code.
You should aim to be more than just a communication device between your professor and ChatGPT. You improve your problem solving ability by thinking (practice makes perfect).
You may use AI to...
- search for information.
- summarize information.
- check writing style and grammar.
- create examples and practice problem.
- generate data sets for program testing.
- create study materials.
- assist in compose emails.
- plan and organize.
You may not use AI to...
- search for answers on tests or assignments.
- generate answers for you, unless specifically told to do so.
- generate data which you are assigned to collect.
- analyze private or personally identifiable information.
- analyze copyrighted information.
- avoid putting in an effort.
- replace your own thought processes.
- remove yourself from your education.
I may use AI to...
- generate problems.
- generate examples.
- generate sample data sets.
- produce or enhance class materials.
- organize/facilitate grading.
I will not use AI to...
- grade or assess your work.
- analyze private or personally identifiable information.
- analyze copyrighted information.
- replace my expertise as your teacher.
- remove myself from your education.
We are responsible for...
- knowing when and if generative AI is applicable, appropriate, and
acceptable. Some classes or employers may forbid, limit, or
encourage its use.
- understanding programs generated by AI. If you can't read it, you
don't know what it does.
- documenting our development process.
- testing our programs in a safe environment.
- the efficiency and security of the programs we specify. AI
generators may not always choose the best or safest algorithms
and data structures.
- adhering to required coding standards which includes naming
conventions and formatting among other things.
- protecting private or proprietary information. Unless there is a
reason to believe otherwise, assume any information sent to an
LLM is exposed to the public.
If we generate a program using AI tools which contains bugs and
errors, they are OUR bugs and errors. If the program infringes a
copyright or patent, that is our violation. We are responsible for the
consequences that follow.
Calendar
This calendar is subject to change throughout the semester.
| Week | Day | Date | Topic | Text | Notes |
| 1 | Tues. | 8/25/26 | Introduction | 2 | 2 |
| 1 | Thurs. | 8/27/26 | System Calls and Interrupts | 2 | |
| 2 | Tues. | 9/1/26 | Processes | 4,5 | |
| 2 | Thurs. | 9/3/26 | Processes | 4,5,6 | |
| 3 | Tues. | 9/8/26 | Scheduling | 7 | |
| 3 | Thurs. | 9/10/26 | Scheduling | 7 | |
| 4 | Tues. | 9/15/26 | Scheduling | 8,9,10 | |
| 4 | Thurs. | 9/17/26 | Memory | 13-15 | |
| 5 | Tues. | 9/22/26 | Segmentation/Free space | 16,17 | |
| 5 | Thurs. | 9/24/26 | Test 1 | - | |
| 6 | Tues. | 9/29/26 | Paging | 18 | |
| 6 | Thurs. | 10/1/26 | More Paging | 19,20 | |
| 7 | Tues. | 10/6/26 | Swapping | 21,22,23 | |
| 7 | Thurs. | 10/8/26 | Threads | 26,27 | |
| 8 | Tues. | 10/13/26 | No class | - | Fall Break |
| 8 | Thurs. | 10/15/26 | Threads | 26,27 | |
| 9 | Tues. | 10/20/26 | Locks | 28-30 | |
| 9 | Thurs. | 10/22/26 | Concurrency | 31-33 | |
| 10 | Tues. | 10/27/26 | Concurrency | 31-33 | |
| 10 | Thurs. | 10/29/26 | Deadlock | 32 | |
| 11 | Tues. | 11/3/26 | Deadlock | 32 | |
| 11 | Thurs. | 11/5/26 | Test 2 | - | 11/6: Last day to withdraw |
| 12 | Tues. | 11/10/26 | I/O Devices | 36 | |
| 12 | Thurs. | 11/12/26 | Drives | 37-38 | |
| 13 | Tues. | 11/17/26 | Files and Directories | 39 | |
| 13 | Thurs. | 11/19/26 | File Systems | 40-43 | |
| 14 | Tues. | 11/24/26 | Security | 53-54 | |
| 14 | Thurs. | 11/26/26 | No class | - | Thanksgiving Break |
| 15 | Tues. | 12/1/26 | Security | 55-56 | |
| 15 | Thurs. | 12/3/26 | Review | - | |
| 16 | Tues. | 12/8/26 | Final Exam | - | 1:30 to 4:30 pm |
Please send questions and comments to:
cpresser@gettysburg.edu