*Origin: System simulation, Figure 12-9/10-7 *Author: G. Gordon *Description: Simulation of a telephone system SIMULATE * * GPSS/H Block Section * * * SIMULATION OF A TELEPHONE SYSTEM - MODEL 2 (president line) * POISS FUNCTION RN1,C24 Function for i/a interval (Poisson) 0.0,0.0/0.1,0.104/0.2,0.222/0.3,0.355/0.4,0.509/0.5,0.69/ 0.6,0.915/0.7,1.2/0.75,1.38/0.8,1.6/0.84,1.83/0.88,7.12/ 0.9,2.3/0.92,2.52/0.94,2.81/0.95,2.99/0.96,3.2/0.97,3.5/ 0.98,3.9/0.99,4.6/0.995,5.3/0.998,6.2/0.999,7/0.9997,8 * The phone process GENERATE 12,FN$POISS,,,,2PH Create calls TEST G V$FREELN,2,ABND Test if system is full ASN1 ASSIGN ORIG,V$LINE,PH Pick origin line GATE LR PH$ORIG,ASN1 Test for busy ASN2 ASSIGN DEST,V$LINE,PH Pick destination line TEST NE PH$ORIG,PH$DEST,ASN2 Retry if destination = origin LOGIC S PH$ORIG Make origin busy TRANSFER BOTH,,BLKD Try for link GETL ENTER LNKS Get link GATE LR PH$DEST,BUSY Test for busy LOGIC S PH$DEST Make destination busy ADVANCE 120,FN$POISS Talk LOGIC R PH$ORIG Origin hangs up LOGIC R PH$DEST Dest. hangs up LEAVE LNKS Free link CKCH TEST G CH$WAIT,0,TERM Test if calls are waiting GATE LR 1,GETF See if line 1 is free UNLINK WAIT,GETL,1,DEST$PH,1,GETF Connect call to 1 TERM TERMINATE 1 GETF UNLINK WAIT,GETL,1 Connect first waiting call TRANSFER ,TERM ABND TERMINATE Abandon call BLKD LINK WAIT,ORIG$PH Link in order of call origin BUSY LOGIC R PH$ORIG Caller hangs up LEAVE LNKS Free link TRANSFER ,CKCH Go to test for waiting calls LNKS STORAGE 10 No. of links LINE VARIABLE XH$NOLINES*RN1/1000+1 Pick a line FREELN VARIABLE XH$NOLINES-2*S$LNKS-CH$WAIT Count no. of free lines * The clock process GENERATE 60 1 clock tick every minute TERMINATE 1 * * GPSS/H Control Statements * INITIAL XH$NOLINES,50 Set no. of lines START 10,NP Initialise (10 minutes) RESET Wipe out statistics START 600 Main run (10 hours) END