8.96 MAINSIZE (Display or set main storage size)

8.96.1 Function

The MAINSIZE command is used to specify the size of the main storage. Given without an argument the
MAINSIZE command displays the current size of the main storage. Storage is allocated in megabytes,
unless a specific unit is specified. The actual upper limit of the main storage is determined by the host
system's architecture, operating system, and on some systems the amount of physical memory and
paging space you have available. The practical limit depends on the maximum amount of storage that
can be obtained by “malloc” (usually around 1 GB on 32-bit platforms; on 64-bit platforms the value
should only be limited by available paging space).

When increasing the main size Hercules attempts to allocate first the new storage. If the new allocation is
successful then the previously allocated memory will be freed. This is to prevent a situation where the old
memory is freed first, then the new allocation fails and a reallocation of the memory in the previous size
also fails because of storage fragmentation and therefore leaving Hercules without memory.

When decreasing the main storage the memory will stay allocated in the previous size but the storage
size will appear as decreased. Subsequent increases will not reallocate memory unless they go over the
already allocated amount.

An additional optional argument determines the locking state of the allocated memory (page lock by host
operating system). The LOCKED option indicates that the memory is to be locked into storage while UN-
LOCKED (
the default) indicates that the memory is not locked into the storage.

Please note that Hercules preserves the last locking state of MAINSIZE. Once storage is locked, any sub-
sequent change to the main storage size will honor the existing lock state of memory unless the lock state
is specified again on the MAINSIZE command.

Caution: Do not lock main storage unless sufficient real memory is available to back up the request.
Failure to do so may require the host system to be rebooted.

8.96.2 Syntax

Descriptive

msize[ ]
]

Diagram

Êʬ¬¬ ¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬§¬¬¬¬¬¬¬¬¬¬¬ÊÍ






~¬¬¬ ¬¬¬® ¬®




msize ¬¬¬¦¬¬¬¬¬¬¬¬¬¦¬¬







¬¬¬ ¬¬¬«

















P ¬¬¬«





¬¬¬ ¬¬¬

8.96.3 Parameter

msize

The value of msize must be a valid decimal number. The actual upper limit is dete-
rmined by the host system's architecture, the operating system and on some sys-
tems the amount of physical memory and paging space that is available.

For storage sizes less than 16M, sizes not on a 4K boundary are rounded up to the
next 4K boundary. Otherwise, storage sizes not on a 1M boundary are rounded up
to the next 1M boundary.

The minimum size is 4K for architecture levels ALS0 and ALS1 (S/370 and
ESA/390), and 8K for architecture level ALS2 (ESAME) and higher. A maximum of
64M may be specified for architecture level ALS0 (S/370), 2048M (2G) for ALS1
(ESA/390) and 16E for architecture level ALS2 (ESAME) and higher.

The default on startup is 2M.

B

‘B’ determines that the number given is specified in bytes (no multiplier).

K

‘K’ determines that the number given is specified in kilobytes (multiplier 2**10).

M

‘M’ determines that the number given is specified in megabytes (multiplier 2**20).
This is the default if no unit is appended.

G

‘G’ determines that the number given is specified in gigabytes (multiplier 2**30).

T

‘T’ determines that the number given is specified in terabytes (multiplier 2**40). On
32-bit machines the unit terabytes is not available.

P

‘P’ determines that the number given is specified in petabytes (multiplier 2**50). On
32-bit machines the unit petabytes is not available.

E

‘E’ determines that the number given is specified in exabytes (multiplier 2**60). On
32-bit machines the unit exabytes is not available.

LOCK

Attempt to lock the storage (pages locked by the host operating system).

UNLOCK

Leave the store unlocked (no pages locked by the host operating system). This is
the default.

Notes:

The actual upper limit is determined by the host system’s architecture and operating system and the
amount of physical memory and available paging space. The total of MAINSIZE and XPNDSIZE on host
systems with a 32-bit architecture will be limited to 4G; host systems with a 64-bit architecture will be
limited to less than 16E.

Using minimum storage sizes, storage sizes less than or not on a 64K boundary for architecture level
ALS0 (S/370) or not on a 1M boundary for architecture level ALS1 (ESA/390) and higher, it may be pos-
sible to generate error conditions not covered by the “Principles of Operations”.

Use of storage sizes greater than supported by the guest operating system may generate incorrect re-
sults or error conditions within the guest operating system.

Previous Page Next Page