OPERATING SYSTEMS COURSE [SPRING 2006]: SYLLABUS


Goals

  • Get a good understanding of "how stuff works", i.e., how computers operate, how programs get executed, how hardware resources are managed, etc..
  • Develop an understanding of the function, the structure, and operation of modern operating systems.
  • Get a feeling of what really matters in operating system design, understand the basic design tradeoffs.
  • Understand the interaction between (system) software and hardware, as well as between the operating system and applications.
  • Understand the basics of the modern parallel, distributed, and networked operating environments.
  • Familiarization with the main relevant standards (such as POSIX).
  • Familiarization with the operating systems jargon.


Prerequisites

  • Programming skills
  • Knowledge of the C programming language
  • Basic understanding of the computer architecture
  • Basic knowledge of data structures and algorithms
  • Healthy skepticism and critical approach


Topics

  • Introduction: function and structure of operating systems.
  • Process management.
  • Memory management.
  • Multiprocessor systems (symmetric multiprocessing, supercomputers).
  • I/O.
  • Filesystems.
  • Networking, distributed systems.
  • Protection and security.
  • Virtualization.

Of the topics above, most likely process management and memory management will take 2 lectures each, and the rest of the topics will have one lecture devoted to each of them.

More details will become available in the lecture slides as the course progresses. The drills page will also be updated as we proceed, and will also contain homework assignments.


Grades

The final grade will be a weighted sum of 3 components: homework (5-10%), project (20-30%, depending on the difficulty), and exam (the remaining percentage of the weight).

Note that a passing grade in each of the three components separately is necessary to pass the course.


$Revision: 1.2 $
$Date: 2006/03/04 11:43:55 $