Course Description

This course examines the important problems in operating system design and implementation. The operating system provides an established, convenient, and efficient interface between user programs and the bare hardware of the computer on which they run. The operating system is responsible for sharing resources (e.g., disks, networks, and processors), providing common services needed by many different programs (e.g., file service, the ability to start or stop processes, and access to the printer), and protecting individual programs from interfering with one another. The course will start with an overview of the major components of most operating systems. This discussion will cover the tradeoffs that can be made between performance and functionality during the design and implementation of an operating system. Particular emphasis will be given to three major OS subsystems: process management (processes, threads, CPU scheduling, synchronization, and deadlock), memory management (segmentation, paging, swapping), and file systems; and on operating system support for distributed systems.

Course Syllabus

See Blackboard

Course Calendar

  • August 17th – Review the syllabus and go over chapter 1 slides
  • August 22nd – TBA
  • August 24th – TBA
  • August 29th – TBA
  • August 31nd – TBA
  • September 5th – TBA
  • September 7th – TBA
  • September 12th – TBA
  • September 14th – TBA
  • September 19th – TBA
  • September 21th – TBA
  • September 26th – TBA
  • September 28th – TBA
  • October 3rd – TBA
  • October 5th – TBA
  • October 10th – TBA
  • October 12th – TBA
  • October 17th – TBA
  • October 19th – TBA
  • October 24th – TBA
  • October 26th – TBA
  • October 31st – TBA