The following are expectations of what you should know based on material
covered in lecture and from chapters 3, 4 and 5 of Tanenbaum.

Understand projects 3 and 4.

% chapter 4

Know the different pieces that make up a process address space.  Know what
kind of information is stored in each piece.

Understand that storage is organized as a hierarchy with more commonly used
data stored where it is quicker to access (such as memory) and less used
data stored where there is more room to store it (such as on disk or tape).

Know what the idea of caching is.

Know what thrashing is.

Know the two basic operations needed in managing a contiguous chunk of
memory. 

Understand how the bit map, boundary tag (linked lists) and buddy system
work for managing a chunk of memory.

Know the tradeoffs of choosing a free piece of memory within the boundary
tag approach.

Be able to define and identify the wasted space for memory management,
including external fragmentation, internal fragmentation and memory
management overhead.

Know what is a virtual address.

Know what is a physical address.

Know what piece of hardware maps a virtual address to a physical address.

Know the difference between a page and a frame and how they are related.

Understand how multiple processes each with a large virtual address space
can be active in a system that has a much less physical address space.

Know the fields of a page table entry and what they are used for.

Be aware that multiple levels of page tables may exist.

Know the fields of a frame table entry and what they are used for.

Be able to describe what happens when translating a virtual address to a
physical address using paging.

Know the considerations in choosing a page size.

Know what happens on a page fault.

Know what happens when a page has successfully been read into memory.

Know what must be done to remove a page from physical memory.

Know how the Translation Lookaside Buffer (TLB) is used.

Know when a page replacement policy can be invoked.

Know what the optimal page replacement policy is.

Know how the Least Recently Used (LRU) page replacement policy works.

Know how the Not Recently Used (NRU) page replacement policy works.

Know how the Clock page replacement policy works.

Know how the First-In, First-Out page replacement policy works.

Know how page replacement policies are evaluated.  Know what a page
reference string is.

Know what cold-start and warm-start behavior are.

Understand what the inclusion (stack) property is concerning page
replacement policies.

Understand what is meant by locality of reference and why it is important.

Understand what the working set of a process is and how it can be used.

Know the difference between global and local page replacement policies.

Know what kinds of pages need to be locked into memory.

Understand generally how Windows NT does paging.

Understand generally how Linux does paging.

% chapter 5

Know and be able to give examples of block and character devices.

Know how the CPU and a device controller communicate.

Understand how Direct Memory Access (DMA) works and why it is used.

Know the four layers of I/O Software and what functions are performed by
each layer.

Know what a RAM disk is and some examples of RAM disk devices in Unix.

Know how a disk is organized.

Know the pieces of disk hardware.

Know the three time factors needed to position the disk head and
read/write a disk block.

Know how the First-Come, First-Served, Shortest Seek First and Elevator
policies work for minimizing the seek time for multiple disk requests.
Know the advantages and disadvantages of each.

Know how an operating system can use a programmable clock to control the
clock interrupt rate.

Know the two principal uses of a clock.

Know how delta lists are used to store wakeup events in an operating system.

Know the three types of terminal hardware.

Know how a device driver is organized into an upper and lower half
with a shared buffer between.

Know how the lower and upper halves of a terminal driver work to read in
characters from a keyboard.

Know how the lower and upper halves of a terminal driver work to write 
character to a terminal connected via a serial line.

Know the different modes of processing characters from the terminal.

Understand what watermark processing is for output and how it is used.

% Unix IPC

Know how software interrupts work and examples of how they are used.

Know what a pipe mechanism is.

Know generally how ports and sockets are used by Unix processes to
communicate.

% chapter 6

Be familiar with the four conditions necessary for deadlock to occur.

Know how to construct a resource graph for a set of processes and
resources.  Know how to detect a deadlock with the resource graph.

Know the difference between a liberal and conservative resource allocation
policy.

Know the advantages and disadvantages of a serialization resource
allocation policy.

Know the advantages and disadvantages of a one-shot resource
allocation policy.

Know the advantages and disadvantages of a hierarchical resource
allocation policy.

Know how the advance claim (banker's) algorithm works for allocating a
class of resources to a set of processes.

Know various strategies for dealing with deadlock.