OctetView
0x00000…00100 (0, 0, 0) Sector 01204130313230 ┆ A0120A ┆
0x00100…00200 (0, 0, 1) Sector 00000000000000 ┆ ┆
0x00200…00300 (0, 0, 2) Sector ff00ffffffffff ┆ p ┆
0x00300…00306 (0, 0, 3) WangDocument {d00=0x08, d01=0x43, d02=0x41, ptr=(50,0, 0), d05=0x00}
0x00306…0030c WangDocument {d00=0x13, d01=0x13, d02=0x41, ptr=( 2,0, 8), d05=0x00}
0x0030c…00312 WangDocument {d00=0x14, d01=0x77, d02=0x41, ptr=(61,0, 0), d05=0x00}
0x00312…00320 14 82 41 49 00 49 14 82 41 4c 00 00 00 00 ┆ AI I AL ┆
0x00320…00340 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ┆ ┆
[…0x5…]
0x003e0…00400 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 12 ┆ ┆
0x00400…00500 (0, 0, 4) Sector 00000000000000 ┆ ┆
0x00500…00600 (0, 0, 5) Sector 86312020202020 ┆ 1 8 7 Q? > 7 \ . d N ~<) 0uH &4'>( 1c5 & & ┆
0x00600…00700 (0, 0, 6) Sector 421c402600415b ┆B @& A[' X% % PO P ; A % C g x g V WD O @ :s e 1482A g L < {C < { ; 2 b PK b bD K 8 : 9~ t xD e O naE [8[9 2p&[1[3c; ┆
0x00700…00800 (0, 0, 7) Sector 00000000000000 ┆ ┆
[…0x8…]
0x01000…01100 (1, 0, 0) WangDocumentBody
[…0x17…]
0x02800…02900 (2, 0, 8) WangDocumentHead {hdr=WangSectHead {next=( 2,0, 9), len=0xff, h3=41131341}, f00=»1313A «, f01=»CPS/ECP/021 «, f02=»am] «, f03=»FAH/FE «, f04=»Changes to Req. Base «, f05=02-10-81 13:21, f06=» «, f07=»36 «, f08=» 1107 «, f09=29-01-82 11:12, f10=» «, f11=»07 «, f12=» 479 «, f13=29-01-82 11:20, f14=05-02-82 14:12, f15=»0120A «, f16=» 5 «, f17=» 7 «, f18=»42 «, f19=» 80 «, f20=» 26515 «, f21=» «, f22=» «, f99=020020000110068610110480aaca15050000000000000037031800df}
0x02900…02a00 (2, 0, 9) WangDocumentBody
[…0xe…]
0x03800…03900 (3, 0, 8) Sector 0309ff00148241 ┆ Acf. 4.1.4.1.2 Shared buffer array cf. 4.2.1.4.1.4.c1 Main Queue array cf. 4.2.2.5.2 Sub queue array cf. 4.2.2.5.3 Queue Group descriptor cf. 4.2.2.5.4 Queue List array cf. 4.2.2.5.5 Subprocess capability array cf. 4.2.2.5.6 Capability array c┆
0x03900…03a00 (3, 0, 9) Sector 030aff00148241 ┆ Af. 4.2.2.5.6 Synchronization element cf. (d) name array cf. 4.2.2.5.7 HCB array cf. 4.2.4.5.2.1 4.3.2 CSF Local Protected Data These data are located in the local CSF segment for each process SOBC array cf. 4.2.6.5.2 Process record cf.┆
0x03a00…03b00 (3, 0, 10) Sector 030bde00148241 ┆ ^ A 4.1.4.2.1 SSCB array cf. 4.2.6.5.1 Control translation table cf. 4.2.4.5.3 Info element cf. 4.2.4.5.3 Addressing at these data is done via a bound-registed located in the Kernel Data. (ref. fig. 4.3.2-1). SOCB.SS DATA DONE COUNT = 1 DON┆
0x03b00…03c00 (3, 0, 11) Sector 030caf00148241 ┆ / A 1 FIGURE 4.3-1 LAUOUT OF PROTECTED AREA OF A PROCESS (DONE COUNT: INTEGER, DONE SOCB: POINTER):OK DONE SOCB = FIRST SOCB DO┆
0x03c00…03d00 (3, 0, 12) Sector 0000b700148241 ┆ 7 A 1 FIGURE 4.3.2-1 ADDRESSING OF CSF, IOC AND TMP DATA IN PPS CC: COMPLETION CODE): OK RESTORE R0-R4 R6 = SOCB.IOS DATA.SAVER 6┆
0x03d00…03e00 (3, 0, 13) Sector 030edd00148241 ┆ ] A4.1.4.2.1 SSCB array cf. 4.2.6.5.1 Control translation table cf. 4.2.4.5.3 Info element cf. 4.2.4.5.3 Addressing at these data is done via a bound-registed located in the Kernel Data. (ref. fig. 4.3.2-1). SOCB.SS DATA DONE COUNT = 1 DON┆
0x03e00…03f00 (3, 0, 14) Sector 030f5b00148241 ┆ [ A 1 FIGURE 4.3-1 e SIZE words from RECEIVED INFO.DATA to INFO (0..SIZE) DONE SOCB.PCF DATA.SIZE = SIZE DONE COUNT = 1 RETURN (OK) Stop FIGURE 4.2.6.4.3.5-2┆
0x03f00…04000 (3, 0, 15) Sector 00005a00148241 ┆ Z A 1 FIGURE 4.3.2-1 IOS COMPLETE (SOCB: POINTER) (OUTR04: ARRAY (0..4) OF INTEGER EXIT NO: ERROR OK) CC: COMPLETION CODE): OK RESTORE R0-R4 R6 = SOCB.IOS DATA.SAVER 6┆
0x04000…04100 (4, 0, 0) Sector 0401ff00148241 ┆ A SSCB= RECORD KIND: SS KIND; 4.1.6.1.6.5 COMMUNICATION:"COM" SS COMMUNICATION; 4.1.6.6.7. LOCK:"L" BOOLEAN; "Defines, if hardware semaphore shall be locked. DISABLE:"D" BOOLEAN; "Defines if interrupts shall be "disabled.┆
0x04100…04200 (4, 0, 1) Sector 0402ab00148241 ┆ + A LOCK SEM: POINTER; PCF PARAM: PCF SINGLE PARAM; "( ) (PSP for Process Communication) SOCB LIST: LINK HEAD END Refer figure 4.2.6.5.1-1 record. 4.1.7.2.6.7 4.2.6.4.3.2 PCF Module Interface Cf. 4.1.7.2.6.7 4.2.6┆
0x04200…04300 (4, 0, 2) Sector 0403ff00148241 ┆ A 1 4.2.6.5.2 System Operation Control Block Each pending System Call is described in an SOCB. SOCBs are located in an array indexed by SOCB INDEX, refer 4.1.6.6.2. VAR SOCB ARRAY┆
0x04300…04400 (4, 0, 3) Sector 0404af00148241 ┆ / A= ARRAY(1..MAX SOCB INDEX) OF SOCB, refer 4.1.6.6.1. Initialization As part of SCM Initialization, all SOCBs are chained to the FREE SOCB LIST with STATUS= FREE. . Flowgram Cf. figure 4.2.6.4.4.5-1 b) IOS ANSWER RECEIVED Narrative ┆
0x04400…04500 (4, 0, 4) Sector 0405ab00148241 ┆ + A 1 FIGURE 4.2.6.5.1-1 Service System Control Block IOS COMPLETE Narrative Delivers output parametes saved in SOCB to caller. ┆
0x04500…04600 (4, 0, 5) Sector 0406ff00148241 ┆ A 1 4.2.6.5.3 Ready SOCB List The list of Ready SOCBs. VAR READY LIST: LINK HEAD 4.2.6.5.4 Free SOCB List The list of Free SOCBs. VAR FREE SOCB LIST: LINK HEAD 4.2.6.6 Sys┆
0x04600…04700 (4, 0, 6) Sector 04079c00148241 ┆ Atem Call Monitor Common Procedures System Call Monitor has no common subpackage procedures. 4.2.6.7 Subpackage Interfaces Refer 4.1.7.3.6 Cf. figure 4.2.6.4.4.5-3 ESULT=NO SIGNAL SSCB.SOCB LIST. Empty ? Increment P COUNT SSC┆
0x04700…04800 (4, 0, 7) Sector 0308ff00148241 ┆ A 1 4.3 Memory Layout Refer fig. 4.3-1 4.3.1 CSF Shared data The data located in the shared protected CSF segment are the following: QEL array cf. 4.1.4.1.1 Subprocess array ┆
0x04800…04900 (4, 0, 8) Sector 0409f600148241 ┆ v AOPERATION REF, CC): ERROR OK: - ERROR? - SOCB.STATUS = SC ERROR EXIT NO = ERROR - OK ? EXIT NO = OK End Case General SOCB.IOS DATA.SAVER6 = IOS OPERATION REF RETURN (OK) Stop FIGURE 4.2.6.4.4.5-1 EGAL PCF ┆
0x04900…04a00 (4, 0, 9) Sector 040aff00148241 ┆ A 1 Procedure IOS ANSWER RECEIVED (FIRST SOCB, LAST SOCB: POINTER INFO: INTEGER) (DONE COUNT:INTEGER DONE SOCB: POINTER):OK SOCB = FIRST SOCB SOCB.STATUS = DO┆
0x04a00…04b00 (4, 0, 10) Sector 040bff00148241 ┆ ANE Case WAITOPERATION (SOCB.SAVR6) (IOS CC): ERRROR OK: - ERROR ? - IOS CC = OK? EXIT NO = ERROR RETIRE(SCM ERROR, IOS CC) - OK ? EXIT NO = OK End case WAITOPERATION Save (R0-R4, EXIT,NO (SAVR6),CC) in SOCB.SS DATA DONE COUNT = 1 DON┆
0x04b00…04c00 (4, 0, 11) Sector 040c4f00148241 ┆ O AE SOCB = SOCB RETURN (OK) Stop FIGURE 4.2.6.4.4.5-2 dure PCF ANSWER RECEIVED (RECEIVED INFO: SYNC INFO, FIRST SOCB, LAST SOCB: POINTER) (DONE COUNT: INTEGER, DONE SOCB: POINTER):OK DONE SOCB = FIRST SOCB DO┆
0x04c00…04d00 (4, 0, 12) Sector 040dff00148241 ┆ A 1 Start Procedure IOS COMPLETE (SOCB: POINTER) (OUTR04: ARRAY (0..4) OF INTEGER EXIT NO: ERROR OK) CC: COMPLETION CODE): OK RESTORE R0-R4 R6 = SOCB.IOS DATA.SAVER 6┆
0x04d00…04e00 (4, 0, 13) Sector 040ede00148241 ┆ ^ A R7 = SOCB.IOS DATA.CC RETURN (OK) Stop Start Procedure IOS CANCEL (SOCB): OK Case CANCEL (SOCB. SAVR6) (IOS CC): ERROR OK: - ERROR? - RETIRE (SCM ERROR, IOS CC) - OK? End case CANCEL RETURN (OK) Stop : OK EXIT NO = OK CC = OK RETU┆
0x04e00…04f00 (4, 0, 14) Sector 040fff00148241 ┆ A 1 4.2.6.5 System Call Monitor Subpackage Data SCM Data are located in the Local System Segment for calling process, cf. 4.1.4. 4.2.6.5.1 Service System Control Blocks Each Se┆
0x04f00…05000 (4, 0, 15) Sector 0400ff00148241 ┆ Arvice System accessed by a process is described by an SSCB. The SSCBs are located in an array indexed by SSCB INDEX, refer 4.1.6.6.4. VAR SSCB ARRAY=ARRAY(SSCB INDEX) OF SSCB TYPE 1 ┆
0x05000…05100 (5, 0, 0) Sector 0501ff00148241 ┆ A IOS Interface Module Interface Cf. 4.1.7.2.6.8 4.2.6.4.4.3 IOS Interface Module Components The IOS interface module consists of four procedures: - IOS INIT - IOS ANSWER RECEIVED - IOS COMPLETE - IOS CANCEL 4.2.6.4.4.4 IOS Interface M┆
0x05100…05200 (5, 0, 1) Sector 0502b500148241 ┆ 5 Aodule Data a) Data References SOCB cf. 4.1.6.6.1 b) External Data NA c) Local Data The IOS Interface Module has structured the SOCB SS DATA field as a record. 4.1.7.2.6.7 4.2.6.4.3.2 PCF Module Interface Cf. 4.1.7.2.6.7 4.2.6┆
0x05200…05300 (5, 0, 2) Sector 0503ff00148241 ┆ A 1 TYPE 1 IOS DATA = RECORD SAVER0, SAVER1, SAVER2, SAVER3, SAVER4, SAVER6, ┆
0x05300…05400 (5, 0, 3) Sector 0504ff00148241 ┆ A CC: INTEGER END 4.2.6.4.4.5 IOS Interface Module Design a) IOS INIT Narrative Call IO-System in General-IO entry and Saves IOS OPERATION REF in SOCB. Flowgram Cf. figure 4.2.6.4.4.5-1 b) IOS ANSWER RECEIVED Narrative ┆
0x05400…05500 (5, 0, 4) Sector 0505ff00148241 ┆ A Call IO-System function "Wait Operation" and save R0-R4, EXIT NO and CC in SOCB. DONE COUNT is always set to "1". Flowgram Cf. figure 4.2.6.4.4.5-2. c) IOS COMPLETE Narrative Delivers output parametes saved in SOCB to caller. ┆
0x05500…05600 (5, 0, 5) Sector 05062d00148241 ┆ - AFlowgram Cf. figure 4.2.6.4.4.5-3. NSWER RECEIVED Narrative Received info are delivered to caller in specified area and SOCB. PCF DATA is updated. Flowgram Cf. figure 6.4.3.5-2 c) PCF COMPLETE Output parameter from SOCB.PCF DATA┆
0x05600…05700 (5, 0, 6) Sector 0507b900148241 ┆ 9 A 1 d) IOS CANCEL Narrative Call the IO-System "Cancel" function Flowgram Cf. figure 4.2.6.4.4.5-3 ESULT=NO SIGNAL SSCB.SOCB LIST. Empty ? Increment P COUNT SSC┆
0x05700…05800 (5, 0, 7) Sector 0408ff00148241 ┆ A 1 Procedure IOS INIT (FUNCTION: SS FUNCTION, SOCB:POINTER, INR04: ARRAY(0..4)OF INTEGER) (CC: COMPLETION CODE):OK Case GENERAL (FUNCTION IOR INITERFLAG, SOCB, INR04) (IOS ┆
0x05800…05900 (5, 0, 8) WangDocumentBody
[…0x3…]
0x05c00…05d00 (5, 0, 12) Sector 050d6400147741 ┆ d wA 1 Fig. 4.2.5.4.2.3-1 MBER = ERROR OK: EXIT NUMBER = OK End Case WAIT SYSTEM CALL End Case INIT SYSCALL Stop Fig. 4.2.5.4.1.5-1b zed as fol┆
0x05d00…05e00 (5, 0, 13) Sector 050eff00147741 ┆ wA 1 4.2.5.4.2.4 Data Description a) Data References 1) COROUTINE RECORD c.f. 4.1.6.5.1 2) COROUTINE OPERATION c.f. 4.1.6.5.2 3) COROUTINE SEMAPHORE c.f. 4.1.6.5.3 4) RUNNING ┆
0x05e00…05f00 (5, 0, 14) Sector 0000c000147741 ┆ @ wACOROUTINE c.f. 4.1.6.5.6 5) READY LIST c.f. 4.2.5.5.2 b) External Data 1) COROUTINE RECORD. (m) 2) COROUTINE OPERATION. (m) 3) COROUTINE SEMAPHORE (m) c) Local Data None RE? SEMAPHORE = OPERATION.ACTIVATION DECREMENT SEMAPH┆
0x05f00…06000 (5, 0, 15) Sector 0500ff00147741 ┆ wA System Call (c.f. b) STORE REGISTERS TRACE (EXIT, SHORT) End Case SC FUNCTION RETIRE (CMON ERROR, FALSE) (d) 4.1.4.6 RESTORE REGISTERS RETURN (EXIT NUMBER) Stop F┆
0x06000…06100 (6, 0, 0) WangDocumentBody
[…0x2bf…]
0x32000…32100 (50, 0, 0) WangDocumentHead {hdr=WangSectHead {next=(50,0, 1), len=0xff, h3=41084341}, f00=»0843A «, f01=»Skemaer Performance rep. «, f02=»sdv «, f03=»FAH «, f04=»CPS/REP/001 «, f05=30-03-81 15:41, f06=» «, f07=»05 «, f08=» 182 «, f09=04-11-82 09:23, f10=» «, f11=»02 «, f12=» 28 «, f13=04-11-82 09:27, f14=05-11-82 10:08, f15=»0120A «, f16=» 78 «, f17=» 27 «, f18=»57 «, f19=» 2176 «, f20=» 32560 «, f21=» «, f22=» «, f99=020098000110056610110220aa4a55050000000000000138037002df}
0x32100…32200 (50, 0, 1) WangDocumentBody
[…0xae…]
0x3d000…3d100 (61, 0, 0) WangDocumentHead {hdr=WangSectHead {next=(61,0, 1), len=0xff, h3=41147741}, f00=»1477A «, f01=»CPS/SDS/024 «, f02=»dhh «, f03=»JSC «, f04=»fra 4.2.4.4.5 «, f05=30-11-81 09:53, f06=» 11 «, f07=»30 «, f08=» 55883 «, f09=26-08-85 13:03, f10=» «, f11=»01 «, f12=» 13 «, f13=26-08-85 13:05, f14=27-08-85 13:10, f15=»0120A «, f16=» 88 «, f17=» 25 «, f18=»07 «, f19=» 776 «, f20=» 77886 «, f21=» «, f22=» @ «, f99=020010000110062710110280aaca15050000000000000037031c01df}
0x3d100…3d200 (61, 0, 1) WangDocumentBody
[…0x6…]
0x3d800…3d900 (61, 0, 8) Sector 3d09ff00148241 ┆= A 1 Procedure PCF INIT (FUNCTION:SCM FUNCTION, INFO: POINTER, SOCB: POINTER), (EXIT NO: ERROR OK, CC:COMPLETION CODE):OK FUNCTION NE AWAIT SYNCEL? - RETIRE(ILLEGAL PCF ┆
0x3d900…3da00 (61, 0, 9) Sector 3d0aff00148241 ┆= AFUNCTION) SOCB.PCF DATA.INFO = INFO CC = OK EXIT NO = OK RETURN (OK) Stop SSCB = SSCB ARRAY (SOCB.SS ID) CASE CHECK PAGE ACCESS(INFO,SSCB SIZE,WRITE ACCESS):ERROR OK ERROR: SCM RETIRE (SCM PARAM ADDRESS ERROR) END CASE ┆
0x3da00…3db00 (61, 0, 10) Sector 3d0b2200148241 ┆= " A FIGURE 4.2.6.4.3.5-1 IO ANSWER RECEIVED Start SSCB=SSCB ARRAY (SOCB.SS ID) Case SSCB.KIND: IOS?-IOS ANSWER RECEIVED(SOCB,IOS OP) (COUNT) IOC?-IOC ANSWER RECEIVED(SOCB,IOS OP) (COUNT) ┆
0x3db00…3dc00 (61, 0, 11) Sector 3d0cff00148241 ┆= A 1 Procedure PCF ANSWER RECEIVED (RECEIVED INFO: SYNC INFO, FIRST SOCB, LAST SOCB: POINTER) (DONE COUNT: INTEGER, DONE SOCB: POINTER):OK DONE SOCB = FIRST SOCB DO┆
0x3dc00…3dd00 (61, 0, 12) Sector 3d0dff00148241 ┆= ANE SOCB.STATUS = DONE SIZE = RECEIVED INFO.XFER INFO = DONE SOCB.PCF DATA.INFO Move SIZE words from RECEIVED INFO.DATA to INFO (0..SIZE) DONE SOCB (WORK(O) = SIZE DONE COUNT = 1 RETURN (OK) Stop FIGURE 4.2.6.4.3.5-2 ┆
0x3dd00…3de00 (61, 0, 13) Sector 3d0eff00148241 ┆= A 1 Procedure PCF COMPLETE (SOCB:POINTER) (COUNT:INTEGER, INFO:ARRAY (1..COUNT) OF INTEGER, EXIT NO: ERROR OK, CC: COMPLETION CODE): OK EXIT NO = OK CC = OK RETU┆
0x3de00…3df00 (61, 0, 14) Sector 3d0f9800148241 ┆= ARN (OK) Stop Start Procedure PCF CANCEL (SOCB:POINTER):OK SOCB.STATUS = DONE RETURN (OK) Stop FIGURE 4.2.6.4.3.5-3 2.4 SCM Wait Module Data a) Data References SSCB ARRAY c.f. 4.2.6.5.4 SOCB c.f. 4.l.6.6.l b┆
0x3df00…3e000 (61, 0, 15) Sector 0500ff00148241 ┆ A 1 4.2.6.4.4 IOS Interface Module Specification IOS interface Module maintains the interface to DAMOS IOS. 4.2.6.4.4.1 Functional Specification Cf. 4.1.7.2.6.8. 4.2.6.4.4.2┆
0x3e000…3e100 (62, 0, 0) Sector 3e016200148241 ┆> b A.HEAD.NEXT End READY SOCB Loop Stop FIGURE 4.2.6.4.2.5-4 Type PCF SYNC INFO = RECORD HEADER: SYNC INFO HEADER; INFO: ARRAY (1..PCF MAX INFO SIZE) OF INTEGER; END; case SS┆
0x3e100…3e200 (62, 0, 1) Sector 3e02ff00148241 ┆> A 1 4.2.6.4.3 Process Communication Facility Module Specification 4.2.6.4.3.1 Functional Speification Cf. 4.1.7.2.6.7 4.2.6.4.3.2 PCF Module Interface Cf. 4.1.7.2.6.7 4.2.6┆
0x3e200…3e300 (62, 0, 2) Sector 3e03ff00148241 ┆> A.4.3.3 PCF Module Components The PCF module consists of four procedures: - PCF INIT - PCF ANSWER RECEIVED - PCF COMPLETE - PCF CANCEL 4.2.6.4.3.4 PCF Data a) Data References SOCB c.f. 4.1.6.6.1 b) External Data NA c) Local Data┆
0x3e300…3e400 (62, 0, 3) Sector 3e044800148241 ┆> H A PCF Module has structured the SOCB.SS DATA field as a record. his SSCB, the corresponding Service System is entered in the entry point Answer Received, by calling the Answer Received procedure in actual Service System. Upon return from Answer ┆
0x3e400…3e500 (62, 0, 4) Sector 3e05ff00148241 ┆> A 1 TYPE PCF DATA=RECORD INFO:POINTER, SIZE:INTEGER, END 4.2.6.4.3.5 PCF Module Design a) PCF INIT Narrative Input parameters are saved in SOCB Flowgram ┆
0x3e500…3e600 (62, 0, 5) Sector 3e06ff00148241 ┆> A C.f. figure 4.2.6.4.3.5-1 b) PCF ANSWER RECEIVED Narrative Received info are delivered to caller in specified area and SOCB. PCF DATA is updated. Flowgram Cf. figure 6.4.3.5-2 c) PCF COMPLETE Output parameter from SOCB.PCF DATA┆
0x3e600…3e700 (62, 0, 6) Sector 3e078400148241 ┆> A are delivered to caller. Flowgram Cf. figure 4.2.6.4.3.5-3 d) PCF CANCEL Narrative SOCB.STATUS is set to DONE For all SSCBs in SSCB ARRAY LOOP SSCB.PCF PARAM.RESULT=NO SIGNAL SSCB.SOCB LIST. Empty ? Increment P COUNT SSC┆
0x3e700…3e800 (62, 0, 7) Sector 3d087200148241 ┆= r A 1 Flowgram Cf. figure 4.2.6.4.3.5-3 OMMUNICATION EQ BY SEMA ? SSCB. PCF PARAM.INFO = HEADER SSCB.PCF PARAM.INFO = NIL LAST SSCB IN ARRAY ? EXIT End SSCB LOOP ┆
0x3e800…3e900 (62, 0, 8) Sector 3e09ff00148241 ┆> AP COUNT EQ 0 ? - retire (no pending system calls) Case GENERAL AWAIT (PARAM LINK, NIL) (SOCB, IOS OP, CC):(ERROR, IO, NO IO) ERROR?- RETIRE (SCM ERROR, CC, FALSE) IO?- IO ANSWER RECEIVED NO IO?- NO IO ANSWER RECEIVED End case GENER┆
0x3e900…3ea00 (62, 0, 9) Sector 3e0a3d00148241 ┆> = AAL AWAIT RETURN (OK) Stop FIGURE 4.2.6.4.2.5-1 4.2.6.4.2 SCM Wait Module Specification 4.2.6.4.2.1 Functional Specification SCM Wait Module is only activated from system Call Monitor itself. It contains the central waiting ┆
0x3ea00…3eb00 (62, 0, 10) Sector 3e0bff00148241 ┆> A 1 IO ANSWER RECEIVED Start SSCB=SSCB ARRAY (SOCB.SS ID) Case SSCB.KIND: IOS?-IOS ANSWER RECEIVED(SOCB,IOS OP) (COUNT) IOC?-IOC ANSWER RECEIVED(SOCB,IOS OP) (COUNT) ┆
0x3eb00…3ec00 (62, 0, 11) Sector 3e0c7000148241 ┆> p A End case SSCB KIND TEST DONE SOCBS(COUNT,SOCB) Stop FIGURE 4.2.6.4.2.5-2 Registers R4 Pointer to CSF Local Data (kept) R6 LINK (destr) Return Registers R0-R5,R7 (kept) Fatal Errors No pending system┆
0x3ec00…3ed00 (62, 0, 12) Sector 3e0dff00148241 ┆> A 1 NO IO ANSWER RECEIVED Start REPEAT FOR ALL SSCBS Loop SSCB.PCF PARAM.RESULT EQ INFO RECEIVED? EXIT End REPEAT FOR ALL SSCBS Loop Case SSCB.KIND - QMON?-INSPECT RECEIVE(NIL,┆
0x3ed00…3ee00 (62, 0, 13) Sector 3e0eff00148241 ┆> ASSCB.SOCB LIST) (COUNT,DONE SOCB) - MMON?-MMON ANSWER RECEIVED(INFO,SSCB.SOCB LIST) (COUNT,DONE SOCB) - TMP ?-TMP ANSWER RECEIVED(INFO,SSCB.SOCB LIST) (COUNT,DONE SOCB) -PCF ? PCF ANSWER RETURNED (INFO, SSCB.SOCB LIS┆
0x3ee00…3ef00 (62, 0, 14) Sector 3e0f7d00148241 ┆> } AT) (INFO, DONE SOCB) End case SSCB.KIND TEST DONE SOCBS(COUNT,DONE SOCB) Stop FIGURE 4.2.6.4.2.5-3 4.2.6.4.2.4 SCM Wait Module Data a) Data References SSCB ARRAY c.f. 4.2.6.5.4 SOCB c.f. 4.l.6.6.l b┆
0x3ef00…3f000 (62, 0, 15) Sector 3e00ff00148241 ┆> A 1 Procedure TEST DONE SOCBS(COUNT:INTEGER, SOCB:POINTER):OK READY SOCB Loop COUNT LE 0 ? EXIT SOCB.STATUS NE DONE? CHAIN SOCB (SOCB,READY LIST) DECREMENT COUNT SOCB= SOCB┆
0x3f000…3f100 (63, 0, 0) Sector 3f01f800148241 ┆? x Aive the info from a synchronization element. 1 Type PCF SYNC INFO = RECORD HEADER: SYNC INFO HEADER; INFO: ARRAY (1..PCF MAX INFO SIZE) OF INTEGER; END; case SS┆
0x3f100…3f200 (63, 0, 1) Sector 3f02ff00148241 ┆? A 1 TMP ANSWER RECEIVED c.f. (j) 4.2.1 ANSWER RECEIVED c.f. (f) 4.2 Narrative The SSCB ARRAY is used to collect a parameter list for the IO system procedure General Await. Each┆
0x3f200…3f300 (63, 0, 2) Sector 3f03ff00148241 ┆? A SSCB having a non-empty list of pending SOCBs and communicating by synch.element is included in the General Await parameter. If no SSCBs have pending SOCBs, the process is retired. Upon return from General Await the parameter list is then inspe┆
0x3f300…3f400 (63, 0, 3) Sector 3f04ff00148241 ┆? Acted in order to locate the SSCB for which info is received. For this SSCB, the corresponding Service System is entered in the entry point Answer Received, by calling the Answer Received procedure in actual Service System. Upon return from Answer ┆
0x3f400…3f500 (63, 0, 4) Sector 3f05ff00148241 ┆? AReceived the Wait Event procedure shall move all SOCBs with DONE status from the list of pending SOCBs to the common "List of Ready Operations". This is done by calling the TEST DONE SOCBS procedure. If a Service System uses IO System instead of┆
0x3f500…3f600 (63, 0, 5) Sector 3f06b300148241 ┆? 3 A a special synchronization element, the info parameter in Answer Received shall be the operation reference returned by IO System. Flowgram c.f. fig. 4.2.6.4.2.5-(l-4) EQ SSCB ARRAY (SOCB.SS ID) SELECT SERVICE SYSTEM COMPLETION SOCB.STATUS =┆
0x3f600…3f700 (63, 0, 6) Sector 3f07ff00148241 ┆? A 1 Procedure WAIT EVENT:OK PARAM LINK = 0 , P COUNT = 0 For all SSCBs in SSCB ARRAY LOOP SSCB.PCF PARAM.RESULT=NO SIGNAL SSCB.SOCB LIST. Empty ? Increment P COUNT SSC┆
0x3f700…3f800 (63, 0, 7) Sector 3e08ff00148241 ┆> AB. COMMUNICATION EQ BY IOS ? SSCB. PCF PARAM.LINK = PARAM LINK PARAM LINK = % SSCB.PCF PARAM SSCB.COMMUNICATION EQ BY SEMA ? SSCB. PCF PARAM.INFO = HEADER SSCB.PCF PARAM.INFO = NIL LAST SSCB IN ARRAY ? EXIT End SSCB LOOP ┆
0x3f800…3f900 (63, 0, 8) Sector 3f099500148241 ┆? ATE(SOCB) - PCF ?- PCF COMPLETE(SOCB) - IOS ?- IOS COMPLETE(SOCB) End case SSCB.KIND Stop FIGURE 4.2.6.4.1.5-9 rs - SYSTEM CALL STATUS is set to PENDING Function is then used to select a SSCB. The appropriate Se┆
0x3f900…3fa00 (63, 0, 9) Sector 3f0aff00148241 ┆? A 1 4.2.6.4.2 SCM Wait Module Specification 4.2.6.4.2.1 Functional Specification SCM Wait Module is only activated from system Call Monitor itself. It contains the central waiting ┆
0x3fa00…3fb00 (63, 0, 10) Sector 3f0bff00148241 ┆? Apoint of a process. It is called when the process cannot proceed further until some external event has occurred. The process must have pending system calls when this module is entered. Otherwise it is a fatal error. 4.2.6.4.2.2 SCM Wait Modul┆
0x3fb00…3fc00 (63, 0, 11) Sector 3f0cff00148241 ┆? Ae Interface Call specification a) WAIT EVENT:OK b) WAIT EVENT(R6):OK Register Conventions Call Registers R4 Pointer to CSF Local Data (kept) R6 LINK (destr) Return Registers R0-R5,R7 (kept) Fatal Errors No pending system┆
0x3fc00…3fd00 (63, 0, 12) Sector 3f0dff00148241 ┆? A calls. 4.2.6.4.2.3 SCM Wait Module Component SCM Wait Module is implemented as two procedures. The first is WAIT EVENT which is called from the Application Interface Module. The second is TEST DONE SOCB which is only called from WAIT EVENT.┆
0x3fd00…3fe00 (63, 0, 13) Sector 3f0e0800148241 ┆? A (SCM NO RESOURCES) SOCB.FUNCTION = FUNCTION SOCB.AP REF = AP REF SOCB.STATUS = PENDING SSCB =SSCB ARRAY (FUNCTION.SS ID) SELECT SERVICE SYSTEM FUNCTION Case SOCB.STATUS: 1 -┆
0x3fe00…3ff00 (63, 0, 14) Sector 3f0fff00148241 ┆? A 1 1 4.2.6.4.2.4 SCM Wait Module Data a) Data References SSCB ARRAY c.f. 4.2.6.5.4 SOCB c.f. 4.l.6.6.l b┆
0x3ff00…40000 (63, 0, 15) Sector 3f00ff00148241 ┆? A) External Data SSCB (ALL) (M) SOCB (ALL) (M) c) Local Data 4.2.6.4.2.5 SCM Wait Module Design External Procedures INSPECT RECEIVE c.f. 4.2.2.4.1 MMON ANSWER RECEIVED c.f. 4.4.2.4 PCF Parameter The parameter used to rece┆
0x40000…40100 (64, 0, 0) Sector 4001ff00148241 ┆@ AOCB) (EXIT NO, CC):OK TMP ?- TMP INIT(SS CODE, SOCB) (EXIT NO, CC):OK IOC ?- IOC INIT(SS CODE, SOCB) (EXIT NO, CC):OK PCF ?- PCF INIT(SS CODE, SOCB) (EXIT NO, CC):OK IOS ?- IOS INIT(SS CODE, SOCB) (EXIT NO, CC):OK End case SS┆
0x40100…40200 (64, 0, 1) Sector 40023c00148241 ┆@ < ACB.KIND Stop FIGURE 4.2.6.4.1.5-7 E CANCEL Start SOCB = SOCB ARRAY (SO REF) Array address error or SOCB.STATUS EQ FREE ?-RETIRE(SCM ERROR, SOCB REF ERROR) SOCB.STATUS NE PENDING? SSCB = SSCB ARRAY (SOCB.FUNCTI┆
0x40200…40300 (64, 0, 2) Sector 4003ff00148241 ┆@ A 1 c) Wait Narrative Waits for completion of the system call identified by SOCB. If SOCB Status is PENDING, the internal procedure Wait Event is called. This is repeated unti┆
0x40300…40400 (64, 0, 3) Sector 4004ff00148241 ┆@ Al the Status of SOCB has changed to DONE. Then the Service System is entered in the COMPLETE FUNCTION entry point, by calling the "COMPLETE" procedure in actual Service System. Upon return from Service System, the SOCB is released. The "work" ┆
0x40400…40500 (64, 0, 4) Sector 4005ad00148241 ┆@ - Apart of SOCB is, however, untouched and may be used by calling procedure to get output parameters from service system. Flowgram Cf. figure 4.2.6.4.1.5-8 to -9. , ILLEGAL SS ID) or SSCB.KIND = NE PCF KIND SSCB.COMMUNCATION = COMMUNICATION KIN┆
0x40500…40600 (64, 0, 5) Sector 4006ff00148241 ┆@ A 1 Procedure WAIT (SOCB:POINTER) Wait loop SOCB.STATUS NE PENDING? EXIT WAIT EVENT End WAIT Loop SSCB EQ SSCB ARRAY (SOCB.SS ID) SELECT SERVICE SYSTEM COMPLETION SOCB.STATUS =┆
0x40600…40700 (64, 0, 6) Sector 40076f00148241 ┆@ o A FREE CHAIN SOCB (SOCB, FREE SOCB LIST) RETURN(OK) Stop FIGURE 4.2.6.4.1.5-8 called. - DEFINE SERVICE SYSTEM: Initializes a SSCB with the parameters specified by call. Flowgram cf. figure 4.2.6.4.1.5-1 to -3.┆
0x40700…40800 (64, 0, 7) Sector 3f08ff00148241 ┆? A 1 SELECT SERVICE SYSTEM COMPLETION Start Case SSCB.KIND: - QMON ?- COMPLETE RECEIVE(SOCB) - MMON ?- MMON COMPLETE(SOCB) - TMP ?- TMP COMPLETE(SOCB) - IOC ?- IOC COMPLE┆
0x40800…40900 (64, 0, 8) Sector 4009ff00148241 ┆@ A A free SOCB is allocated and initialized with: - FUNCTION taken from input parameters - APPLICATION REFERENCE taken from input parameters - SYSTEM CALL STATUS is set to PENDING Function is then used to select a SSCB. The appropriate Se┆
0x40900…40a00 (64, 0, 9) Sector 400aff00148241 ┆@ Arvice System is then entered in its INIT FUNCTION entry point. This is done by calling the INIT procedure in actual Service System. Upon return from Service System, the SYSTEM CALL STATUS of SOCB is inspected. If it is DONE, the SOCB is chained t┆
0x40a00…40b00 (64, 0, 10) Sector 400bff00148241 ┆@ Ao the list of ready operations. If it is SC ERROR, the SOCB is released. If it is PENDING the SOCB is chained into SOCB LIST in SSCB. Finally return is made with the completion code and exit condition received from Service System, and with the Sy┆
0x40b00…40c00 (64, 0, 11) Sector 400c6a00148241 ┆@ j Astem Operation Reference return parameter set to SOCB ID Flowgram Cf. figure 4.2.6.4.1.5.(6-7) System Call cf. 4.1.7.2.6.2 c) Wait System Call cf. 4.1.7.2.6.3 d) Cancel System Call cf. 4.1.7.2.6.4 e) Wait Next Operation cf. 4.1.7.2.6.5 ┆
0x40c00…40d00 (64, 0, 12) Sector 400dff00148241 ┆@ A 1 Start Procedure INIT SYSTEM CALL (FUNCTION: SCM FUNCTION, AP REF: INTEGER) EXIT NO: ERROR OK, SOCB: POINTER, CC:COMPLETION CODE) FREE SOCB LIST EMPTY? - RETIR┆
0x40d00…40e00 (64, 0, 13) Sector 400eff00148241 ┆@ AE (SCM NO RESOURCES) SOCB.FUNCTION = FUNCTION SOCB.AP REF = AP REF SOCB.STATUS = PENDING SSCB =SSCB ARRAY (FUNCTION.SS ID) SELECT SERVICE SYSTEM FUNCTION Case SOCB.STATUS: 1 -┆
0x40e00…40f00 (64, 0, 14) Sector 400fcd00148241 ┆@ M A DONE ? - CHAIN SOCB (SOCB, READY LIST) - PENDING ? - CHAIN IN(SOCB, SSCB. SOCB LIT) - SC ERROR ? - SOCB.STATUS = FREE End case SOCB.STATUS Return Stop FIGURE 4.2.6.4.1.5-6 CB.STATUS EQ FREE WAIT (SOCB) RESTORE REGISTER┆
0x40f00…41000 (64, 0, 15) Sector 4000ff00148241 ┆@ A 1 SELECT SERVICE SYSTEM FUNCTION Start SS CODE = FUNCTION.SS CODE Case SSCB.KIND QMON ? - INIT RECEIVE FIRST QEL(SS CODE, SOCB) (EXIT NO, CC):OK MMON ?- MMON INIT(SS CODE, S┆
0x41000…41100 (65, 0, 0) Sector 41014800148241 ┆A H A REF, SOCB.SOCB ID, OK) Stop FIGURE 4.2.6.4.1.5-3 Figure 4.2.6.4.1.3-1 furthermore the System Call Monitor common functions are shown at the same level. The modules having more than one mainfunction are broken down so ┆
0x41100…41200 (65, 0, 1) Sector 4102ff00148241 ┆A A 1 E CANCEL Start SOCB = SOCB ARRAY (SO REF) Array address error or SOCB.STATUS EQ FREE ?-RETIRE(SCM ERROR, SOCB REF ERROR) SOCB.STATUS NE PENDING? SSCB = SSCB ARRAY (SOCB.FUNCTI┆
0x41200…41300 (65, 0, 2) Sector 4103ff00148241 ┆A AON.S ID) Case SSCB.KIND - QMON ? - CANCEL RECEIVE (SOCB) - MMON ? - MMON CANCEL (SOCB) - TMP ? - TMP CANCEL (SOCB) - IOC ? - IOC CANCEL (SOCB) - PCF ? - PCF CANCEL (SOCB) - IOS ? - IOS CANCEL (SOCB) End case SSCB.KIND SOCB.STATUS ┆
0x41300…41400 (65, 0, 3) Sector 41047700148241 ┆A w ANE DONE ? CHAIN OUT (SOCB) CHAIN IN (SOCB, READY LIST) MON RETURN (0,OK) Stop FIGURE 4.2.6.4.1.5-4 T IOC COMPLETE IOC CANCEL . (f) 4.2 rocedures WAIT EVENT cf. 4.2.6.4.2.5 PCF INIT cf. 4.2.6.4.3.5.a PCF ANSWER RECEIVED cf.┆
0x41400…41500 (65, 0, 4) Sector 4105ff00148241 ┆A A 1 E DEFINE SERVICE SYSTEM Start SSCB = SSCB ARRAY (SS ID) Array address error? - RETIRE (SCM ERROR, ILLEGAL SS ID) or SSCB.KIND = NE PCF KIND SSCB.COMMUNCATION = COMMUNICATION KIN┆
0x41500…41600 (65, 0, 5) Sector 4106ff00148241 ┆A AD SSCB.PCF PARAM.SYNCEL = SYNCEL ID CASE COMMUNICATION KIND BY SEMA ? SYNCEL INFO SIZE NE 0 ? BY INFO ? SYNCEL INFO SIZE EQ 0 ? SSCBZ.SIZE = ????(ILLEGAL MIN(PCF MAX SIZE, DEFINE PARAMS) SYNC INFO SIZE END CASE MON RETURN st┆
0x41600…41700 (65, 0, 6) Sector 41073200148241 ┆A 2 Aop FIGURE 4.2.6.4.1.5-5 rocedure in the Service System identified by SS ID in SOCB is called. - DEFINE SERVICE SYSTEM: Initializes a SSCB with the parameters specified by call. Flowgram cf. figure 4.2.6.4.1.5-1 to -3.┆
0x41700…41800 (65, 0, 7) Sector 4008ff00148241 ┆@ A 1 1 b) Initiate System Call Narrative From the INIT SYSCALL entry the INIT SYSTEM CALL procedure is called. ┆
0x41800…41900 (65, 0, 8) Sector 4109ff00148241 ┆A A 1 MON Procedure SCM (INR04:ARRAY(0..4)OF INTEGER, SCM CODE:SCM CODE TYPE, FUNCTION: SCM FUNCTION, AP REF: INTEGER, SO REF: SOCB INDEX) (OUTR04:ARRAY (0..4) ┆
0x41900…41a00 (65, 0, 9) Sector 410aff00148241 ┆A AOF INTEGER, AP REF: INTEGER, SO REF: SOCB INDEX, CC: COMPLETION CODE): ERROR OK 1 Case SCM CODE - INIT SYSCALL ?-E INIT SYSCALL - SYSCALL ?-E SYSCALL - WAIT SY┆
0x41a00…41b00 (65, 0, 10) Sector 410bff00148241 ┆A ASCALL ?-E WAIT SYSCALL - WAIT NEXT OPERATION ?-E WAIT NEXT OPERATION - CANCEL SYSCALL ?-E CANCEL - DEFINE SERVICE SYSTEM ?-E DEFINE SERVICE SYSTEM End case SCM CODE RETIRE (SCM ERROR, ILLEGAL CODE) Stop FIGURE 4.2.6┆
0x41b00…41c00 (65, 0, 11) Sector 410c0f00148241 ┆A A.4.1.5-1 lel. 4.2.6.4.1.1 Functional Specification a) Initiate System Call cf. 4.1.7.2.6.1 b) System Call cf. 4.1.7.2.6.2 c) Wait System Call cf. 4.1.7.2.6.3 d) Cancel System Call cf. 4.1.7.2.6.4 e) Wait Next Operation cf. 4.1.7.2.6.5 ┆
0x41c00…41d00 (65, 0, 12) Sector 410dff00148241 ┆A A 1 E INIT SYSCALL Start INIT SYSCALL (FUNCTION, AP REF) (EXIT NO, SOCB, CC) MON RETURN (SOCB.SOCB ID, CC, EXIT NO,) Stop E SYSCALL Start INIT SYSCALL (FUNCTION, A┆
0x41d00…41e00 (65, 0, 13) Sector 410efa00148241 ┆A z AP REF) (EXIT NO,SOCB,CC); IF EXIT NUMBER = OKAY THEN BEGIN WAIT (SOCB); RESOTRE REGISTERS, CC AND EXIT NUMBER FROM SOCB END; End case INIT SYSCALL MON RETURN(OUTR04, EXIT NO, CC) Stop FIGURE 4.2.6.4.1.5-2 ters ┆
0x41e00…41f00 (65, 0, 14) Sector 410fff00148241 ┆A A 1 E WAIT SYSCALL Start SOCB = SOCB ARRAY (SO REF) array address error OR ? - RETIRE(SCM ERROR,SOCB REF ERROR) SOCB.STATUS EQ FREE WAIT (SOCB) RESTORE REGISTER┆
0x41f00…42000 (65, 0, 15) Sector 4100ff00148241 ┆A AS, CC AND EXIT NO FROM SOCB MON RETURN (OUTR04, EXIT NO, CC) Stop E WAIT NEXT OPERATION Start READY loop READY LIST NOT EMPTY? EXIT WAIT EVENT End READY loop SOCB = READY LIST. NEXT CHAIN SOCB (SOCB,SOCB) MON RETURN (SOCB.AP┆
0x42000…42100 (66, 0, 0) Sector 42016900148241 ┆B i A 1 Figure 4.2.6.4.1.3-1 furthermore the System Call Monitor common functions are shown at the same level. The modules having more than one mainfunction are broken down so ┆
0x42100…42200 (66, 0, 1) Sector 4202ff00148241 ┆B A 1 4.2.6.4.1.4 Application Interface Data a) Data References SSCB ARRAY cf. 4.2.6.5.1 SOCB ARRAY cf. 4.2.6.5.4 READY LIST cf. 4.2.6.5.2 FREE SOCB LIST cf. 4.2.6.5.3 b) Ext┆
0x42200…42300 (66, 0, 2) Sector 4203ff00148241 ┆B Aernal Data READY LIST FREE SOCB LIST SSCB (ALL) (M) SOCB (ALL) (M) c) Local Data None 4.2.6.4.1.5 Application Interface Module Design External Procedures INIT RECEIVE FIRST QEL COMPLETE RECEIVE CANCEL RECEIVE cf. 4.2.2.4.1. ┆
0x42300…42400 (66, 0, 3) Sector 4204a100148241 ┆B ! A MMON INIT MMON COMPLETE MMON CANCEL cf. 4.4.2.4 TMP INIT TMP COMPLETE TMP CANCEL . (j) 4.2.1 IOC INIT IOC COMPLETE IOC CANCEL . (f) 4.2 rocedures WAIT EVENT cf. 4.2.6.4.2.5 PCF INIT cf. 4.2.6.4.3.5.a PCF ANSWER RECEIVED cf.┆
0x42400…42500 (66, 0, 4) Sector 4205ff00148241 ┆B A 1 a) SCM Monitor Procedure Narrative This monitor procedure has a case selecting one of System Call Monitors main functions. The four first entries perform most processing b┆
0x42500…42600 (66, 0, 5) Sector 4206ff00148241 ┆B Ay means of procedure calls. The called procedures is further described in the following paragraphs. The last two entries call no procedures and will thus be described here. - CANCEL SYSCALL: If STATUS of SOCB is not PENDING nothing is don┆
0x42600…42700 (66, 0, 6) Sector 4207ff00148241 ┆B Ae. If STATUS of SOCB is PENDING the cancel procedure in the Service System identified by SS ID in SOCB is called. - DEFINE SERVICE SYSTEM: Initializes a SSCB with the parameters specified by call. Flowgram cf. figure 4.2.6.4.1.5-1 to -3.┆
0x42700…42800 (66, 0, 7) Sector 41086700148241 ┆A g A - CANCEL SYSCALL cf. figure 4.2.6.4.1.5-6 - DEFINE SERVICE SYSTEM cf. figure 4.2.6.4.1.5-5 the single Service System functions are called. EADY LIST: LINK HEAD; 4.2.5.6 Coroutine Monitor Common Procedures e is called. 4.2.5.4.5.2 ┆
0x42800…42900 (66, 0, 8) Sector 42096300148241 ┆B c A 1 Figur 4.2.6.3-1 .5.6.1.1 Functional Specification The CHAIN IN procedure chains an object into a double linked list. The object is chained in, in accordance to its priori┆
0x42900…42a00 (66, 0, 9) Sector 420aff00148241 ┆B A 1 4.2.6.4 System Call Monitor Module Specification 4.2.6.4.1 Application Interface Module The application Interface Module maintains the interfaces from application modules to Se┆
0x42a00…42b00 (66, 0, 10) Sector 420bff00148241 ┆B Arvice Systems. Requests from applications are passed on to the Service Systems and on return the answers are returned to calling modules. Furthermore, this module makes it possible for a process to wait for completion of several pending requests┆
0x42b00…42c00 (66, 0, 11) Sector 420cff00148241 ┆B A in parallel. 4.2.6.4.1.1 Functional Specification a) Initiate System Call cf. 4.1.7.2.6.1 b) System Call cf. 4.1.7.2.6.2 c) Wait System Call cf. 4.1.7.2.6.3 d) Cancel System Call cf. 4.1.7.2.6.4 e) Wait Next Operation cf. 4.1.7.2.6.5 ┆
0x42c00…42d00 (66, 0, 12) Sector 420dff00148241 ┆B A f) Define Service System cf. 4.1.7.2.6.6 4.2.6.4.1.2 Application Interface Module Interfaces a) Initiate System Call cf. 4.1.7.2.6.1 b) System Call cf. 4.1.7.2.6.2 c) Wait System Call cf. 4.1.7.2.6.3 d) Cancel System Call cf. 4.1.7.2.6.4┆
0x42d00…42e00 (66, 0, 13) Sector 420e5c00148241 ┆B \ A e) Wait Next Operation cf. 4.1.7.2.6.5 f) Define Service System cf. 4.1.7.2.6.6 OUT (OBJECT: COROUTINE LINK): OK b) CHAIN OUT (R5, R6): OK Register Conventions Call Registers R5 pointer to OBJECT (kept) R6 LINK Return Registers ┆
0x42e00…42f00 (66, 0, 14) Sector 420fff00148241 ┆B A 1 4.2.6.4.1.3 Application Interface Module Components The components in this module are the Monitor procedure SCM and the two procedures INIT SYSTEM CALL and WAIT. Cf. Figure 4.2.┆
0x42f00…43000 (66, 0, 15) Sector 42001100148241 ┆B A6.4.1.3-1 c) Local Data NA 4.2.5.7 Subpackage Interfaces NA. 4.2.6 System Call Monitor Subpackage Specification 4.2.6.1 Functional Specification The System Call Monitor has at┆
0x43000…43100 (67, 0, 0) Sector 4301ff00148241 ┆C A Figure 4.2.6.1-1 been broken down so the upper level shows the four modules in System Call Monitor furthermore the System Call Monitor common functions are shown at the same level. The modules having more than one mainfunction are broken down so ┆
0x43100…43200 (67, 0, 1) Sector 4302c600148241 ┆C F Athe mainfunctions are identified. For further functional specification refer to module specification (cf. 4.2.6.4). The number in the boxes representing modules refers to module number. HORE COUNT SEMAPHORE.NEXT = SEEMAPHORE.PREVIOUS = SEMA┆
0x43200…43300 (67, 0, 2) Sector 43036300148241 ┆C c A 1 Figure 4.2.6.1-1 MON NAME, LENGTH: (SHORT, LONG)): OK TRACE ENABLE EQ FALSE? TRACE NAME = NAME COROUTINE ID = COROUTINE.COROUTINE ID SUBPROCESS ID = COROUTINE.SUBPRO┆
0x43300…43400 (67, 0, 3) Sector 4304ff00148241 ┆C A 1 4.2.6.2 System Call Monitor Software Structure Refer to figure 4.2.6.1-1 Internal procedures WAIT EVENT cf. 4.2.6.4.2.5 PCF INIT cf. 4.2.6.4.3.5.a PCF ANSWER RECEIVED cf.┆
0x43400…43500 (67, 0, 4) Sector 4305ff00148241 ┆C A 4.2.6.4.3.5.b PCF COMPLETE cf. 4.2.6.4.3.5.c PCF CANCEL cf. 4.2.6.4.3.5.d IOS INIT cf. 4.2.6.4.4.5.a IOS ANSWER RECEIVED cf. 4.2.6.4.4.5.b IOS COMPLETE cf. 4.2.6.4.4.5.c IOS CANCEL cf. 4.2.6.4.4.5.d Monitor Procedure Monitor procedu┆
0x43500…43600 (67, 0, 5) Sector 4306ff00148241 ┆C Are with 6 entries: SCM cf. 4.2.6.4 4.2.6.3 System Call Monitor Control Logic Control logic for System Call Monitor is shown at figure 4.2.6.3-1. An application process activating the SCM Monitor procedure with its six entries are shown l┆
0x43600…43700 (67, 0, 6) Sector 4307ff00148241 ┆C Aeftmost. Furthermore, the System Call Monitor procedures associated to the general System Call Monitor functions are shown. At the rightmost the Service Systems called by System Call Monitor are shown. This Service System may be external Service┆
0x43700…43800 (67, 0, 7) Sector 42089b00148241 ┆B A Systems as well as System Call Monitors own Service Systems. It is shown from which procedures the single Service System functions are called. EADY LIST: LINK HEAD; 4.2.5.6 Coroutine Monitor Common Procedures e is called. 4.2.5.4.5.2 ┆
0x43800…43900 (67, 0, 8) Sector 4309ff00148241 ┆C A 1 4.2.5.6.1 Chain In 4.2.5.6.1.1 Functional Specification The CHAIN IN procedure chains an object into a double linked list. The object is chained in, in accordance to its priori┆
0x43900…43a00 (67, 0, 9) Sector 430aff00148241 ┆C Aty, highest priority equal zero. Lowest priority equal 255. The object must be of the COROUTINE LINK type. 4.2.5.6.1.2 Chain In Interface Call Specification a) CHAIN IN (OBJECT: COROUTINE LINK HEAD: LINK HEAD): OK b) CHAIN IN(R4, ┆
0x43a00…43b00 (67, 0, 10) Sector 430bff00148241 ┆C AR5, R6):OK Register Conventions Call Registers 1 R4 pointer to HEAD (dest) R5 pointer to OBJECT (kept) R6 LINK (dest) Return Registers R0, R1-R3, kept R7 (destroye┆
0x43b00…43c00 (67, 0, 11) Sector 430c8f00148241 ┆C Ad) 4.2.5.6.1.3 Chain In Data a) Data References COROUTINE LINK cf. 4.1.6.5.4 LINK HEAD cf. 4.1.6.5.5 b) External Data NA le Data Description a) Data References - COROUTINE RECORD cf. 4.1.6.5.1 - RUNNING COROUTINE cf. - CURR┆
0x43c00…43d00 (67, 0, 12) Sector 430dff00148241 ┆C A 1 c) Local Data NA 4.2.5.6.2 Chain Out 4.2.5.6.2.1 Functional Specification The Chain Out procedure chains an object out of a double linked list. The object must be of C┆
0x43d00…43e00 (67, 0, 13) Sector 430eff00148241 ┆C AOROUTINE LINK type. 4.2.5.6.2.2 Chain Out Interface Call Specification a) CHAIN OUT (OBJECT: COROUTINE LINK): OK b) CHAIN OUT (R5, R6): OK Register Conventions Call Registers R5 pointer to OBJECT (kept) R6 LINK Return Registers ┆
0x43e00…43f00 (67, 0, 14) Sector 430f8400148241 ┆C A R0-R4, R7 kept 4.2.5.6.2.3 Chain Out Data a) Data References COROUTINE LINK Cf. 4.1.6.5.4 b) External Data NA igure 4.2.5.4.5.4-1 COROUTINE ID TYPE PRIORITY: PRIORITY TYPE, SUBPROCESS ID: SUBPROCESS ID TYPE, START┆
0x43f00…44000 (67, 0, 15) Sector 4300ff00148241 ┆C A 1 c) Local Data NA 4.2.5.7 Subpackage Interfaces NA. 4.2.6 System Call Monitor Subpackage Specification 4.2.6.1 Functional Specification The System Call Monitor has at┆
0x44000…44100 (68, 0, 0) Sector 4401ff00148241 ┆D A 1 4.2.5.4.5.5 Trace Module Design External Procedures CMON TRACE (cf. 4.1.7.2.1.12) Narrative Trace procedure updates TRACE BUFFER if TRACE ENABLE is true otherwise it returns┆
0x44100…44200 (68, 0, 1) Sector 4402a800148241 ┆D ( A to caller immediately. The TRACE BUFFER to be updated may be short or long as indicated by the input parameter LENGTH. Flowgram Cf. figure 4.2.5.4.5.5-1 : OK SEMAPHORE.COUNT = SEMAPHORE COUNT SEMAPHORE.NEXT = SEEMAPHORE.PREVIOUS = SEMA┆
0x44200…44300 (68, 0, 2) Sector 4403ff00148241 ┆D A 1 Procedure TRACE(NAME: COMON NAME, LENGTH: (SHORT, LONG)): OK TRACE ENABLE EQ FALSE? TRACE NAME = NAME COROUTINE ID = COROUTINE.COROUTINE ID SUBPROCESS ID = COROUTINE.SUBPRO┆
0x44300…44400 (68, 0, 3) Sector 4404ff00148241 ┆D ACESS ID MOVE (SAVER0 - SAVER7) TO TRACEBUFFER LENGTH EQ SHORT? - COUNT = 8 MOVE R5 (5..12) TO LONG TRACE BUFFER (0..7) COUNT = 16 CMON TRACE (TRACE BUFFER) cf.4.1.7.2.7.2 LOAD REGISTERS RETURN (OK) Stop FIGURE 4.2┆
0x44400…44500 (68, 0, 4) Sector 44051100148241 ┆D A.5.4.5.5-1 .4.5-4 4.2.5.4.4.4 Data Description a) Data References COROUTINE RECORD cf. 4.1.5.5.1 COROUTINE OPERATION cf. 4.1.5.5.2 COROUTINE SEMAPHORE cf. 4.1.5.5.3 RUNNING COROUTINE cf. 4┆
0x44500…44600 (68, 0, 5) Sector 4406ff00148241 ┆D A 1 4.2.5.5 Common Coroutine Monitor Data 4.2.5.5.1 Current Subprocess Each process using coroutines has one variable named CURRENT SUBPROCESS containing the Subprocess ID associat┆
0x44600…44700 (68, 0, 6) Sector 4407ff00148241 ┆D Aed to the coroutine running now. It will be updated by coroutine monitor each time a new running coroutine is selected. VAR CURRENT SUBPROCESS: SUBPROCESS ID 4.2.5.5.2 Ready List Each process using coroutines has one variable named READY ┆
0x44700…44800 (68, 0, 7) Sector 4308e300148241 ┆C c ALIST. The READY LIST points to first and last coroutine in a double linked list containing the coroutine records of all ready coroutines. VAR READY LIST: LINK HEAD; 4.2.5.6 Coroutine Monitor Common Procedures e is called. 4.2.5.4.5.2 ┆
0x44800…44900 (68, 0, 8) Sector 4409ff00148241 ┆D AModule Interface The Trace procedure is called with two input parameters. - NAME which is a name identifying the Coroutine Monitor function which has generated the trace - LENGTH Telling if a short or a long trace are wanted. Call Specificat┆
0x44900…44a00 (68, 0, 9) Sector 440a6900148241 ┆D i Aion a) TRACE (NAME:COMON NAME, LENGTH: (SHORT, LONG)): OK b) TRACE (NAME, LENGTH, R6): OK PHORE Narrative: The specified SEMAPHORE is updated with COUNT. The SEMAPHORE LIST is initialized. Flowgram: See Fig. 4.2.5.4.4.5-3 d┆
0x44a00…44b00 (68, 0, 10) Sector 440bff00148241 ┆D A 1 Register Conventions Call Registers 1 R6 LINK (destr) Return Registers R0-R5 and R7 (kept) Fatal Errors┆
0x44b00…44c00 (68, 0, 11) Sector 440cff00148241 ┆D A None 4.2.5.4.5.3 Trace Module Components The Trace Module has one component. - TRACE cf. 4.2.5.4.4.5 4.2.5.4.5.4 Trace Module Data Description a) Data References - COROUTINE RECORD cf. 4.1.6.5.1 - RUNNING COROUTINE cf. - CURR┆
0x44c00…44d00 (68, 0, 12) Sector 440de300148241 ┆D c AENT SUBPROCESS cf. 4.2.5.5.1 - TRACE BUFFER b) External Data - COROUTINE RECORD - RUNNING SUBPROCESS c) Local Data c1) Trace Buffer The buffer used to build the Trace Record before calling CMON TRACE. DY LIST) RETURN (OK) Sto┆
0x44d00…44e00 (68, 0, 13) Sector 440eff00148241 ┆D A 1 VAR TRACE BUFFER: 1 RECORD HEAD: CMON TRACE PARAM cf. 4.1.6.1.1 DATA: ARRAY (0..15) OF INT┆
0x44e00…44f00 (68, 0, 14) Sector 440f9900148241 ┆D AEGER END INIT TRACE BUFFER.HEAD.OFFSET = 0 TRACE BUFFER.HEAD.ADDRESS = ADDRESS (TRACE BUFFER.DATA) Refer figure 4.2.5.4.5.4-1 COROUTINE ID TYPE PRIORITY: PRIORITY TYPE, SUBPROCESS ID: SUBPROCESS ID TYPE, START┆
0x44f00…45000 (68, 0, 15) Sector 44006700148241 ┆D g A 1 FIGURE 4.2.5.4.5.4-1 COROUTINE.SUBPROCESS ID = SUBPROCESS ID COROUTINE.SAVER7 = START ADDRESS CHAIN IN (COROUTINE, READY LIST) RETURN (OK) Stop ┆
0x45000…45100 (69, 0, 0) Sector 45012200148241 ┆E " A FIGURE 4.2.5.4.4.5-2 tion Functions Interfaces The Initialization Functions Module has four independent interfaces. a) Initialize Coroutine Monitor. Cf. 4.1.6.2.5.10. b) Initialize Coroutine. Cf. 4.1.6.2.5.11. c) Initialize Semaphore.┆
0x45100…45200 (69, 0, 1) Sector 4502ff00148241 ┆E A 1 Procedure INIT SEMAPHORE (SEMAPHORE COUNT: INTEGER, SEMAPHORE: COROUTINE SEMAPHORE): OK SEMAPHORE.COUNT = SEMAPHORE COUNT SEMAPHORE.NEXT = SEEMAPHORE.PREVIOUS = SEMA┆
0x45200…45300 (69, 0, 2) Sector 45035b00148241 ┆E [ APHORE RETURN (OK) Stop FIGURE 4.2.5.4.4.5-3 - INIT OPERATION cf. 4.2.5.4.4.5.d Cf. Figure 4.2.5.4.3.3-1 the coroutine record. When the coroutine is eventually readied and selected as running coroutine, i┆
0x45300…45400 (69, 0, 3) Sector 4504ff00148241 ┆E A 1 Procedure INIT OP (OPERATION: COROUTINE OPERATION, PRIORITY: PRIORITY TYPE): OK OPERATION.PRIORITY = PRIORITY RETURN (OK) FIG┆
0x45400…45500 (69, 0, 4) Sector 45051800148241 ┆E AURE 4.2.5.4.4.5-4 4.2.5.4.4.4 Data Description a) Data References COROUTINE RECORD cf. 4.1.5.5.1 COROUTINE OPERATION cf. 4.1.5.5.2 COROUTINE SEMAPHORE cf. 4.1.5.5.3 RUNNING COROUTINE cf. 4┆
0x45500…45600 (69, 0, 5) Sector 4506ff00148241 ┆E A 1 4.2.5.4.5 Trace Module Specification The Trace Module maintains the interface between Coroutine Monitor and the CSF Trace Module (cf. 4.2.1.1.7.2.1.10. 4.2.5.4.5.1 Functional S┆
0x45600…45700 (69, 0, 6) Sector 4507ff00148241 ┆E Apecification The Trace Module may perform a short trace or a long trace. The short trace updates a short trace buffer with - Trace Name - Coroutine ID - Subprocess ID - Value of the 8 saved registers The long trace updates a long trace bu┆
0x45700…45800 (69, 0, 7) Sector 4408ff00148241 ┆D Affer. The long trace buffer contains the same information as the short trace buffer plus the 8 words pointed out by (saved R5 + 5)(datafield in operation). When the trace buffer has been updated the CSF trace procedure is called. 4.2.5.4.5.2 ┆
0x45800…45900 (69, 0, 8) Sector 4509ff00148241 ┆E A 1 Flowgram See Fig. 4.2.5.4.4.5-1 b) INIT COROUTINE Narrative The specified COROUTINE RECORD is updated with COROUTINE ID, PRIORITY, SUBPROCESS ID and START ADDRESS. T┆
0x45900…45a00 (69, 0, 9) Sector 450aff00148241 ┆E Ahen the coroutine is chained to the READY LIST Flowgram See Fig. 4.2.5.4.4.5-2 c) INIT SEMAPHORE Narrative: The specified SEMAPHORE is updated with COUNT. The SEMAPHORE LIST is initialized. Flowgram: See Fig. 4.2.5.4.4.5-3 d┆
0x45a00…45b00 (69, 0, 10) Sector 450b7f00148241 ┆E A) INIT OP Narrative: The specified OPERATION is initialized with PRIORITY. Flowgram: See Fig. 4.2.5.4.4.5-4 1 Functional Specification The Pause Module contains the waiting point of Coroutine Monitor. It is called from Coroutine Monit┆
0x45b00…45c00 (69, 0, 11) Sector 450cff00148241 ┆E A 1 Procedure INIT COMON (COROUTINE: COROUTINE RECORD COROUTINE ID: COROUTINE ID TYPE, PRIORITY: PRIORITY TYPE, SUBPROCESS ID: SUBPROCESS ID TYPE): OK RUNNING COROUTIN┆
0x45c00…45d00 (69, 0, 12) Sector 450dff00148241 ┆E AE = COROUTINE COROUTINE.COROUTINE ID = COROUTINE ID COROUTINE.PRIORITY = PRIORITY COROUTINE.SUBPROCESS ID = SUBPROCESS ID CURRENT SUBPROCESS = SUBPROCESS ID READY LIST. NEXT = READY LIST. PREVIOUS = ADDRESS (READY LIST) RETURN (OK) Sto┆
0x45d00…45e00 (69, 0, 13) Sector 450e3700148241 ┆E 7 Ap FIGURE 4.2.5.4.4.5-1 (CC): ERROR OK ERROR ? RETIRE (COMMON ERROR) END CASE "CHANGE SUBROUTINES RESTORE REGISTERS ENTER COROUTINE IN LOCATION (SAVER7) Stop FIGURE 4.2.5.4.3.5-1 (a - c) rocedure┆
0x45e00…45f00 (69, 0, 14) Sector 450fff00148241 ┆E A 1 Procedure INIT COROUTINE (COROUTINE: COROUTINE RECORD, COROUTINE ID: COROUTINE ID TYPE PRIORITY: PRIORITY TYPE, SUBPROCESS ID: SUBPROCESS ID TYPE, START┆
0x45f00…46000 (69, 0, 15) Sector 4500ff00148241 ┆E A ADDRESS: INTEGER): OK COROUTINE.COROUTINE ID = COROUTINE ID COROUTINE.PRIORITY = PRIORITY COROUTINE.SUBPROCESS ID = SUBPROCESS ID COROUTINE.SAVER7 = START ADDRESS CHAIN IN (COROUTINE, READY LIST) RETURN (OK) Stop ┆
0x46000…46100 (70, 0, 0) Sector 4601ff00148241 ┆F A3. 4.2.5.4.4.2 Initialization Functions Interfaces The Initialization Functions Module has four independent interfaces. a) Initialize Coroutine Monitor. Cf. 4.1.6.2.5.10. b) Initialize Coroutine. Cf. 4.1.6.2.5.11. c) Initialize Semaphore.┆
0x46100…46200 (70, 0, 1) Sector 4602ff00148241 ┆F A Cf. 4.1.6.2.5.12. d) Initialize Operation. Cf. 4.1.6.2.5.13. 4.2.5.4.4.3 Initialization Function Module Components The four Initialization Functions interfaces are each implemented as a procedure. The four procedures are - INIT COMON cf. 4┆
0x46200…46300 (70, 0, 2) Sector 46039b00148241 ┆F A.2.5.4.4.5.a - INIT COROUTINE cf. 4.2.5.4.4.5.b - INIT SEMAPHORE cf. 4.2.5.4.4.5.c - INIT OPERATION cf. 4.2.5.4.4.5.d Cf. Figure 4.2.5.4.3.3-1 the coroutine record. When the coroutine is eventually readied and selected as running coroutine, i┆
0x46300…46400 (70, 0, 3) Sector 46046600148241 ┆F f A 1 FIGURE 4.2.5.4.4.3-1 r call of WAIT NEXT OPERATION until the ready list is not empty. PERATION): OK STORE REGISTERS TRACE (SIGNAL OPSEM,LONG) INTERN SIGNAL(SEMAPHORE, ┆
0x46400…46500 (70, 0, 4) Sector 4605ff00148241 ┆F A 1 4.2.5.4.4.4 Data Description a) Data References COROUTINE RECORD cf. 4.1.5.5.1 COROUTINE OPERATION cf. 4.1.5.5.2 COROUTINE SEMAPHORE cf. 4.1.5.5.3 RUNNING COROUTINE cf. 4┆
0x46500…46600 (70, 0, 5) Sector 4606ff00148241 ┆F A.1.5.5.4 CURRENT SUBPROCESS cf. 4.2.5.5.5 READY LIST cf. 4.2.5.5.6 b) External Data 1) COROUTINE RECORD (M) 2) COROUTINE OPERATION (M) 3) COROUTINE SEMAPHORE (M) 4) RUNNING COROUTINE (M) 5) CURRENT SUBPROCESS (M) 6) READY LIST (M)┆
0x46600…46700 (70, 0, 6) Sector 4607ff00148241 ┆F A 7) READY LIST (M) c) Local Data None. 4.2.5.4.4.5 Initialization functions Module Design External procedures CHAIN IN cf. 4.2.5.6.1 a) INIT COMON Narrative: RUNNING COROUTINE is set to specified COROUTINE. The specified c┆
0x46700…46800 (70, 0, 7) Sector 4508ad00148241 ┆E - Aoroutine record is initialized with COROUTINE ID, PRIORITY and SUBPROCESS ID CURRENT SUBPROCESS is set to specified SUBPROCESS ID. The READY LIST is initialized. TION:COROUTINE OPERATION): OK INCREMENT SEMAPHORE.COUNT SEMAPHORE.COUNT GT 0 ?┆
0x46800…46900 (70, 0, 8) Sector 4609ff00148241 ┆F A 1 Procedure PAUSE:OK COROUTINE.SAVER7 = R6 Active Loop READY LIST NOT EMPTY? EXIT Case WAIT NEXT OPERATION()(OPERATION:COROUTINE OPERATION): ERROR OK ERROR? - RETIRE(COM┆
0x46900…46a00 (70, 0, 9) Sector 460aff00148241 ┆F AON ERROR) End case WAIT NEXT OPERATION Case OPERATION.ACTION: TO SEMAPHORE? - SIGNAL (cf. a) TO COROUTINE? - Activate (cf. b) SET DONE ? - OPERATION.STATUS = DONE End case OPERATION.ACTION End active loop Enter Coroutine (cf. c) S┆
0x46a00…46b00 (70, 0, 10) Sector 460b3200148241 ┆F 2 Atop FIGURE 4.2.5.4.3.5-1 4.2.5.4.3 Pause Module Specification 4.2.5.4.3.1 Functional Specification The Pause Module contains the waiting point of Coroutine Monitor. It is called from Coroutine Monit┆
0x46b00…46c00 (70, 0, 11) Sector 460cff00148241 ┆F A 1 a) Signal Start INTERN SIGNAL(OPERATION.ACTIVATION, OPERATION) Stop b) Activate Start COROUTINE = OPERATION.ACTIVATION OPERATION.STATUS = DONE CHAIN IN (C┆
0x46c00…46d00 (70, 0, 12) Sector 460dff00148241 ┆F AOROUTINE, READY LIST) Stop c) Enter Coroutine Start COROUTINE = READY LIST.FIRST RUNNING COROUTINE = COROUTINE CHAIN OUT (COROUTINE) CURRENT SUBPROCESS EQ COROUTINE.SUBPROCESS ID? CURRENT SUBPROCESS = COROUTINE.SUBPROCESS ID ┆
0x46d00…46e00 (70, 0, 13) Sector 460ef700148241 ┆F w A CASE CHANGE SUBPROCESS ID (CURRENT SUBPROCESS) (CC): ERROR OK ERROR ? RETIRE (COMMON ERROR) END CASE "CHANGE SUBROUTINES RESTORE REGISTERS ENTER COROUTINE IN LOCATION (SAVER7) Stop FIGURE 4.2.5.4.3.5-1 (a - c) rocedure┆
0x46e00…46f00 (70, 0, 14) Sector 460fff00148241 ┆F A 1 4.2.5.4.4 Initialization Functions Module Specification The Initialization Functions Module contains functions for initialization of the control data structures used by the Corout┆
0x46f00…47000 (70, 0, 15) Sector 4600ff00148241 ┆F Aine Monitor Subpackage. 4.2.5.4.4.1 Functional Specification a) Initialize Coroutine Monitor. Cf. 4.1.6.2.5.10. b) Initialize Coroutine. Cf. 4.1.6.2.5.11. c) Initialize Semaphore. Cf. 4.1.6.2.5.12. d) Initialize Operation. Cf. 4.1.6.2.5.1┆
0x47000…47100 (71, 0, 0) Sector 4701ff00148241 ┆G A 1 4.2.5.4.3.4 Pause Data a) Data References COROUTINE RECORD cf. 4.1.6.5.1 COROUTINE OPERATION cf. 4.1.6.5.2 RUNNING COROUTINE cf. 4.1.6.5.3 CURRENT SUBPROCESS cf. 4.2.5┆
0x47100…47200 (71, 0, 1) Sector 4702ff00148241 ┆G A.5.1 READY LIST cf. 4.2.5.5.2 b) External Data COROUTINE RECORD (M) COROUTINE OPERATION (M) RUNNING COROUTINE (M) CURRENT SUBPROCESS (M) READY LIST (M) c) Local Data None. 4.2.5.4.3.5 Pause Module Design Narrative Internal┆
0x47200…47300 (71, 0, 2) Sector 4703ff00148241 ┆G A procedure called from the "wait" procedures when a coroutine encounters a waiting point. The link register is saved in the Register R7 location of the coroutine record. When the coroutine is eventually readied and selected as running coroutine, i┆
0x47300…47400 (71, 0, 3) Sector 4704a800148241 ┆G ( At will be resumed in this location. If the ready list is empty the following is repeated after call of WAIT NEXT OPERATION until the ready list is not empty. PERATION): OK STORE REGISTERS TRACE (SIGNAL OPSEM,LONG) INTERN SIGNAL(SEMAPHORE, ┆
0x47400…47500 (71, 0, 4) Sector 4705ff00148241 ┆G A 1 WAIT NEXT OPERATION Case activation field of operation of: a) TO SEMAPHORE The STATUS is set to IN SEMAPHORE, and the operation is sent to the semaphore pointed to by ACT┆
0x47500…47600 (71, 0, 5) Sector 4706ff00148241 ┆G AIVATION. b) TO COROUTINE The coroutine pointed to by ACTIVATION is made ready and STATUS is changed to DONE. c) SET DONE STATUS is changed to DONE The first coroutine is chained out from ready list. The Coroutine Monitor variable running┆
0x47600…47700 (71, 0, 6) Sector 4707ff00148241 ┆G A coroutine pointer is updated, and the CSF Utility Procedure "Change Subprocess Id" is called, if the subprocess id of this coroutine is different from that of the previous one. Finally, the coroutine is entered at the program location defined by sa┆
0x47700…47800 (71, 0, 7) Sector 46083f00148241 ┆F ? Aved register R7. Flowgram Cf. figure 4.2.5.4.3.5-1. Procedure INTERN SIGNAL(SEMAPHORE:COROUTINE SEMAPHORE, OPERATION:COROUTINE OPERATION): OK INCREMENT SEMAPHORE.COUNT SEMAPHORE.COUNT GT 0 ?┆
0x47800…47900 (71, 0, 8) Sector 4709ff00148241 ┆G A CHAIN IN (OPERATION, SEMAPHORE) OPERATION.STATUS = IN SEMAPHORE OPERATION.ACTIVATION = SEMAPHORE COROUTINE = SEMAPHORE.NEXT COROUTINE.SAVER5 = OPERATION CHAIN OUT (COROUTINE) CHAIN IN (COROUTINE, READY LIST) RETURN (OK) S┆
0x47900…47a00 (71, 0, 9) Sector 470a3500148241 ┆G 5 Atop FIGURE 4.2.5.4.2.5-6 e pointer value If STATUS is DONE INTERN SIGNAL procedure is called. Flowgram Figure 4.2.5.4.2.5-5 f) INTERN SIGNAL Narrative The semaphore counter is increased by one. If the resulting┆
0x47a00…47b00 (71, 0, 10) Sector 470bff00148241 ┆G A 1 4.2.5.4.3 Pause Module Specification 4.2.5.4.3.1 Functional Specification The Pause Module contains the waiting point of Coroutine Monitor. It is called from Coroutine Monit┆
0x47b00…47c00 (71, 0, 11) Sector 470cff00148241 ┆G Aor procedures with waiting points when they reach their waiting points. The first coroutine in READY LIST is selected for running. If the READY LIST is empty the System Call Monitor procedure Wait Next Operation is called. If the new coroutine┆
0x47c00…47d00 (71, 0, 12) Sector 470dff00148241 ┆G A has a SUBPROCESS ID different from CURRENT SUBPROCESS, the Utility Function CHANGE SUBPROCESS is called. 4.2.5.4.3.2 Pause Module Interface Call Specification a) PAUSE: OK b) PAUSE (R5): OK Register Conventions Call Registers 1 ┆
0x47d00…47e00 (71, 0, 13) Sector 470eff00148241 ┆G A R5 LINK (destr) Return Registers R0-R6 Contain the values of the saved registers from Coroutine record. 4.2.5.4.3.3 Pause Module Components Pause module contains one procedure┆
0x47e00…47f00 (71, 0, 14) Sector 470f4000148241 ┆G @ A. This is the PAUSE procedure. Cf. figure 4.2.5.4.3.3-1. Procedure SIGNAL SEM (SEMAPHORE:COROUTINE SEMAPHORE): OK STORE REGISTERS TRACE (SIGNAL SEM, SHORT) INCREMENT SEMAPHORE.COUNT SEMAPHORE.COUNT GT 0? COROUTINE = SEMAPHORE.N┆
0x47f00…48000 (71, 0, 15) Sector 47009200148241 ┆G A 1 FIGURE 4.2.5.4.3.3-1 5.4.2.5-2 ┆
0x48000…48100 (72, 0, 0) Sector 4801ff00148241 ┆H A 1 Procedure WAIT OPSEM(SEMAPHORE:COROUTINE SEMAPHORE) (OPERATION:COROUTINE OPERATION): OK STORE REGISTERS TRACE (WAIT OPSEM, SHORT) DECREMENT SE┆
0x48100…48200 (72, 0, 1) Sector 4802ff00148241 ┆H AMAPHORE.COUNT SEMAPHORE.COUNT GE 0 ? CHAIN IN (COROUTINE,SEMAPHORE) PAUSE OPERATION = COROUTINE.SAVER5=SEMAPHORE.NEXT CHAIN OUT(SEMAPHORE.NEXT) OPERATION.STATUS = DONE TRACE (EXIT, LONG) RESTORE REGIST┆
0x48200…48300 (72, 0, 2) Sector 48034a00148241 ┆H J AERS RETURN (OK) Stop FIGURE 4.2.5.4.2.5-3 CPS/SDS/024 840503 CAMPS SYSTEM FUNCTIONS DETAILED DESIGN SPECIFICATION ISSUE 1 CAMPS , > I!e=6 !Z="(=e*$<kas#r 9x2"<! <6 M8)I:^=~ B#.!#<6 ! <6 M&&:!<~ J#.:!<2.=M2┆
0x48300…48400 (72, 0, 3) Sector 4804ff00148241 ┆H A 1 Procedure SIGNAL OPSEM(SEMAPHORE:COROUTINE SEMAPHORE, OPERATION:COROUTINE OPERATION): OK STORE REGISTERS TRACE (SIGNAL OPSEM,LONG) INTERN SIGNAL(SEMAPHORE, ┆
0x48400…48500 (72, 0, 4) Sector 48057000148241 ┆H p AOPERATION) RESTORE REGISTERS RETURN (OK) STOP FIGURE 4.2.5.4.2.5-4 Figure 4.2.5.4.2.5-1. b) SIGNAL SEM Narrative The semaphore counter is increased by one. If the resulting value is zero or negative┆
0x48500…48600 (72, 0, 5) Sector 4806ff00148241 ┆H A 1 Procedure ASSOCIATE(SEMAPHORE:COROUTINE SEMAPHORE, OPERATION:COROUTINE OPERATION): OK STORE REGISTERS TRACE (ASSOCIATE OP,SHORT) CASE OPERATION.STATUS P┆
0x48600…48700 (72, 0, 6) Sector 4807e900148241 ┆H i AENDING ? - OPERATION.ACTION = TO SEMAPHORE OPERATION.ACTIVATION = SEMAPHORE DONE ? - INTERN SIGNAL (SEMAPHORE, OPERATION) RESTORE REGISTERS RETURN (OK) STOP FIGURE 4.2.5.4.2.5-5 Flowgram Figure 4.┆
0x48700…48800 (72, 0, 7) Sector 4708ff00148241 ┆G A 1 Procedure INTERN SIGNAL(SEMAPHORE:COROUTINE SEMAPHORE, OPERATION:COROUTINE OPERATION): OK INCREMENT SEMAPHORE.COUNT SEMAPHORE.COUNT GT 0 ?┆
0x48800…48900 (72, 0, 8) Sector 4809ff00148241 ┆H A 1 d) SIGNAL OPSEM Narrative INTERN SIGNAL procedure is called. Flowgram Figure 4.2.5.4.2.5-4 e) ASSOCIATE Narrative If STATUS is PENDING - ACTION is set to TO ┆
0x48900…48a00 (72, 0, 9) Sector 480aff00148241 ┆H ASEMAPHORE - ACTIVATION is set to the semaphore pointer value If STATUS is DONE INTERN SIGNAL procedure is called. Flowgram Figure 4.2.5.4.2.5-5 f) INTERN SIGNAL Narrative The semaphore counter is increased by one. If the resulting┆
0x48a00…48b00 (72, 0, 10) Sector 480bff00148241 ┆H A value is positive, the operation is chained into the semphore list according to its priority. Otherwise, the first coroutine is chained out from the semaphore list and made ready, and the operation address is placed in a saved register of the readi┆
0x48b00…48c00 (72, 0, 11) Sector 480c3a00148241 ┆H : Aed coroutines. Flowgram Figure 4.2.5.4.2.5-6 5.2 b) External Data 1) COROUTINE RECORD. (m) 2) COROUTINE OPERATION. (m) 3) COROUTINE SEMAPHORE (m) c) Local Data None E? SEMAPHORE = OPERATION.ACTIVATION DECREMENT SEMAPHO┆
0x48c00…48d00 (72, 0, 12) Sector 480dff00148241 ┆H A 1 Procedure WAIT SEM(SEMAPHORE:COROUTINE SEMAPHORE): OK STORE REGISTERS TRACE (WAIT SEM, SHORT) DECREMENT SEMAPHORE.COUNT SEMAPHORE.COUNT GE 0? CHAIN IN (COROUTINE, SEMAPHO┆
0x48d00…48e00 (72, 0, 13) Sector 480e7f00148241 ┆H ARE) PAUSE TRACE (EXIT, SHORT) RESTORE REGISTERS RETURN (OK) Stop FIGURE 4.2.5.4.2.5-1 RETURN (EXIT NUMBER) STOP and ACTIVATION is set to RUNNING COROUTINE. The running coroutine is then paused. When resume┆
0x48e00…48f00 (72, 0, 14) Sector 480fff00148241 ┆H A 1 Procedure SIGNAL SEM (SEMAPHORE:COROUTINE SEMAPHORE): OK STORE REGISTERS TRACE (SIGNAL SEM, SHORT) INCREMENT SEMAPHORE.COUNT SEMAPHORE.COUNT GT 0? COROUTINE = SEMAPHORE.N┆
0x48f00…49000 (72, 0, 15) Sector 48009d00148241 ┆H AEXT CHAIN OUT (COROUTINE) CHAIN IN (COROUTINE, READY LIST) RESTORE REGISTERS RETURN (OK) Stop FIGURE 4.2.5.4.2.5-2 ┆
0x49000…49100 (73, 0, 0) Sector 4901ff41148241 ┆I A A1482A CPS/SDS/024 dhh JSC 4.2.5.4.2.5 01 12 81 12 50 4 25 18168 02 01 85 13 38 11 422 02 01 85 13 55 04 01 85 14 03 0120A 77 12 08 572 28211 P U ' *J 7 ] _┆
0x49100…49200 (73, 0, 1) Sector 49024d00148241 ┆I M A I I H H H H H H H G G G G F F F F F E E E E E E D D D D D D C C C C C B B B B B B A A A A A A @ @ @ @ @ ? ? ? ? > > > > > > = = = = ┆
0x49200…49300 (73, 0, 2) Sector 4903b100148241 ┆I 1 A 1 CPS/SDS/024 840503 CAMPS SYSTEM FUNCTIONS DETAILED DESIGN SPECIFICATION ISSUE 1 CAMPS , > I!e=6 !Z="(=e*$<kas#r 9x2"<! <6 M8)I:^=~ B#.!#<6 ! <6 M&&:!<~ J#.:!<2.=M2┆
0x49300…49400 (73, 0, 3) Sector 4904ff00148241 ┆I A 1 4.2.5.4.2.5 Semaphore Functions Module Design a) WAIT SEM Narrative The semaphore counter is decreased by one. If the resulting value is smaller than zero, the running corou┆
0x49400…49500 (73, 0, 4) Sector 4905ff00148241 ┆I Atine is linked to the semaphore list and paused. Otherwise, the procedure returns immediately. Flowgram Figure 4.2.5.4.2.5-1. b) SIGNAL SEM Narrative The semaphore counter is increased by one. If the resulting value is zero or negative┆
0x49500…49600 (73, 0, 5) Sector 4906ff00148241 ┆I A, the first waiting coroutine is chained out from the semaphore list and made ready. Flowgram Figure 4.2.5.4.2.5-2 c) WAIT OPSEM Narrative The semaphore counter is decreased by one. If the resulting value is smaller than zero, the runn┆
0x49600…49700 (73, 0, 6) Sector 4907ff00148241 ┆I Aing coroutine is linked to the semaphore list and paused. Otherwise, the first operation is chained out from the semaphore list and the operation address is returned in a register. Finally STATUS of OPERATION is set to DONE. Flowgram Figure 4.┆
0x49700…49800 (73, 0, 7) Sector 48081300148241 ┆H A2.5.4.2.5-3 MM(! "(=~~ J*2M2/C<2:^=~ B<2:b= R<2M/,:g=~ BG2M")M2&! "(=~~ BW2I! <6 M /M?.I*:="8=IM2&MP'Mc2! m"2< [MI !?=6 : #wI>K!8=>R 2!8=6 #4 E*8=k L<M% :8=F 28=I!#<:"<>R<2> I E*#<& "< DM L<M% :#<F 2#<> I:g= Ro2M/2 Rl2> IC13!?=4~~ B|2> I:A=!┆
0x49800…49900 (73, 0, 8) Sector 4909ff00148241 ┆I A 1 d) SIGNAL OPSEM Narrative INTERN SIGNAL procedure is called. Flowgram Figure 4.2.5.4.2.5-4 e) ASSOCIATE Narrative If STATUS is PENDING - ACTION is set to TO ┆
0x49900…49a00 (73, 0, 9) Sector 490aff00148241 ┆I ASEMAPHORE - ACTIVATION is set to the semaphore pointer value If STATUS is DONE INTERN SIGNAL procedure is called. Flowgram Figure 4.2.5.4.2.5-5 f) INTERN SIGNAL Narrative The semaphore counter is increased by one. If the resulting┆
0x49a00…49b00 (73, 0, 10) Sector 490bff00148241 ┆I A value is positive, the operation is chained into the semphore list according to its priority. Otherwise, the first coroutine is chained out from the semaphore list and made ready, and the operation address is placed in a saved register of the readi┆
0x49b00…49c00 (73, 0, 11) Sector 490c3a00148241 ┆I : Aed coroutines. Flowgram Figure 4.2.5.4.2.5-6 4.2.5.4.2 Semaphore Functions Module Specification Semaphore Functions Module supplies communication and synchronization tools by using the semaphore concept. 4.2.5.4.2.1 Funct┆
0x49c00…49d00 (73, 0, 12) Sector 490dff00148241 ┆I A 1 Procedure WAIT SEM(SEMAPHORE:COROUTINE SEMAPHORE): OK STORE REGISTERS TRACE (WAIT SEM, SHORT) DECREMENT SEMAPHORE.COUNT SEMAPHORE.COUNT GE 0? CHAIN IN (COROUTINE, SEMAPHO┆
0x49d00…49e00 (73, 0, 13) Sector 490e7f00148241 ┆I ARE) PAUSE TRACE (EXIT, SHORT) RESTORE REGISTERS RETURN (OK) Stop FIGURE 4.2.5.4.2.5-1 list according to its priority. Otherwise, the first coroutine is chained out from the semaphore list and made ready, and the ┆
0x49e00…49f00 (73, 0, 14) Sector 490fff00148241 ┆I A 1 Procedure SIGNAL SEM (SEMAPHORE:COROUTINE SEMAPHORE): OK STORE REGISTERS TRACE (SIGNAL SEM, SHORT) INCREMENT SEMAPHORE.COUNT SEMAPHORE.COUNT GT 0? COROUTINE = SEMAPHORE.N┆
0x49f00…4a000 (73, 0, 15) Sector 49009d00148241 ┆I AEXT CHAIN OUT (COROUTINE) CHAIN IN (COROUTINE, READY LIST) RESTORE REGISTERS RETURN (OK) Stop FIGURE 4.2.5.4.2.5-2 ┆
0x4a000…4a100 (74, 0, 0) Sector 4a01ff41148241 ┆J A A1482A CPS/SDS/024 vhn/pn OKH 4.2.5.4.2.5 01 12 81 12 50 4 25 18168 05 02 82 14 41 2 57 3316 07 05 84 09 21 07 05 84 15 24 0120A 77 11 36 596 27481 0 ' *J 7 \ _┆
0x4a100…4a200 (74, 0, 1) Sector 4a024d00148241 ┆J M A J J I I I I I I I H H H H G G G G G F F F F F F E E E E E E D D D D D C C C C C C B B B B B B A A A A A @ @ @ @ ? ? ? ? ? ? ? > > > > > > ┆
0x4a200…4a300 (74, 0, 2) Sector 4a03b100148241 ┆J 1 A 1 CPS/SDS/024 840503 CAMPS SYSTEM FUNCTIONS DETAILED DESIGN SPECIFICATION ISSUE 1 CAMPS , > I!e=6 !Z="(=e*$<kas#r 9x2"<! <6 M8)I:^=~ B#.!#<6 ! <6 M&&:!<~ J#.:!<2.=M2┆
0x4a300…4a400 (74, 0, 3) Sector 4a04ff00148241 ┆J A 1 4.2.5.4.2.5 Semaphore Functions Module Design a) WAIT SEM Narrative The semaphore counter is decreased by one. If the resulting value is smaller than zero, the running corou┆
0x4a400…4a500 (74, 0, 4) Sector 4a05ff00148241 ┆J Atine is linked to the semaphore list and paused. Otherwise, the procedure returns immediately. Flowgram Figure 4.2.5.4.2.5-1. b) SIGNAL SEM Narrative The semaphore counter is increased by one. If the resulting value is zero or negative┆
0x4a500…4a600 (74, 0, 5) Sector 4a06ff00148241 ┆J A, the first waiting coroutine is chained out from the semaphore list and made ready. Flowgram Figure 4.2.5.4.2.5-2 c) WAIT OPSEM Narrative The semaphore counter is decreased by one. If the resulting value is smaller than zero, the runn┆
0x4a600…4a700 (74, 0, 6) Sector 4a07ff00148241 ┆J Aing coroutine is linked to the semaphore list and paused. Otherwise, the first operation is chained out from the semaphore list and the operation address is returned in a register. Finally STATUS of OPERATION is set to DONE. Flowgram Figure 4.┆
0x4a700…4a800 (74, 0, 7) Sector 49081300148241 ┆I A2.5.4.2.5-3 MM(! "(=~~ J*2M2/C<2:^=~ B<2:b= R<2M/,:g=~ BG2M")M2&! "(=~~ BW2I! <6 M /M?.I*:="8=IM2&MP'Mc2! m"2< [MI !?=6 : #wI>K!8=>R 2!8=6 #4 E*8=k L<M% :8=F 28=I!#<:"<>R<2> I E*#<& "< DM L<M% :#<F 2#<> I:g= Ro2M/2 Rl2> IC13!?=4~~ B|2> I:A=!┆
0x4a800…4a900 (74, 0, 8) Sector 4a09ff00148241 ┆J A CHAIN IN (OPERATION, SEMAPHORE) OPERATION.STATUS = IN SEMAPHORE OPERATION.ACTIVATION = SEMAPHORE COROUTINE = SEMAPHORE.NEXT COROUTINE.SAVER5 = OPERATION CHAIN OUT (COROUTINE) CHAIN IN (COROUTINE, READY LIST) RETURN (OK) S┆
0x4a900…4aa00 (74, 0, 9) Sector 4a0a3500148241 ┆J 5 Atop FIGURE 4.2.5.4.2.5-6 e pointer value If STATUS is DONE INTERN SIGNAL procedure is called. Flowgram Figure 4.2.5.4.2.5-5 f) INTERN SIGNAL Narrative The semaphore counter is increased by one. If the resulting┆
0x4aa00…4ab00 (74, 0, 10) Sector 4a0bff00148241 ┆J A 1 4.2.5.4.3 Pause Module Specification 4.2.5.4.3.1 Functional Specification The Pause Module contains the waiting point of Coroutine Monitor. It is called from Coroutine Monit┆
0x4ab00…4ac00 (74, 0, 11) Sector 4a0cff00148241 ┆J Aor procedures with waiting points when they reach their waiting points. The first coroutine in READY LIST is selected for running. If the READY LIST is empty the System Call Monitor procedure Wait Next Operation is called. If the new coroutine┆
0x4ac00…4ad00 (74, 0, 12) Sector 4a0dff00148241 ┆J A has a SUBPROCESS ID different from CURRENT SUBPROCESS, the Utility Function CHANGE SUBPROCESS is called. 4.2.5.4.3.2 Pause Module Interface Call Specification a) PAUSE: OK b) PAUSE (R5): OK Register Conventions Call Registers 1 ┆
0x4ad00…4ae00 (74, 0, 13) Sector 4a0eff00148241 ┆J A R5 LINK (destr) Return Registers R0-R6 Contain the values of the saved registers from Coroutine record. 4.2.5.4.3.3 Pause Module Components Pause module contains one procedure┆
0x4ae00…4af00 (74, 0, 14) Sector 4a0f4000148241 ┆J @ A. This is the PAUSE procedure. Cf. figure 4.2.5.4.3.3-1. Procedure SIGNAL SEM (SEMAPHORE:COROUTINE SEMAPHORE): OK STORE REGISTERS TRACE (SIGNAL SEM, SHORT) INCREMENT SEMAPHORE.COUNT SEMAPHORE.COUNT GT 0? COROUTINE = SEMAPHORE.N┆
0x4af00…4b000 (74, 0, 15) Sector 4a009200148241 ┆J A 1 FIGURE 4.2.5.4.3.3-1 5.4.2.5-2 ┆
0x4b000…4b100 (75, 0, 0) Sector 4b01ff00148241 ┆K A 1 Procedure WAIT OPSEM(SEMAPHORE:COROUTINE SEMAPHORE) (OPERATION:COROUTINE OPERATION): OK STORE REGISTERS TRACE (WAIT OPSEM, SHORT) DECREMENT SE┆
0x4b100…4b200 (75, 0, 1) Sector 4b02ff00148241 ┆K AMAPHORE.COUNT SEMAPHORE.COUNT GE 0 ? CHAIN IN (COROUTINE,SEMAPHORE) PAUSE OPERATION = COROUTINE.SAVER5=SEMAPHORE.NEXT CHAIN OUT(SEMAPHORE.NEXT) OPERATION.STATUS = DONE TRACE (EXIT, LONG) RESTORE REGIST┆
0x4b200…4b300 (75, 0, 2) Sector 4b034a00148241 ┆K J AERS RETURN (OK) Stop FIGURE 4.2.5.4.2.5-3 CPS/SDS/024 OKH/820201 CAMPS SYSTEM FUNCTIONS DETAILED DESIGN SPECIFICATION CAMPS =MM, > I!e=6 !Z="(=e*$<kas#r 9x2"<! <6 M8)I:^=~ B#.!#<6 ! <6 M&&:!<~ J#.:!<2.=M2┆
0x4b300…4b400 (75, 0, 3) Sector 4b04ff00148241 ┆K A 1 Procedure SIGNAL OPSEM(SEMAPHORE:COROUTINE SEMAPHORE, OPERATION:COROUTINE OPERATION): OK STORE REGISTERS TRACE (SIGNAL OPSEM,LONG) INTERN SIGNAL(SEMAPHORE, ┆
0x4b400…4b500 (75, 0, 4) Sector 4b057000148241 ┆K p AOPERATION) RESTORE REGISTERS RETURN (OK) STOP FIGURE 4.2.5.4.2.5-4 Figure 4.2.5.4.2.5-1. b) SIGNAL SEM Narrative The semaphore counter is increased by one. If the resulting value is zero or negative┆
0x4b500…4b600 (75, 0, 5) Sector 4b06ff00148241 ┆K A 1 Procedure ASSOCIATE(SEMAPHORE:COROUTINE SEMAPHORE, OPERATION:COROUTINE OPERATION): OK STORE REGISTERS TRACE (ASSOCIATE OP,SHORT) CASE OPERATION.STATUS P┆
0x4b600…4b700 (75, 0, 6) Sector 4b07e900148241 ┆K i AENDING ? - OPERATION.ACTION = TO SEMAPHORE OPERATION.ACTIVATION = SEMAPHORE DONE ? - INTERN SIGNAL (SEMAPHORE, OPERATION) RESTORE REGISTERS RETURN (OK) STOP FIGURE 4.2.5.4.2.5-5 Flowgram Figure 4.┆
0x4b700…4b800 (75, 0, 7) Sector 4a08ff00148241 ┆J A 1 Procedure INTERN SIGNAL(SEMAPHORE:COROUTINE SEMAPHORE, OPERATION:COROUTINE OPERATION): OK INCREMENT SEMAPHORE.COUNT SEMAPHORE.COUNT GT 0 ?┆
0x4b800…4b900 (75, 0, 8) Sector 4b09ff00148241 ┆K A 1 d) SIGNAL OPSEM Narrative INTERN SIGNAL procedure is called. Flowgram Figure 4.2.5.4.2.5-4 e) ASSOCIATE Narrative If STATUS is PENDING - ACTION is set to TO ┆
0x4b900…4ba00 (75, 0, 9) Sector 4b0aff00148241 ┆K ASEMAPHORE - ACTIVATION is set to the semaphore pointer value If STATUS is DONE INTERN SIGNAL procedure is called. Flowgram Figure 4.2.5.4.2.5-5 f) INTERN SIGNAL Narrative The semaphore counter is increased by one. If the resulting┆
0x4ba00…4bb00 (75, 0, 10) Sector 4b0bff00148241 ┆K A value is positive, the operation is chained into the semphore list according to its priority. Otherwise, the first coroutine is chained out from the semaphore list and made ready, and the operation address is placed in a saved register of the readi┆
0x4bb00…4bc00 (75, 0, 11) Sector 4b0c3a00148241 ┆K : Aed coroutines. Flowgram Figure 4.2.5.4.2.5-6 nents The six Semaphore Functions are each implemented as a procedure: 1 - WAIT SEM cf. 4.2.5.4.2.5 a - SIGNAL SEM cf. 4.2.5.4┆
0x4bc00…4bd00 (75, 0, 12) Sector 4b0dff00148241 ┆K A 1 Procedure WAIT SEM(SEMAPHORE:COROUTINE SEMAPHORE): OK STORE REGISTERS TRACE (WAIT SEM, SHORT) DECREMENT SEMAPHORE.COUNT SEMAPHORE.COUNT GE 0? CHAIN IN (COROUTINE, SEMAPHO┆
0x4bd00…4be00 (75, 0, 13) Sector 4b0e7f00148241 ┆K ARE) PAUSE TRACE (EXIT, SHORT) RESTORE REGISTERS RETURN (OK) Stop FIGURE 4.2.5.4.2.5-1 OK: EXIT NUMBER = OK End Case WAIT SYSTEM CALL End Case INIT SYSCALL Stop Fig. 4.2.5.4.1.5-1b zed as fol┆
0x4be00…4bf00 (75, 0, 14) Sector 4b0fff00148241 ┆K A 1 Procedure SIGNAL SEM (SEMAPHORE:COROUTINE SEMAPHORE): OK STORE REGISTERS TRACE (SIGNAL SEM, SHORT) INCREMENT SEMAPHORE.COUNT SEMAPHORE.COUNT GT 0? COROUTINE = SEMAPHORE.N┆
0x4bf00…4c000 (75, 0, 15) Sector 4b009d00148241 ┆K AEXT CHAIN OUT (COROUTINE) CHAIN IN (COROUTINE, READY LIST) RESTORE REGISTERS RETURN (OK) Stop FIGURE 4.2.5.4.2.5-2 ┆
0x4c000…4c100 (76, 0, 0) WangDocumentHead {hdr=WangSectHead {next=(76,0, 1), len=0xff, h3=41148241}, f00=»1482A «, f01=»CPS/SDS/024 «, f02=»vhn/pn «, f03=»OKH «, f04=»4.2.5.4.2.5 «, f05=01-12-81 12:50, f06=» 4 «, f07=»25 «, f08=» 18168 «, f09=05-02-82 14:41, f10=» «, f11=»02 «, f12=» 14 «, f13=05-02-82 10:55, f14=05-02-82 15:28, f15=»0120A «, f16=» 77 «, f17=» 8 «, f18=»41 «, f19=» 616 «, f20=» 24179 «, f21=» «, f22=» «, f99=720010000110066610110480aaca1505000000000000003703e000df}
0x4c100…4c200 (76, 0, 1) Sector 4c024d00148241 ┆L M A L L K K K K K K K J J J J I I I I I H H H H H H G G G G G G F F F F F E E E E E E D D D D D C C C C B B B B B A A A A A A @ @ @ @ @ @ ? ? ? ? ? ? ? ┆
0x4c200…4c300 (76, 0, 2) Sector 4c03ae00148241 ┆L . A 1 CPS/SDS/024 OKH/820201 CAMPS SYSTEM FUNCTIONS DETAILED DESIGN SPECIFICATION CAMPS =MM, > I!e=6 !Z="(=e*$<kas#r 9x2"<! <6 M8)I:^=~ B#.!#<6 ! <6 M&&:!<~ J#.:!<2.=M2┆
0x4c300…4c400 (76, 0, 3) Sector 4c04ff00148241 ┆L A 1 4.2.5.4.2.5 Semaphore Functions Module Design a) WAIT SEM Narrative The semaphore counter is decreased by one. If the resulting value is smaller than zero, the running corou┆
0x4c400…4c500 (76, 0, 4) Sector 4c05ff00148241 ┆L Atine is linked to the semaphore list and paused. Otherwise, the procedure returns immediately. Flowgram Figure 4.2.5.4.2.5-1. b) SIGNAL SEM Narrative The semaphore counter is increased by one. If the resulting value is zero or negative┆
0x4c500…4c600 (76, 0, 5) Sector 4c06ff00148241 ┆L A, the first waiting coroutine is chained out from the semaphore list and made ready. Flowgram Figure 4.2.5.4.2.5-2 c) WAIT OPSEM Narrative The semaphore counter is decreased by one. If the resulting value is smaller than zero, the runn┆
0x4c600…4c700 (76, 0, 6) Sector 4c07ff00148241 ┆L Aing coroutine is linked to the semaphore list and paused. Otherwise, the first operation is chained out from the semaphore list and the operation address is returned in a register. Finally STATUS of OPERATION is set to DONE. Flowgram Figure 4.┆
0x4c700…4c800 (76, 0, 7) Sector 4b081300148241 ┆K A2.5.4.2.5-3 MM(! "(=~~ J*2M2/C<2:^=~ B<2:b= R<2M/,:g=~ BG2M")M2&! "(=~~ BW2I! <6 M /M?.I*:="8=IM2&MP'Mc2! m"2< [MI !?=6 : #wI>K!8=>R 2!8=6 #4 E*8=k L<M% :8=F 28=I!#<:"<>R<2> I E*#<& "< DM L<M% :#<F 2#<> I:g= Ro2M/2 Rl2> IC13!?=4~~ B|2> I:A=!┆
0x4c800…4c900 (76, 0, 8) WangDocumentHead {hdr=WangSectHead {next=(76,0, 9), len=0xff, h3=41147941}, f00=»1479A «, f01=»CPS SE TEAM MEETING 3 «, f02=»pn «, f03=» «, f04=»ikke slettes!!!!!! «, f05=30-11-81 10:38, f06=» «, f07=»35 «, f08=» 3460 «, f09=07-01-82 15:16, f10=» «, f11=»01 «, f12=» 4 «, f13=23-12-81 13:01, f14=09-02-82 12:24, f15=»0120A «, f16=» 3 «, f17=» 3 «, f18=»47 «, f19=» 48 «, f20=» 13437 «, f21=» «, f22=» «, f99=020010000110066610110480aaca15050000000000000037030e00df}
0x4c900…4ca00 (76, 0, 9) Sector 4c0a0300147941 ┆L yA L L DOKUMENTOVERSIGT Dokument nr: Dokumentnavn: Operat]r: Forfatter: Kommentarer: STATISTIK AKTIVITET DATO TID ANV.TID ANSLAG Oprettet / / : ┆
0x4ca00…4cb00 (76, 0, 10) Sector 4c0bff00147941 ┆L yA 1 811211 # CAMPS SYSTEM ENGINEERING CAMPS TEAM MEETING NO. 3 NO. ACTIONEE DUE DATE ┆
0x4cb00…4cc00 (76, 0, 11) Sector 4c0c0b00147941 ┆L yA .! <6 M1' R .M )> I> I:]=~ BC.MP- R5.> IM)-:^=~ BC.C~.M_* RM.> I:^=~ B[.Mr)Cp.:]=~ Bp.MP- Rm.> IM)-MI,:^=~ B~.> IMB'IM2& 9x2"<!Z="(=^#Vk"$<:]=2#<:^=~ J6.! <6 M8) R6.> I! <6 M8)I!h=6 ! =6 M")IM"):g=~ J /:h=2>=M?.Mj': < Zn.C / E*:=k 0wM% !;=4C┆
0x4cc00…4cd00 (76, 0, 12) Sector 4c0dff00147941 ┆L yA 1 Participants: FE, LN, FAH, UHR, TDJ, KR Copies: KNB, KNN, FH, BBC, OKH, HKI, SRA, JHO, GJ, BHB, BASELINE Received comments from SHAPE on CPS/230/ICD/0002; answer tel┆
0x4cd00…4ce00 (76, 0, 13) Sector 4c0eff00147941 ┆L yAex 1 HMH Closed Answer SHAPE telex on ECP/016 2 TDJ 11.12 Submit ECP/016 issue 2. 3 TDJ 19.12 Submit ECP/019 3 TDJ 19.12 Await SHAPES approval of ECO/004 based on ECP/015 Prepare ECP on 128 K memory 21 FE New I/C and O/G tables out┆
0x4ce00…4cf00 (76, 0, 14) Sector 4c0fff00147941 ┆L yAlined 23 FE Closed Change of supervisor print function 24 TDJ 11.12 SYSTEM ANALYSIS Performance Report (in for typing) VCD analysis 7 KR EMC-reports submitted. CPS/REP/002 and CPS/QAP/002; await SHAPE's approval Two missing pages in CP┆
0x4cf00…4d000 (76, 0, 15) Sector 0300d200147941 ┆ R yAS/QAP/002 forwarded to SHAPE Await response on PU performance measurements (action GB, JH[) Traffic scenario proposal 19 FAH 4.12 Procedural proposal to avoid overloading by hardcopy printing F 2#<> I:g= Ro2M/2 Rl2> IC13!?=4~~ B|2> I:A=!┆