EECS 582 Midterm Review Mosharaf Chowdhury EECS 582 – W16
Stats on the 18 Reviewers EECS 582 – W16
Stats on the 21 Papers We’ve Reviewed EECS 582 – W16
Stats on the 21 Papers We’ve Reviewed EECS 582 – W16
Classics EECS 582 – W16
Classics UNIX System R (Arguably) the first commodity OS Simplicity is king when you must support diverse applications Everything is a file! System R The first relational database implementation Design iteratively and be ready to throw away Find the “right” metric and do everything when you must deliver performance (i.e., specialization instead of generalization) EECS 582 – W16
Storage and File Systems EECS 582 – W16
Storage and File Systems RAID Industry standard for durable, high-performance storage Parallelize for performance and fault-tolerance FFS Improved UNIX’s default file systems Be aware of and exploit hardware characteristics JFS Provides crash recovery to file systems Log what you’ll do before you do it! EECS 582 – W16
Kernels EECS 582 – W16
Kernels Exokernel Multikernel Minimal kernel instead of a full-fledged one End-to-end argument: only provide services that everyone needs to balance between specialization (performance) and generalization (applicability) Multikernel Make communication explicit when you must communicate Shared-nothing design EECS 582 – W16
Kernels IX Separate control and data planes to provide I/O performance Kernels aren’t inherently slow; it’s about how we do things Commuter Interfaces dictate scalable design EECS 582 – W16
Virtual Memory and RPC EECS 582 – W16
Virtual Memory and RPC Memory Coherence RPC Shared-everything design requires frequent updates Keeping things coherent is expensive but provides simple programming models RPC Makes distributed nature more explicit while keeping the same programming model as a non-distributed system No shared memory EECS 582 – W16
Concurrency and Scheduling EECS 582 – W16
Concurrency and Scheduling SEDA and Fibers Thread- and event-based programming models both have their advantages and drawbacks (ease of programming vs. scalability and performance) It is possible to find a balance between the two Lottery and Stride Scheduling Randomized and deterministic proportional scheduling The key challenge is in determining the proportions (weights) EECS 582 – W16
Reliability and Fault Tolerance EECS 582 – W16
Reliability and Fault Tolerance Eraser Detecting bugs, specially the non-deterministic ones, is hard Provide a “tight” coverage to allow manual inspection Nooks Failure is inevitable Isolate it and start again EECS 582 – W16
Virtual Machines EECS 582 – W16
Virtual Machines Xen and ESX Live Migration ReVirt Virtualization comes in many shapes and forms (e.g., full virtualization vs paravirtualization) Choose the one that fits your requirements (e.g., performance, consolidation, deployability) Fit for your workload Live Migration Keep things running until you must stop ReVirt Quis custodiet ipsos custodes? (Roman poet Juvenal in Satires) It’s turtles all the way down! EECS 582 – W16