top - download
⟦60407d05b⟧ Wang Wps File
Length: 18417 (0x47f1)
Types: Wang Wps File
Notes: FIX/1200/PSP/0084
Names: »4893A «
Derivation
└─⟦c7fef4850⟧ Bits:30006144 8" Wang WCS floppy, CR 0418A
└─ ⟦this⟧ »4893A «
WangText
…00……00……00……00……00…A…0a……00……00…A…0b…A…86…1 …02… …02… …02…
4893A/ir…02…FIX/1200/PSP/0084
…02…OK/840510…02……02…#
FIKS RECOVM PROCEDURE PSP
…02……02… FIKS
FIKS RECOVM PROCEDURE PSP
FIX/1200/PSP/0084
Ove Kaastrup
Ole Eskedal
AMC (6), LOL, APE, REV, LU
…0e… FIKS S/W Mgr. 840510
1
ILS Conf. Mgr. 840510…0f…
840510
…0f…4893A/ir…02… FIX/1200/PSP/0084
…02… OK/840510…02……02…ii
FIKS RECOVM PROCEDURE PSP
…02……02… FIKS…0e…
840510 All Issue one of Document
4893A/ir…02… FIX/1200/PSP/0084
…02… OK/840510…02… iii
FIKS RECOVM PROCEDURE PSP
…02……02… FIKS
…01…T̲A̲B̲L̲E̲ ̲O̲F̲ ̲C̲O̲N̲T̲E̲N̲T̲S̲
1 SCOPE ........................................
1
1.1 INTRODUCTION ..............................
1
1.2 ABBREVIATIONS .............................
1
2 APPLICABLE DOCUMENTS .........................
2
2.1 SYSTEM SOFTWARE ...........................
2
2.2 FIKS DOCUMENTATION ........................
2
3 MODULE SPECIFICATION .........................
3
3.1 FUNCTIONAL CAPABILITIES ...................
3
3.2 INTERFACE DESCRIPTION .....................
4
3.3 PROCESSING ................................
6
3.4 DATA ORGANIZATION .........................
12
3.5 STORAGE ALLOCATION ........................
13
3.6 LIMITATIONS ...............................
13
3.7 ERROR LOCATIONS ...........................
14
4 QUALITY ASSURANCE ............................
14
5 PREPARATION FOR DELIVERY .....................
15
1 S̲C̲O̲P̲E̲
This document contains an as-built product specification
of the initialization programme RECOVM (RECOVER MODULE).
1.1 I̲N̲T̲R̲O̲D̲U̲C̲T̲I̲O̲N̲
This document is mainly ment as an aid to persons who
are going to maintain the RECOVM programme, or to persons
who wants a detailed insight in it. The document gives
an overview of all functionalities of RECOVM, and their
influence on related parts of the FIKS system are described.
This document covers the description of both the N/M
version and the SCC version of RECOVM. All functions
described in this document apply to the N/M version,
while only a subset of the functions apply to the SCC
version. Section 3.3 points out the differences.
1.2 A̲B̲B̲R̲E̲V̲I̲A̲T̲I̲O̲N̲S̲
Refer to ref. 6, chapter 1.2
2 A̲P̲P̲L̲I̲C̲A̲B̲L̲E̲ ̲D̲O̲C̲U̲M̲E̲N̲T̲S̲
2.1 S̲Y̲S̲T̲E̲M̲ ̲S̲O̲F̲T̲W̲A̲R̲E̲
1) CR80 AMOS KERNEL
Product Specification CSS/302/PSP/0008
2) CR80 AMOS I/O SYSTEM
Product Specification CSS/006/PSP/0006
3) CR80 AMOS, FILE MANAGEMENT SYSTEM
System Product Specification CSS/920/SPS/0001
4) CR80 MINI COMPUTER HANDBOOK
2.2 F̲I̲K̲S̲ ̲D̲O̲C̲U̲M̲E̲N̲T̲A̲T̲I̲O̲N̲
5) FIKS SYSTEM PSP
FIX/1000/PSP/0038
6) FIKS DATA INTERFACE REFERENCE MANUAL
FIX/0100/MAN/0004
7) MTCB ̲INIT PROCEDURE PSP
FIX/1200/PSP/0067
8) MTCB MONITOR PSP
FIX/1256/PSP/0066
9) QACCESS MONITOR PSP
FIX/1256/PSP/0078
10) CHECKPOINT SUBSYSTEM PSP
FIX/1100/PSP/0041
11) MES SUBMODULE PSP
FIX/1351/PSP/0060
12) NODAL SWITCH SUBSYSTEM
FIX/1154/PSP/0107
13) RESPDB PROCEDURE PSP
FIX/1200/PSP/0085
3 M̲O̲D̲U̲L̲E̲ ̲S̲P̲E̲C̲I̲F̲I̲C̲A̲T̲I̲O̲N̲
RECOVM is a programme which runs in the initialization
phase of a N/M or SCC. It is only available in initializations
that take checkpoints into account (which on the N/M
means a switch to (or load of) a branch, which status
is "STANDBY". On a SCC the module is activated when
a load, which is n̲o̲t̲ of the type "COLD", is performed).
The purpose of RECOVM is to retrieve all MTCB checkpoints
which were active, when the system was closed. When
this job is finished the RECOVM process is terminated
and removed from the operational system, and then the
online FIKS processes are loaded and started.
3.1 F̲U̲N̲C̲T̲I̲O̲N̲A̲L̲ ̲C̲A̲P̲A̲B̲I̲L̲I̲T̲I̲E̲S̲
The functions of RECOVM are to access the CHECKP ̲FILE,
inspect the checkpointed MTCB's, and queue them to
a queue specified by the checkpoint record. The retrieved
MTCB's are inserted in the data area of the MTCB monitor,
and MTCB use-counts and file use-counts are updated.
Further RECOVM accesses the NSS checkpoint file NSS
̲
CHECKP. All MTCB's available are inspected, and the
MTCB monitor is called in order to increment the MTCB
use-counts. Each MTCB in the file holds the index of
another MTCB. The use-count of the referenced MTCB's
are updated by call of the MTCB monitor.
Further the critical region PDBTAB (which have been
updated with checkpoints by the SYSCHP process) is
accessed, and for each MTCB referenced in the table,
the MTCB monitor is called in order to increment its
MTCB use count.
Finally, the data area of the MTCB monitor is made
consistant by updating pointers and linking of unused
table elements.
The purpose of having this programme, instead of letting
the application programmes retrieve them, when they
are loaded, (as it is the case for other types of checkpoints)
is, that the nature of MTCB's are rather complex and
thus making it too cumbersome for the single application
to handle it.
By using this scheme, it is transparent for a majority
of the applications (those, which only checkpoint MTCB's)
whether the system is coldstarted or started on basis
of checkpoints.
3.2 I̲N̲T̲E̲R̲F̲A̲C̲E̲ ̲D̲E̲S̲C̲R̲I̲P̲T̲I̲O̲N̲
Figure 3.2 shows the interfaces of the RECOVM module.
S̲Y̲S̲T̲E̲M̲ ̲S̲O̲F̲T̲W̲A̲R̲E̲
- Disk files are accessed by means of the FMS-system
via monitor calls of the IO-system.
- Critical regions are accessed by the critical region
monitor procedure in the KERNEL (ref. 1).
F̲I̲K̲S̲ ̲A̲P̲P̲L̲I̲C̲A̲T̲I̲O̲N̲ ̲I̲N̲T̲E̲R̲F̲A̲C̲E̲
At the time RECOVM is run, the only applications available
are the FIKS monitors.
- MTCB monitor (ref. 8).
- QACCESS monitor (ref. 9).
F̲I̲L̲E̲S̲
- CHECKP ̲FILE on FIXHEAD volume.
- NSS ̲CHECKP on FIXHEAD volume.
F̲I̲K̲S̲ ̲A̲R̲E̲A̲S̲
- MTCB DATA area is accessed both directly and via
the MTCB monitor. The layout of the area is given
in ref. 8, chapt. 3.4.
- QACCESS DATA area is accessed via calls of QACCESS
monitor.
Figure 3.2
Interface Description of Recovm
3.3 P̲R̲O̲C̲E̲S̲S̲I̲N̲G̲
The main processing in RECOVM takes place in the mainmodule.
Some functionalities concerning MTCB list updates are
performed by the procedure LINK ̲LIST. ref. 3.3.1.
The processing can be divided into the following steps:
a) Initialization of programme.
b) Retrieval and queueing of checkpointed MTCB's.
c) Update of MTCB use-counts for MTCB's listed
in PDBTAB.
d) Update of MTCB use-counts according to NSS
̲
CHECKP-file.
e) Update of MTCB use-counts for MTCB's referred
to in other MTCB's.
f) Update of file use-counts of MTCB's.
g) Update of MTCB resource data.
h) Linking of not used entries in MTCB-pools.
In the SCC version of RECOVM, the processing in point
c and d are not applicable.
a) I̲n̲i̲t̲i̲a̲l̲i̲z̲a̲t̲i̲o̲n̲ ̲o̲f̲ ̲p̲r̲o̲g̲r̲a̲m̲m̲e̲
- The disk volumes MOVHEAD and FIXHEAD are looked
up by calls of MON (IO, GETROOT).
The volume names are inserted in the variables
at compile time (by use of INIT).
- The programme is "logged on" to the MTCB monitor
by call of MTCB, INITE.
- The disk file CHECKP ̲FILE on the FIXHEAD volume
is looked up by call of MON (IO, LOOKUP).
- The critical region CONFIG is accessed and
parameters concerning the MTCB DATA area are
read.
- Parameters to be used, when accessing MTCB
̲DATA area are set up: DATA ̲PSW = the PSW
to be loaded when reading in MTCB ̲DATA area
(the use of PSW: see ref. 4).
MTCB ̲DATA ̲ADDR = the base relative address
of the first word in MTCB ̲DATA.
MTCB ̲POOL ̲ADDR = the base relative address
of the pool section within the MTCB DATA area.
b) R̲e̲t̲r̲i̲e̲v̲a̲l̲ ̲a̲n̲d̲ ̲q̲u̲e̲u̲e̲i̲n̲g̲ ̲o̲f̲ ̲c̲h̲e̲c̲k̲p̲o̲i̲n̲t̲e̲d̲ ̲M̲T̲C̲B̲'̲s̲
The purpose of this section is to reconstruct the
situation, (concerning checkpointed MTCB's) as
it was at the time when the N/M or SCC crashed
(or was orderly closed down).
In the previous system (the one that crashed),
the creations, updates, removals and insertions
in queues were checkpointed by sending an AMOS
system message to the CHECKPOINT process (ref.
10). The checkpoints received by CHECKP were stored
in records on the file CHECKP ̲FILE. The layout
of these are shown in ref. 10, chapter 3.3.3.2.
As it is shown, each MTCB checkpoint consists of
a MTCB-block and a queue map.
Each MTCB record in CHECKP ̲FILE is read (a number
of records are copied into the buffer BUFF in one
disk access), and the MTCB block is copied into
the MTCB ̲DATA area in the MTCB-pool, and its use-count
is set to zero (later on, the use-counts will be
changed). The Queue-Map attached to the MTCB is
scanned (the number of entries in Queue-Map is
equal to the maximum number of queues in the system.
There is a direct relationship between entry no.
and queue number). For each non-zero entry found,
the MTCB is enqueued to the queue corresponding
to the entry number (and subqueue no. equal to
the contents of the entry) by call of the QACCESS
monitor.
Each MTCB block in the CHECKP ̲FILE is processed
one by one as described above. Please note, that
the MTCB use-count is set to one automatically
when they are enqueued (QACCESS asks MTCB monitor
to increment when enqueueing).
If a MTCB has been queued several times to a single
queue (ex. local distribution of messages in the
DTS-queue, or retrieve-distribution with more than
one copy to one terminal), only one copy will be
inserted by RECOVM ( meaning, that only one copy
will be printed after recovery of the system).
c) U̲p̲d̲a̲t̲e̲ ̲o̲f̲ ̲M̲T̲C̲B̲ ̲u̲s̲e̲-̲c̲o̲u̲n̲t̲s̲ ̲f̲o̲r̲ ̲M̲T̲C̲B̲'̲s̲ ̲l̲i̲s̲t̲e̲d̲ ̲i̲n̲
̲P̲D̲B̲T̲A̲B̲
(This section is only applicable for the N/M version
of RECOVM).
Before the RECOVM programme is run, the SYSCHP
programme has been run. One of the tasks performed
by SYSCHP is to retrieve checkpoints concerning
the critical region PDBTAB (which is used by the
terminal process), from the CHECKP ̲FILE. When RECOVM
starts processing the PDBTAB data are available.
The region contains a number of records (NO ̲PDBTAB
̲RECS = 30) each of length 20 words. Each second
word in a record is the index of a MTCB, (unless
the entry is zero). For each non-zero MTCB-index
in a record, MON (MTCB, RESERVE) is called in order
to increment the MTCB use-count of this MTCB. This
processing is performed on the records one by one
until all records in PDBTAB critical region have
been processed.
d) U̲p̲d̲a̲t̲e̲ ̲o̲f̲ ̲M̲T̲C̲B̲ ̲u̲s̲e̲-̲c̲o̲u̲n̲t̲s̲ ̲a̲c̲c̲o̲r̲d̲i̲n̲g̲ ̲t̲o̲ ̲N̲S̲S̲ ̲C̲H̲E̲C̲K̲P̲
̲f̲i̲l̲e̲.
(This section is only applicable for the N/M version
of RECOVM).
The NSS checkpoint file NSS ̲CHECKP (also called
Outbound Message File) is accessed and the trunk
tables are inspected. (A description of the use
of the file is given in ref. 12, chapter 3.1.7.2
and the layout of the file is shown in chapter
3.4.2.6).
Each trunk table contains a record for each precedence
(of which there are 7). Each record has 2 sections
each (possibly) containing a MTCB index.
All these indexes in each trunk table are examined,
and if they hold a MTCB-index, then the use count
of this MTCB is incremented by call of MON (MTCB,
RESERVE).
e) U̲p̲d̲a̲t̲e̲ ̲o̲f̲ ̲M̲T̲C̲B̲ ̲u̲s̲e̲-̲c̲o̲u̲n̲t̲s̲ ̲f̲o̲r̲ ̲M̲T̲C̲B̲'̲s̲ ̲r̲e̲f̲e̲r̲e̲n̲c̲e̲d̲
̲i̲n̲ ̲o̲t̲h̲e̲r̲ ̲M̲T̲C̲B̲'̲s̲.
Some of the MTCB's inserted in the MTCB ̲DATA area,
as described in point b, may contain references
to other MTCB's. Therefore, the MTCB use-count
of these referenced MTCB's must be incremented.
All MTCB blocks in the MTCB ̲POOL are inspected
one by one and if a MTCB fulfils the criterias:
1. MTCB is in use.
2. Its MTCB use-count is not zero.
3. The MTCB is of type "PSEUDO".
4. The category and subcategories of the pseudo
MTCB are one of the following:
a) Cat. = MES ̲PIP.
Subcat. = 3 or 4.
b) Cat. = UNSUC ̲DELIVERY ̲MSGS.
Subcat. = All categories concerning
"undeliverable messages"
( [ and 12).
c) Cat. = STATISTICS ̲AND ̲LOCAL ̲DELIVERY.
Subcat. = SFS ̲MDS ̲LOCAL ̲DELIV.
Then the MTCB use-count of the referenced MTCB
is incremented by call of MON MTCB, RESERVE.
f) U̲p̲d̲a̲t̲e̲ ̲o̲f̲ ̲f̲i̲l̲e̲ ̲u̲s̲e̲-̲c̲o̲u̲n̲t̲s̲ ̲o̲f̲ ̲M̲T̲C̲B̲'̲s̲
Each MTCB in the MTCB ̲POOL located in MTCB ̲DATA
area is inspected one by one.
The control word of the MTCB (the first word in
the record) is checked:
- If the bit indicating, that the message is
on HDB, is set (bit ll), then the bits indicating,
that the message is on IMF and PDB are reset.
(bit 12 and 13). This means, that even if the
IMF bit was set, then the allocated IMF area
will be declared as free (ref. point h). If
the PDB-bit was set, then the PDB-file will
later on (by the initialization procedure RESPDB
(ref. 13)) be reset and considered as free.
Further the field in the MTCB, describing the
file index is reset (because this field only
applies for PDB- and IMF files).
- If the MTCB use-count in the control word (bits
0-5) of the MTCB record is bigger than zero
(meaning that this MTCB actually is in use
by an application process), then the file reference
bits (bits 14 and 15) in the control word are
examined: If the bits indicates, that a file
is attached to the MTCB, then the corresponding
entry is the IMF ̲POOL table (if the file is
of type IMF) or the PDB ̲POOL table (if the
file is of type PDB) is marked as occupied.
g) U̲p̲d̲a̲t̲e̲ ̲o̲f̲ ̲M̲T̲C̲B̲ ̲r̲e̲s̲o̲u̲r̲c̲e̲ ̲d̲a̲t̲a̲.
In the MTCB ̲DATA area, there is a counter describing
the number of MTCB's in use (MTCB ̲
COUNT), and a counter describing the number of
PDB-files in use (PDB ̲COUNT).
In this section, these counters are set:
M̲T̲C̲B̲ ̲C̲O̲U̲N̲T̲:
All MTCB's in the MTCB ̲POOL in the MTCB ̲DATA
area are examined one by one, and if a MTCB
is marked "in use" and its MTCB use-count is
larger than zero, then the MTCB ̲COUNT is incremented
one.
P̲D̲B̲ ̲C̲O̲U̲N̲T̲:
The PDB ̲POOL (holding one entry for each PDB-file)
in the MTCB ̲DATA area is inspected:
Each entry in the pool is inspected, and if
bit 15 is set (indicating, that a PDB-file
is in use), then the MTCB ̲COUNT is incremented
one.
h) L̲i̲n̲k̲i̲n̲g̲ ̲o̲f̲ ̲n̲o̲t̲ ̲u̲s̲e̲d̲ ̲e̲n̲t̲r̲i̲e̲s̲ ̲i̲n̲ ̲M̲T̲C̲B̲ ̲P̲O̲O̲L̲S̲.
At this time, the pools MTCB ̲POOL, PDB ̲POOL and
IMF ̲POOL in the MTCB ̲DATA area are considered as
consistant. The only thing left to do is to organize
all free entries in the pools:
Each pool has a pointer to the first free element
in the pool. This pointer is found by inspecting
the pool entries one by one until a free element
is found. All free entries in a pool is updated
with a pointer to the next free entry (except for
the last free entry in the pool: the "next free
pointer" of this entry is set to zero).
The setting of pointers in pools are performed
by a call of the LINK ̲LIST procedure for each of
the three pools.
3.4 D̲A̲T̲A̲ ̲O̲R̲G̲A̲N̲I̲Z̲A̲T̲I̲O̲N̲
The following external data structures, defined outside
this document must be known:
1. System software structures:
IO-user data structures, critical regions:
ref.1.
2. CR80 Architecture
BASG, PSW: ref. 4.
3. MTCB data structures
ref. 7 and 8.
4. PDBTAB PDB-FILE table
ref. ll.
5. CHECKP ̲FILE file
ref. 10.
6. NSS ̲CHECKP file
ref. 12.
I̲n̲t̲e̲r̲n̲a̲l̲ ̲d̲a̲t̲a̲ ̲s̲t̲r̲u̲c̲t̲u̲r̲e̲s̲:
Please refer to source listings.
The constant MAX ̲BUFF ̲SIZE determines the size of the
array BUFF. The size is set in the way that the entire
area available for background processes is used.
If the maximum available background process area is
changed, so that it is less than # 700 words, this
constant must be changed.
3.5 S̲T̲O̲R̲A̲G̲E̲ ̲A̲L̲L̲O̲C̲A̲T̲I̲O̲N̲S̲
Please refer to linker output listings.
3.6 L̲I̲M̲I̲T̲A̲T̲I̲O̲N̲S̲
- Before RECOVM is run, the SYSCHP programme must
have finished its processing. (SYSCHP retrieves
the data in the critical region PDBTAB, which is
used by RECOVM).
- Before RECOVM is run, the monitor procedures MTCB
and QACCESS must be loaded, and their initialization
programmes Q ̲INIT and MTCB ̲INIT must have been
run.
- Before RECOVM is run, the data area for the critical
regions CONFIG and RESPDB must be loaded.
- When RECOVM is running, no other programmes (except
the ESP), which uses the MTCB monitor must be running.
(RECOVM accesses the MTCB DATA area without using
the monitor).
- The RECOVM programme must be run before the RESPDB
programme is run (this programme uses the MTCB
data area, which is modified by RECOVM).
3.7 E̲R̲R̲O̲R̲ ̲L̲O̲C̲A̲T̲I̲O̲N̲S̲
L̲a̲b̲e̲l̲: R̲a̲i̲s̲e̲d̲ ̲b̲y̲ ̲c̲a̲l̲l̲ ̲o̲f̲:
1 MON (IO, GETROOT) (MOVHEAD)
2 MON (IO, GETROOT) (FIXHEAD)
3 MON (MTCB, INITE)
4 MON (IO, LOOKUP) (CHECKP ̲FILE)
5 MON (IO, READBYTES) (CHECKP
̲FILE)
6 MON (QACCESS, INS)
7 MON (REGION, RCOPYN) (PDBTAB)
8 MON (MTCB, RESERVE)
9 MON (IO, LOOKUP) (NSS ̲CHECKP)
10 MON (IO, READBYTES) (NSS ̲CHECKP)
11 MON (MTCB, RESERVE)
12 MON (MTCB, RESERVE)
13 MON (MTCB, RESERVE)
14 MON (REGION, RCOPYN) (CONFIG)
0 When the process has finished
processing.
4 Q̲U̲A̲L̲I̲T̲Y̲ ̲A̲S̲S̲U̲R̲A̲N̲C̲E̲
N/A
5 P̲R̲E̲P̲A̲R̲A̲T̲I̲O̲N̲ ̲F̲O̲R̲ ̲D̲E̲L̲I̲V̲E̲R̲Y̲
A constant in the file NM.SCC.SWITCH determines, whether
a N/M version or a SCC version shall be generated.
Edit this constant to the correct value
(SCC = TRUE OR FALSE), and then follow the instructions
given in the file INFORMATION.