DataMuseum.dk

Presents historical artifacts from the history of:

CR80 Wang WCS documentation floppies

This is an automatic "excavation" of a thematic subset of
artifacts from Datamuseum.dk's BitArchive.

See our Wiki for more about CR80 Wang WCS documentation floppies

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - download

⟦5fd73e5b7⟧ Wang Wps File

    Length: 30708 (0x77f4)
    Types: Wang Wps File
    Notes: TEP VDU User Package      
    Names: »1142A «

Derivation

└─⟦fad1c67d1⟧ Bits:30006043 8" Wang WCS floppy, CR 0069A
    └─ ⟦this⟧ »1142A « 

WangText



B           B…05…B…06…A…0d…A…00…A…01…@…08…@…0f…@…06…?…0d…? ?…06…?…07…>…08…>…09…>…0a…>…0b…>…00…>…01……86…1
                       
                       
                       
                       
                       
                       
                       
                       
                       
                       
                       
                       
                       
                       
                       
                       
                       
                       
                       
                       
                       
                       
                       
                       
                       
                       
                       
                       
                       
                       
                       
                       
                       
                       
                       
                       
                       
                       
                       
                       
                       
                       
                       
                       
                       …02…
                       
                       
                       
                       
                       
                       
                       
                       
                       
                       
                       …02…
                       
                       
                       …02…
                       
                       
                       
                       
                       
                       
                       
                       

…02…CPS/SDS/027

…02…MSN/810801…02……02…
TEP
 VDU
 USER
 PACKAGE
…02……02…CAMPS










                      Fig. 4.1.1.4-3




4.1.2    S̲o̲f̲t̲w̲a̲r̲e̲ ̲S̲p̲e̲c̲i̲f̲i̲c̲a̲t̲i̲o̲n̲

         In this section the software structure of VUP will
         be described. The allocation of functions onto processes
         and coroutines will be explained, based on the analysis
         performed in section 4.1.1.

         Figure 4.1.2-1 shows the mapping of functions onto
         processes and coroutines



4.1.2.1  V̲U̲P̲ ̲P̲r̲o̲c̲e̲s̲s̲e̲s̲

         The VDU USER PACKAGE (VUP) consists of nine processes,
         which are the U̲SER M̲ESSAGE A̲CCESS M̲ONITORING (UMAM)
         process and eight VDU processes. (Refer fig. 4.1.2.1-1).
         Each of the eight VDU processes serves four VDUs, and
         therefore contains four VDU subprocesses. A subprocess
         is a set of coroutines to which a common ACCESS PROFILE
         can be associated. The ACCESS PROFILE contains information
         on which objects (e.g. a queue) a process or subprocess
         may gain access to.

         In fig. 4.1.2.1-2 each VDU process is shown to contain
         four User VDU subprocesses. Actually, each of the User
         VDU subprocesses could be exchanged with a MDCO VDU
         subprocess or an MSO VDU subprocess (refer CPS/SDS/012)
         but for clarity, this aspect of the design is kept
         out of this document.



4.1.2.1.1    V̲U̲S̲ ̲P̲r̲o̲c̲e̲s̲s̲

         a)  The VDU USER SUBPROCESS controls the interaction
             with the user VDU, under supervision of TEMCO (SSC
             software). It thus has the following responsibilities:

             -   TEMCO command execution
             -   Control and execution of user transactions
             -   User transaction accounting
             -   Maintaining the VDU Header queue status
             -   Monitoring of FLASH queues.

             In fig. 4.1.2.1-2 an overview of VUS is depicted.








                       Fig. 4.1.2-1







         Fig. 4.1.2.1-1 VDU USER Package Overview







               Fig. 4.1.2.1-2 VUS Structure




         b)  The VDU user subprocess holds the following queues:

             -   The Command queue
             -   The Answer queue
             -   The Receive queue
             -   The Release queue
             -   The Response queue
             -   The Retrieve queue.

             The command queue is the queue where commands from
             TEMCO (SSC software), answers to timer requests
             (CSF software) and FLASH notifications are placed
             (by MDP and other VDU USER SUBPROCESSES).

             The answer queue is used for reception of answers
             to requests to MDP, LOG and UMAM:

             The Receive, the Release and the Response queue
             are described in section 2.2 of this PDS.

             In the Retrieve queue, SAR places all its answers
             / retrieved items associated with a retrieval request.



4.1.2.1.2    U̲M̲A̲M̲ ̲P̲r̲o̲c̲e̲s̲s̲

         The UMAM process controls the access to the preparation
         database and maintains the Outgoing Message Status,
         the Release Status and the Delivery Status for each
         user VDU.

         In fig. 4.1.2.1-3 an overview of the UMAM process is
         shown. UMAM holds one preparation queue (PREP queue)
         for each user VDU. The PREP queue contains the status
         and access key to all messages under prepartion, (i.e.
         not released), for the associated user VDU. UMAM holds
         one queue, the REQUEST queue. In this queue, a user
         VDU subprocess places its request for a status, a deletion
         or a message / comment for editing.

         The functions of UMAM have been allocated their own
         process for the following reasons:

         a)  To keep security access control as simple and tight
             as possible.



             With reference to the analysis in 4.1.1.4.1, this
             means that the solution, where the process executing
             the release decision is allowed access to the preparation
             queue for removing or changing items, is not chosen.
             Note that the releaser process should have access
             to an unpredictable number of the existing preparation
             queues and that the ones to which access should
             be allowed would change dynamically due to supervisor
             specifications.








              Fig. 4.1.2.1-3 UMAM Structure




         b)  To minimize the damage caused by system malfunction.
             With reference to the analysis in 4.1.1.4.1 this
             means that the solution where the releaser process
             queues a request for removing or changing items
             is not chosen. Note that due to security, it is
             our aim that a user process should not be trusted,
             meaning that access rights possessed by an unassigned
             user process (no user has signed on) shall be kept
             at a minimum.

         c)  The close relationship between Preparation Database
             Access Control and Message / Comment Status Maintenance
             has caused both functions to be allocated to the
             same process.

         d)  The allocation of one process to Status Maintenance
             gives the designer the freedom to optimize disk-accesses
             and to utilize the fact that identical entries
             in different status types exist.

         e)  The centralization of status maintenance and PDB
             access control for all VDU processes in one process,
             increases the flexibility of the system.



4.1.2.2  V̲U̲P̲ ̲C̲o̲r̲o̲u̲t̲i̲n̲e̲s̲

         Before describing the allocation of VUP functions to
         coroutines, the most important characteristics of the
         coroutine software component type will be summarized.

         As the concept of coroutines is closely related to
         the process concept, the characteristics of the coroutine
         will be described by describing the differences between
         the coroutine and the process.

         a)  A coroutine is always subordinated to a process.
             Coroutines residing within the same process may
             synchronize in the same way as processes do. Synchronization
             between coroutines residing in different processes
             may be achieved using the normal means for process
             communication.



         b)  As CPU time is time-sliced between processes so
             the execution of a process may be stopped at unpredictable
             points, extremem care is required by the designer
             when two processes share a data area. However,
             shared data between coroutines require no considerations
             as a coroutine is given the full CPU time assigned
             to the process to which it belongs until it itself
             gives it up, i.e. a coroutine is allowed to run
             from waiting point to waiting point without any
             other coroutine being executed in between.

         c)  Thus, while the process concept is a convenient
             tool for simulating concurrency of tasks / functions
             allocated to different processes, the coroutine
             concept may be used equivalent for the functions
             assigned to a process.

             In the next two subsections, the allocation of
             functions to coroutines for VUS respective UMAM
             process will be described.



4.1.2.2.1    V̲U̲S̲ ̲C̲o̲r̲o̲u̲t̲i̲n̲e̲s̲

         The VDU USER SUBPROCESS consists of four coroutines:
         

         -   the VDU Control Coroutine
         -   the User Function Control Coroutine
         -   the VDU Dialogue Coroutine
         -   the Retrieve Coroutine.



4.1.2.2.1.1 V̲D̲U̲ ̲C̲o̲n̲t̲r̲o̲l̲ ̲C̲o̲r̲o̲u̲t̲i̲n̲e̲

         The VDU Control (VCO) Coroutine is the controlling
         coroutine, controlling the start / stop of the processing
         of all the other coroutines.

         VCO is responsible for the execution of commands received
         from TEMCO, e.g initialize, close down, restart, start/stop,
         for VDU Header queue status update and that no message
         is kept longer in a Flash precedence queue than allowed
         by the supervisor.



         During the analysis it was found that TEMCO Control
         Functions and Queue Status Maintenance functions were
         to be executed with higher priority than User Transaction
         Control Functions - refer subsections 4.1.1.1.f) and
         4.1.1.2f). Thus these two functions have been allocated
         their own coroutine named V̲DU C̲ONTROL COROUTINE (VCO).

         The VCO coroutine shall be asssigned the highest priority
         among the coroutines of VUS, meaning that whenever
         VCO and other VUS coroutines are ready to run, VCO
         shall be allowed to run first.

         In the analysis it was stated that TEMCO Control Functions
         should have higher priority than all other functions.
         However, taking into account the frequency with which
         the functions of TEMCO Control Functions and Queue
         Status Maintenance Functions shall be executed and
         the CPU time they will consume, it has been considered
         sufficient with one coroutine associated with one input
         queue.



4.1.2.2.1.2 U̲s̲e̲r̲ ̲F̲u̲n̲c̲t̲i̲o̲n̲ ̲C̲o̲n̲t̲r̲o̲l̲ ̲C̲o̲r̲o̲u̲t̲i̲n̲e̲

         The User Function Control (UFCO) Coroutine performs
         the direct control of the VDU Dialogue Coroutine.

         UFCO performs the user transaction control, which consists
         of: 

         -   user transaction execution 
         -   user requested transaction interruption 
         -   user transaction accounting.

         The functions of UFCO and VDIA have been assigned separate
         coroutines to decrease the complexity of the software.
         When a user transaction is in progress, UFCO software
         shall only take care of transaction interruption while
         all formatting and I/O transfer initiation / awaiting
         is performed by VDIA. UFCO is assigned a higher priority
         than VDIA.





4.1.2.2.1.3 V̲D̲U̲ ̲D̲i̲a̲l̲o̲g̲u̲e̲ ̲C̲o̲r̲o̲u̲t̲i̲n̲e̲s̲

         The VDU dialogue (VDIA) coroutine is responsible for
         the VDU format transfromation of input and output and
         for validation of user input.



4.1.2.2.1.4 R̲e̲t̲r̲i̲e̲v̲e̲ ̲C̲o̲r̲o̲u̲t̲i̲n̲e̲

         The Retrieve (RETR) Coroutine is responsible for reception
         and treatment of retrieval answers from SAR. Off-line
         retrieved items (or answers) are placed by RETR in
         the response queue. Off-line retrieved items for append
         (or answers) are placed in the REQUEST queue of UMAM.
         On-line retrieved items and on-line retrieved items
         for append are transferred to UFCO.

         The functions of RETR have been assigned to a separate
         coroutine, due to the fact that the function may be
         performed even when the other coroutines have been
         stopped after user sign-off. Furthermore, the function
         of the RETR may be considered as low priority tasks,
         having in mind that during on-line retrieval all the
         other coroutines associated with user transaction processing
         (UFCO, VDIA) will await input from RETR, thereby allowing
         RETR to be processing. RETR and VDIA are assigned identical
         priorities.



4.1.2.2.2    U̲M̲A̲M̲ ̲C̲o̲r̲o̲u̲t̲i̲n̲e̲s̲

         UMAM consists of two coroutines:

         -   the Preparation Access Conrol (PAC) Coroutine
         -   the User Status File Maintenance (USFM) coroutine.

         UMAM has been designed with the two coroutines, PAC
         and USFM, because of the disk file transfers to be
         performed. This design allows the USFM part of UMAM
         to wait for disk transfers, without stopping the processing
         of the PAC part.





4.1.2.2.2.1 P̲r̲e̲p̲a̲r̲a̲t̲i̲o̲n̲ ̲A̲c̲c̲e̲s̲s̲ ̲C̲o̲n̲t̲r̲o̲l̲ ̲C̲o̲r̲o̲u̲t̲i̲n̲e̲

         PAC is the controlling coroutine, analyzing the requests
         in the REQUEST queue and delegating the work to be
         done between USFM and itself. PAC performs the access
         control to the PREP queues and extracts the part of
         the Outgoing Message Status derivable from a PREP queue
         when requested. When commanded by PAC, USFM extracts
         / updates the Outgoing Message Status file, the Release
         Status file and the Delivery Status file.



4.1.2.2.2.2 U̲s̲e̲r̲ ̲S̲t̲a̲t̲u̲s̲ ̲F̲i̲l̲e̲ ̲M̲a̲i̲n̲t̲e̲n̲a̲n̲c̲e̲ ̲C̲o̲r̲o̲u̲t̲i̲n̲e̲

         The coroutine named USER STATUS FILE MAINTENANCE (USFM)
         executes all the functions of the MESSAGE / COMMENT
         STATUS MAINTENANCE except for the extract of outgoing
         message status concerning changeable entries. Furthermore,
         it executes the functions of PDB ACCESS CONTROL which
         has to do with updates of outgoing Message Status,
         turning the entries unchangeable .



4.1.2.3  S̲o̲f̲t̲w̲a̲r̲e̲ ̲S̲t̲r̲u̲c̲t̲u̲r̲e̲

         In the preceding subsections of section 4.1.2, the
         processes and coroutines of VUP have been isolated,
         and the functions to be performed by these software
         components identified.

         The software structure for each component (i.e. coroutine)
         will be outlined in the following subsections. The
         description of the software structure will mainly be
         in the form of software structure charts and references
         should be made to the functional specification given
         in section 4.1.1. The denotation used in section 4.1.1
         has as far as possible been used in the software structure
         charts, with the purpose of highlighting the close
         relationship. Thus the identification of programme
         tasks is given in narrative English and not as programme
         or procedure names.





4.1.2.3.1    V̲C̲O̲ ̲C̲o̲r̲o̲u̲t̲i̲n̲e̲ ̲S̲o̲f̲t̲w̲a̲r̲e̲ ̲S̲t̲r̲u̲c̲t̲u̲r̲e̲

         The software structure of the VDU Control Coroutine
         (VCO) is outlined in the structure charts in fig. 4.1.2.3-1
         through fig. 4.1.2.3-5 and is related to fig. 4.1-7
         and fig. 4.1-8 of the functional specifications.

         In fig. 4.1.2.3-1, the box PROCESS TEMCO COMMAND EXECUTION
         reflects that VCO controls the activities of UFCO.
         Control logic will be described in section 4.1.3.








     Fig. 4.1.2.3-1 VCO Coroutine Software Structure







    Fig. 4.1.2.3-2 UVCO Structure TEMCO CMD Processing







Fig. 4.1.2.3-3 UVCO Structure  ̲ Update of Queue Status Line 







  Fig. 4.1.2.3-4 VCO Structure - Flash Queue Monitoring







                      Fig. 4.1.2.3-5

 VCO Structure - Process CMD Completion Report from UFCO.




         In fig. 4.1.2.3-2 the Temco Command Processing is depicted.
         For those commands representing the key commands with
         respect to the execution of the VUP main functions,
         the software structure is slightly more detailed than
         for the others, as this is the most important to grasp
         when getting to understand the general structure.



4.1.2.3.2    U̲F̲C̲O̲ ̲C̲o̲r̲o̲u̲t̲i̲n̲e̲ ̲S̲o̲f̲t̲w̲a̲r̲e̲ ̲S̲t̲r̲u̲c̲t̲u̲r̲e̲

         This coroutine controls input / output to and from
         the VDU and the communication with other packages.

         It accepts commands from VCO and control VDIA via commands
         and process completion reports from VDIA corresponding
         to the commands.

         It communicates with VCO by sending completion report
         corresponding to commands received by VCO.

         The control of the MMI is exercised via function key
         interrupts received from the VDU, via execution of
         commands entered from the VDU and via input / output
         commands sent to VDIA.

         Fig. 4.1.2.3-6 to fig. 4.1.2.3-12 show the software
         structure.








              Fig. 4.1.2.3-6 UFCO Structure







Fig. 4.1.2.3-7 UFCO Structure - Execute Initialization Command







Fig. 4.1.2.3-8 UFCO Structure - Execute Restart UFCO Command







Fig. 4.1.2.3-9 UFCO Structure - Execute Start UFCO Command







Fig. 4.1.2.3-10 UFCO Structure - Execute Stop UFCO command







Fig. 4.1.2.3-11 UFCO Structure - Process Invalid F/C Key Interrupt







Fig. 4.1.2.3-12 UFCO Structure - Execute F/C Key Function




4.1.2.3.3    V̲D̲I̲A̲ ̲C̲o̲r̲o̲u̲t̲i̲n̲e̲ ̲S̲o̲f̲t̲w̲a̲r̲e̲ ̲S̲t̲r̲u̲c̲t̲u̲r̲e̲

         This coroutine performs input / output to and from
         the format area of the VDU and validation and storage
         of input.

         It accepts commands from UFCO and sends completion
         report corresponding to these commands.

         It communicates with the VDU via the Format Handler
         of the IOC Package and accesses data in the I̲nternal
         M̲essage F̲ormat (IMF) via the Message Monitor of the
         CSF Package.

         Fig. 4.1.2.3-13 to fig. 4.1.2.3-22 show the software
         structure.








              Fig. 4.1.2.3-13 VDIA Structure







   Fig. 4.1.2.3-14 VDIA Structure Execute Init Command







 Fig. 4.1.2..3-15 VDIA Structure - Execute Start Command







Fig. 4.1.2.3-16 VDIA Structure Execute Display Format CMD







Fig. 4.1.2.3-16 VDIA Structure - Execute Input ̲Format Command







Fig. 4.1.2.3-18 VDIA Structure - Execute Output ̲MSG Command







Fig. 4.1.2.3-19 VDIA Structure - Execute Insert ̲Lines Command







Fig. 4.1.2.3-20 VDIA Structure - Execute Delete ̲Lines Command







Fig. 4.1.2..3-21 VDIA Structure - Execute Clean ̲Up Command







Fig. 4.1.2.3-22 VDIA Structure - Execute Close-Down Command




4.1.2.3.4    R̲E̲T̲R̲ ̲C̲o̲r̲o̲u̲t̲i̲n̲e̲ ̲S̲o̲f̲t̲w̲a̲r̲e̲ ̲S̲t̲r̲u̲c̲t̲u̲r̲e̲

         This coroutine receives input from SAR via the Retrieve
         Queue and communicates with UFCO.

         This communication is done either by RETR sending Online
         Retrieval Results direct to UFCO or Off-line Retrieval
         Results indirectly via the Response Queue.

         Fig. 4.1.2.3-23 shows the software structure.







              fig. 4.1.2.3-23 RETR Structure




4.1.2.3.5    P̲A̲C̲ ̲C̲o̲r̲o̲u̲t̲i̲n̲e̲ ̲S̲o̲f̲t̲w̲a̲r̲e̲ ̲S̲t̲r̲u̲c̲t̲u̲r̲e̲

         The Software Structure of the Preparation Access Control
         Coroutine (PAC) is outlined in fig. 4.1.2.3-24. PAC
         is the controlling coroutine of the two UMAM coroutines,
         thus the boxes marked INIT XXX in the structure charts,
         simply denote that PAC initiates a task to be performed
         by USFM. The control logic will be further described
         in section 4.1.3.



4.1.2.3.6    U̲S̲F̲M̲ ̲C̲o̲r̲o̲u̲t̲i̲n̲e̲ ̲S̲o̲f̲t̲w̲a̲r̲e̲ ̲S̲t̲r̲u̲c̲t̲u̲r̲e̲

         The Software Structure of the User Status File Maintenance
         Coroutine (USFM) is outline in fig. 4.1.2.3-25.







         Fig. 4.1.2...3-24 PAC Software Structure







         Fig. 4.1.2.3-25 USFM Software Structure




4.1.3    D̲a̲t̲a̲ ̲F̲l̲o̲w̲ ̲a̲n̲d̲ ̲C̲o̲n̲t̲r̲o̲l̲ ̲L̲o̲g̲i̲c̲

         In this section, the data flow between the VUS processes
         and coroutines will be described together with the
         control logic used to synchronize their execution of
         the VUP functions allocated to them.



4.1.3.1  P̲r̲o̲c̲e̲s̲s̲ ̲D̲a̲t̲a̲ ̲F̲l̲o̲w̲ ̲a̲n̲d̲ ̲P̲r̲o̲c̲e̲s̲s̲ ̲S̲y̲n̲c̲h̲r̲o̲n̲i̲z̲a̲t̲i̲o̲n̲

         The data flow and process synchronization of the UMAM
         process and the VUS incarnations will be described
         for the UMAM process and one VUS process, as the flow
         and synchronization for all VUS incarnations are identical.
         Thus the addition of VUS incarnations to the description
         only adds one preparation queue per incarnation and
         otherwise analogous flow and synchronization.

         In fig. 4.1.3-1 the data flow between UMAM and VUS
         is depicted. The flow is shown for the VUS process
         possessing full access rights to the CAMPS USER FUNCTIONS.
         However, the dataflow for a VUS process possessing
         access right to a subset of the CAMPS USER FUNCTIONS
         only (i.e. one or more of the subfunctions PREPARATION,
         RECEPTION or RELEASE) is indicated as well by means
         of the capital letters enclosed in parentheses, which
         denote the subfunction to which the flow is associated.

         As seen from the arrow marked 1, it is not the message
         or comment itself under preparation which are kept
         in the preparation queue, but the current status and
         the access key to the CIF where the item is kept by
         MMS in temporary storage.

         VUS acts as the master(controlling) process and UMAM
         is the slave process, i.e. UMAM does not execute any
         function before requested by VUS, and while UMAM executes
         the requested function, VUS stops its own processing
         and awaits the result to be delivered by UMAM in its
         answer queue.






                      Figure 4.1.3-1




         Now, the above statement is not the full truth, as
         may be seen by reference to fig. 4.1.3-1. UMAM delivers
         data to the VUS response queue, and this is done on
         request from the VDU supervisor process. However, insertion
         of elements in the response queue does not affect the
         VUS processing at all. The same is the case for the
         UMAM processing when elements are inserted in the preparation
         queue by VUS.

         The logic for access control and preparation database
         maintenance cannot be derived fully from the dataflow
         depicted in fig. 4.1.3-1.

         The main rules for the maintenance of a preparation
         queue are:

         -   VUS has only acccess to insert items in the preparation
             queue.

         -   UMAM has access to update status of items in the
             preparation queue and to remove items from it.

         The different incarnations of VUS do not communicate
         with each other in a way requiring synchronization
         of their operations. However, they do exchange information
         directly (i.e. messages for release and release notifications).

         In the following subsections, the data flow and control
         logic internal to UMAM and VUS, i.e. between their
         coroutines, are described. It should, however, be noted
         that the VUS-UMAM process synchronization described
         in this subsection is actually a synchronization between
         the VUS UFCO coroutine and the UMAM PAC coroutine.



4.1.3.2  V̲U̲S̲ ̲I̲n̲t̲e̲r̲n̲a̲l̲ ̲D̲a̲t̲a̲ ̲F̲l̲o̲w̲ ̲a̲n̲d̲ ̲C̲o̲r̲o̲u̲t̲i̲n̲e̲ ̲S̲y̲n̲c̲h̲r̲o̲n̲i̲z̲a̲t̲i̲o̲n̲

         The data flow internal to VUS is depicted in fig. 4.1.3-2.
         The command parameters listed with the arrows 3 and
         6 are identical, but those associated with arrow 3
         are unformatted while those associated with arrow 6
         are input via a format, refer section 4.1.1.3.4.

         In fig. 4.1.3-3, an overview of the VUS coroutines
         and the primitives (S1, S2, S3) used for synchronization
         is depicted.



         If a synchronization primitive is said to belong to
         a coroutine, when it receives its input from that primitive,
         i.e. executes a wait operation on that primitive, then
         S1 belongs to VCO, S2 belongs to UFCO and S3 belongs
         to VDIA. A coroutine defined within one process cannot
         deliver input to a coroutine defined within another
         process, i.e. a coroutine cannot execute a send operation
         on a primitive external to the process in which it
         is defined.

         In the CAMPS system interprocess communication between
         application processes is achieved through the Queue
         Monitor (QMON) by executing a send command on a queue.








       Fig. 4.1.3-2 Dataflow between VUS Coroutines




         L̲e̲g̲e̲n̲d̲ ̲f̲o̲r̲ ̲f̲i̲g̲.̲ ̲4̲.̲1̲.̲3̲-̲2̲ ̲o̲n̲ ̲P̲r̲e̲v̲i̲o̲u̲s̲ ̲P̲a̲g̲e̲

         1.  Commands from SSC (e.g. start, stop) and time events.

         2.  Timer initiated update of VDU header (queues, time).

         3.  Control information from UVCO to UFCO.

         4.  Commands / parameters and function keys.

         5.  Transaction ID, classification, error messages.

         6.  Messages and system update requests.

         7.  Validated / unvalidated messages and system information.

         8.  Retrieved messages.

         9.  Off-line retrieval results are sent to the response
             queue.

         10. Retrieve finished signal to UFCO and on-line retrieval
             results.

         11. Answers to requests and retrieved messages.








   Fig. 4.1.3-8 VUS Coroutine Synchronization Overview




         However, it is possible for a coroutine to await both
         external (send operation on a queue) and internal (send
         operation on a coroutine primitive) events in a coroutine
         semaphore. This is achieved via the coroutine monitor
         by using the ASSOCIATE Command.

         On fig. 4.1.3-3 the arrows from the queues to the primitives
         indicate that this facility is used.

         VCO receives its input from S1. VCO is the coroutine
         which controls the activities of all the others through
         its control of UFCO. VCO starts and stops UFCO by executing
         a send operation on S2 with the proper command. When
         UFCO has executed a command sent by VCO, UFCO notifies
         VCO by performing a send operation on S1 with the relevant
         Command Completion code.

         UFCO receives its input from S2. UFCO controls the
         activities of VDIA through S3. The control logic is
         analogous to that described above for VCO control of
         UFCO.

         On the basis of the UFCO Software Structure (ref. section
         4.1.2.3.2) the control logic for UFCO can be constructed
         in the same way as done for VCO.

         VDIA receives its input from S3. As the main work load
         due to I/O transfers and validation of messages / comments
         of the VUS process is actually performed by VDIA, a
         way to interrupt VDIA function execution within a reasonable
         time has to be considered. This means that VDIA shall
         return to its waiting point frequently enough to fulfil
         the requirements for being controlable by UFCO.

         This can either be achieved through coding logic or
         by using the mechanism available through system software
         (INIT SYSTEM CALL, ASSOCIATE, CANCEL SYSTEM CALL).
         The solution to be chosen will be determined during
         detailed design.

         RETR receives input from the retrieve queue only, thus
         its control structure will be to await items to be
         inserted and process the occurred events.





4.1.3.3  U̲M̲A̲M̲ ̲I̲n̲t̲e̲r̲n̲a̲l̲ ̲D̲a̲t̲a̲ ̲F̲l̲o̲w̲ ̲a̲n̲d̲ ̲C̲o̲r̲o̲u̲t̲i̲n̲e̲ ̲S̲y̲n̲c̲h̲r̲o̲n̲i̲z̲a̲t̲i̲o̲n̲

         The data flow internal to UMAM is depicted in fig.
         4.1.3-4. The arrows marked 1 and 2 which merge into
         the arrow marked 3, illustrate that an outgoing message
         status to be delivered is extracted partly from the
         relevant preparation queue (by PAC) and partly from
         disk files (by USFM).

         In fig. 4.1.3-5 an overview of the UMAM coroutines
         and the primities (S0, S1, S2) used for synchronization
         is depicted.

         Using the same terminology as is 4.1.3.2, S0 and S1
         belong to USFM and S2 belongs to PAC.

         USFM has been assigned two primitives, to allow TEMCO
         commands to be processed by USFM out of sequence, i.e.
         TEMCO commands are sent to S0 by PAC whereas other
         commands / requests are sent to S1.

         USFM processes all input items received in S0 before
         all those received in S1.








      Fig. 4.1.3-4 Dataflow between UMAM Coroutines







  Fig. 4.1.3-9 UMAM Coroutine Synchronization Overview.




4.1.4    C̲o̲m̲m̲o̲n̲ ̲D̲a̲t̲a̲ ̲E̲l̲e̲m̲e̲n̲t̲s̲ ̲(̲I̲n̲t̲e̲r̲n̲a̲l̲)̲

         Common internal data elements, i.e. data elements shared
         between supackages, are contained in the accounting
         area. The contents of this area are described in section
         4.2.5.4. The accounting area is shared between UFCO
         and VDIA.



4.1.5    E̲x̲t̲e̲r̲n̲a̲l̲ ̲D̲a̲t̲a̲ ̲E̲l̲e̲m̲e̲n̲t̲s̲

         TBD



4.1.6    I̲n̲t̲e̲r̲f̲a̲c̲e̲s̲



4.1.6.1  E̲x̲t̲e̲r̲n̲a̲l̲ ̲I̲n̲t̲e̲r̲f̲a̲c̲e̲s̲

         User Procedures ref. doc. no. CPS/230/ICD/0001.

         All VUP subpackages interfaces, this document.



4.1.6.2  P̲a̲c̲k̲a̲g̲e̲ ̲I̲n̲t̲e̲r̲f̲a̲c̲e̲s̲



4.1.6.2.1    T̲r̲a̲f̲f̲i̲c̲ ̲H̲a̲n̲d̲l̲i̲n̲g̲ ̲(̲T̲H̲P̲)̲ ̲I̲/̲F̲

         This interface is implemented by the VUS coroutine
         UFCO.

         For details refer section 4.2 and doc. no. CPS/ICD/009.



4.1.6.2.2    D̲i̲s̲t̲r̲i̲b̲u̲t̲i̲o̲n̲ ̲(̲M̲D̲P̲)̲ ̲I̲/̲F̲

         This interface is implemented by the VUS coroutine
         UFCO.

         For details, refer section 4.2 and doc. no. CPS/ICD/009.





4.1.6.2.3    S̲t̲o̲r̲a̲g̲e̲ ̲a̲n̲d̲ ̲R̲e̲t̲r̲i̲e̲v̲a̲l̲ ̲(̲S̲A̲R̲)̲ ̲I̲/̲F̲

         This interface is implemented by the VUS coroutines
         UFCO (requests queued to SAR) and RETR (reception of
         SAR responses).

         For details, refer section 4.2 and doc. no. CPS/ICD/009.



4.1.6.2.4    L̲o̲g̲ ̲a̲n̲d̲ ̲A̲c̲c̲o̲u̲n̲t̲a̲b̲i̲l̲i̲t̲y̲ ̲(̲L̲O̲G̲)̲ ̲I̲/̲F̲

         This interface is implemented by the VUS coroutine
         UFCO. For details refer section 4.2 and doc. no. CPS/ICD/009.



4.1.6.2.5    S̲t̲a̲t̲i̲s̲t̲i̲c̲s̲ ̲(̲S̲T̲P̲)̲ ̲I̲/̲F̲

         This interface is implemented by the VUS coroutine
         UFCO. For details refer section 4.2 and doc. no. CPS/ICD/009.



4.1.6.2.6    S̲S̲C̲ ̲S̲o̲f̲t̲w̲a̲r̲e̲ ̲I̲/̲F̲

         This interface is implemented by the VUS coroutines
         VCO (start / stop function ) and UFCO (security interrogation
         request).

         For details, refer sections 4.2 and doc. no. CPS/ICD/009.



4.1.6.2.7    T̲a̲b̲l̲e̲ ̲M̲a̲n̲a̲g̲e̲m̲e̲n̲t̲ ̲P̲a̲c̲k̲a̲g̲e̲ ̲(̲T̲M̲P̲)̲ ̲I̲/̲F̲

         This interface is implemented by the VUS coroutines
         UFCO (Global no. series) and VDIA (table access).

         For details refer section 4.2 and doc. no. CPS/ICD/009.





4.1.6.3  S̲u̲b̲p̲a̲c̲k̲a̲g̲e̲ ̲I̲n̲t̲e̲r̲f̲a̲c̲e̲s̲



4.1.6.3.1    P̲r̲o̲c̲e̲s̲s̲ ̲I̲n̲t̲e̲r̲f̲a̲c̲e̲s̲

         These are the interfaces between UMAM and VUS:


         F̲r̲o̲m̲ ̲V̲U̲S̲ ̲t̲o̲ ̲U̲M̲A̲M̲:

         1.  Status Requests
         2.  Edit Requests
         3.  Delete Requests
         4.  Access State Changes
         5.  Append Notification
         6.  Status Records.


         F̲r̲o̲m̲ ̲U̲M̲A̲M̲ ̲t̲o̲ ̲V̲U̲S̲:

         1.  Access Key to CIF (QEL ref)
         2.  Delete Notification
         3.  Message Release Status
         4.  Outgoing Message Status
         5.  Delivery Status.



4.1.6.3.2    C̲o̲r̲o̲u̲t̲i̲n̲e̲ ̲I̲n̲t̲e̲r̲f̲a̲c̲e̲s̲


         1̲.̲ ̲F̲r̲o̲m̲ ̲V̲C̲O̲ ̲t̲o̲ ̲U̲F̲C̲O̲

         1.  Initialize Command
         2.  Restart UFCO Command
         3.  Start UFCO Command
         4.  Stop UFCO Command
         5.  Close Down Command.


         2̲.̲ ̲F̲r̲o̲m̲ ̲U̲F̲C̲O̲ ̲t̲o̲ ̲V̲C̲O̲

         1.  Initalize CC Report
         2.  Restart UFCO CC Report
         3.  Stop UFCO CC Report
         4.  Close Down CC Report.




         3̲.̲ ̲F̲r̲o̲m̲ ̲U̲F̲C̲O̲ ̲t̲o̲ ̲V̲D̲I̲A̲

         1.  Initialize CMD
         2.  Start VDIA CMD
         3.  Display Format CMD
         4.  Input Format CMD
         5.  Output Message CMD
         6.  Insert Lines CMD
         7.  Delete Lines CMD
         8.  Clean Up CMD
         9.  Close Down CMD.


         4̲.̲ ̲F̲r̲o̲m̲ ̲V̲D̲I̲A̲ ̲t̲o̲ ̲U̲F̲C̲O̲

         1.  Initialize CC Report
         2.  Start VDIA CC Report
         3.  Clean Up CC Report
         4.  Close Down CC Report
         5.  Validation Result.


         5̲.̲ ̲F̲r̲o̲m̲ ̲U̲F̲C̲O̲ ̲t̲o̲ ̲R̲E̲T̲R̲

             None.


         6̲.̲ ̲F̲r̲o̲m̲ ̲R̲E̲T̲R̲ ̲t̲o̲ ̲U̲F̲C̲O̲

         1. SAR On-line / Off-line Retrieval Notification
         2. On-line Retrieval / Append Result.



         7.̲ ̲F̲r̲o̲m̲ ̲P̲A̲C̲ ̲t̲o̲ ̲U̲S̲F̲M̲

         1.  Status Records
         2.  Status Requests
         3.  Initialize CMD
         4.  Close Down CMD.




         8̲.̲ ̲F̲r̲o̲m̲ ̲U̲S̲F̲M̲ ̲t̲o̲ ̲P̲A̲C̲

         1.  Outgoing Message Status
         2.  Message Release Status
         3.  Delivery Status
         4.  Initialize CC Report
         5.  Close Down CC Report.