COMP 3000 Final exam review 2010
Sample questions. Also refer to the midterm review/exam.
- On an x86-class processor that supports hardware virtualization, it is possible in principle to virtualize any OS that can run on the native hardware. In practice, only certain operating system types and versions will run well on a given VM platform (e.g., VirtualBox, VMWare Player). What is one reason for this discrepancy?
- What are two uses for nested virtual machines?
- Multi-dimensional page tables are designed to avoid using shadow page tables in nested virtualization. What are shadow page tables, and when must they be used?
- What is a sloppy counter? Why is it more scalable than a regular counter?
- In Boyd-Wickizer et al (Linux Scalability to Many Cores), they analyze the scalability of seven applications. For one of these applications, briefly explain 1) what does the program do, 2) what was one key bottleneck they found in the kernel for this application, and 3) how did they address this bottleneck?
- Why is OS timekeeping affected by power saving mechanisms?
- Why does live migration of VMs pose fundamental problems for OS clocks?
- What is one source of false positives in TaintDroid? (In other words, what kind of code/data behavior leads to false alarms?)
- What part of Android did was modified for TaintDroid? Is this part of Android's kernel? Explain briefly.
- What is a hardware breakpoint? Why is it essential to the implementation of DataCollider?
- Why does DataCollider have an extremely high rate of false positives? As part of your explanation, give an example of a benign action that DataCollider would flag that is actually benign.
- Why are exceptions (software interrupts/traps) expensive on modern processors?
- What problem is FlexSC's M-on-N threading system designed to solve?