CAS CS 552 - Fall 1999
Prof. Matta
As you prepare for the midterm, read the assigned readings from the
textbook and study your lecture notes. In addition, make sure you learned
the following:
Processes/threads:
-
Know how to solve a synchronization problem (e.g., classical or like the
Bridges assignment) using some synchronization primitives (e.g., semaphores,
monitors).
-
Know how to implement high-level synchronization primitives on top of low-level
ones (e.g., monitors on top of semaphores).
-
Know the different variations of monitors (e.g., wait/signal or wait/notify
on condition variables, Java wait/notify/notifyAll) and how they work and
are implemented.
-
Know different CPU scheduling algorithms (e.g., FIFO, SJF, SRT, RR, MLF,
Priority). You should be able to trace the execution for a given sequence
of jobs and compute performance measures (e.g., response time, waiting
time).
Memory:
-
Know different virtual memory architectures (e.g., paging, segmentation,
segmentation with paging) and differences (e.g., pages versus segments,
internal versus external fragmentation).
-
Under a virtual memory architecture, know how address translation works
and how to draw the address translation diagram showing the different registers/tables
and their size and width in bits. Also, numerically carry out translations
from a given virtual address to a physical address.
-
Know different algorithms for allocating and freeing memory (e.g., first-fit,
best-fit, worst-fit, coalescing free blocks, memory compaction). Know how
to trace the execution given a sequence of memory requests and how to express
an algorithm in pseudo-code.
-
Know about demand paging and different page replacement algorithms (e.g.,
FIFO, LRU, Second Chance, Enhanced Second Chance, Working Set, Page Fault
Frequency). Know how to trace the execution given a sequence of page references
and how to express an algorithm in pseudo-code.
-
Know how to briefly define or contrast different terms (e.g., thrashing,
load control, paging, prefetching, swapping, dynamic relocation, temporal
and spatial locality, local versus global page replacement).
-
Know how to speed up algorithms using appropriate hardware support and/or
approximations (e.g. TLB for address translation).
Files:
-
Know about different file types (e.g., structured versus unstructured)
and different access methods (e.g., sequential versus random).
-
Know what happens when you "open" a file, and how many I/O operations are
needed.
-
Know different ways to allocate a file on a disk (e.g., contiguous, linked,
indexed sequential), and how many I/O opeartions are needed to retrieve
a block given a certain file.
/
Back
to CAS CS 552 home page
Last updated 10/21/99