Course CSE306
Title Operating Systems
Credits 3
Course Coordinator

Michael Kifer


Students are introduced to the structure of modern operating systems. Topics include virtual memory, resource allocation strategies, concurrency, and protection. The design and implementation of a simple operating system are performed. This course focuses on teaching the skills required to design and build modules of an operating system kernel. It covers key algorithms and architectures. A companion course, CSE 320, teaches complementary skills from the application programmer's point of view.

Bulletin Link

Prerequisite C or higher: CSE 216 or CSE 260; CSE 320; CSE Major .
Course Outcomes
  • Understanding of fundamental concepts underlying modern operating systems, including virtual memory and multiprogramming.
  • Working knowledge of the components of operating systems, including file systems, the I/O subsystem, and the CPU scheduler.
  • An ability to design and implement simplified versions of the main modules of operating systems.

William Stallings. Operating Systems, Internals and Design Principles. Pearson, 9th ed., 2018.

Major Topics Covered in Course
  • Computer architecture
  • Memory management
  • I/O subsystem
  • Resource allocation strategies
  • Concurrency
  • Threads and processes
  • CPU Scheduling
  • Implementation of various modules of operating systems. Typically 3-4 projects that span the period of 8 weeks. The projects are based on either NACHOS or OSP software.
Course Webpage