VM for Digital Unix

author David Jones
date 1997-03-25
index terms pair: VM for Digital Unix; design
revision //info.ravenbrook.com/project/mps/version/1.114/design/vmo1.txt#1
status incomplete document
tag design.mps.vmo1

Warning

As of 2013-05-26, the MPS is no longer supported on Digital Unix, so this document is only of historical interest.

Introduction

.readership: Any MPS developer.

.intro: This is the design of the VM Module for Digital UNIX (also known as OSF/1 and Tru64 Unix; see os.o1). In general aspects (including interface) the design is as for design.mps.vm.

Functions

.fun.unmap: VMUnmap() "unmaps" a region by replacing the existing mapping with a mapping using the vm->none_fd file descriptor (see mumble mumble, VMCreate()), and protection set to PROT_NONE (that is, no access).

.fun.unmap.justify: Replacing the mapping in this way means that the address space is still reserved and will not be used by calls to mmap() (perhaps in other libraries) which specify MAP_VARIABLE.

.fun.unmap.offset: The offset for this mapping is the offset of the region being unmapped in the VM; this gives the same effect as if there was one mapping of the vm->none_fd from the base to the limit of the VM (but "behind" all the other mappings that have been created).

.fun.unmap.offset.justify: If this is not done (if for example the offset is always specified as 0) then the VM will cause the kernel to create a new file reference for each mapping created with VMUnmap(); eventually the kernel refuses the mmap() call because it can't create a new file reference.

Document History

  • 1997-03-25 David Jones. Incomplete document.
  • 2002-06-07 RB Converted from MMInfo database design document.
  • 2013-05-26 GDR Converted to reStructuredText.