VMMINTRO(1) VERSION 1.0 VMMINTRO(1) NAME vmmintro - introduction to the VMM package. DESCRIPTION The Virtual Memory Manager package (VMM) is a run time memory-space / disk-space management system whose purpose is to maximize the flexibility in memory/disk partition provided a minimal memory coding approach has been adopted by the user. VMM is composed of a set of FORTRAN callable functions used to control the distribution of fields (e.g., dynamic variables of a model, work fields, ...) between a machine's central memory space and disk space. In order to use VMM, the user requests at the onset of program execution, a certain amount of memory which will be under the control of the Virtual Memory Manager. All VMM functions will then operate within the limits of this memory space. Vmm's operations are automated in as much as they free the user from having to continually worry about whether a certain variable is in memory or on disk. Furthermore, the user does not need to know the actual position of a variable on either medium; it is VMM's responsibility to manage the location of fields on disk and in memory. It is also of VMM's resort to make sure that all necessary fields have been adequately written to disk whenever necessary. VMM's functionality may be divided into four major categories: 1- the allocation of memory space. 2- the management of variables and their characteristics. 3- the management of the allocated memory space and reserved disk space. 4- debugging and fine tuning. In the first category, we find functions for the allocation, deallocation and optimization of memory space. An additional function allows the user to find out how much memory is still available at any one time. The functions used for the allocation of memory are: vmmallc, vmmhpa, vmmhpd, vmmlse and vmmpak. The ability to manage variables is provided through a set of functions that serve in the creation or modification of variables. In addition to a name and some dimensions, each variable is given, by the user, a list of attributes which inform the Virtual Memory Manager of the actions that must be taken during memory to memory or memory to disk transfers and during memory optimization operations. Vmmcre, vmmatt and vmmrnm are the functions used for the management of variables and their characteristics. The third category is composed of functions for loading and unloading fields from memory, for saving variables to disk and for controlling which fields may be displaced or ejected from memory. This category also includes functions that allow the user to access and modify the contents of memory resident fields. The management of the allocated memory space and reserved disk space is done by using the functions vmmlod, vmmget, vmmlck, vmmuld, vmmulk, vmmuln, vmmrls, vmmfgt, vmmsav, vmmcpk and vmmpwd. Debugging and fine tuning assistance is provided by a set of functions which among other things, allow the user to control the amount of information that is printed by the VMM package, and for which variables this information will be printed. Another function prints diagnostic messages on the user's utilization of the package. Aid in debugging and fine tuning is available through the functions vmmdbg, vmmdmp, vmmcks, vmmint and vmmdiag. AUTHORS J.Caveen, M. Lepine, M. Roch - RPN FILES Vmm_controle -file containing all the control structures and information tables used by the Virtual Memory Manager. Vmm_[01-09] -files where variables are saved according to their class, as defined by the user with the vmmcre function. These files are refered to as VMM data files in the documentation. ENVIRONMENT VARIABLES VMM_CONFIG 'directory debug_mode output_file' directory -path to the directory where all the VMM control files will be saved. debug_mode -integer value to indicate whether or not the run time diagnostic messages should be printed. debug_mode = 0 - no messages = 1 - print all messages output_file -name of the file where all diagnostic messages will be written. Normally, VMM uses stdout for all diagnostic messages. Examples VMM_CONFIG=' ./ 1 VMM_out' (Bourne shell) setenv VMM_CONFIG ' ./ 1 VMM_out' (C shell) NOTES All VMM functions are of type integer and return a value greater than or equal to zero upon successful completion. The presence of the control files or data files (Vmm_controle, Vmm_01,...) at the beginning of program execution, indicates to VMM that we are in restart mode. That is to say, we wish to continue the execution of the program from the point where the previous execution stopped. VMM will then use the contents of the various control files in order to re-initialize the memory environment to the state it was in when the previous execution of the program terminated. The program will thus continue to execute as if no interruption had taken place. Note that a check point (i.e., a call to vmmcpk) must have been made during the program's previous execution in order to correctly perform a restart. The control and data files are permanent files. If no restart is wanted, the user must delete all these files before re-executing the program. Note that the control and data files will always exist after the execution of a program even when no call to vmmcpk has been done. Latest revision, November 1993 See also vmmallc(3), vmmatt(3), vmmcks(3), vmmcpk(3), vmmcre(3), vmmdbg(3), vmmdiag(3), vmmdmp(3), vmm_example(1), vmmfgt(3), vmmget(3), vmmhpa(3), vmmhpd(3), vmmint(3), vmmlck(3), vmmlod(3), vmmlse(3), vmmpak(3), vmmpwd(3), vmmrls(3), vmmrnm(3), vmmsav(3), vmmuld(3), vmmulk(3), vmmuln(3).