*Origin: System simulation, Figure 12-7/10-5 *Author: G. Gordon *Description: Simulation of a telephone system SIMULATE * * GPSS/H Block Section * * * SIMULATION OF A TELEPHONE SYSTEM - MODEL 1 * 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 1,V$LINE,PH Pick origin line GATE LR PH1,ASN1 Test for busy ASN2 ASSIGN 2,V$LINE,PH Pick destination line TEST NE PH1,PH2,ASN2 Retry if destination = origin LOGIC S PH1 Make origin busy TRANSFER BOTH,,BLKD Try for link GETL ENTER LNKS Get link GATE LR PH2,BUSY Test for busy LOGIC S PH2 Make destination busy ADVANCE 120,FN$POISS Talk LOGIC R PH1 Origin hangs up LOGIC R PH2 Dest. hangs up LEAVE LNKS Free link TERM TERMINATE ABND TERMINATE Abandon call BLKD LOGIC R PH1 Origin hangs up TERMINATE Blocked calls BUSY LEAVE LNKS Free link LOGIC R PH1 Origin hangs up TERMINATE Busy calls LNKS STORAGE 10 No. of links LINE VARIABLE XH$NOLINES*RN1/1000+1 Pick a line FREELN VARIABLE XH$NOLINES-2*S$LNKS 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