Lesson 3b (Memory Virtualization) Flashcards
Why is virtual memory implementation so important
it is crucial to performance
How many page tables do we have
one for each process
Where is the pagetable (hardware or software)
it is an os data structure
What does the page table contain
mappings from virtual to physical memory
does the hypervisor know about the page table in each OS
no
What is machine memory
physical memory, like the ram sticks in the machine
who controls machine memory
the hypervisor
is physical memory of a virtual OS contiguous
no
MPN
machine page number
how is the PPN mapped to the MPN
Type hypervisor keeps a page table that maps from physical to machine memory
What is the hypervisor’s pagetable called?
S-PT shadow page table
Where should the PPN->MPN be store for fully virtualized?
hypervisor
Where should the PPN->MPN be store for para virtualized?
Guest OS
How is VPN to MPN made efficent
The hypervisor traps guest PT/TLB updates of the virtualized OS. It then installs that mapping in the S-PT and hardware TLB.
does a para guest know about the S-PT
The PPN to MPN can be pushed in the guest OS
What methods does the para guest use to work with hypervisor MMU
CreatePT, SwitchPT, UpdatePT
Ballooning requires what of the guest OS?
Needs to have a “balloon” device driver.
How does the Ballooning process work?
The balloon driver keeps allocating memory until it has enough to return a page to the hypervisor
What if the host needs less memory
the balloon is deflated
Which type of virtualization uses ballooning
Para and full
How can pages from separate guest OSs be shared
They can be copied into the same MPN and then the OS is told they are copy of write (COW)
how does content base sharing work
A hint frame is created that contains a hash of the pages content. The hash is stored in a hash table upon hit the full page content is compared
What is contained in the hint frame
hash of content, CM#, PPN, MPN, REF# (how many matches)
what happens on successful match in content based sharing?
The PPN is updated in the guest and page is marked COW.
Do shared code pages need to be COW
No. Since the pages cannot be modified
What different memory allocation policies are used by the hypervisor
-pure shared based approach, - working-set based, - Dynamic idle-adjusted shared approach
What approach does vmware es6 server take
if you are holding idle pages it taxes you and takes 50% of the pages away
Why does it avoid a 100% tax?
In case the guest has a sudden increase in need.