top - download
⟦f45b2867c⟧ Wang Wps File
Length: 76126 (0x1295e)
Types: Wang Wps File
Notes: FIX/1105/PSP/046 II
Names: »3943A «
Derivation
└─⟦074b80a9e⟧ Bits:30006146 8" Wang WCS floppy, CR 0345A
└─ ⟦this⟧ »3943A «
WangText
…1b……00……00…K…02…K
…00……00…K K…05…H…00…H…07…G…08…G…09…G…0a…G…0d…G…0e…G…0f…G…07…F…08…F…0c…F…05…E…09…E…0b…E
D…08…D…0b…D…02…&…09…&…0b…&…0c…& &…05…&…06…&…07…%…0d…%…05…$…0d…$
#…08…#…0e…#
"…0c…"…01…"…86…1 …02… …02… …02… …02…
3943A/0345A
…02…FIX/1105/PSP/0046
…02…APE/880923…02……02…#
ESP SYSTEM PSP
…02…Issue 1…02…FIKS
3.3.10 S̲y̲s̲t̲e̲m̲ ̲U̲t̲i̲l̲i̲t̲i̲e̲s̲ ̲
Some activities (commands) have been developed to be
used as debugging tools, when the processing of the
FIKS system has to be examined at investigation of
errors and at testing of new software. The activation
of these utilities are not allowed, when the FIKS system
is operating in a real environment.
3.3.10.1 D̲U̲M̲P̲ ̲O̲F̲ ̲M̲E̲M̲O̲R̲Y̲ ̲(̲D̲Y̲)̲
The CR80-memory in the user processor is dumped to
disks. The area in use is declared in the critical
region CONFIG-CONSTANT ̲BLOCK.MEMORY ̲PAGES. The content
of each existing memory-page is dumped to a file placed
in *MOVHEAD*MD with name PAGE00/PAGE01/PAGE02/PAGE03.
3.3.10.2 D̲E̲B̲U̲G̲ ̲(̲D̲G̲)̲
This utility is used to:
1) dump CR80-memory on the console
2) patch in CR80 memory
3) search for destinct word in the CR80 memory
4) send an AMOS signal/message to a process
The use and function of the utility is explained and
illustrated by exhibit examples: (see also sec. 3.2.2.4
for command line format).
Re 1: The printout is performed using both hexadecimal
format of the words and ASCII format of the
bytes. It must be observed that only values
printed on the same line are from the same
"moment of time".
Re 2: Only one word can be patched at one moment
Therefore special precautions (stop of processing
!) must be taken when more than one word shall
be patched.
Re 3: The search-utility is implemented by "reuse"
of the dump-utility procedures. Instead of
dumping a word, this will be compared to the
one keyed in. This observation may help to
explain the results.
Re 4: When the AMOS-message has been sent to a process,
the ESP will (temporary) cancel "receipt of
answers" as an awaited event when checking
for events (ref. sec. 3.3 (18+19)).
Re 4: When the AMOS-message has been sent to a process,
the ESP will wait for answer upon this before
receipt of new commands are resumed. The processing
concerned the other ESP-task will continue.
When the answer arrives the buffer contents
is dumped on the console. To escape from a
case where the answer stays away, the operator
can interrupt the ESP, i.e. key in "!".
3.3.10.3 Q̲A̲C̲C̲E̲S̲S̲/̲M̲T̲C̲B̲-̲U̲t̲i̲l̲i̲t̲y̲ ̲(̲Q̲M̲)̲
This utility is used to dump the contents of the MTCB's
and queues as they appear in the CR80-memory. The same
dumps could in fact be performed with the DEBUG-utility.
The QM-utility can be seen as an automation of this.
The QM-utility makes extensive use of the FIKS MTCB-
and QUEUE-data structures. These are described in details
in ref. 13 + 27 + 28. See also sec. 3.2.2.4 for command
line input format. The use is illustrated by examples.
3.3.10.4 I̲N̲S̲P̲E̲C̲T̲ ̲(̲I̲T̲)̲
This utility is used to dump the content of a diskfile
(inspection file) on the console printer and to make
patches in the file. The use and function of the utility
is explained and illustrated by giving examples. See
also sec. 3.2.2.4 for command line format.
When the volume, where the inspection file resides
is specified (IT V volume) then the maindirectory of
that volume is opened as inspection file. If an old
inspection file was opened, this one is closed. A lookup
in the current inspection file (directory) of a new
inspection file is executed with the command 'IT filename'.
If the file is found, then this file is opened as new
inspection file and the old one is closed. In this
way it is possible to INSPECT every file in the FIKS-system.
Dumping of data from inspection file is executed by
stated a start location and a dump size. Start location
is a wordoffset in the file composed of two items,
most and least significant word of the doubleword forming
the address. If the dumpsize, stated in words, is not
specified, then this is defaulted to be the number
from start location until end of file. The printout
is performed using both hexadecimal format of the words
and ASCII format of the bytes.
Patching of words in the inspection file is performed
when the address, a doubleword wordoffset, and the
words to be patched, are stated.
A 'reset inspection file' capability has mainly been
implemented to handle the sitiationom that arise when
there does not exist enough available diks-space for
initializing to 'TOS offline'. By using the 'IT R'-
utility at 'FIKS online', it is possible to procure
the diks-space needed for generation of the required
'TOS-initializing'-files.
3.3.10.5 F̲L̲O̲P̲P̲Y̲ ̲U̲T̲I̲L̲I̲T̲Y̲ ̲(̲F̲Y̲)̲
This utility is used to dump files to/from the FIKS
disk system from/to a floppy-diskette, while the FIKS-system
is operational. See sec. 3.2.2.4 for command line format.
All dumping (copying) goes on between a directory in
the FIKS-disk system (FLOPPY ̲SYSDIR) and the maindirectory
on the floppy volume with name FLOPPY. The FLOPPY ̲SYSDIR
is specified in a way similar to that used when specifying
the INSPECTION-file. Before copying is started the
file DUMPED TO is CREATED with contiguous organization
and size equal to the file DUMPED FROM. If the file
already exist, then it is REMOVED before CREATION is
performed.
At Node/MEDE-installations the utility can only be
used in BRANCH ONE. In return it can be used even if
the branch is STANDBY.
3.3.11 C̲o̲m̲m̲a̲n̲d̲ ̲F̲i̲l̲e̲s̲
Commands to be executed after each other can be held
in a disk file. This file consists of command lines
formatted as usual keyed in commands - ref. sec. 3.2.2.
The termination character for a line is a NL (hexvalue
# OA). This format is used because that, it is then
immediately possible to create, fill and change a command
file in off-line TOS-environment using the standard
CR80-utility EDIT.
When a TD-command is issued, then the command file
(placed in SYSDIR) is opened. Then repeatedly, a command
line is read from the command file into the INPUT ̲LINE-buffer,
the line is interpreted and the command executed, until
end ̲of ̲file or an other TD-command is met. Occurence
of an error in the interpretation or a 'SWITCHOVER'-error
in the processing of the command, will also terminate
the reading of new commands. Processing of command
files is done in one level, i.e. there is no return
to a command file where a TD-command is met.
The command file concept has been implemented for use
in the initializing procedures of a FIKS system, ref.
sec. 3.3.20. At the execution of these procedures the
command files ACTIVE, STANDBY, RECOVER and CLOSE is
used. Appendix 7.1 contains a listing of those files.
3.3.12 S̲e̲q̲u̲e̲n̲c̲e̲ ̲o̲f̲ ̲C̲o̲m̲m̲a̲n̲d̲s̲
At moments where the system has no access to the disk
system, command files can not be used. At the first
step of an initialization procedure, where the disks
are not assigned, there would be no way in which a
sequence of command could be carried out, if the concept
SEQUENCES has not been introduced. SEQUENCES work like
command files. Instead of reading command lines from
a file, then the INPUT ̲LINE-buffer is filled with commands
from internal ESP-data area. This means that changing/updating
of SEQUENCES will involve a new ESP-process. The execution
of SEQUENCES is started with ESP-procedure calls. The
following SEQUENCES are used in current ESP-version.
SYSTEM ̲OPEN1
…0e… ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲…0f…
UN #FFFF #FFFF "System FMS-user on
UN O O "Ordinary FMS-user on
AN * "Assign default
MT "Mount volumes
GT MOVHEAD "SYSDIR = *MOVHEAD*MD
DR FIX ̲CONFIG.D "SYSDIR = FIX ̲CONFIG.D
Used at the preliminary initialization of the disk
system.
SYSTEM ̲OPEN2
…0e… ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲…0f…
AN * "Assign default
MT "Mount volumes
GT MOVHEAD "SYSDIR:= *MOVHEAD*MD
DR FIX ̲CONFIG.D "SYSDIR:= FIX ̲CONFIG.D
Used at the secondary (after the preliminary) initializations
of the disk system.
IO ̲SYSTEM ̲ CLOSE
…0e… ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲…0f…
UE "Update volumes
DT "Demount volumes
DN "Deassign
UF O O "Ordinary FMS-user off
UF #FFFF #FFFF "System FMS-user off
Used when the system is CLOSED.
SYSTEM ̲ACTIVE
…0e… ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲…0f…
TD ACTIVE "Start ACTIVE-command
file
SYSTEM ̲STANDBY
…0e… ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲…0f…
TD STANDBY "Start STANDBY-command
file
SYSTEM ̲RECOVER
…0e… ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲…0f…
TD RECOVER "Start RECOVER-Command
file
SYSTEM ̲CLOSE
…0e… ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲…0f…
TD CLOSE "Start CLOSE-command file
3.3.13 A̲p̲p̲l̲i̲c̲a̲t̲i̲o̲n̲ ̲C̲o̲m̲m̲a̲n̲d̲ ̲
It is possible for a process, i.e. a FIKS application
to issue a command to the ESP-system. This is performed
by the application using the interface described in
sec. 3.2.2.5.
The processing of the command seen from the ESP-system
is as follows:
1. The CONSOL-process is waiting on an AMOS-message
(+ other events).
2. CONSOL receives an AMOS-message and transfers the
contents to the ESP-process in an AMOS-system message.
Receiving of more AMOS-messages are inhibited,
i.e. possible new applications commands are enqueued
in the AMOS-message-queue.
3. ESP receives the system message from CONSOL and
sets the ESP ̲STATUS to PROCESS ̲COMMAND and stores
the message, edited to the standard command format,
in the PROCESS ̲COMMAND ̲EDIT-buffer. The system
answer is returned.
4. When the ESP-process is not occupied by higher
priority (ref. sec. 3.3.19) processing, then the
outstanding PROCESS ̲COMMAND is served. The PROCESS
̲COMMAND ̲EDIT-buffer is transferred to the INPUT
̲LINE-buffer for interpretation and execution of
the command. The ESP ̲STATUS is changed from PROCESS
̲COMMAND to PROCESS ̲EXECUTING.
5. ESP interprets the command. If an error occurs
in this procedure, completion code is inserted
in the CONSOL-message buffer. No execution is performed.
6. ESP executes the command. If a local ESP-error
occurs while this execution takes place, then completion
code is inserted in the CONSOL-message buffer.
7. ESP ̲STATUS PROCESS ̲EXECUTING is cleared and a AMOS-signal
is sent the CONSOL-process.
8. CONSOL receives the AMOS-signal and is thereby
notified that the processing of the application
command is finished. CONSOL returns the AMOS-answer
to the application process and enables receiving
of AMOS-messages, i.e. opens for more application
commands.
3.3.14 E̲S̲P̲ ̲l̲o̲g̲g̲i̲n̲g̲s̲ ̲
Whenever a FUNCTION has been executed successful, this
is logged on the console printer, if printing is enabled
(i.e. if ESP ̲STATUS is HARD ̲COPY ̲WANTED- ref. sec.
3.2.2.2). See sec. 3.2.2.6 for format of the logging.
The logging is very essential in the planning of how
the CR80-memory shall be layed out - ref. sec. 3.3.2.
The memory allocation for the modules loaded is logged.
This information can be used to determine the new memory
layout, when modules have been changed or added.
When the Watchdog is in monitor-mode (ref (14)), then
the logging is suppressed. It is therefore necessary
to be in transparent Watchdog-mode to the logging branch,
if the printing shall appear. Error reports are always,
in spite of the Watchdog-mode, printed. This 'mechanism'
is used to make sure, that other loggings essential
for the operations of the system are also printed.
Logging of DISK ̲STATUS (at changes) and occurence of
WILD ̲EVENT's is formatted using error report format,
and thereby enforcing the printout. The TYPE in Watchdog
header (ref (13), sec. 4.2.2.1) is sat to "Non fatal"
to inhibit switchover action. See also sec. 3.3.18.
3.3.15 B̲a̲c̲k̲g̲r̲o̲u̲n̲d̲ ̲M̲a̲n̲a̲g̲e̲m̲e̲n̲t̲ ̲
Some tasks in the FIKS-system may be of low priority.
By this means, that it is not essential, that the processing
they do, is executed at the same moment as the request
for it arises. The processing may also only be activated
periodicly or very seldom. If nothing else was done,
then each of these tasks would occupy their individual
part of the CR80-memory. They might as well take turns
on using one distinct area and thereby share this.
In this way the memory would be much better utilized.
The above mentioned scheme has been used to introduce
"Background Management" in the FIKS system.
3.3.15.1 O̲u̲t̲l̲i̲n̲e̲/̲P̲r̲e̲r̲e̲q̲u̲i̲s̲i̲t̲e̲s̲
A fixed amount of memory has been allocated for use
of background processing - one part for programs (BGPM)
and one part for process data (BGPS). When the background
task (BGT) is a̲c̲t̲i̲v̲a̲t̲e̲d̲, then it exclusively uses this
memory, i.e. only one BGT can be active at one moment.
When the BGT is d̲e̲a̲c̲t̲i̲v̲a̲t̲e̲d̲ any processing involved
in the BGT must not use the areas.
For each BGT there exist a disk-space (part of a file:
BGPS ̲FILE) where both BGPM and BGPS can be placed temporary
while the BGT is deactivated and an other active BGT
is processing. When one of the deactivated BGT's shall
do some processing the following scheme is used:
1. The active BGT (-A) is deactivated.
2. The BGPM- and BGPS-areas are stored in BGPS ̲FILE
at places reserved for BGT-A. (BGT-A is rolled
out).
3. The BGPM- and BGPS-areas of the BGT (-B), which
is becoming to be active is loaded from BGPS ̲FILE
(BGT-B is rolled in).
4. BGT-B is activated.
The vital point in using this scheme is to control
when a BGT is activated/deactivated.
Deactivation is initialized by using the AMOS procedure
STOPPROCESS ref (1), sec. 4.11. The following criteria
is used to determine when the BGT is deactivated:
A State of BGT (SSTATE in the PCB, ref (1) sec. 3.3.2.)
is STOPPED.
B. State of BGT is TO ̲BE ̲STOPPED and the process is
waiting on a KERNEL-event (SAWAIT in the PCB is
not equal zero, ref (1), sec. 3.3.2)
C. There must not exist any outstanding IO-request.
The BGT is deactivated if (A or B) and C is true.
r̲e̲ ̲p̲o̲i̲n̲t̲ ̲A̲
When a process is STOPPED only a START-command - MON(STARTPROCESS)
- can activate it again.
r̲e̲ ̲p̲o̲i̲n̲t̲ ̲B̲
When the awaited event occurs, then the BGT is STOPPED
at exit from KERNEL. The processing executed until
then involves:
- only execution of instruction in KERNEL-code, i.e.
no instructions of BGT-code is performed.
- AMOS events, represented by the "Event registers"
R0, R1, R2 and a message buffer, may be delivered
to the BGT.
It is observed, that if nothing else was done, then
the BGPS-area of an active BGT would be corrupted,
when a deactivate BGT is STOPPED. This calamity is
avoided by rerouting the delivery of the AMOS events
to places outside the BGT-areas, while a BGT is deactivated.
Before the BGT is activated next time, the AMOS-events
are placed in the BGPS-area, where they were originally
intended to be delivered.
r̲e̲ ̲p̲o̲i̲n̲t̲ ̲C̲
No transfer in/out of the BGPS-area must be performed,
when a BGT is deactivated (IO-operations). This is
(and must be) in the FIKS system tantamount to, that
no AMOS answers/systemanswers/pathanswers is awaited
from a DRIVER-process. A DRIVER-process is defined
as a process, that performs data-transfers in/out of
data areas of another process. A DRIVER-process is
identified as such by a status bit in SSTATE of the
PCB.
To avoid bottleneck-cases, when critical regions are
used in connection with background processing, BGT's
should not have ENTERED a critical region, when it
gets deactivated. The AMOS-command MON(STOPPROCESS)
is not carried out until the region is left.
A BGT is activated when it is loaded and started by
the AMOS-command MON(STARTPROCESS).
An advantage of using the scheme mentioned is that
it is very easy to see, if a deactivated BGT requests
processing. When SSTATE of the PCB is STOPPED, then
a possible awaited event has occurred, and the BGT
is ready to continue the processing.
In Figure 3.3.15.1 is shown in overview roll out/in
of BGT-A/B.
Figure 3.3.15.1…01…Background Management…01…Roll In/Out
3.3.15.2 B̲a̲c̲k̲g̲r̲o̲u̲n̲d̲ ̲S̲c̲h̲e̲d̲u̲l̲i̲n̲g̲
A very essential part of the background management
is the scheduling of the BGTs - when and in which order
shall they be activated. In the FIKS background scheduling
implementation the concept used in the KERNEL process
scheduling has been taken as a model.
The scheduling is started at occurence of the following
events:
1) The active BGT has no longer need for processing.
An event has to happen before the processing can
be resumed. Another BGT can be activated.
2) Some of the deactivated BGTs demand processing.
The event, which the BGT awaited, has happened.
The BGT is ready to be activated.
3) The maximum time in which a BGT may be active,
while other BGTs demand processing has run out.
Three ordinary BGT-proirities corresponding to those
used in KERNEL-scheduling exist. BGTs with high priority
will be activated much more often than those with low
priority. Besides these priorities a special IDLE-background
priority exists. BGTs with this priority will only
be activated in case all BGTs with higher priority
have no demand for processing. In contradistinction
to the KERNEL-concept all priority levels have the
same duration (time slice).
The non-IDLE priority levels take turns based upon
a "SCHEDULE ̲SEQUENCE"-list. The intension is that a
priority level one level higher than another will be
activated twice as often as the other. Within one level
the BGTs are activated after a simple cyclic scheme.
To avoid bottlenecks and inconvenient blocking of the
processing a BGT which has ENTERED a critical region
will be scheduled independent of priority level.
The scheduling algoritm is shown in Figure 3.3.15.2.
Figure 3.3.15.2.a…01…Background Management Scheduling Algorithm
Figure 3.3.15.2.b…01…Background Management Scheduling Algorithm
Figure 3.3.15.2.c…01…Background Management Scheduling Algorithm
3.3.15.3 B̲a̲c̲k̲g̲r̲o̲u̲n̲d̲ ̲P̲r̲o̲c̲e̲s̲s̲ ̲C̲o̲n̲t̲r̲o̲l̲ ̲B̲l̲o̲c̲k̲
For management of the background processing and rerouting
of BGT AMOS-events, Background Process Control Blocks
(BPCB's) have been introduced.
One BPCB for each BGT running at one moment. The BPCBs
are used and accessed simultaneously by both the ESP
and the KERNEL.
B̲P̲C̲B̲-̲L̲a̲y̲o̲u̲t̲
̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲
̲ ̲ ̲ ̲ ̲ ̲
^ ^ ^
^Location ^Name ^Description
^ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲^̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲^̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲
̲ ̲ ̲ ̲ ̲ ̲
^ ^ ^
^ 0 ^STATE ^Status of BGT (see below)
^ ^ ^
^ 1 ^PCB ̲REF ^ESP relative address to PCB
^ ^ ^
^ 2 ^PCB ̲INDEX ^KERNEL index of PCB
^ ^ ^
^ 3 ^PRIORITY ^BGT priority
^ ^ ^
^ 4 ^BPCB ̲INDEX ^ESP index of BPCB
^ ^ ^
^ 5 ^PROG ̲SIZE ^Size of BGPM-area
^ ^ ^
^ 6 ^PROC ̲SIZE ^Size of BGPS-area
^ ^ ^
^ 7-9 ^RO12 ^Stored event registers (R0,R1,R2)
^ ^ ^
^ 10-14 ^MSG ̲BUF ^Possible stored message buffer
̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲
̲ ̲ ̲ ̲ ̲ ̲
S̲T̲A̲T̲E̲-̲W̲o̲r̲d̲:
Bit no. on means:
0: BGPS ̲RUNNING - "Not vacant
1: BGPS ̲STARTED - "In the scheduling
2: BGPS ̲REMOVED - "To be removed
3: BGPM ̲STORED - "At least once
4: BGPM ̲REENTRANT- "No modification of
BGPM
3.3.15.4 B̲a̲c̲k̲g̲r̲o̲u̲n̲d̲ ̲P̲r̲i̲o̲r̲i̲t̲y̲ ̲
The priority of a BGT shall be low compared to the
message processing, i.e. compared to the rest of the
AMOS-processes in the FIKS-system. Therefore every
BGT's are executing with the lowest possible AMOS-priority
(2) as seen from the KERNEL scheduling point of view
- ref (1), sec. 3.4.3. The priority (XPRIORITY, ref
(1), appendix B) is instead used as BGT-priority. XPRIORITY
greater than 2 will result in a BGT-IDLE priority.
3.3.15.5 B̲a̲c̲k̲g̲r̲o̲u̲n̲d̲ ̲M̲a̲n̲a̲g̲e̲m̲e̲n̲t̲ ̲I̲m̲p̲l̲e̲m̲e̲n̲t̲a̲t̲i̲o̲n̲
To implement the FIKS background processing it has
been necessary to perform some modification of the
AMOS KERNEL used in the FIKS executive system software.
The details of these changes/modifications are specified
in Appendix 7.2 - DCN's needed to get ref. (1) to confirm
with the KERNEL used by the FIKS system. The ideas
and the outline that caused the modifications are explained
in the following:
C̲r̲e̲a̲t̲i̲o̲n̲/̲L̲o̲a̲d̲ ̲o̲f̲ ̲B̲G̲T̲s̲
A BGT is specified as such to the FIKS system when
the RUN/RUN ̲DELAY-commands (ref. sec. 3.3.9) are used
to include an application process into the FIKS system.
(The application process might as well be loaded, created
and started using the ordinary LOAD-, CREATE- and START-commands).
When RUN/RUN ̲DELAY is used, the application (i.e. the
BGT) is loaded into the BGT-areas and started as usual
processes with the following modifications:
- It is checked that the BGPM- and BGPS-area are
not greater than the maximum allowed values
(MAX ̲SIZE ̲RGPM, MAX ̲SIZE ̲BGPS). If one of
the areas is greater, then this will cause a "*LOAD
ERROR" (ref. sec. 3.2.2.4).
- The "Background Process"-bit (BNBGPRO) in the capability
word in the process creation block is set. This
will inform the KERNEL about coming creation of
a BGT. When the process is CREATED the KERNEL will
set the BNBGPS-bit in the PCB.SSTATE.
- A BPCB (ref. 3.3.15.3) is allocated to the BGT.
The ESP will install the items PROG ̲SIZE, PROC
̲SIZE. These are used to minimize the data transfers
involved in the ROLL IN/OUT procedures. The BGPM
̲REENTRANT status in BPCB.STATE is set, if the program
code is reentrant - the BGPM-area will then only
have to be rolled out once.
- The BGTs are created with the lowest possible KERNEL-priority
(2). This will ensure that the BGTs do not deprive
the non-BGTs too much CPU-time. The ordinary KERNEL-priority
(PROCESS ̲HEAD.PRIORITY) is installed in BPCB.PRIORITY
and used in the BGPS-scheduling.
A̲c̲t̲i̲v̲a̲t̲i̲o̲n̲/̲D̲e̲a̲c̲t̲i̲v̲a̲t̲i̲o̲n̲ ̲o̲f̲ ̲B̲G̲T̲s̲
Deactivation of an active BGT is initiated by stopping
the process - MON(STOPPROCESS). The KERNEL will then
set the status "Going to be deactivated" (BNGDAC) in
PCB.SSTATE to mark special treatment of this process.
Each time the BGT is referred to in KERNEL-coherence,
the KERNEL will perform a test of if the BGT have been
deactivated, i.e.
1) The BGT is SUSPENDED
2) The BGT has no autstanding IO's.
Re point 1 -
A new status BNREADY in the PCB.SSTATE is set/cleared
whenever a process gets READY/SUSPENDED in the KERNEL
sense.
Re point 2 -
A new item "No. of unanswered driver messages" (SDRMCT)
in the PCB has been introduced. Each time an AMOS message/system
message/path message is sent to a DRIVER-process SDRMCT
is incremented. Whenever an AMOS answer/system answer/path
answer is received from a DRIVER-process SDRMCT is
decremented. When SDRMCT is equal zero, then no outstanding
answers (IO-requests) exist. A DRIVER-process is a
process which has the "Driver Process" bit (BNDRVP)
in the PCB.SSTATE set. The BNDRVP-state will be set
if the new "Driver Capability"-bit (BNEXDRV) in PROCESS
̲HEAD.CAPABILITY- word is set at the moment, the DRIVER
is loaded and created.
When 1 + 2 are fulfilled the "event registers" (R0,R1,R2)
of the BGT are stored in the BPCB.R012. Future events
concerning the BGT will be delivered to BPCB.R012.
Delivery of a possible message buffer will be routed
to BPCB.MSG ̲BUF. The "Message buffer delivered"-bit
(BNMSDL) in the PCB.SSTATE will then be set. The BNGDAC
status will be cleared and the BNDEAC status in PCB.SSTATE
set to indicate that the BGT is now deactivated. No
processing concerned the BGT will affect the BGT-areas.
Activation of a BGT loaded into the BGT-areas is initiated
by starting the process - MON(STARTPROCESS). Before
the former deactivated process is set READY, the following
is performed:
- The event registers (R0,R1,R2) are fetched from
BPCB.R012 and stored in the process base memory
area.
- If a message buffer has been delivered while the
BGT was deactivated (BNMSDL-bit in PCB.SSTATE set),
then this is fetched from BPCB.MSG ̲BUF and stored
in the process area (determined by the item PCB.SWORK),
where it was originally routed for.
After this, the process data area will look just as
if the process had been STOPPED like an ordinary non
BGT-process. The BGT can now continue the processing.
B̲a̲c̲k̲g̲r̲o̲u̲n̲d̲ ̲E̲v̲e̲n̲t̲s̲
The background process scheduling is executed by the
ESP. The KERNEL knows when the scheduling shall take
place (ref. sec. 3.3.15.2). The KERNEL has to transfer
this information to the ESP. This is performed using
a new kind of AMOS events "Background Events" which
only the ESP can receive. When KERNEL senses one of
these events as:
- SUSPENSION of a BGT, which has no outstanding IO's
(PCB.SDRMCT = 0).
- A BGT already SUSPENDED receives the last one of
its outstanding IO's.
- A deactivated BGT gets READY.
then the background management semaphore (BGMSEM) in
the KERNEL semaphore word (MPSEM1) is set. Whenever
a process exits from KERNEL it is tested, if the ESP
is waiting on a background event. If so the ESP will
get the event delivered and put into the KERNEL READY-queue
for execution of the scheduling. If the BGMSEM is set
when the ESP calls MON(WAITEVENT), it will receive
the event immediately. Background events can be considered
as an expansion of the ordinary AMOS event concept.
B̲a̲c̲k̲g̲r̲o̲u̲n̲d̲ ̲P̲r̲o̲c̲e̲s̲s̲ ̲T̲i̲m̲e̲ ̲S̲l̲i̲c̲e̲s̲
When a BGT is activated a timer of BGPS ̲TIME ̲SLICE
is started and cancelled when the BGT is deactivated.
If the timer runs out, then the BGT has used the maximum
processing time allocated for the BGT for this time.
BGPS-scheduling has to take place. The BGPS ̲TIME ̲SLICE
is the same for all BGT-priorities.
(in contradistinction to the KERNEL-scheduling).
When a BGT is started to be deactivated (another BGT
shall be activated) a timer of BGPS ̲DISORDER ̲TIME ̲OUT
is started to supervise that the deactivation take
place within a reasonable time limit. If not, then
a lock in the background processing has arised. This
is an error and is reported as an ESP error report
(ref. sec. 3.3(16+17)). The first two times the error
report is understood as a warning (BGPS DISORDER),
the third time as a fatal error (SWITCHOVER).
S̲t̲o̲p̲p̲i̲n̲g̲/̲S̲t̲a̲r̲t̲i̲n̲g̲/̲R̲e̲m̲o̲v̲i̲n̲g̲ ̲o̲f̲ ̲B̲G̲T̲s̲
BGTs may be stopped/started/removed by using the ordinary
ESP-commands. When the BGT is stopped, then the BPCB.STATE
BGPS ̲STARTED is cleared and thereby excluding the BGT
from the scheduling. When the BGT is started then the
state is reset and the BGT will again take part in
the scheduling. When a BGT is removed, then the BPCB.STATE
BGPS ̲REMOVED is set. Next time the BGT is activated,
the BGT will be removed (in KERNEL sense).
3.3.15.6 B̲a̲c̲k̲g̲r̲o̲u̲n̲d̲ ̲P̲r̲o̲c̲e̲s̲s̲ ̲L̲i̲m̲i̲t̲a̲t̲i̲o̲n̲s̲
The design of the FIKS Background Processing has been
performed so that the designer of FIKS-applications
does not need to care too much about whether the task
should be loaded as a BGT or not. Some considerations,
however, have to be taken into account:
- A BGT Must not have outstanding IO's in long periods.
I.e. when doing IO-operations, these must be expected
to be finished within a reasonable time (2-3 seconds
corresponding to the BGT-time slice). A BGT with
ever outstanding IO's will obstruct for other BGTs.
- A BGT can be a DRIVER-process but then no other
BGTs may use it for doing IO's.
- The sizing (BGPM- and BGPS-areas) has an upper
limit. No BGT must be greater than the MAX ̲SIZE
̲BGPM, MAX ̲SIZE ̲BGPS allocated in the CR80 memory
for BGT-processing.
- The total BGT consumption of resources (CPU-time,
IO-operations, etc.) shall be limited. If too many
BGTs use too much resoruces a risk for bottlenecks
arise. A task, which requires quick response, shall
not be executed as a BGT.
3.3.16 S̲y̲s̲t̲e̲m̲ ̲E̲r̲r̲o̲r̲ ̲H̲a̲n̲d̲l̲i̲n̲g̲ ̲
When an error is sensed by a process in the FIKS-system,
this is reported by use of the monitor procedure MON(ERROR)
- ref (1), sec. 4.3.9. This will cause that an AMOS-parent
signal is sent to the parent process. As the ESP-process
is the parent of all processes in the FIKS-system,
then ESP will receive all parent signals, i.e. all
error reports. It is then up to ESP to analyse these
errors and take proper actions based on this analyse.
The error code and error location associated with the
error report is stored in the PCB of the reporting
process - ref(1), fig. 3.3.1.a. From here they are
collected by the ESP. The analysis is performed on
basis of the error code. The code is compared with
those in the ERROR ̲CODES-table and checked if they
are included in some ranges. Based on this, the action
to be taken by ESP is determined. The connection between
the error codes and actions is shown in table 3.3.16.
When the analysis is performed, then an error report
according to the format specified in ref (13), sec.
4.2.2, is formatted and printed on the console. The
action is executed after the logging and performed
in the same way as if they were ordinary commands to
the ESP-system.
E̲r̲r̲o̲r̲ ̲D̲u̲m̲p̲ ̲U̲t̲i̲l̲i̲t̲y̲
There exist a possibility of getting certain memory
areas dumped to disk files in connection with an error.
By using the 'DEFINE ̲ERROR ̲DUMP'-command (ref. sec.
3.2.2.3) it is possible to declare which parts of the
memory that shall be dumped in case a certain process
reports a certain error code. The dumping is performed
to a file ERROR ̲DUMP.X in the directory
*MOVHEAD*ERROR ̲DUMP.D. X is the error dump identification
no. logged by the ESP after the DP-command. The dumping
is done before the error logging. In this way a possible
becoming SWITCHOVER-procedure will not be disturbed.
The error dump can later on be loaded to a floppy-diskette
with the FLOPPY-utility for inspection, still without
having the system not operational.
C̲o̲n̲n̲e̲c̲t̲i̲o̲n̲ ̲b̲e̲t̲w̲e̲e̲n̲ ̲e̲r̲r̲o̲r̲ ̲c̲o̲d̲e̲ ̲a̲n̲d̲ ̲e̲r̲r̲o̲r̲ ̲a̲c̲t̲i̲o̲n̲s̲
ref (13), sec. 4.2.2.
CODE (hex) ESP-action
̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲
̲ ̲ ̲ ̲
E00, I̲G̲N̲O̲R̲E̲D̲
restart of process
FF, 423, 801 L̲O̲C̲A̲L̲ ̲F̲I̲X̲ ̲U̲P̲
805, 907, 90B only at Node/MEDE installations
90C, restart of process.
B01, B02, B03, L̲O̲C̲A̲L̲ ̲F̲I̲X̲ ̲U̲P̲
607, 6FF, both at Node/MEDE- and SCC-instal-
A00 - AFF lations. Restart of process.
451 - 45D, B1 D̲I̲S̲C̲A̲R̲D̲ ̲D̲I̲S̲K̲ ̲O̲N̲E̲
461 - 46D, B2
461 - 46D, B1 D̲I̲S̲C̲A̲R̲D̲ ̲D̲I̲S̲K̲ ̲T̲W̲O̲
451 - 450, B2 B1, B2 = BRANCH ONE, BRANCH TWO
only at Node/MEDE-installations.
Discard of affected disk unit - ref.
sec. 3.3.4.5.
0 removal of process, no error logging,
used as ordinary process termination.
FFFF B̲G̲P̲S̲ ̲D̲I̲S̲O̲R̲D̲E̲R̲
in connection with background management
(ref sec. 3.3.15). The process is
allowed to continue processing. The
third time, error action text is
changed to the following.
every other S̲W̲I̲T̲C̲H̲O̲V̲E̲R̲,̲ ̲Node/MEDE, ACTIVE BRANCH
codes O̲P̲E̲R̲A̲T̲I̲O̲N̲ ̲F̲A̲I̲L̲,̲ ̲S̲C̲C̲.̲
S̲T̲A̲N̲D̲B̲Y̲ ̲O̲F̲F̲, Node/MEDE,STANDBY BRANCH
no restart of process,
Table 3.3.16.
3.3.17 E̲S̲P̲ ̲L̲o̲c̲a̲l̲ ̲E̲r̲r̲o̲r̲ ̲H̲a̲n̲d̲l̲i̲n̲g̲
The ESP-process can be exposed for the same errors
as other processes in the FIKS-system. Those errors
cannot be reported via the usual MON(ERROR)-calls (ref.
sec. 3.3.16). Instead the ESP will do the analyse and
logging directly based upon the error code, so it ends
up with an error report similar to that of the application
processes.
Certain system procedures that the ESP also uses, use
MON(ERROR)-calls in case of failures. The ESP may also
be exposed for LOCAL ̲ACTION-errors (traps, parity error,
timeout on mainbus) which via KERNEL results in MON(ERROR)-calls.
To handle this the KERNEL used in FIKS has been modified.
In case ESP calls MON(ERROR), it will, instead of being
SUSPENDED, be restarted in a distinct location "ESP
̲EXIT ̲MON ̲ERROR" defined in both KERNEL and ESP-code.
The error can then be handled as an application process
SWITCHOVER-error (no restart).
The actions taken when the ESP senses an error in its
own processing are the same as for an application process
(ref. table 3.3.16). In case of SWITCHOVER-error any
SEQUENCE or COMMAND-file that is going on is interrupted.
3.3.18 W̲i̲l̲d̲ ̲E̲v̲e̲n̲t̲s̲
All events, sent to a not existing process, is in the
AMOS-KERNEL-system rerouted to the ROOT-process-ref(1),
sec. 3.13. I.e. in the FIKS-system these WILD ̲EVENTs
are received by the ESP-process. The events are logged
using standard error report format, where error code
and error label is exchanged with a WILD ̲EVENT-text.
If possible the name of the process that has sent the
event is stated. In the following text, name and ESP-action
are listed.
S̲I̲G̲N̲A̲L̲
text: WILD SIGNAL
name: ??????
action: none
M̲E̲S̲S̲A̲G̲E̲
text: WILD MESSAGE
name: sending process
action: dummy answer returned
A̲N̲S̲W̲E̲R̲
Text: WILD ANSWER
name: ??????
action: none
S̲Y̲S̲T̲E̲M̲ ̲M̲E̲S̲S̲A̲G̲E̲
text: WILD SYSMESSAGE
name: sending process
action: dummy systemanswer returned
S̲Y̲S̲T̲E̲M̲ ̲A̲N̲S̲W̲E̲R̲
text: WILD SYSANSWER
name: ??????
action: none
P̲A̲T̲H̲ ̲M̲E̲S̲S̲A̲G̲E̲
text: WILD PATHMESSAGE
name: sending process
action: dummy path answer returned
P̲A̲T̲H̲ ̲A̲N̲S̲W̲E̲R̲
text: WILD PATHANSWER
name: ??????
action: path is closed
When a dummy answer is returned, then the message buffer
is filled with words equal to #800 (UNKNOWN). The error
action text used at the logging is 'IGNORED'. The logging
is not performed, when the system is in a state where
they occur naturally - when the system is CLOSING or
RECOVERING (only WILD SIGNALs).
3.3.19 P̲r̲o̲c̲e̲s̲s̲i̲n̲g̲ ̲o̲f̲ ̲E̲v̲e̲n̲t̲s̲/̲C̲o̲m̲m̲a̲n̲d̲s̲
The following AMOS events can be received by the ESP-process
and initiate some kind of actions. They are listed
in the following.
A. Interrupt (from CONSOL)
- Character input from the console.
If the character (CR) indicates termination
of an input line, then COMMAND-processing is
started.
B. System message from CONSOL.
- Application command request.
The request is stored for later on to be processed.
C. Message from CONSOL.
- Watchdog polling/command.
The answer on the polling is returned or processing
of the command is started. This processing
has higher priority than all other ESP-processing.
D. Background Event.
- Background scheduling (ref. sec. 3.3.15) is
executed at once.
E. Background Management Timeout
- If the active BGT is going to be deactivated
then a "BGPS DISORDER/SWITCHOVER" error report
is issued as a warning/fatal error. If not,
background scheduling is performed.
F. Answer from SAF.
- no action.
G. Parent signal
- Error report from a process.
The report is analysed and logged. Any action
to be executed is performed.
H. All other possible AMOS-events.
- Wild events. These are handled. - ref. sec.
3.3.18.
When the ESP is busy, i.e. when the processing started
by a command/event has not yet finished, then receiving
of characters is disabled.
The events B - H are checked for occurrence in the
procedure CHECK ̲EVENTS and served in the procedure
SERVE ̲EVENTS. Both checking and serving are performed
in the procedure CHECK ̲SERVE ̲EVENTS.
The events A, B, C may lead to start of a command.
This may start a SEQUENCE or a COMMAND ̲FILE, which
again may start an other SEQUENCE or COMMAND ̲FILE etc.
The management of this processing is shown in the flowchart
fig. 3.3.19.
By looking upon the figure the following rules about
the processing can be extracted.
1. Watchdog commands have the highest priority.
2. Commands from COMMAND ̲FILEs have higher priority
than those from SEQUENCEs. I.e. executing of a
COMMAND ̲FILE may be contained in a SEQUENCE and
not reverse.
3. SEQUENCES/COMMAND ̲FILES may be used in SEQUENCES/COMMAND
̲FILES, but only in one level. (No return to the
calling point).
4. Application process commands have the lowest priority.
5. Input from the operator is only received if there
is no other processing going on.
Figure 3.3.19.a…01…Processing of commands
Figure 3.3.19.b…01…Processing of commands
Figure 3.3.19.c…01…Processing of commands
Figure 3.3.19.d…01…Processing of commands
Figure 3.3.19.e…01…Processing of commands
Figure 3.3.19.f…01…Processing of commands
3.3.20 I̲n̲i̲t̲i̲a̲l̲i̲z̲i̲n̲g̲ ̲o̲f̲ ̲t̲h̲e̲ ̲F̲I̲K̲S̲ ̲S̲y̲s̲t̲e̲m̲ ̲
3.3.20.1 B̲o̲o̲t̲ ̲L̲o̲a̲d̲i̲n̲g̲ ̲
The FIKS-system (user- and file processor) is bootloaded
by means of the FIKS BOOT LOADER, ref (15). After boot
load is finished, then the AMOS KERNEL data is initialized
and the ROOT-process is started as described in ref(1),
sec. 3.12.
In t̲h̲e̲ ̲F̲I̲K̲S̲ ̲u̲s̲e̲r̲-̲p̲r̲o̲c̲e̲s̲s̲o̲r̲ the ESP-process is the ROOT-process
and section 1 is used for KERNEL-data. The first task
to be executed by the ESP after boot load is the reorganizing
in the CR80-memory of the remaining modules included
in the boot module. In figure 3.3.20.1 is shown the
memory layout before and after the reorganizing. ESP
expects the modules to be either programs, processes
(data) or monitor-procedures. They shall obey the format
given in ref (1), appendix B, i.e. the standard AMOS-format.
The reorganizing is performed using the following directives:
- programs and monitor procedures are transferred
to TOP ̲OF ̲PAGE 0.
- processes are transferred to TOP ̲OF ̲PAGE 1.
- After the transference is done, the modules is
treated as if they were loaded from an ordinary
load file (name: BOOT ̲MODULE), ref. LOAD-command
sec. 3.3.9.
- Every process is STARTED.
Included in the boot module must be all necessary modules
for getting in contact with the disk system. I.e.
- IO-system, set of monitor procedures.
- DMA-driver, user-processor version.
- User - to file processor communications program
(USRFIL) - ref. sec. 3.2.2.7.
Figure 3.3.20.1…01…Reorganizing of Memory…01…(At Boot Load)
In t̲h̲e̲ ̲F̲I̲K̲S̲ ̲f̲i̲l̲e̲-̲p̲r̲o̲c̲e̲s̲s̲o̲r̲,̲ ̲the standard ROOT-process
(ref (1), sec. 3.13) is used to do the initializing.
All neeeded modules for executing of the processing
in the file-processor must be included in the boot
module. I.e.
- IO-system
- DMA-driver, file-processor version
- CDC-drivers
- FLOPPY-driver
- FMS-system (file management system)
- File - to user processor communications program
(FILUSR).
- + what the existance of the above mentioned modules
imply.
When the user- and fileprocessor has finished this
part of the initialization, then the disk system is
initial assigned (ref. sec. 3.3.4.4), so it can be
used. The further initialization will depend upon whether
the system is a Node/MEDE - or a SCC-installation.
N̲o̲d̲e̲/̲M̲E̲D̲E̲:̲
The operator is questioned via the printout on the
console.
* BRANCH + STATE
about which branch (ONE/TWO) that has been booted and
in what state the branch is going to be (ACTIVE/STANDBY).
This information is used to do the final disk assignment
- ref. sec. 3.3.4.4. The operator has then to key in
the DTG. The initialization is not allowed to continue
before an acceptable DTG is specified. Ref. sec. 3.3.9
- SET DTG - command.
S̲C̲C̲:
No specification of BRANCH or STATE is needed. The
operator is immediately asked to key in the DTG.
Further initialization can now continue.
3.3.20.2 I̲n̲i̲t̲i̲a̲l̲i̲z̲a̲t̲i̲o̲n̲ ̲o̲f̲ ̲N̲o̲d̲e̲/̲M̲E̲D̲E̲ ̲t̲o̲ ̲A̲C̲T̲I̲V̲E̲
To do this, the SEQUENCE "TD ACTIVE" is used. I.e.
the COMMAND ̲FILE "ACTIVE" is used to get input commands
from. An example of an ACTIVE-file is given in appendix
7.1.a. The file must contain the following commands
in the listed order.
1. Loading and creating of all critical regions used
in the FIKS-system.
2. Loading of all monitor procedures used in the FIKS-system.
3. Initializing of all FIKS data areas. (MTCB-, QACCESS-
and RDF-areas). This is done by running a background
program with the command RUN ̲AND ̲DELAY, i.e. ESP
is halted while the initialization and memory allocation
takes place. Ref. to sec. 3.3.2 + 3.3.9-RY-command.
4. The CHECKPOINT-process is then loaded and started.
The process is used of the next module to be loaded.
5. The checkpoints, which are handled on system level
and shall be recovered, are now loaded. This is
done by running the background process SYSCHP with
the command RUN ̲AND ̲DELAY.- ref(22).
6 The task of resetting all the PDB-files is started
by starting the background process RESPDB - ref(23).
7. The TDX-drivers are loaded and started.
8. TDX-initialization is performed. Ref. sec. 3.3.5.1
9. The rest of the FIKS application programs and processes
are loaded and started. This must be performed
in such order, that when a process presumes the
existance of an other process, then this is not
started before the other is at least loaded (CREATED)
- possible AMOS-events might be lost as WILD ̲EVENTs.
Those processes that use the same program must
be loaded after each other.
10. When the ACTIVE-file is completed without occurrence
of local ESP-SWITCHOVER-errors, then the state
of the branch is set to ACTIVE, i.e. the alive
answer sent to the Watchdog will contain this state.
Ref(14).
3.3.20.3 I̲n̲i̲t̲i̲a̲l̲i̲z̲a̲t̲i̲o̲n̲ ̲o̲f̲ ̲N̲o̲d̲e̲/̲M̲E̲D̲E̲ ̲t̲o̲ ̲S̲T̲A̲N̲D̲B̲Y̲ ̲
The SEQUENCE "TD STANDBY" is used in the same manner
as when initializing to ACTIVE. An example of a STANDBY-file
is given in appendix 7.1.b. The following listed points
correspond to those listed in sec. 3.3.20.2.
1. Same as ACTIVE.
2. Same as ACTIVE.
3. Same as ACTIVE.
4. Same as ACTIVE but the Checkpoint process is not
started.
5. Not performed.
6. Not performed.
7. TDX-drivers are not started.
8. Not performed
9. The rest of the FIKS-application-tasks, which are
not background tasks are loaded. The OLD-processes
(ref(24), which is a background task in the ACTIVE-state,
is loaded and started as ordinary program/processes
in the background-areas. The STFPWP-process (sec.
3.3.4.8) is also loaded and started in the background-areas.
10. At completion of the STANDBY-file, the state of
the system is set to STANDBY in the same manner
as when the ACTIVE-file was completed.
3.3.20.4 R̲E̲C̲O̲V̲E̲R̲/̲R̲E̲S̲T̲A̲R̲T̲ ̲o̲f̲ ̲N̲o̲d̲e̲/̲M̲E̲D̲E̲ ̲
If a Node/MEDE has a branch, that is STANDBY, this
branch can be made ACTIVE by running through the RECOVER-procedure.
The procedure is initiated by the operator command
RM (RECOVER ̲SYSTEM) or by a Watchdog command - ref.(14).
The procedure is performed as follows:
1. The disk-system goes through the initialization
procedure (ref. sec. 3.3.4.4) in the same manner
as if the branch was initializing to be ACTIVE.
I.e. the DISK ̲STATUS to be used after RECOVER is
determined at the moment of RECOVER (the one determined
at initializing to STANDBY is not used).
2. RESTART ̲FLAG in the critical region CONFIG is set.
ref(13), sec. 5.1.
3. The SEQUENCE "TD RECOVER" is initiated. The RECOVER-procedure
will then continue using commands from the RECOVER-command
file. An example of a RECOVER-file is given in
appendix 7.1.c.
4. The OLD- and STFPWD-processes are REMOVED. Ref.sec.
3.3.20.3 point 10.
5. The DTG of the STANDBY-branch is checked to be
consistent with the DTG used last time, the system
had an ACTIVE-branch. At SWITCHOVER of branches,
where the RECOVER-procedure is a part, the DTG
in the former ACTIVE ̲branch may have been set to
a much higher (newer) value. I.e. the DTG in the
STANDBY can no longer be used at ACTIVE-processing.
- ref.sec. 3.3.9 SG-command. To check for and handle
this situation the CHECK ̲AND ̲LOAD ̲DTG- command
is performed - ref.sec. 3.3.9.
6. The Checkpoint process is started.
7. The checkpoints to be loaded on system level is
loaded by running the background task SYSCHP (ref
22) with the command RY.
8. The MTCB- and QACCESS-areas are recovered by "RUN
̲AND ̲DELAY" the RECOVM-process - ref (25).
9. The preparation data base PDB in the FIKS-system
is recovered by "RUN ̲DELAY" the RECMES-process.Ref(26).
10. Every PDB-file that is not recovered (in use) is
RESAT by "RUN" the RESPDB-process. Ref (23).
11. The TDX-drivers are started.
12. The TDX-system is initialized. Ref. sec. 3.3.5.1.
13. The rest of the FIKS-applications is now started.
Processes are started if the application has been
loaded. If it is a background task, then it is
loaded and started. This must be done in an order
corresponding to that one used when initializing
to be ACTIVE. Ref. sec. 3.3.20.2, point 9.
14. The state of the system is changed to ACTIVE in
the same manner as in sec. 3.3.20.2, point 10.
3.3.20.5 I̲n̲i̲t̲i̲a̲l̲i̲z̲a̲t̲i̲o̲n̲ ̲o̲f̲ ̲S̲C̲C̲ ̲
At SCC-installation no internal state (ACTIVE/STANDBY)
is used as at Node/MEDE-installations. The concept
ACTIVE/STANDBY-SCC has nothing to do with the initializing.
There exist different "ways" to start the SCC. Checkpoints
have to be loaded or not to be loaded (- /COLD) or
different "modes" in how the NICS TARE-interface is
handled, automatically or not automatically (-/MANUAL
̲NICS). The choice of way/mode is left to the system
operator, he shall key in the COMMAND-file to be used
at the initializing.
TD "name of COMMAND-file"
The COMMAND-file must follow the same directives as
the ACTIVE-file at Node/MEDE-installations. Possible
RECOVER-modules shall be executed in the same way as
in the RECOVER-file.
3.3.20.6 C̲L̲O̲S̲E̲ ̲o̲f̲ ̲S̲y̲s̲t̲e̲m̲ ̲
When processing in a FIKS-system has to be stopped,
it is very important that "CLOSE of system" is performed
in a proper manner. It is expecially important, that
the processing concerning accessing of the disk system
is terminated in such a way that the logical coherence
of the disk system is maintained. The FIKS-system is
CLOSED with the command CM (CLOSE ̲SYSTEM). The procedure
initiated of the command is as follows:
1. At Node/MEDE-installations an AMOS-message is sent
to the SAF-process (ref (19) telling about the
becoming close down. ESP waits 10 seconds to allow
the information to slip out of the Node/MEDE (control
message to SCC) before it continues.
2. Every existing background process is REMOVED from
the system. When a process is REMOVED then MON
(IO, CLEANUP) is performed, i.e. outstanding IO-operations
are cancelled and any open file is DISMANTLED.
Ref (2), p 132.
3. The SEQUENCE 'TD CLOSE' is started, i.e. the COMMAND
̲FILE 'CLOSE' is used in the further processing.
See appendix 7.1 for an example of this file. The
file must contain REMOVE-commands of the rest of
the processes in the user processor except for
those included in the boot module. The order in
which they are REMOVED must be like this: If a
process presumes the existance of another, then
this one is REMOVED first - drivers are REMOVED
at last.
4. Those processes not REMOVED in the CLOSE-file and
which have not been included in the BOOT-module
is now REMOVED - normally none.
5. The ESP performs MON (IO, CLEAUP) of its own IO-processing.
6. The SEQUENCE "IOSYSTEM ̲CLOSE" is initiated. Volumes
are UPDATED, DEMOUNTED and disk units DEASSIGNED
and the FMS-users are logged off (USEROFF).
7. At last the whole system is MASTER ̲CLEARED. I.e.
- the red TDX-host is mastercleared
- the black TDX-host is mastercleared
(only in Node/MEDE-installations)
- a masterclear message is sent to the file-processor
(ref.sec. 3.2.2.7) and the user-processor is
mastercleared.
- in the file-processor the FILUSR-process waits
1 second (to ensure that diskoperations are
terminated) before it masterclears the file-processor.
- the system is now ready to be boot loaded.
If a fatal error (SWITCHOVER-errror) occurs in this
procedure (point 1-6) a jump to point 7 will be performed
immediately.
The CLOSE ̲SYSTEM-procedure may take considerable time
(2-4 minutes). Therefore it can not be used in connection
with a SWITCHOVER-procedure in the Node/MEDE-installation,
i.e. as action on the Watchdog close command - ref
(14). A QUICK ̲CLOSE-procedure exist for this purpose.
This procedure performs:
- UPDATE of volumes
- printout on the console
*QUICK CLOSE
- master clear of the system (point 7).
The procedure can be initiated by the operator by keying
in CTRL/A + 1 (Simulation of Watchdog command).
3.3.21 E̲n̲a̲b̲l̲i̲n̲g̲/̲D̲i̲s̲a̲b̲l̲i̲n̲g̲ ̲o̲f̲ ̲B̲o̲o̲t̲m̲o̲d̲u̲l̲e̲
At certain occasions an operational system different
from the FIKS operational system can be used in a FIKS
computer installation (offline states such as TOS,
hardware tests, disk backup, etc.). If these states
could be entered without any control, they would make
out a security risk. This must be avoided.
The "key" to the offline states are the bootmodules
loaded by the FIKS boot loader (ref. 15). If it is
not possible to bootload these modules, then it is
not possible to enter the offline states. This is in
a FIKS operational computer installation performed
by assuring that the checksum placed in word 4 of the
affected bootmodule is not correct - the bootloader
will not execute the load command. The bootmodule is
disabled. The bootmodule can be enabled by correcting
the checksum. This is in fact what is performed when
the enable/disable bootmodule commands are used (ref.
sec. 3.2.2.4).
3.3.22…02…S̲e̲t̲ ̲S̲C̲C̲ ̲S̲u̲p̲e̲v̲i̲s̲o̲r̲ ̲P̲a̲s̲s̲w̲o̲r̲d̲s̲
The 'SET ̲SCC ̲SUPERVISOR ̲PASSWORDS' (SD) command is
used to (at the local SCC) to clear the USP-file and
instead insert a new (single) SCC supervisor profile.
(ref(13), sec. 11.5). The USER-ID, PASSWORD and SH-PASSWORD
are keyed-in by the system console operator, ref. 3.2.2.4
for details. The passwords are scrambled (by use of
the SPA-process, ref(29), sec. 3.3.2) before they are
written into the USP-file. The user type/classification
are automaticly sat to supervisor / cosmic top secret.
No 'local password maintenance' must go on when the
USP-file is updated. This is ensured when the SCC-supervisor
is not LOGGED ON. This is equivalent to that word 0
in the critical region XTCBCR is 0. If not then the
operator is advised to see to that the supervisor is
LOGGED OFF with printout of the system remark:'* LOGOFF
SCC-SUP'.
The USP-file is updated/resat analogous to that performed
by the SAF/TUP-processes at USP-maintenance ref(19),
sec 3.3.17.3.
Refer also to ref(29) for further details.
3.3.23 S̲y̲s̲t̲e̲m̲ ̲S̲e̲c̲u̲r̲i̲t̲y̲ ̲H̲a̲n̲d̲l̲i̲n̲g̲
As mentioned in sec. 3.3.10 a wide range of commands/utilities
exists which can be used by a system operator. Some
of these commands ("Safety Commands") make out a security
risk, e.g. inspection of classified data. The use of
these commands must be controlled.
The use of the safety commands is disabled/enabled
by manipulating with the KEY ̲WORD ̲CODES in the COMMAND
̲WORD-table, ref. Figure 3.3.8. A command is disabled
when the corresponding KEY ̲WORD ̲CODE points at a "dummy"
command that only prints out the remark:
* SECURITY VIOLATION
followed by an ESP local error report which uniquely
determines the case. (The error report is needed to
be sure that the case is reported independent of Watchdog
console mode, ref. (14)). The commands are enabled
by updating the KEY ̲WORD ̲CODE with the proper value.
The system handles two types of safety system operators:
SYS and TEKN. (besides the ordinary operator). SYS
is the maintainer/debugger of the system and shall
have access to all commands. TEKN is the technician
and shall only have access to those commands that are
concerned with hardware maintenance/testing. To each
type of system safety operator is allocated a SAFETY
̲COMMAND-list and a PASSWORD, both implemented in the
SECURITY ̲OVL-code (ref. sec. 3.3.23). When system security
mode is entered by use of the "EE"-command a password
has to be keyed in (ref. sec. 3.2.2.4). The system
will check if the password is one of the two possible.
If hit then COMMAND ̲WORD-table is updated on basis
of the corresponding SAFETY ̲COMMAND-list. When security
mode is left, then all safety commands are disabled
(on basis of SYS SAFETY ̲COMMAND-list).
The password can be changed by keying in the new password,
after the old one is keyed in (same concept as used
in the TOS-system). As the keying in of passwords is
never echoed on the console, a control of the new password
is performed by letting the operator repeat it before
it takes effect. The new password is scramled by use
of the SPA-process (ref(29),sec. 3.3.2, 3.3.3) and
written into the SECURITY ̲OVL-code.
Besides the real utility commands the LOAD-, RUN- and
RUN ̲DELAY-commands make out a security risk (they can
be used to load unauthorized software modules). They
must be disabled when not needed. They are used when
FIKS is in the initializing/recovering phases. When
an initializing phase has finished, they are disabled
with the "LE"-command as the last command in the corresponding
command file. Before the recovery phase is started,
the needed commands LOAD, RUN are enabled by the ESP
code.
A list of the safety commands with specification of
when they are enabled/disabled is given in table 3.3.23-1.
FIKS SYSTEM SECURITY COMMANDS STATE TRANSITION
^AT BOOT^AFTER ^AFTER " EE" ^AT
RE-
^
̲C̲O̲M̲M̲A̲N̲D̲ ̲^̲L̲O̲A̲D̲I̲N̲G̲^̲"̲ ̲ ̲L̲E̲"̲ ̲^̲ ̲S̲Y̲S̲ ̲ ̲ ̲^̲ ̲T̲E̲K̲N̲ ̲ ̲^̲C̲O̲V̲E̲R̲Y̲ ̲^̲
̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲
^ ^ ^ ^ ^ ^
LD ^ + ^ - ^ + ^ - ^
- ^Load
into
memory
^ ^ ^ ^ ^ ^
RN ^ + ^ - ^ + ^ + ^
+ ^Run
background
task
^ ^ ^ ^ ^ ^
RY ^ + ^ - ^ + ^ - ^
+ ^Run
and
delay
^ ^ ^ ^ ^ ^background
task
DY ^ - ^ - ^ + ^ - ^
- ^Dump
whole
memory
^ ^ ^ ^ ^ ^
QM ^ - ^ - ^ + ^ - ^
- ^Qaccess/MTCB
utility
^ ^ ^ ^ ^ ^
DG ^ - ^ - ^ + ^ - ^
- ^Debug
(in
memory)
^ ^ ^ ^ ^ ^utility
IT ^ - ^ - ^ + ^ - ^
- ^Inspect
(of
files)
^ ^ ^ ^ ^ ^utility
FY ^ - ^ - ^ + ^ + ^
- ^Floppy
dump/load
^ ^ ^ ^ ^ ^
EP ^ - ^ - ^ + ^ - ^
- ^Manual
error
dump
^ ^ ^ ^ ^ ^
EB ^ - ^ - ^ + ^ + ^
- ^Enable
boot
module
^ ^ ^ ^ ^ ^
SD ^ - ^ - ^ + ^ - ^
- ^Set
SCC
supervisor
^ ^ ^ ^ ^ ^passwords
---------^-------^-------^-------^-------^-------^--------------------
EE ^ + ^ + ^ + ^ + ^
+ ^Enter
security
mode
^ ^ ^ ^ ^ ^
LE ^ + ^ + ^ + ^ + ^
+ ^Leave
security
mode
L̲e̲g̲e̲n̲d̲ "-": Command not allowed
"+": Command allowed
Table 3.3.23-1
D̲i̲f̲f̲e̲r̲e̲n̲t̲ ̲E̲S̲P̲-̲v̲e̲r̲s̲i̲o̲n̲s̲
The source code for the different versions of the modules
included in the ESP-system is contained in the same
source, using conditional compilation statements. Source
updating needs then only to be done at one place independent
of version. The version compiled depends on the content
of the file COMP.SWITCH. This contains only a compiler
switch stating the type of version. In this way one
or both version can be generated automatically.
G̲E̲N̲E̲R̲A̲T̲I̲O̲N̲ ̲O̲F̲ ̲B̲O̲O̲T̲-̲M̲O̲D̲U̲L̲E̲S̲
The ESP is included in the BOOT-module. This module
is created by means of the system generator program
SYSGEN and the AMOS BOOT file generator. Refer to:
CR80 AMOS SYSGEN, Users Manual,
CSS/121/USM/0023
CR80 UTILITY DBOOT, Users Manual,
CSS/394/USM/0081.
To produce the BOOT-modules do as stated in the INFORMATION-file
in the last FIXLIB-delivery of
FIKS ̲USER ̲BOOT.D - directory
-generation of BOOT-module to Userprocessor.
FIKS ̲FILE ̲BOOT.D - directory
-generation of BOOT-module to fileprocessor.
3.3.24 E̲S̲P̲-̲o̲v̲e̲r̲l̲a̲y̲ ̲P̲r̲o̲c̲e̲s̲s̲i̲n̲g̲ ̲
There are certain tasks in the ESP-processing, that
are only to be executed occasionally and have low priority.
To avoid excessive demand of CR80-memory for ESP-code
a OVERLAY-scheme has been implemented for use in the
ESP-processing. The OVERLAY-part of the ESP-code can
be exchanged when need for it arises. This part is
from XSTART (entry point for program, ref (1), appendix
B) in the initial loaded ESP-program (ESP ̲INIT) until
end-of-code. The rest of the code remains unchanged.
The code to be exchanged has been stored in the ESP
̲OVL.D-directory as individual code files. The loading
of an ESP-overlay is performed of the ESP-process itself
by using the routines, that already exist for loading
of FIKS-programs (note: the FIKS OVERLAY- monitor procedure
is not used). When loading has been done, a jump to
OVERLAY ̲ENTRY is performed and the overlay code is
carried out.
The ESP-overlays are created on basis of a series of
logical different ESP-programs. These programs contain
the same code until XSTART (PROCEDURES), after this
is placed the overlay code (MAINPROGRAM). The OVERLAY
̲ENTRY for an overlay is XSTART for the corresponding
program. The scheme is illustrated in figure 3.3.24.
There are some points to take into consideration when
using this scheme:
- No ESP-code, that may be used, when there is no
access to the disk system, can be placed in overlays
- No ESP-overlay can be greater than the first overlay
(ESP ̲INIT ̲OVL).
- It is mandatory that the ESP-overlays is created
on the same version of ESP-code. The common code
part and the process data must not be understood
differently seen from the overlay.
Figure 3.3.24…01…ESP-Overlay Scheme
3.3.25 T̲r̲a̲n̲s̲f̲e̲r̲ ̲i̲n̲ ̲M̲e̲m̲o̲r̲y̲ ̲
At several cases the ESP makes transfers of data around
in the CR80-memory. When doing this some precautions
must be taken.
- if a context switching occurs, while another memory
page than where the BASE is placed, is accessed,
then severe damage may happen. Therefore CPU-,
IO- and Real Time interrupt must be disabled when
doing this.
- when a non-existing memory location is accessed,
a TIMEOUT on the mainbus will be the result. KERNEL
is invoked via the LOCAL ̲ACTION address and a MON(ERROR)-call
is executed. This will result in a LOCAL ESP error
report with error code equal to #103. (ref. sec.
3.3.17).
The procedure TRANSFER ̲MEMORY handles the different
transferences in the memory. The procedure is called
with a reference to a MEMORY ̲TRANSFER ̲ELEMENT defined
below.
M̲E̲M̲O̲R̲Y̲ ̲T̲R̲A̲N̲S̲F̲E̲R̲ ̲E̲L̲E̲M̲E̲N̲T̲
̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲
Location from Word 0
Page from 1
Location to 2
Page to 3
No of words to transfer 4
̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲
3.4 D̲A̲T̲A̲ ̲O̲R̲G̲A̲N̲I̲Z̲A̲T̲I̲O̲N̲ ̲
3.4.1 I̲n̲t̲e̲r̲n̲a̲l̲ ̲D̲a̲t̲a̲ ̲S̲t̲r̲u̲c̲t̲u̲r̲e̲s̲ ̲
In the following is listed those data structures used
internal by the ESP-system and for which the definition
and use may not be obvious.
3.4.1.1 C̲O̲N̲S̲O̲L̲ ̲-̲ ̲p̲r̲o̲c̲e̲s̲s̲ ̲
This process is placed inside the ESP-process-data.
The process is not layed out by use of system utilities
(compiler/linker). Therefore the process, including
the PROCESS ̲HEADER, PROCESS ̲DESCRIPTOR, data-area and
IO-data-area must be declared and initialized as ESP-variables
in the ESP-process. Special measures have to be taken
to ensure that the rule about BASE/PRIORITY stated
ref (1), p 87 is fulfilled (- insertion of DUMMIES).
The purpose of using this implementation is to allow
ESP and CONSOL to access each others data-areas directly.
3.4.1.2 C̲O̲M̲M̲A̲N̲D̲-̲O̲V̲E̲R̲L̲A̲Y̲ ̲I̲d̲e̲n̲t̲i̲f̲i̲c̲a̲t̲i̲o̲n̲
When a command is keyed in, this is translated via
the table COMMAND ̲WORDS to a symbolic COMMAND ̲ID (=
equal entry number). Some commands are executed in
an ESP-overlay. These commands must be placed in the
latter part of the table. I.e. if the COMMAND ̲ID is
greater than or equal to the first OVERLAY ̲COMMAND
̲ID then the command is an OVERLAY ̲COMMAND. Which overlay
that is to be loaded is determined via the COMMAND
̲ID to OVERLAY ̲ID translation table OVERLAY ̲IDS. The
OVERLAY ̲ID is used to construct the name of the overlay
code-file to be loaded.
Example
A command RUN ̲AND ̲DELAY (RY) is issued. This command
is an OVERLAY ̲COMMAND. At lookup in the OVERLAY ̲IDS-table
is found that the command RY corresponds to the OVERLAY
̲
-ID = BG ̲PROC1 ̲OVL ̲ID (=3). Name of code-file to be
loaded is then
'ESP ̲OVL.X.C', where 'X' = 'A' + BG ̲PROC1 ̲OVL ̲ID, i.e.
'ESP ̲OVL.D.C'
3.4.2 E̲x̲t̲e̲r̲n̲a̲l̲ ̲D̲a̲t̲a̲ ̲S̲t̲r̲u̲c̲t̲u̲r̲e̲s̲
The following external data structures accessed in
the ESP-system, shall be known by the maintainer of
the ESP.
1. KERNEL data structures,
ref(1), KERNEL-sourcelisting.
2. System software structures -
AMOS events, IO-user-data structures
ref(1) + ref(2).
3. Watchdog Interface -
ref(14), sec. 3.2.
4. ESP to SAF AMOS-messages
ref(19)
5. CHECKP ̲FILE,
ref(13), sec. 11.12
6. SRS ̲CHECKP-file,
ref(20)
3.4.3 B̲G̲P̲S̲-̲F̲I̲L̲E̲
The file with name BGPS ̲FILE placed on the volume FIXHEAD
in the maindirectory is used of the background management
to store/retrieve the background programs/processes
- ref. sec. 3.3.15. It is of fixed size and contigious
organization. It is generated with the filegenerator
program 'BGPS ̲FILE.C'. It is only accessed of the ESP-process.
The layout is shown in fig. 3.4.3.
Figure 3.4.3…01…Layout of BGPS ̲FILE
3.5 S̲T̲O̲R̲A̲G̲E̲ ̲A̲L̲L̲O̲C̲A̲T̲I̲O̲N̲ ̲
The modules included in the ESP-system (version 0415)
have the following memory claims (approximately) in
words.
…02……02……02……02……02…Node/MEDE- , SCC-version
ESP-program: 3940 , 3590
ESP-process: 3200 , 3260
As the CONSOL-process is placed inside the ESP, then
they make no additional memory claims.
USRFIL-program: 75
USRFIL-process: 78
FILUSR-program: 230
FILUSR-process: 103
(in the file-procesor)
STFPWD-program: 31
STFPWD-process: 146
(in the STANDBY-branch
DULDSK-program: 225
DULDSK-process: 266
(Intended to be executed as background process, i.e.
it makes no additional memory claim).
3.6 P̲E̲R̲F̲O̲R̲M̲A̲N̲C̲E̲ ̲C̲H̲A̲R̲A̲C̲T̲E̲R̲I̲S̲T̲I̲C̲S̲ ̲
Most of the ESP-processing is concerned with the initializing
of a system. The performance of this processing is
only of vital interest when a Node/MEDE branch is to
be recovered, in which case the processing shall be
executed as quick as possible. The limitation in doing
this is the execution of the IO-procedures - loading
of processes and especially the initializing of the
TDX-system. If the processing shall be optimized, then
the first thing to look upon must be these procedures.
3.7 L̲I̲M̲I̲T̲A̲T̲I̲O̲N̲S̲ ̲
The following vital resource limitations shall be noticed:
M̲A̲X̲-̲N̲O̲-̲O̲F̲-̲B̲G̲T̲,̲ i.e. the maximum number of background
processes that can be executing at the same time.
M̲A̲X̲-̲S̲I̲Z̲E̲-̲B̲G̲P̲M̲,̲ i.e. the maximum size of a background
program area.
M̲A̲X̲-̲S̲I̲Z̲E̲-̲B̲G̲P̲S̲,̲ i.e. the maximum size of a background
process area.
S̲C̲M̲-̲B̲U̲F̲F̲E̲R̲-̲L̲E̲N̲G̲T̲H̲, i.e. the maximum of characters,
that can be held in the CONSOL input buffer.
All the limitations mentioned above can easily be modified.
3.8 E̲R̲R̲O̲R̲ ̲L̲O̲C̲A̲T̲I̲O̲N̲S̲
LABEL RAISED BY (CALL OF) COMMENT
̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲
̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲
101 * SYNTAX ERROR Incorrect command
line
102 * LOAD ERROR Impossible LOAD-command
103 * SECURITY VIOLATION Operator password
not keyed in
104 * SYNTAX ERROR (WD) Incorrect Watchdog
command
600 CDC-message timeout No answer from CDC-driver
701 MON(CREATEPROCESS) Note separate error
codes
702 MON(LOOKUPPROCESS) Error code = #FFFF
703 MON(STARTPROCESS) - " - - " -
704 MON(REMOVEPROCESS) - " - - " -
705 MON(STARTPROCESS) - " - - " -
711 MON(IDENTIFYSENDER) - " - - " -
900 MON(IO,LOOKUP) of ESP-overlay-directory,
901 MON(IO,DISMANTLE) of System-directory
(FIX ̲CONFIG.D)
903 MON(IO,DISMANTLE) of Load-file
904 MON(IO,DISMANTLE) of Command-file.
911 MON(IO,USERON)
912 MON(IO,USEROFF)
921 MON(IO,ASSIGNDUAL) at dual assignment
922 MON(IO,ASSIGN) at single assignment
(CDC-disks)
923 MON(IO,ASSIGN) at assignment of
FLOPPY-device.
931 MON(IO,DEASSIGN)
LABEL RAISED BY (CALL OF) COMMENT
̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲
̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲
941 MON(IO,DISCARD)
942 MON(IO,STARTUDALIZE)
943 MON(IO,FINISHDUALIZE)
951 MON(IO,MOUNT)
961 MON(IO,DISMOUNT)
971 MON(IO,UPDATE)
981 MON(IO,GETROOT) new system directory
982 MON(IO,DESCENT) - " -
991 MON(IO,LOOKUP) of Load-file
992 MON(IO,GETFILEINFO) - " -
993 MON(IO,READBYTES) from Load-file
994 Uneven no of bytes of Load-file - must
be even
996 MON(IO,LOOKUP) of Command-file
997 MON(IO,GETFILEINFO) - " -
998 MON(IO,READBYTES) from Command-file
LABEL RAISED BY (CALL OF) COMMENT
̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲
̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲
1000 MON(IO,GETROOT) of FIXHEAD
1001 MON(IO,DESCENT) Lookup of CHECK ̲FILE-
1002 MON(IO,READBYTES) from CHECKP ̲FILE
1003 MON(IO,MODIFYBYTES) in CHECKP ̲FILE
1101 MON(REGION,CREATE)
1111 MON(REGION,RENTER) CONFIG
1112 MON(REGION,RLEAVE) CONFIG
1121 MON(REGION, RPUT) in CONFIG
1131 MON(REGION, RPUTN) in CONFIG
1132 MON(REGION,RCOPYN) from CONFIG
S̲e̲t̲t̲i̲n̲g̲ ̲o̲f̲ ̲D̲T̲G̲
7501 MON(IO,GETROOT) of FIXHEAD
7502 MON(IO,DESCENT) to SRS ̲CHECKP-file
7503 MON(IO,READBYTES) from SRS ̲CHECK-file
7504 MON(IO,DISMANTLE) of SRS ̲CHECKP-file
at SCC-installations
SRS ̲CHECKP shall
be exchanged with
CHECK ̲FILE
7506 MON(IO,READBYTES) from CHECK ̲FILE.
7507 DTG SYNCHRONIZED at CHECK ̲DTG
7508 DTG TOO BIG at LOAD ̲DTG
LABEL RAISED BY (CALL OF) COMMENT
̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲
̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲
T̲D̲X̲-̲s̲y̲s̲t̲e̲m̲
7661 MON(IO,ASSIGN) of red TDX-host
7662 MON(IO,ASSIGN) of black TDX-host
7671 MON(IO,GETROOT) of MOVHEAD
7672 MON(IO,DISMANTLE) of a *MOVHEAD*MD
7777 DATA INCONSISTENCE of KERNEL-data
7778 DISK INCONSISTENCE no availlable disk
7779 TIMEOUT ON DMA USRFIL-FILUSR-link
77XX MEMORY ̲DUMP ̲UTILITY ref. to source listings
B̲a̲c̲k̲g̲r̲o̲u̲n̲d̲ ̲M̲a̲n̲a̲g̲e̲m̲e̲n̲t̲
7801 MON(IO,GETROOT) of FIXHEAD
7802 MON(IO,DESCENT) lookup of a * FIXHEAD*BGPS
̲FILE
7803 MON(IO,READBYTES) from BGPS ̲FILE
7804 MON(IO,MODIFYBYTES) in BGPS ̲FILE
80XX INSPECT ̲UTILITY ref. to source listings
86XX SET USP (at SCC) ref. to source listings
87XX ERROR ̲DUMP ̲UTILITY ref. to source listings
88XX FLOPPY ̲DUMP ̲UTILITY ref. to source listings
89XX ENABLE/DISABLE BOOTM. ref. to source listings
90XX ENTER/LEAVE SECURITY ref. to source listings
f̲r̲o̲m̲ ̲C̲O̲N̲S̲O̲L̲ ̲
#FFFF CONSOL ̲BUFFER ̲OVERFLOW Local fix up
3.9 L̲I̲S̲T̲I̲N̲G̲ ̲R̲E̲F̲E̲R̲E̲N̲C̲E̲
Source listings and linker list may be obtained from
FIXLIB. Ref. to SCCLDD.
4 Q̲U̲A̲L̲I̲T̲Y̲ ̲A̲S̲S̲U̲R̲A̲N̲C̲E̲ ̲
4.1 Q̲U̲A̲L̲I̲F̲I̲C̲A̲T̲I̲O̲N̲S̲ ̲T̲E̲S̲T̲S̲
The ESP-system has been tested at different levels:
M̲o̲d̲u̲l̲e̲ ̲t̲e̲s̲t̲:̲ Refer to
Test Report for ESP non-dualized,
FIX/1105/TRP/0043.
I̲n̲t̲e̲g̲r̲a̲t̲i̲o̲n̲ ̲t̲e̲s̲t̲:̲ Refer to
Test Report for I150 Dual N/M Integration, FIX/1000/TRP/0066.
S̲y̲s̲t̲e̲m̲ ̲i̲n̲t̲e̲g̲r̲a̲t̲i̲o̲n̲ ̲t̲e̲s̲t̲:̲ Refer to
System Test Report for 3080,
FIX/0000/TRP/0089
4.2 O̲T̲H̲E̲R̲ ̲Q̲U̲A̲L̲I̲T̲Y̲ ̲A̲S̲S̲U̲R̲A̲N̲C̲E̲ ̲P̲R̲O̲V̲I̲S̲I̲O̲N̲S̲
The FIKS-system can not operate without a correct acting
ESP-system. Therefore by ordinary use of the FIKS-system
for testing it is shown that the ESP-system fulfils
its capabilities.
5 P̲R̲E̲P̲A̲R̲A̲T̲I̲O̲N̲S̲ ̲F̲O̲R̲ ̲D̲E̲L̲I̲V̲E̲R̲Y̲
Do as stated in file 'INFORMATION' in the last delivery
of the ESP-directory to FIXLIB.
N̲o̲t̲e̲:̲ As parts of the ESP-system are included in the
BOOT-modules, it is necessary to generate a new BOOT-
module, if executable code shall be delivered. If so,
do as stated in file 'INFORMATION' in the last delivery
of FIKS ̲USER ̲BOOT-directory to FIXLIB.
6 N̲O̲T̲E̲S̲
6.1 M̲O̲D̲U̲L̲E̲ ̲G̲E̲N̲E̲R̲A̲T̲I̲O̲N̲
Every module in the ESP-system is compiled by means
of the SWELL Compiler and linked by means of the AMOS
linker. Refer to
SWELL 80, Reference Manual,
CSS/415/RFM/0002
CR80 AMOS, SWELL Compiler, Users Manual, CSS/415/USM/0047.
CR80 AMOS, Linker, Reference Manual,
CSS/416/RFM/0003.
CR80 AMOS, Linker, Users Manual;
CSS/416/USM/0048.
To perform the compilation and linking of the modules
do as stated in the INFORMATION-file in the last FIXLIB-delivery
of the ESP.
6.2 E̲S̲P̲-̲U̲T̲I̲L̲ ̲ ̲P̲R̲O̲G̲R̲A̲M̲
When the ESP is compiled and linked, then there exist
an ESP-code file for each ESP-overlay. These code files
have to be brought into a form where they can be used.
This conversion is performed of the ESP ̲UTIL-program.
G̲e̲n̲e̲r̲a̲t̲i̲o̲n̲ ̲o̲f̲ ̲R̲O̲O̲T̲-̲m̲o̲d̲u̲l̲e̲
The ESP ̲INIT-code file shall be converted to a ROOT-module.
When it is outputted from the linker, then it is formatted
as the "Assembly Time Object" in ref.(1), Appendix
B, figure B.3. A ROOT-module has the process-part first
followed by the program-part. Location #25 of the process-part
(Register 7) contains the start location (XSTART).
ESP ̲UTIL performs the needed conversion, - linker output
= ESP ̲INIT.C = ESP ̲UTIL-input, ESP ̲UTIL-output = ESP
̲INIT.CV = ROOT-module.
G̲e̲n̲e̲r̲a̲t̲i̲o̲n̲ ̲o̲f̲ ̲E̲S̲P̲-̲o̲v̲e̲r̲l̲a̲y̲s̲
(ref. sec. 3.3.24)
Each ESP-overlay code file are converted as follows.
The program header (which contains OVERLAY ̲ENTRY) and
the code part from XSTARTO (= OVERLAY ̲START from ESP
̲INIT-code) until end of program part are put together
in one code file placed in the ESP ̲OVL.D-directory
with name corresponding to the OVERLAY ̲ID.
If an overlay is too big (or ESP ̲INIT-code too little),
then ESP ̲UTIL-terminates with (errorcode, errorlocation)
= (#AAAA, OVERLAY ̲ID).
ESP ̲UTIL needs only updating in case the number of
ESP-overlays is changed. For detailed information refer
to the source listings.
6.3 D̲i̲f̲f̲e̲r̲e̲n̲t̲ ̲E̲S̲P̲-̲V̲e̲r̲s̲i̲o̲n̲s̲
The source code for the different version of the modules
included in the ESP-system is contained in the same
source, using conditional compilation statements. Source
updating needs then only to be done at one place independent
of version. The version compiled depends on the content
of the file COMP.SWITCH. This contains only a compiler
switch stating the type of version. In this way one
or both version can be generated automatically.
6.4 G̲E̲N̲E̲R̲A̲T̲I̲O̲N̲ ̲O̲F̲ ̲B̲O̲O̲T̲-̲M̲O̲D̲U̲L̲E̲S̲
The ESP is included in the BOOT-module. This module
is created by means of the system generator program
SYSGEN and the AMOS BOOT file generator. Refer to:
CR80 AMOS SYSGEN, Users Manual,
CSS/121/USM/0023
CR80 UTILITY DBOOT, Users Manual,
CSS/394/USM/0081.
To produce the BOOT-modules do as stated in the INFORMATION-file
in the last FIXLIB-delivery of
FIKS ̲USER ̲BOOT.D - directory
-generation of BOOT-module to Userprocessor.
FIKS ̲FILE ̲BOOT.D - directory
-generation of BOOT-module to fileprocessor.
A̲p̲p̲e̲n̲d̲i̲x̲ ̲7̲.̲1̲.̲a̲ ̲-̲ ̲E̲x̲a̲m̲p̲l̲e̲ ̲A̲C̲T̲I̲V̲E̲-̲f̲i̲l̲e̲
A̲p̲p̲e̲n̲d̲i̲x̲ ̲7̲.̲1̲.̲a̲ ̲-̲ ̲E̲x̲a̲m̲p̲l̲e̲ ̲A̲C̲T̲I̲V̲E̲-̲f̲i̲l̲e̲ (cont'd)
A̲p̲p̲e̲n̲d̲i̲x̲ ̲7̲.̲1̲.̲b̲ ̲-̲ ̲E̲x̲a̲m̲p̲l̲e̲ ̲S̲T̲A̲N̲D̲B̲Y̲-̲f̲i̲l̲e̲
A̲p̲p̲e̲n̲d̲i̲x̲ ̲7̲.̲1̲.̲b̲ ̲-̲ ̲E̲x̲a̲m̲p̲l̲e̲ ̲S̲T̲A̲N̲D̲B̲Y̲-̲f̲i̲l̲e̲ ̲(̲c̲o̲n̲t̲'̲d̲)̲
A̲p̲p̲e̲n̲d̲i̲x̲ ̲7̲.̲1̲.̲c̲ ̲-̲ ̲E̲x̲a̲m̲p̲l̲e̲ ̲R̲E̲C̲O̲V̲E̲R̲-̲f̲i̲l̲e̲
A̲p̲p̲e̲n̲d̲i̲x̲ ̲7̲.̲1̲.̲d̲ ̲-̲ ̲E̲x̲a̲m̲p̲l̲e̲ ̲C̲L̲O̲S̲E̲-̲f̲i̲l̲e̲
APPENDIX 7.2
APPENDIX 7.2
APPENDIX 7.2
APPENDIX 7.2
APPENDIX 7.2
DCN's needed to get the document
CR80 AMOS KERNEL,
CSS/802/PSP/0008, issue 2
to confirm with the KERNEL used by the FIKS system.