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 1-3, 5-14
-
Thread and Process management
-
processes
-
descriptors
-
state diagrams
-
threads
-
CPU scheduling
-
interrupts, traps
-
nonpreemptive strategies (FCFS, SJN, priority)
-
preemptive strategies (round robbin, multi-level 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
run-time conditions
-
bound checking
-
internal and external fragmentation
-
paging
-
address translation
-
Belady's optimal algorithm
-
LRU
-
FIFO
-
approximating LRU (reference bits, second-chance algorithm)
-
working sets
-
segmentation
-
address translation
-
best fit
-
worst fit
-
first fit
-
next fit
-
File systems
-
device drivers and handlers
-
abstractions
-
access
-
sequential files
-
random-access 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
-
bounded-buffer problem
-
dining philosophers problem
Topics within Parallel Algorithms
The basic reference is Joseph JáJá, Introduction to
Parallel Algorithms, Chapters 1-2 (currently on 2-hour reserve in the
Science Library).
-
Some basics of parallel computation
-
Hardware models: parallel random-access machines (PRAMs),
networks, pipelining
-
Problem-solving 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 non-recursive algorithms)
-
computation of rank, truncated rank, indexed count of
equal elements
-
Parallel searching and sorting
-
organization of processes/processors within a tree structure
-
p-ary 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(n2)-work algorithm for finding maximum
-
doubly logarithmic-depth 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/topic-review.shtml