CSE 121: Operating Systems, Architecture and Implementation Fall 2003 Final Exam Review Session Announcements: Final Exam on Tuesday, 12/09, 11:30-2:30 (SEQUO 147) Note: these notes aren't complete, they're just going to give you an idea of what to review. We went over a few of these items in a little more detail in the review session. (1) CSE 120 Review: ------------------- Address Spaces MMU TLB, Virtual->Physical Page Tables Kernel/User modes system calls Processes example: shell ( fork(), exec() ) (2) File Systems: ----------------- - Disk abstraction / interface - example: DOS FAT File System + Fast File System (FFS): What did they improve, why did they do it, how did it improve it? + Improvements to FFS: extents, realloc, frag, co-locating, LFS (maybe), Journaling, Soft Updates (see handout) + Log-Structured File System (LFS): - Roughly, how did it work? How is it different from FFS? - Why did they believe LFS would improve FFS? - When is it better than and when is it worse than FFS? - How did they measure performance (specifically, this is difficult when you factor in cleaning overhead)? + Journaling versus Soft Updates: - How are Journaling file systems different from LFS and FFS? - What different types of journaling fs were measured in the paper? - How is Soft Updates different from Journaling? - Why would Soft Updates perform better than Journaling? When or why would it not (e.g. what are potential problems with it)? - Define what a rollback is. - Do the graphs/tables in the paper match up to your intuition? Explain the shape of some of the graphs in the paper. + Rio File Cache: - What did they do? - Why is memory unsafe? - How did they protect memory? - How did they test Rio (i.e. software fault injection, flip bits, etc.)? - Why is this so hard? Why might the results they have be difficult to understand? (3) IPC: -------- - Identify different types of UNIX IPC. - What is a signal handler? How are they implemented (understand HW on it)? - What are process groups and how do they relate to shells? - How are signals used in shells/ (4) Virtual Memory: ------------------- - Page replacement algorithms: Be able to run through LRU, OPT, FIFO, Clock + Converting a Swap-Based SYstem to do Paging... - How did they approximate LRU? - What is a working set? + Implementing Global Memory Management in a Workstation Cluster - How did they perform global page replacement? o which replacement policy was this an approximation of? o how did it work? + Implementation and Performance of .... Prefetching and Caching - What is prefetching? o when is it good? o when is it bad? - What 4 heuristics / rules were followed in the paper and why? - How does LRU-SP work? o what were the invariants they wanted to maintain with LRU-SP? o why are the S and P necessary in LRU-SP? - How do they manage allowing applications to specify replacement and prefetching policies? (5) Microkernels and Virtual Machines: -------------------------------------- - What are microkernels good for and what aren't they good for? + Mach Identify the 5 primitives of Mach How did they improve IPC? How did they maintain binary compatability for existing applications? + L4: On u-kernel Construction What was the motivation for L4? What were the goals of L4? + Exokernel: Exterminate All Operating System Abstractions What were 4 arguments they gave against the Operating System abstraction? - Which ideas and motivations are similar between VMMs, exokernels and microkernels? What is different? - What is a VMM? What advantages does it have? What challenges are there in implementing it? + Disco: Running Commodity Operating Systems on Scalable Multiprocessors Why did they build Disco? How did they deal with the NUMA architecture? Explain the graphs. + Memory Resource Management in VMware ESX Server How was ESX different from Disco? How did ESX share pages? What was ballooning?