Bottom up construction of a layered operating system beginning with the hardware interface and ending with the user interface. Specific topics covered include concurrent processes, process management, I/O, virtual memory, file management, resource scheduling, and performance measurement. Students are assumed to be familiar with general machine architecture, functions of system software (compilers, loaders, editors, etc.), data structures, and have some experience with UNIX or other multiprogramming operating systems.

Prerequisite(s): Grade of C or higher in COS 250.

Learning Outcomes

By the end of this course, students will be able to:

  • Describe the purpose of an operating system
  • Describe significant challenges in an operating system design and implementation
  • List the functional components of an operating system
  • Characterize the typical architectures of operating systems
  • Describe how an operating system is designed and implemented
  • Develop Code that extends an existing operating systems
  • Evaluate operating system designs and functions
  • Analyze, identify, and define computing requirements

Textbook

Operating System Concepts Essentials 2nd Edition 2013, Silberschatz, Galvin, and Gagne.

Syllabus

Fall 2020

Offered

Fall semester