Xen Memory Management Study

Only available on StudyMode
  • Topic: Virtual memory, Operating system, Memory management
  • Pages : 8 (2173 words )
  • Download(s) : 124
  • Published : October 10, 2012
Open Document
Text Preview
Xen – Memory Management
Virtual Execution Environments – Group 009 Department of Computer Science and Engineering at IST

Daniel Andrade

Mudit Verma 2011/2012

Andr´ Amado e

This paper presents an overview of Xen’s memory management system. Keywords: Xen, memory management, virtual machine, ballooning, migration



Xen is an x86 virtual machine monitor that allows several operating systems to run in a managed manner on commodity hardware, with a minor impact on performance [1]. It provides a virtual machine abstraction, similar to the underlying hardware, to which operating systems can be ported. In this paper we detail Xen’s memory management model focusing on the ubiquitous x86. We first make a small introduction to some memory management fundamentals, proceed to talk about Xen’s memory management and conclude with an explanation of how it deals with memory during live migration.

may be stored back in memory. Memory management is a central piece of an operating system. To understand Xen’s memory management model we must first be aware of how it is done in a regular operating system. Several approaches exist from a bare-machine approach to paging or segmentation [4]. Paging consists in dividing physical memory into fixed-sized blocks called frames and dividing logical memory into blocks of the same size called pages. When a process is near execution its pages are loaded into available memory frames. A page table is used to map logical memory addresses into physical memory addresses. This technique allows for the physical address space of a process to be noncontiguous solving the fragmentation problem present in other memory allocation strategies. In the segmentation approach memory is viewed as variable-sized segments instead of a linear array of bytes. The logical address space is composed by a collection of segments and external memory is subject to fragmentation. A segment table is used to translate between logical addresses and physical addresses.


Memory management overview


Xen’s memory management

The CPU can only access main memory and its own registers. It fetches instructions from memory and decodes those instructions. Once decoded more operands might have to be fetched from memory and after the instruction is executed, results 1

Xen is responsible for managing memory allocation to guests and paging and segmentation hardware. It ensures that an unprivileged guest cannot access another domain’s share of memory, thus guaranteeing isolation among them. Guests running in

HVM mode believe they are running in a regular system and as such can perform memory management as if they were not virtualized. These guests might detect that they are running in a Xen HVM domain and switch to using paravirtualized memory management for performance reasons. While in full virtualization guest OSes believe they are running on top of a real machine, in paravirtualization the guest OS understands that it is running inside a virtual machine allowing some optimizations to be made. The latter approach requires an explicit port of the operating system. Xen has two types of domains: domainO and domainU. DomainO start automatically on boot and is an OS with high privileges and direct access to physical hardware. It can be used to manage domainU OSes. DomainU is usually a modified version of a commodity operating systems though Xen also supports unmodified OSes. Ported OSes do, however, have access to Xen’s enhanced features and will be more efficient than their unmodified counterparts.

its applications keep the ring 3 access. This way way the kernel and the applications do not have to be in the same protection ring. When two guest OS processes want to switch context they use page table and segmentation hypercalls and invoke Xen to switch the kernel stack pointer using the instruction stack switch(unsigned long ss, unsigned long esp) where ss is the new stack segment and esp is the...
tracking img