CS471/571 - Operating Systems

Course Description

"This class introduces the basic functionality provided by computer operating systems, and covers three main topics. The first topic is memory management; specifically dynamic memory allocation, dynamic address translation, virtual memory, and demand paging. The second topic concerns processor management and concurrency; how do we manage multiple tasks that execute at the same time and share resources. Subtopics in this section include processes and threads, context switching, synchronization, scheduling, and deadlock. The third topic concerns file systems and storage management; the organization and operation of an example file system will be discussed in detail."

Learning Outcomes

  • Most important prerequisite skills/knowledge:

    • C programming experience
    • Some systems level programming in C/Linux
  • Most important skills/knowledge gained:

    • Source code for unix system calls - can trace through and explain the code, can make modifications.

    • Unix system calls - can write programs that use the calls to mimic Unix utility commands.

    • Synchronization primitives - can explain proper use and write correct code that uses primitives to avoid race conditions or logical errors.

    • Common scheduling algorithms - can explain common algorithms and tradeoffs.

    • Process accounting - can explain in detail at least one process accounting system.

    • File systems - can explain in detail the layout of at least one modern file system, can explain basic properties and tradeoffs of a number of others.

    • Virtual memory - can explain fundamental concepts and their impact on performance, can explain in detail the mechanism of at least one modern memory management system.

    • Modern computer and operating system - can explain the basic architecture of modern computers and operating systems, including how an operating system ensures proper sharing of the following between different programs and users - CPU, disk, memory, other devices.

Recommended text