2. The STRINIT macro instruction releases
any previous GETMAIN requests.
all storage allocated by
3. Almost all coamands issue a STRINIT macro instruction. Thus,
executing almost any CMS command will cause all GETMAIN storage to
be released.
Storage allocated by the DMSPREE macro instruction may be released in.
any of the following ways:
1. A specific block of such storaqe may be released by means of thp. DMSPRET macro instruction. - 2. Whenever any user routine or CMS command abnormally terminates (so
that the routine DMSABN is entered) and the abend recovery
facility of the system is invoked, all DMSPREE storage with TYPE=USER is released automatically. LAcepl the case of abena recovery, storage allocated by the DMSPREE macro is never released automatically by the system. ·Thus, storage allocated by means of this macro instruction should always be
released explicitly by means of the DMSPRET macro instruction. DMSPREE SERVICE ROUTINES The DMSPRES macro instruction is used by the system to request certain
free storage management services.
The format of the DKSPRES macro is:
r-------------------------------------------------------------------------------,
[label] DMSPRES INlT1
INIT2
CHECK CKON CKOFP UREC CALOC r r" I I IBALRII -t. t. I I I I I I I _____________________________________________________________________________ J
label IIIT1 is any valid Assembler language label.
invokes the first free storage initialization routine, so
that free storage requests can be made to access the system disk. Before INIT1 is invoked, no free storage
requests may be made. After lNlT1 has been invoked, free
storage requests may be made, but these are subject to
the following restraints until the second free storage
management initialization routine has been invoked: All requests for USER type storage are changed to
requests for NUCLEUS type storage. Error checking is limited before initialization is
complete. In particular, it is sometimes possible to
release a block that vas never allocated.
2-22 IBM VM/370 System Logic and program Determination--Volume 2
INIT2
CHECK CKON CKOFF UREC CALoe All requests that are satisfied in high storage must be of a temporary nature, since all storage allocated 1n high storage is released when the second free
storage initialization routine is invoked. When CP's saved system facility is used, the CMS systea is saved at the point just after the A-Disk has been made accessible. It is necessary for DMSFRE to be used before
the size of virtual storage is known, since the saved
system can be used on any size virtual machine. Thus,
the first initialization routine initializes DMSFRE so
that limited functions can be requested, while the second
initialization routine performs the initialization
necessary to allow the full functions of DKSFRE to be
exercised.
invokes the second initialization routine. This routine
is invoked after the size of virtual storage is known, and it performs initialization necessary to allow all the
functions of DMSFRE to be used. The second
initialization routine performs the following steps: Releases all storage that has been allocated in the
high storage area. Allocates the FREETAB free storage tablee This table
contains one byte for each 4K page of virtual storage,
and so cannot be allocated until the size of virtual
storage is known. The FREETAB table is initialized, and all storage
protection keys are initialized. All completely unallocated 4K pages on the low storage
nucleus free storage chain are removed to the user
chain. Any other necessary operations are performed.
invokes a routine that checks all free storage chains for
consistency and correctness. Thus, it checks to see
whether or not any free storage pointers have been
destroyed. This option can be used at any time for
system debugging.
turns on a flag that causes the CHECK routine to be
invoked each time a call is made to DKSFREE or DMSFRET. This can be useful for debugging purposes (for example,
when you wish to identify the routine that destroyed free
storage management pointers). Care should be taken when
using this option, since the CHECK routine is coded to be
thorough rather than efficient. Thus, after the CKCN option has been invoked, each call to DMSFREE or DMSFRET will take much longer to be completed than before.
turns off the flag that was turned on by the CKOB option.
is used by DMSABB during the abend recovery process to
release all user storage.
is used by DMSABN after the abend recovery process has
been completed. It invokes a routine which returns, in
register 0, the number of doublewords of free storage
that have been allocated. This number is used by DMSAEN to determine whether or not the abend recovery has been
successful. CMS Introduction 2-23
Previous Page Next Page