3 Credits 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.
Prerequisites C or better in CS 456 or CS 556; or A- or better in CS 500.