April 1, 1981
The load address for the discontiguous saved segment should be just
beyond thelargest virtual machine that uses it. If the load address is
unnecessarily high, real storage is wasted becauseCP must have segment
table entries for storage that isneVer used. For example, assume you have five CMS virtual machines in your
installation. Also assume that all five use theCMS support for DOS program development and testing which is in a 32K segment named CHSDOS. If each of your five CMS virtual machines has a machine size of 320K you
should load theCMSDOS segment just beyond 320K. If you load CMSDOS at
a much higher address, for example 512K, you are wasting real storage.
In this case, whenever one of yourCMS virtual machines attaches the CMSDOS segment, CP creates segment table entries for a 544K (512K + 32K)
virtual machine. Although the virtual machine cannot refer to storage
addresses beyond320K or below 512K, CP still must have segment table
entries in nonpageable real storage for those virtual addresses.Once the named segment is loaded at the correct address, you can save
it by issuing theCP SAVESYS command. To be sure that the CMS discontiguous saved segment has segment protection, set the storage key
for the seqment, via theCMS SETKEY command: to something other than X'F' before you save it.
The format of theeMS SETKEY command is: r ----------------------------------------------------------------------, SETKEY I key systemname [startadr] I key I is the storage protection key, specified in decimal. The
valid keys are0-15. systemname is the name of the saved system or segment for which the
storage protection is being assigned.
startadr is the starting address (in hexadecimal) at which the keys
are to be assigned. The address must be within the address
range defined for the saved system or discontiguous saved
segments.Using the startadr operand, you can issue the SETKEY command several times and, thus, assign different
keys to various portions of the saved system orHOW THE INTERFACE WORKS The linkage to attach and detach discontiguous saved segments is
supported via severalCP DIAGNOSE codes. Since the virtual machine is responsible for insuring that the
discontiguous saved seqment it is attaching does not overlay other
programming code, it must know how much virtual storage it has. ByX'EO' during its initialization process, the 'virtual machine can determine its virtual machine storage size.
When the virtual machine needs to attach a discontiguous saved
segment, it must first ensure that the segment is available and that it
does not overlay existinq storage. By issuing theDIAGNOSE code X'64' Part 2. Control Proqram (CP) 139
The load address for the discontiguous saved segment should be just
beyond the
unnecessarily high, real storage is wasted because
table entries for storage that is
installation. Also assume that all five use the
should load the
a much higher address, for example 512K, you are wasting real storage.
In this case, whenever one of your
virtual machine. Although the virtual machine cannot refer to storage
addresses beyond
entries in nonpageable real storage for those virtual addresses.
it by issuing the
for the seqment, via the
The format of the
valid keys are
storage protection is being assigned.
startadr is the starting address (in hexadecimal) at which the keys
are to be assigned. The address must be within the address
range defined for the saved system or discontiguous saved
segments.
keys to various portions of the saved system or
supported via several
discontiguous saved seqment it is attaching does not overlay other
programming code, it must know how much virtual storage it has. By
When the virtual machine needs to attach a discontiguous saved
segment, it must first ensure that the segment is available and that it
does not overlay existinq storage. By issuing the