Study Guide for CS656 Final

Posted: Friday May 2 2008

 

1.    Note: you will NOT be asked specifically about any of the student projects.

1.   “Facts”-type

·        What problem is the paper claiming to solve?

·        What is the (proposed?) approach in the paper for solving the problem?

·        What is an overview of the mechanism described in the paper?

·        What is the way that the authors attempt to evaluate their work?

2.   “Analysis”-type questions

·        Is the problem statement compelling? Does this problem need to be solved?

·        Are you convinced the paper solved the problem? What are the pros/cons of the approach? What are the pros/cons of the evaluation methodology? What are the pros/cons of the results?

 

1.     THE/NUCLEUS/HYDRA

·         What are the main philosophical differences in design of the THE system, the Nucleus system, and HYDRA?

·         In HYDRA, what is the purpose of the Local Name Space (LNS)? What is the relation between a process and LNS(s)?

·         Does HYDRA have a notion of a “system call”? How is it similar/different to a “normal procedure call”?

2.    Pilot/Observations

·         Pilot was designed to be used by a single user. How did this impact its design?

·         Pilot was written in Mesa. What are the pros/cons of this decision?

·         What is the “Space” abstraction in Pilot – what is it used for?

3.     Exterminate/Exokernel

·         What are the similarities and differences in philosophy of Exokernel vs. Nucleus?

·         In class, we held the great “Exokernel debate”. What were 3 of the reasons discussed that advocated that this was “GREAT research”? What were 3 of the reasons discussed that advocated that this was “HOT AIR”?

4.    Disco

·         What are the similarities and differences of Exokernel and Disco?

·         How does Disco hide the “NUMA-ness” of memory?

5.    Xen

·         What are the similarities and differences of Exokernel and Xen?

·         What are the similarities and differences of Disco and Xen?

6.    Improve reliability …(“Nooks”)

·         Why don’t the authors pursue virtualization as an approach to solve their problem?

·         How much of a performance hit does Nooks cause? Where does this performance hit come from? Is this acceptable?

7.    Scheduler activations

·         The use of Scheduler Activations allows an application to “tell” the OS information that the app would not normally be able to tell (and vice-versa). What information does the application tell the OS, and what information does the OS tell the application?

·         Are scheduler activations (or something derived from it) heavily used today? Why or why not?

8.    Lottery scheduling / Resource containers

·         Is lottery scheduling useful for disks? Why or why not? Are there any issues that arise that do not arise as in the use of lottery scheduling for CPU(s)?

·         What are the similarities and differences between Exokernel and Resource Containers? For example, what would someone who LOVES exokernel think about Resource Containers? 

9.    Monitors

·         Compare the use of monitors to semaphores: When should I use monitors and when should I use semaphores? What are the pros/cons of each?

·         What is “deadly embrace”? How do you know if there exists a “deadly embrace”? How do you prevent it from occurring?

10.    Experience with processes/monitors in Mesa

·         What’s the difference between “Hoare monitors” and “Mesa monitors”? Why does this difference matter (or does it)?

·         What is the interaction between process scheduling and monitors as discussed in this paper?

11.    Eraser

·         How is the lockset algorithm implemented in this paper?

·         Critique the evaluation of Eraser (e.g., what’s good and what’s bad about the evaluation as presented in the paper)?

12. TxLinux

·         What’s the difference between xspinlocks and cxspinlocks?

·         What are the pros/cons of hardware transactional memory vs. software-based transactional memory?

13.  Working set/ VM Management in VAX/VMS

·         What is the relationship between the “working set” and virtual memory victim-selection policies such as LRU, FIFO, etc.?

·         In “VM management in VAX/VMS”, what is “clustering” and how is it evaluated?

14. FFS

·         Are there any situations where the “cylinder groups” of FFS perform poorly?

·         To what extent is FFS outdated because of assumptions (e.g., re: disk properties) made that are no longer true?

15. LFS

·         How does LFS perform segment cleaning?

·         Describe a workload (a set of files and a set of access patterns of reads and writes) that would perform much better on (a) FFS than on LFS, (b) LFS than on FFS

16. RAID

·         What is the “small write problem” with regard to RAID 5?

·         On what basis (metrics/requirements) does a person choose one type of RAID (vs. another RAID type)?

17. NFS/AFS/GFS

·         Performance is a big issue in NFS. When would NFS performance be the same as the performance of the local file system?

·         Describe a workload (a set of files and a set of access patterns of reads and writes) that would perform much better on (a) AFS than on NFS, (b) NFS than on AFS, (c) NFS than on GFS, (d) GFS than on AFS

18. Trusting trust/ Authentication

·         What is the difference between “speaks for” and “delegation”?

·         What is the value of the “theory” of authentication?

19. SecVisor

·         To what extent does SecVisor require hardware support to be effective?

·         Critique the evaluation of “SecVisor”: pros/cons

20. Locus / Singularity

·         To what extent did NFS (alone) solve the problem that Locus was addressing? What about RAID (alone)? What about RAID + NFS?

·         What were the most important strengths/weaknesses of Singularity?