top - download
⟦8d0432203⟧ Wang Wps File
Length: 14020 (0x36c4)
Types: Wang Wps File
Notes: FIX/1200/PSP/0079
Names: »3126A «
Derivation
└─⟦dfa2fde64⟧ Bits:30006137 8" Wang WCS floppy, CR 0266A
└─ ⟦this⟧ »3126A «
WangText
E…0a…E…0c…E…0e…E…0f…E…00…E…02…E…05…6…86…1
…02…
…02…
…02…
3126A…02…FIX/1200/PSP/0079
…02…APE/851115…02……02…#
Q-INIT
PROCEDURE
PSP
…02…HFJ/821206…02…FK
7809
T̲A̲B̲L̲E̲ ̲O̲F̲ ̲C̲O̲N̲T̲E̲N̲T̲S̲
1 SCOPE .............................................. 0001
…02… 1.1 Introduction ................................. 0001
1.2 Abbreviations .................................. 0002
2 APPLICABLE DOCUMENTS ............................... 0003
3 MODULE SPECIFICATIONS .............................. 0004
3.1 Functional Capabilities ........................ 0004
3.2 Interface Description .......................... 0005
3.3 Processing ..................................... 0006
3.3.1 Initialization of Queue Data ............... 0006
3.4 Data Organization .............................. 0010
3.4.1 Queue Data Area Overview ................... 0010
3.4.2 Data Description ........................... 0013
3.4.2.1 Format of Header ....................... 0015
3.4.2.2 Format of Q STATUS Table ............... 0016
3.4.2.3 Format of GR ̲HEAD Table ................ 0017
3.4.2.4 Format of the SI HEAD Table ............ 0018
3.4.2.5 Format of Q HEAD Table ................. 0018
3.4.2.6 Format of Q PROC Table ................. 0021
3.4.2.7 Format of Q POOL Table ................. 0022
3.4.3 Compile Time Parameters .................... 0023
3.5 Storage Allocation ............................. 0024
3.6 Performance Characteristics .................... 0025
3.7 Limitations .................................... 0026
3.8 Error Codes/Error Locations .................... 0027
3.9 Listing References ............................. 0028
4 QUALITY ASSURANCE .................................. 0029
4.1 Qualification Tests ............................ 0029
5 PREPARATION FOR DELIVERY ........................... 0030
1 S̲C̲O̲P̲E̲
This document describes the Q-INIT procedure, which is run during system intitialization
in order to layout the Q-AREA, used by QACCESS-monitor.
1.1 I̲n̲t̲r̲o̲d̲u̲c̲t̲i̲o̲n̲
The procedure initializes the Q-AREA with the necessary pointers and a pool of free Q-elements
1.2 A̲b̲b̲r̲e̲v̲i̲a̲t̲i̲o̲n̲s̲
Please refer to FIKS DATA INTERFACE FIX/0100/MAN/0004.
2 A̲P̲P̲L̲I̲C̲A̲B̲L̲E̲ ̲D̲O̲C̲U̲M̲E̲N̲T̲S̲
3 M̲O̲D̲U̲L̲E̲ ̲S̲P̲E̲C̲I̲F̲I̲C̲A̲T̲I̲O̲N̲S̲
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 procedure will layout and initialize the Q-AREA on a memory page, in a specific location
both defined in critical region CONFIG.
CONFIG is after layout updated with the next free location in the specified page.
3.2 I̲n̲t̲e̲r̲f̲a̲c̲e̲ ̲D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲
The only interface used by Q-INIT procedure is access and update of critical region CONFIG.
Q ̲INIT reads the following:
o QPAGE, page for Q ̲DATA area
o NO ̲TERMINALS; no. of msg. terminals
o MAX ̲NO ̲TERM; total no. of queue-term
o PRINT ̲Q ̲THRESH; print-queue threshold
o MAX ̲NO ̲QUEUE ̲EL; total no. of queue-elem.
o MAX ̲NO ̲QUEUE ̲EL ̲NON ̲PRIV; threshold for non priviledged call
o DT ̲TERMINAL; supervisor distribution terminal number
o CCIS ̲STATUS; FIKS/FODCCIS Link presence indication o TOP ̲OF ̲MEMORY; last used location
in page
Q ̲INIT updates the following:
o QOFFSET; ref. to Q ̲AREA on Q ̲PAGE
o TOP ̲OF ̲MEMORY; see above
3.3 P̲r̲o̲c̲e̲s̲s̲s̲i̲n̲g̲
3.3.1 I̲n̲i̲t̲i̲a̲l̲i̲z̲a̲t̲i̲o̲n̲ ̲o̲f̲ ̲Q̲u̲e̲u̲e̲ ̲D̲a̲t̲a̲
Function
The purpose of the procedure is to initialize the queue area and tables for the queue description:
o Q ̲POOL
- link elements to empty queue
- zeroise queue elements
- set length of pool
o Q ̲PROC
- load the defined process names
o Q ̲HEAD
- establish reference to empty queue
- zeroise elements, except the empty queue header
- initialize M ̲CONTROL with flag
for: establish reference to Q ̲PROC table
invocation of process
status update
initialize threshold values
o SI ̲HEAD
- establish queue count
- establish reference to Q ̲PROC table
- establish reference to Q ̲HEAD table
o GR ̲HEAD
- establish group count
- establish reference to Q ̲PROC table
- establish reference to Q ̲HEAD TABLE
o Q ̲STATUS
- zeroise the control map.
Q ̲INIT Flowchart
Fig. 3.3.1-1.1
Q ̲INIT Flowchart
Fig 3.3.1-1.2
3.4 D̲a̲t̲a̲ ̲O̲r̲g̲a̲n̲i̲z̲a̲t̲i̲o̲n̲
3.4.1 Q̲u̲e̲u̲e̲ ̲D̲a̲t̲a̲ ̲A̲r̲e̲a̲ ̲O̲v̲e̲r̲v̲i̲e̲w̲
The queue data area is a set of tables required to support the processing.
Q̲u̲e̲u̲e̲ ̲t̲a̲b̲l̲e̲s̲ ̲d̲e̲f̲i̲n̲e̲d̲:̲
Q̲u̲e̲u̲e̲ ̲p̲o̲o̲l̲ (Q ̲POOL)
The pool is a common data area containing the queue elements linked together according to
the current access requests.
The free queue elements are linked together to constitute the empty queue.
Q̲u̲e̲u̲e̲ ̲H̲e̲a̲d̲e̲r̲ (Q-̲HEAD)
The table contains for each defined queue the references to the elements in the queue pool,
for describing the actual queue. In addition it contains queue characteristica, and reference
to a process identifier giving the "queue receiver".
G̲r̲o̲u̲p̲ ̲H̲e̲a̲d̲e̲r̲ (GR ̲HEAD)
The table contains for each defined group of queues, a reference to the queue (via Q ̲HEAD)
with the highest precedence inside the group.
Q̲u̲e̲u̲e̲ ̲r̲e̲c̲e̲i̲v̲e̲r̲ ̲p̲r̲o̲c̲e̲s̲s̲ ̲(Q ̲PROC)
The table contains for each defined queue/group a process indentification of the queue receiver
process which shall be activated when an element is entered into a previous empty queue.
Q̲u̲e̲u̲e̲ ̲S̲t̲a̲t̲u̲s̲ ̲C̲h̲a̲n̲g̲e̲ ̲(Q ̲STATUS)
The table contains for the terminal queues a 'change map' indicating if a change has occured
since the last status display request.
S̲i̲n̲g̲l̲e̲ ̲h̲e̲a̲d̲e̲r̲ ̲(SI ̲HEAD)
The table contains for each defined single queue for a terminal a reference to the first
queue in the Q ̲HEAD table for that terminal.
General Queue Structure Overview
3.4.2 D̲a̲t̲a̲ ̲d̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲
Q̲u̲e̲u̲e̲ ̲t̲a̲b̲l̲e̲s̲ ̲i̲m̲p̲l̲e̲m̲e̲n̲t̲a̲t̲i̲o̲n̲
The different tables which constitutes the queue complex are organized as shown below:
Q Addressing Concept Overview
Fig. 3.4.2-1
3.4.2.1 F̲o̲r̲m̲a̲t̲ ̲o̲f̲ ̲H̲e̲a̲d̲e̲r̲
The Header contains the overall Q-AREA semphore, various save locations and pinters to the
different tables in the Q-AREA.
SEMAPHORE Q-AREA semaphore
ORIG ̲PSW original PSW for process
PSW1 process PSW w. interrrupt dis.
DATA ̲PSW PSW for Q-AREA page
PROCESS ̲BASE
P ̲QIOCB pointer to QIOCB in process area
NON ̲PRIV ̲THR threshold of non. priv. call
QIOCB ̲SAVE o save area QIOCB W1
- - 1 W2
- - 2 W3
- - 3 W4
- - 4 W5
QWORK 0 register save area
. . for QACCESS-procedures
. .
. .
- . - 7
Q ̲POINTERS, P ̲QST
ATUS pointers to other
P ̲SIHEAD tables
P ̲GRHEAD
P ̲QHEAD
P ̲QPROC
P ̲QPOOL
3.4.2.2 F̲o̲r̲m̲a̲t̲ ̲o̲f̲ ̲Q̲ ̲S̲T̲A̲T̲U̲S̲ ̲T̲a̲b̲l̲e̲
The table contains for each terminal (physical device)
a bit pattern indicating if a change has occurred to a queue for that terminal since last
status request.
M ̲TERM 1
M ̲TERM 2
M ̲TERM 3 Fixed size
= 30 words
M ̲TERM 30
M ̲TERM n : control bit pattern
15 14 13 3 2 1 0
not used
bit set when corresponding
queue has changed.
3.4.2.3 F̲o̲r̲m̲a̲t̲ ̲o̲f̲ ̲G̲R̲-̲H̲E̲A̲D̲ ̲T̲a̲b̲l̲e̲
The table contains for each defined terminal the corresponding indexes to the header table
Q ̲HEAD, for the first queue of the group of queues for that terminal.
1 N ̲GROUP
…0e…term…0f…
P ̲QHEAD one entry per
2 terminal
…0e…term…0f…
o
o
o
m
…0e…term…0f…
N ̲GROUP : number of queues inside group
P ̲QHEAD : reference to Q ̲HEAD table of highest precedence queue inside group
3.4.2.4 F̲o̲r̲m̲a̲t̲ ̲o̲f̲ ̲t̲h̲e̲ ̲S̲I̲ ̲H̲E̲A̲D̲ ̲T̲a̲b̲l̲e̲
The table contains for each defined single queue the corresponding indexes to the header
table Q ̲HEAD
The layout is as given for the GR ̲HEAD table.
N ̲GROUP: number of queues inside the "terminal"
P ̲QHEAD: reference the Q ̲HEAD table of first queue of the termibal single queues
3.4.2.5 F̲o̲r̲m̲a̲t̲ ̲o̲f̲ ̲Q̲ ̲H̲E̲A̲D̲ ̲t̲a̲b̲l̲e̲
The table contains for each defined queue, empty queue, and single and part of group queues,
the description of the related elements in the pool, which constitiutes the queue.
queue o P ̲FIRST one entry
P ̲LAST per queue
L ̲THRESH
L ̲ACTUAL
M ̲CONTROL
queue 1
o
o
o
queue m
P ̲FIRST : reference to first element in queue
P ̲LAST : reference to last element in queue
L ̲THRESH : threshold set for queue
L ̲ACTUAL : actual langth of queue
M ̲CONTROL : control mask, see next page
The empty queue (queue = 0) is described
in the same way as an active queue:
L ̲TRESH : total length of queue
L ̲ACTUAL : length of empty queue
M CONTROL : not used
F̲o̲r̲m̲a̲t̲ ̲o̲f̲ ̲M̲ ̲C̲O̲N̲T̲R̲O̲L̲ ̲ ̲:̲
5 4 3 2 1 1
1 1 1 1 1 0 9 8 7 6 5 4 3 2 1 0
entry active/pending
read
status update
invocation of process
queue blocked
not used
process number to
be activated
N̲o̲t̲e̲
The queue head entries for members in one group are located consecutively in order.
3.4.2.6 F̲o̲r̲m̲a̲t̲ ̲o̲f̲ ̲Q̲ ̲P̲R̲O̲C̲ ̲T̲a̲b̲l̲e̲
The table contains the process names and index reference numbers to be used in activation
of a queue receiver process.
…0f…process 1…0e…
V ̲PROCESS one entry per
process to be
process activated
name
N ̲IDENT
process 2
o
o
o
process m
V ̲PROCESS : name in ASCII of the process to be activated.
N ̲IDENT: corresponding name identification number, obtained from the system
in initialization phase.
3.4.2.7 F̲o̲r̲m̲a̲t̲ ̲o̲f̲ ̲Q̲ ̲P̲O̲O̲L̲ ̲T̲a̲b̲l̲e̲
The table contains the queue elements.
L ̲QPOOL
queue element 1 P ̲FORWARD
P ̲BACKWARD
XMTCB
V ̲TIME
queue element 2
o
o
o
queue element m
P ̲FORWARD : reference to next element in the actual queue.
P ̲BACKWARD : reference to previous element in the actual queue.
XMTCB : index of MTCB related
VTIME : time tag of element
L ̲QPOOL : total length of pool
3.4.3 C̲o̲m̲p̲i̲l̲e̲ ̲T̲i̲m̲e̲ ̲P̲a̲r̲a̲m̲e̲t̲e̲r̲s̲
N ̲GROUP : number of group queues in the terminal queue
V ̲PROCESS : name of processes to be activated
P̲a̲r̲a̲m̲e̲t̲e̲r̲s̲ ̲d̲e̲f̲i̲n̲e̲d̲ ̲i̲n̲ ̲C̲r̲i̲t̲i̲c̲a̲l̲ ̲R̲e̲g̲i̲o̲n̲ ̲C̲O̲N̲F̲I̲G̲
L ̲THRESH : threshold values for each queue.
N ̲TERM : number of terminals/pseudo terminals
L ̲QPOOL : length of queue element pool
PQAREA : page of Q data area
OFSQAREA : offset of Q data area in page
3.5 S̲t̲o̲r̲a̲g̲e̲ ̲A̲l̲l̲o̲c̲a̲t̲i̲o̲n̲
Please refer to chapter 3.4
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̲
The Q-INIT-program is run as background process during system initialization. The program
is removed after being run.
3.7 L̲i̲m̲i̲t̲a̲t̲i̲o̲n̲s̲
Critical Region CONFIG must exist when the program is run, and there must be sufficient space
left in the memory page specified for the Q-AREA.
3.8 E̲r̲r̲o̲r̲ ̲C̲o̲d̲e̲s̲/̲E̲r̲r̲o̲r̲ ̲L̲o̲c̲a̲t̲i̲o̲n̲s̲
The only errors that can occur will be in relation to critical region access.
Please refer CSS/302/PSP/0008.
3.9 L̲i̲s̲t̲i̲n̲g̲ ̲R̲e̲f̲e̲r̲e̲n̲c̲e̲s̲
Please refer to SCCLDD and S/W Library FIXLIB
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̲ ̲T̲e̲s̲t̲s̲
Please refer to System Test Report S010 - S090
5 P̲R̲E̲P̲A̲R̲A̲T̲I̲O̲N̲ ̲F̲O̲R̲ ̲D̲E̲L̲I̲V̲E̲R̲Y̲
Please refer to SCCLDD