While the following outline identifies many of the topics covered in this
course, this list should not be considered exhaustive of all material
discussed in this course.
Topics within Operating Systems
The basic reference is Gary Nutt, Operating Systems, Third Edition,
Chapters 13, 514

Thread and Process management

processes

descriptors

state diagrams

threads

CPU scheduling

interrupts, traps

nonpreemptive strategies (FCFS, SJN, priority)

preemptive strategies (round robbin, multilevel queues)

Process synchronization

race conditions

critical sections

semaphores

monitors

message passing

shared memory

spin locks

deadlock

characterization (necessary conditions)

prevention

mutual exclusion

hold and wait

circular wait

no preemption

avoidance

detection

recovery

starvation

Memory management

address spaces

virtual

physical

cache

fixed partitions

variable partitions
runtime conditions

bound checking

internal and external fragmentation

paging

address translation

Belady's optimal algorithm

LRU

FIFO

approximating LRU (reference bits, secondchance algorithm)

working sets

segmentation

address translation

best fit

worst fit

first fit

next fit

File systems

device drivers and handlers

abstractions

access

sequential files

randomaccess files

structured sequential files

indexed sequential files

block management

contiguous blocks

list of blocks, interconnected by links

collection of blocks, interconnected by an index

directory structure

DOS file allocation table (FAT)

Unix file structure

Protection and security

authentication

authorization

accessc control list

access matrix

Kerberos

Standard problems/examples

boundedbuffer problem

dining philosophers problem
Topics within Parallel Algorithms
The basic reference is Joseph JáJá, Introduction to
Parallel Algorithms, Chapters 12 (currently on 2hour reserve in the
Science Library).

Some basics of parallel computation

Hardware models: parallel randomaccess machines (PRAMs),
networks, pipelining

Problemsolving models: result parallelism, specialist
parallelism, agenda parallelism

Measures of effectiveness: run time, work, optimality

Standard techniques for parallel problem solving

Balanced trees

prefix sums (recursive and nonrecursive algorithms)

computation of rank, truncated rank, indexed count of
equal elements

Parallel searching and sorting

organization of processes/processors within a tree structure

pary search for ordered arrays

merging ordered lists

parallel merge sort

Pointer Jumping

finding roots of a forest

parallel prefix sums (within a forest)

Accelerated Cascading

O(1)time, O(n^{2})work algorithm for finding maximum

doubly logarithmicdepth tree

O(log log n)time, O(n log log n)work algorithm for finding maximum

O(log log n)time, O(n)work algorithm for finding maximum
This document is available on the World Wide Web as
http://www.math.grin.edu/~walker/courses/213.fa04/topicreview.shtml