Chapter 4 : Virtual Process Memory

4.1 Introduction

4.2 Virtual Process Address Space

Layout of the Process Address Space

Creating the Layout

4.3 Principle ofMemoryMappings

4.4 Data Structures

Trees and Lists

Representation of Regions

The Priority Search Tree

4.5 Operations on Regions

Associating Virtual Addresses with a Region

Merging Regions

Inserting Regions

Creating Regions

4.6 Address Spaces

4.7 Memory Mappings

Creating Mappings

Removing Mappings

Nonlinear Mappings

4.8 Reverse Mapping

Data Structures

Creating a Reverse Mapping

Using Reverse Mapping

4.9 Managing the Heap

4.10 Handling of Page Faults

4.11 Correction of Userspace Page Faults

Demand Allocation/Paging

Anonymous Pages

Copy on Write

Getting Nonlinear Mappings

Kernel Page Faults

Copying Data between Kernel and Userspace

Summary