CSE306

Course CSE306
Title Operating Systems
Credits 3
Course Coordinator

Michael Kifer

Description

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 Prerequisites: C or higher: CSE 320 or ESE 280; CSE Major or ECE major.

Partially fulfills: ESI, EXP+, SBS+, STEM+
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.
Textbook

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
Laboratory
  • 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

CSE306