CS439 Final Exam Study Guide
This study guide is intended to help you prepare for our final
exam. It is not necessarily complete. The final covers the lectures,
reading, projects, and homeworks from the entire semester with an
emphasis on the last third (11/10-12/3).
No item is more important than another. You are responsible for all of it.
All topics from Exam 1 and Exam 2.
File system consistency: sources of inconsistency, methods for
achieving consistency including transactions, journaling file systems,
copy-on-write file systems
Networks: architecture, communication protocols (all levels, including
ethernet, IP, UDP, TCP, and TCP's congestion controls), overhead
(including latency, throughput), sources of error (including packet
drops), routing methodology, client-server paradigm, and socket
Parallel and Distributed Computing: what each is and its architecture,
parallel programming models (shared memory, message passing, including
logistics), RPC (what it is, how it differs from normal procedure
calls), event ordering (happened before, logical clocks, why not a
time-of-day global clock), atomicity, distributed consensus,
distributed transactions (including two-phase commit), electing a
leader with the bully algorithm
Other File Systems: NFS, including performance, use of RPC, consistency
model, and stateless protocol; GFS, including architecture, design
(and design space), and consistency model; and consistency, coherence,
and staleness more generally.
Security: types of threats (including worms and viruses) and examples
thereof, authentication (including password security), and the design
Deadlocks: what they are, conditions for deadlock, resource allocation
graphs and how to interpret them, deadlock avoidance and prevention
algorithms (including banker's), deadlock detection
Generally: A good sense of how the pieces fit together and how changes
in one part of the OS might impact another.