• Aucun résultat trouvé

OVERLAY LOADER OPERA TIONALLABELS

Dans le document Xerox Real-Time Batch Monitor (RBM) Sigma (Page 88-92)

10 11

15

Figure 8. Sample Overlay Cluster Configuration

Library modules of the root may not initialize Labeled COMMON allocated in the program portion of the root.

The number of Labeled COMMON blocks associated with a mod.ule is limited to 40.

Communication between segments by external reference/

definition linkages is subject to the following restrictions:

1. No segment in a path may reference a segment in another path.

2. The user must ensure that all communi cati ng segments are in core memory during execution.

3. Because the Overlay Loader will satisfy a linkage only within.a path, identical references and defintions may be used in different paths that do not contain a common segment. However, the user must avoid refer-ences to the same definition in defferent higher level segments.

4. Library search procedures for a User or System Library restrict the use of unique library DEFs and REFs to a maximum of 225 along any path of the program.

5. Forward references in library modules of the root are disallowed, and it is suggested as good programming practice that User Library programs not make references outside the library routine.

To satisfy any remaini ng unsatisfied primary references, the Overlay Loader searches the following libraries in the specified sequence:

1. Publ i c Library

2. Monitor Service Routines 3. Basi c or Extended Library 4. Main Library

CORE LAYOUT DURING LOADING

Background memory during the operation of the Overlay Loader is divided into four areas:

1. A fixed area large enough to contain the background temp stack, the Overlay Loader root, and the Loader overlays.

2. The segment tabie, fixed at lO(n+l) where n equals the number of segments which contains the user's OV:LOAD table.

3. A dynamic area in which the segment is loaded.

4. A dynamic area containing the symbol tables (alloca-tion is eight words per symbol).

If areas 3 and 4 overlap at any point in the load process, overflow occurs and loading aborts.

OVERLAY LOADER OPERA TIONALLABELS

The Overlay Loader references the operational labels I is.ted below. Some assignments are user-defined, while others are handled internally by the Job Control Processor or by the Overlay Loader itself. All other operational labels referred to on ! $LD cards must be assigned and positioned by the user prior to the! OLOAD card.

Label Explanation CC Control commands.

DO

GO

LI

OC

OV

Control commands as read from CC, maps, and diagnostic messages. The default assignment is that given by the Job Control Processor on read-i ng a !JOB card.

Sequential-access file that contains object mod-ules to be processed by the Overlay Loader.

Object modules are written onto GO by a pre-ceding processor. The Loader rewinds GO initially. GO receives a default assignment by the Job Control Processor to the permanent fi Ie RBMGO in the System Data area.

Assigned internally to System or User Library as library searches are performed.

Abort messages and Overlay Loader messages that require operator attention.

Output file for the Overlay Loader containing the completed overlay cluster. If the user wishes to have the overlay cluster ina permanent fi Ie, he must key in SY (for write-protected files) and assign OV to that permanent file. By default, OV is assigned to the permanent file RBMOV in the System Data area.

76 Core Layout During Loading/Overlay Loader Operational Labels

Label Explanation Label Explanation PI

Xl

I

X2

RS

LS

lO

Used for loading the Overlay Loader's own overlays. PI is assigned by the Job Control

Processor.

Temporary RAD or disk pack scratch file con-taining the symbol table for each segment. Xl is assigned by the Job Control Processor.

Assigned internally to System and User Library as I ibrary searches are performed.

Assigned internally to read the RBM Symbol Table (RBMSYS) from the System Data area.

Assigned internally to read the Public Library Symbol Table (LIBSYM) from the System Data area.

An optional operational label used to write the indents of nonlibrary programs for use by Debug at execution time. If the user assigns lO, the assignment must be for a blocked file that has a record length of five words. By default, ID is assigned by the Job Control

lO (cont.)

Processor to RBMID (a one-sector fi Ie) in the System Data area.

MAP

Three types of maps may be output to the DO device following PASS2, according to one of three Map con-trol commands that may be input: a Short map (! $MS), Long map (! $ML), or Program map (! $MP). If no map control command is specified, no map will be output.

Figure 9 shows the format for a Long Map. Note that DEFs in the Permanent Symbol Table are mapped after the Overlay Task line. The format for a Program map would be the same as the Long map except that library and Permanent Symbol "::lble symbols are suppressed. The

lines of the map that are flagged with an asterisk (*) show the format and output of a Short map (in an actual Short map no asterisk would appear in the listing). A definition of each item of the map is included in Figure 9.

*OVERLAY TASK

{~~}

ORG = xxxx HLLOC = xxxx CBASE = xxxx CSIZE = xxxx UMEM = xxxx SECT = xxxx {NONE}

xxxx

*ROOT ORG = xxxx LWA = xxxx LEN = xxxx TRA SEV xxxx OV:LOAD = xxxx

B/E/M zzzz

°kSEGMENT IDENT NODE ORG LWA LEN TRA SEV xxxx xxxx xxxx xxxx xxxx xxxx xxxx

[f

1] DEF etc.

[f

1

f

2]REF etc.

REF

*SEGMENT

"'~ERRSEV = xxxx

*END MAP

Fi gure 9. Long (Load) Map Format

Map 77

where header keywords have the followi ng meani ng:

Overlay Task Keywords ORG

HLLOC CBASE CSIZE UMEM

SECT

Root Keywords

ORG LWA LEN TRA

SEV OV:LOAD

General Keywords

DEF REF

78 Map

First word address of the Overlay Task area. It is the FWA of the Temp stack.

Last word address of longest segment.

Base of COMMON.

Largest COMMON size encountered.

The number of locations between the end of the longest path, and either the beginning of COMMON or the end of the assigned task area.

The number of sectors required to store entire overiay ciuster.

FWA address of the root. In the foreground, this is assumed to be the address of the TCB; in the background, it is the FWA of the root.

Last word address of the root segment. The area from ORG to LWA includes the root code and the OV:LOAD table (and in the foreground, the TCB).

LWA-ORG+1.

Background - last end transfer encountered on a module used to form the root. If there is no transfer address, INONEI is output.

Foreground - the entry address of an initialization routine that arms and optionally triggers interrupts at run time. If the Loader builds the TCB, it is assumed that no such initialization exists and TRA=NONE.

Error severity encountered during loading binary modules. Taken from the END item of the binary module.

Address of the OV:LOAD table.

Error and identifier flags preceding external definitions and references. Possible flags are:

D LC U U P S

Double definition or reference.

Labeled COMMON

(DEF) - a definition declared, but given no value.

{REF} - reference unsatisfied in this path.

Primary reference.

Secondary reference.

An e'xternal definition.

An external primary or secondary reference.

EBCDIC DEF/REF name of one to eight characters.

Figure 9. Long (Load) Map Format (cont.)

General Keywords (cont.) L/I

S/U/p B/E/M yyyy zzzz

Segment Keywords IDENT NODE

ORG

LWA LEN TRA

SEV ERRSEV

END MAP

Library or Input REF /DEF.

System, User, or Public Library.

Basic, Extended, or Main mode.

Value of a DEF.

The number of the segment in which this reference was satisifed. For unsatisfied references, zzzz is blank.

Numerical identifier of this segment as found as the first parameter on the! $SEG card.

The numerical identifier of the segment to which this one will be attached. If NODE is the root, 0 is output.

Beginning location (execution) of this segment. The point in core at which loading begi ns. The fi rst reserves before data ina segment are not output.

LWA of this segment. Includes areas defined by RES and ORG.

LWA-ORG+1.

The last encountered transfer address is placed as an entry point in the OV:LOAD table for this segment.

Same as for ROOT.

Total error severity for loading process (0 or 1). If any SEV

>

0 or there are unsatisfied primary references, ERRSEV=l. Only in forming a PUBLIB do double DEFs or unsatisfied secondary references cause ERRSEV=l.

Completion of loading process.

Figure 9. Long (Load) Map Format (cont.)

CALLING OVERLAY LOADER

F or B specifies ei ther a foreground (F) task or a The Overlay Loader is requested via an ! OLOAD

com-mand which causes the root segment of the Loader to be read into core memory from the RAD. The form of the command is

background (B) task. The defau I t case is background.

S specifies a step mode of loading to be used for paper tape input.

! OLOAD [segments,

{~}

,S, D, X, cmnJ[, R]

where

segments denotes the number of segments in the overlay cluster. If "segments" is not specified, a zero is used, denoting that only a root segment is to be loaded. The value of the segments param-eter may exceed the actual number of segments to be loaded.

90 10 37F-1 (3/72)

D indicates the indent of each nonlibrary module is to be written to operational label ID for use by Debug at exec uti on ti me.

X indi cates that the Loader is to abort the job if a severity error greater than zero is encountered during loading. The loading procedure is com-pleted and the map is output.

cmn for background tasks, cmn denotes an opti onal COMMON size; for foreground tasks, cmn denotes either a base for COMMON or, in the case of zero COMMON, the upper limit of the task area. If the address specified by the cmn param-eter is higher than root FWA. Foreground loads

Call i ng Overlay Loader 79

may specify the cmn parameter at a lower address foreground vv'ithout checkpointing background until such time as it requires background space.

Caution must be exercised in the use of this pa-rameter, since the background must be explicitly checkpointed and restored, when necessary, by the foreground task.

In allocating COMMON for background programs, the Overlay Loader compares the cmn parameter with the first nonzero COMMON size allocation value encountered in loading and employs the larger of these two values. The COMMON base is set by subtracting the COMMON size from K:UNAVBG.

For all foreground programs having COMMON, the follow-ing rules apply:

3. Blocking buffers will always be allocated immediately preceding COMMON base.

4. If COMMOt--.! base is greater than program FWA, it wi II be used as an upper I imit for program loading. If not, K:BACKP-l will be used and the 'R' option may not be used.

80 Control Command Format/Control Command Repertoire

Reading an !EOD control command causes the Overlay Loader to satisfy forward references, output any specified map, close files, and return control to RBM via M:TERM.

The form of the command is

Dans le document Xerox Real-Time Batch Monitor (RBM) Sigma (Page 88-92)