From: neshnash_at_u.washington.edu
Date: Wed Feb 11 2004 - 16:37:45 PST
This paper presents the memory management decisions that were taken to build the VAX/VMS system; the goal of this system is to provide a single environment for all the VAX application in different hardware characteristics.
The paper starts by describing the VAX-11 hardware and defines the concepts of process and page, then divides the memory address space into user space and system space. The user space, per application, has two regions (P0 and P1) that are used to store application information. The VAX/VMX system uses the same memory layout and tries to solve general memory issues (e.g. thrashing, load performance, disk load performance and page table search) and implements for this purpose the swapper and the pager.
The pager is a procedure that handles the pages in and out of memory. The algorithm relies on increasing memory requirements rather than processor usage. I wonder if this choice still applies when memory is cheap. System pages have similar behavior yet they use their own data structures (resident sets).
The swapper moves pages and resident sets between memory and disk. The swapper helps in prioritizing processes and reduce the paging rate. It is stated that the swapper will not be swapped a process into memory until there is enough room for the its residents set. Why can't we load just the interested part?
CAX/VMS also provides a set of routine for the user to customize the memory management of the applicion, and three mechanisms for performance improvements.
The memory structure is very similar to the one in current operating systems. It seems that this virtual memory implementation still missed the following:
- It is based on pages. They did not take into accounts different sengment sizes
- It uses fixed size pages, instread of flexible size pages, so it leads to internal fragmentation and hence to slow performance.
This archive was generated by hypermail 2.1.6 : Wed Feb 11 2004 - 16:37:47 PST