Operating Systems (CMPS 3600) - Fall 2025

Instructor: Dominic Fanucchi | Email: dfanucchi1@csub.edu

Syllabus

Course Information

Course Description

A study of the introductory concepts in operating systems: historical development of batch, multi-programmed, and interactive systems; virtual memory, process, and thread management; interrupt and trap handlers, abstraction layer, message passing; kernel tasks and kernel design issues; signals and interprocess communication; synchronization, concurrency, and deadlock problems. Prerequisite: CMPS 2020 with a grade of C- or better. Prerequisites by Topic: Programming skill in a high level language (preferably C or C++) Knowledge of data structures and algorithms. NOTE: This course makes extensive use of the C programming language. Students who have only learned C++ should review a C tutorial for the differences between C ("pure C") and C++. Transfer students who have CMPS 2020 credit due to a Java course will need to take a more intensive self-directed study of the C programming language, as there are many syntax differences between C and Java.

Learning Outcomes

Texts & Resources

Student Learning Outcomes

This course covers the following ACM/IEEE Computer Science 2013 Body of Knowledge student learning outcomes in Operating Systems (OS):

This course covers the following ACM/IEEE Computer Engineering 2004 Body of Knowledge student learning outcomes in Operating Systems (CE-OPS): This course covers the following ACM/IEEE Computer Engineering 2016 Body of Knowledge student learning outcomes in System Resource Management (SRM):

ABET Outcome Coverage

The course maps to the following performance indicators for Computer Science (CAC/ABET) and Computer Engineering (EAC/ABET):

(CAC Outcome 1) An ability to analyze a complex computing problem and to apply principles of computing and other relevant disciplines to identify solutions.
Laboratory and homework assignments
(CAC Outcome 2) An ability to design, implement, and evaluate a computing-based solution to meet a given set of computing requirements in the context of the program's discipline.
Final project
(EAC Outcome 1) An ability to identify, formulate, and solve complex engineering problems by applying principles of engineering, science, and mathematics.
Laboratory and homework assignments
(EAC Outcome 2) An ability to apply engineering design to produce solutions that meet specified needs with consideration of public health, safety, and welfare, as well as global, cultural, social, environmental, and economic factors.
Final project
(EAC Outcome 6): An ability to develop and conduct appropriate experimentation, analyze and interpret data, and use engineering judgement to draw conclusions.
Laboratory and homework assignments

Grading

ComponentWeightNotes
Labs, Homework, Quizzes55%Weekly labs; short online quizzes.
Midterm Exam10%In-person; 1 reference sheet allowed.
Project20%Multi-part programming project.
Final Exam15%Cumulative with emphasis on later topics.

Letter Grades

LetterMin %LetterMin %LetterMin %
A93B83C73
A-90B-80C-70
B+87C+77D63
D+67D-60F<60

Lecture Topics & Rough Schedule

Subject to change; check the homepage for updates.

WeekChaptersTopic
11–2OS overview; course logistics
21–2History & system structures
33Processes and process control
44Threads and multithreading
54Kernel architectures; SMP & microkernels
65Concurrency; race conditions
75Semaphores, monitors
86Deadlocks
96Kernel concurrency case studies
107Memory management
118Virtual memory
129CPU scheduling
1310Real-time scheduling
1411I/O, storage, file systems
1515Security & protection; review

Policies & Expectations

Attendance

Class and lab attendance are required. Be ready to begin at start time.

Labs

  • Arrive on time and work the entire period unless excused.
  • Your program should compile and run by the end of lab.
  • Lab machines are the reference environment.

Homework

Primarily short web-based quizzes. Some labs may continue as homework.

Programming Standards

  • Put your name at the top; correct filenames and directories.
  • No compile warnings or errors; clean, well-formatted output.
  • Use consistent C style (K&R preferred).

Exams

Midterm around Week 9; cumulative final per university schedule.

Late Work

Late submissions are generally not accepted and may receive a zero.

Academic Integrity

All work is individual unless stated otherwise. Discussing ideas is OK; sharing code/answers is prohibited.

Academic Accomodations

To request academic accomodations, please contact the Office of Services for Students with Disabilities (SSD) and email me an accomodations letter from the SSD Office. Policies from the SSD Office relating to accomodations, such as scheduling policies for using their testng center, must also be followed. For more information about the services and policies of the SSD Office, contact their staff by email and/or visit their website at https://www.csub.edu/ssd/

Subject to change: updates will be posted on the course site.