The HyperV Architecture and its Memory Manager
By: Andrea Allievi
Scheduled on: June 17 at 11:00
This is a Windows Internals talk. In this talk we are going to speak about the Microsoft Windows memory manager, and how it is used by HyperV. We will start with a brief introduction of the HyperV internal architecture, and how all its components fit together (hypervisor, its loader, the driver that controls the VMs and the user mode parts). We will even make an introduction about what is an Intercept driver and what is its goal. Then we will explore what happens when a user starts a Virtual Machine. The memory management module is described, and the differences between the committed/reserved memory view of the physical root partition are analysed. The way in which HyperV manages the address translation between the Guest Physical addresses (GPAs) and the Host Physical addresses (HPAs) is described too (with some words about the Extended Page Tables). We then analyze how the physical memory is released after the VM is switched off.
Finally, we are going to analyze the differences between the HyperV physical memory allocation algorithm of Windows 8/8.1 and the one of Windows 10 Creators Update, and understand why the latter is faster. In particular, we are going to describe even the physical memory organization of the new OS and its internal data structures.