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 programming

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 space

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.