Spring 2026 - CMPT 303 D100
Operating Systems (3)
Class Number: 5441
Delivery Method: In Person
Overview
-
Course Times + Location:
Jan 5 – Apr 10, 2026: Wed, 11:30 a.m.–12:20 p.m.
BurnabyJan 5 – Apr 10, 2026: Fri, 10:30 a.m.–12:20 p.m.
Burnaby
-
Instructor:
Ahmadreza Nezami
anezami@sfu.ca
-
Prerequisites:
CMPT 225, (CMPT 295 or ENSC 254), and (CMPT 201 or ENSC 351), all with a minimum grade of C-.
Description
CALENDAR DESCRIPTION:
A course teaching the internals of modern operating systems. Topics consist of kernel components of modern OSes, such as system calls, device drivers, virtual memory, scheduling, file systems, synchronization for multi-core, and memory ordering.
COURSE DETAILS:
In this course an in-depth review of internals of common operating systems is presented. Goal is to gain deep theoretical and practical understanding of how various core components of an operating system work. These components and concepts include OS kernels, processes, resource management, job scheduling, concurrency and multi-core computing systems, File system, Basic Input/Output techniques, and common OS cases. We use Windows and Linux/Unix as primary study cases. Students are expected to have a working knowledge of programming in C/C++, data structures, and common related algorithms. Primary mode of presentation of this course is in-person, with some occasional online components. There is a midterm and a final exam, both are in-person. Students should expect un-announced in-class quizzes. Programming projects are essential complement to this course, in which students practice design and implement custom versions of existing operating system components. Students are expected to have access to laptop with at least 16GB of memory and recent processors, with capability of installing windows 10 and a Linux distribution either as native dual boot or in a virtual environment.
COURSE-LEVEL EDUCATIONAL GOALS:
Course Competencies:
Upon successful completion of this course, the student will be able to:
• analyze and design or improve basic components of an existing operating system.
• describe how a modern operating system works and how its parts collaborate with each other.
• debug software issues arise as a result of it running in the environment of an operating system.
• explain how context switching in OS happens and how it related to running multiple user programs.
• explain the role of system calls and how they are used by user applications and by OS.
• analyze and describe the role of virtual memory and paging in MMU in a modern OS.
• investigate the performance bottlenecks at various stages of a running program, a process, and identify methods to mitigate the effects.
Grading
NOTES:
Process for Evaluation: There are between 4 graded programming assignments, and 5 to 7 graded quizzes. All graded assignments are equal weights. There is a midterm and a final. Students must achieve 50% on the exam category (including midterm and final) to pass.
Assignments 40%
Exams (Midterm + Final) 42%
In-Class pop quiz 18%
Total Mark 100%
Instructional Methods:
SFU adopts active learning and student-centered methodology to keep students positively engaged in experiential learning activities that prepare them for their employment and industry responsibilities. Specific classroom activities may consist of, but are not limited to, lectures, demonstrations, presentations, discussions, cooperative learning activities, inquiry-based learning, group
Materials
MATERIALS + SUPPLIES:
Material and Supplies: will be provided through Canvas and in-class references and instructor.
Suggested Reading:
1- Modern Operating Systems 5’th Edition, Andrew Tanenbaum
2- Operating System Concepts, 10th Edition, A. Silberschatz
Technology Needed: Visual Studio or equivalent IDE for C++ Code for development and testing environments. You will need to have access to a laptop or similar digital devices as described above during all class sessions for doing quizzes.
REQUIRED READING NOTES:
Your personalized Course Material list, including digital and physical textbooks, are available through the SFU Bookstore website by simply entering your Computing ID at: shop.sfu.ca/course-materials/my-personalized-course-materials.
Department Undergraduate Notes:
-
Students must attain an overall passing grade on the weighted average of exams in the course in order to get a C- or higher.
-
All student requests for accommodations for their religious practices must be made in writing by the end of the first week of classes, or no later than one week after a student adds a course. After considering a request, an instructor may provide a concession or may decline to do so. Students requiring accommodations as a result of a disability can contact the Centre for Accessible Learning (caladmin@sfu.ca).
Registrar Notes:
ACADEMIC INTEGRITY: YOUR WORK, YOUR SUCCESS
At SFU, you are expected to act honestly and responsibly in all your academic work. Cheating, plagiarism, or any other form of academic dishonesty harms your own learning, undermines the efforts of your classmates who pursue their studies honestly, and goes against the core values of the university.
To learn more about the academic disciplinary process and relevant academic supports, visit:
- SFU’s Academic Integrity Policy: S10-01 Policy
- SFU’s Academic Integrity website, which includes helpful videos and tips in plain language: Academic Integrity at SFU
RELIGIOUS ACCOMMODATION
Students with a faith background who may need accommodations during the term are encouraged to assess their needs as soon as possible and review the Multifaith religious accommodations website. The page outlines ways they begin working toward an accommodation and ensure solutions can be reached in a timely fashion.