|
This course will provide an introduction to operating
system design and implementation. The operating system provides a
well-known, convenient, and efficient interface between user programs
and the bare hardware of the computer on which they run. The operating
system is responsible for allowing resources (e.g., disks, networks,
and processors) to be shared, 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 one another.
The course will start with a brief
historical perspective of the evolution of operating systems over the
last fifty years, and then cover 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), file systems, and
operating system support for distributed systems.
|