Skip to main content

Succession of events; GPSS telephone model

Short answer

Succession of events: call arrival, line seizure, conversation, release. GPSS model: STORAGE 5; GENERATE 10,5; GATE SNF checks if storage not full, lost calls counted; ENTER, ADVANCE 40,10, LEAVE. Blocking probability = lost/total calls.

Define the succession of events. Design a telephone system simulation model using GPSS symbols and explain in brief.

Succession of events

A succession of events is the chain of events in time order in which one event leads to the next. In a simulation, an event happens at a time, changes the system state, and may schedule future events. For a telephone call the chain is: call arrives -> line seized (or call lost) -> conversation -> call ends -> line freed -> next waiting call starts. The simulation clock jumps from one event to the next in this sequence.

Telephone system model

Assumptions: a small exchange has 5 trunk lines. Calls arrive every 10 s on average (uniformly between 5 and 15 s, as given by GENERATE 10,5); a call lasts 40 s on average (uniform 30 to 50 s). If all lines are busy, the call is lost (blocked). We want the fraction of lost calls and the line utilisation.

GPSS blocks:

LINES STORAGE 5
      GENERATE  10,5        ; calls arrive
      GATE SNF  LINES,LOST  ; if lines full, go to LOST
      ENTER     LINES       ; occupy a line
      ADVANCE   40,10       ; conversation
      LEAVE     LINES       ; free the line
      SAVEVALUE DONE+,1
      TERMINATE 1
LOST  SAVEVALUE BLOCKED+,1  ; lost call counter
      TERMINATE 1
      START 1000

If a single exchange facility is used, SEIZE/RELEASE take the place of ENTER/LEAVE. TRANSFER BOTH can also be used to try a second route.

Block diagram

GENERATE -> GATE SNF -+-> ENTER -> ADVANCE -> LEAVE
 (calls)   (line free?) |   (take    (talk)   (free)
                        |    line)              |
                        |                   TERMINATE
                        +--no--> SAVEVALUE (lost)
                                    |
                                TERMINATE

Explanation

Each call is a transaction that follows the succession of events above: arrival, seizing a line, talking, release. A call that finds all lines busy takes the other route and is counted as lost.

  • GENERATE 10,5 creates call transactions, one every 10 ± 5 s.
  • GATE SNF tests whether the storage is not full. If it is full, the call goes to the LOST branch.
  • ENTER and LEAVE take and free one line; the storage can have up to 5 users.
  • ADVANCE represents the conversation time.
  • TERMINATE 1 ends the call; START 1000 stops the run after 1000 transactions.
  • Output: storage utilisation, maximum content, average content, and the count of lost calls. Blocking probability = BLOCKED / total calls.

Quick check of the numbers

Offered traffic = mean talk time / mean inter-arrival time = 40/10 = 4 Erlangs on 5 lines. For Poisson (exponential) arrivals, Erlang-B gives a blocking probability of about 0.2 (20%) for A = 4, N = 5, and a line utilisation of about 4 x (1 - 0.2)/5 = 0.64. The uniform arrivals of GENERATE 10,5 are more regular than Poisson arrivals, so the simulated blocking will be somewhat lower than 20%. To compare directly with Erlang-B (verification), replace the GENERATE block with exponential inter-arrival times of mean 10 s (for example GENERATE RVEXPO(1,10) in GPSS/H). If the simulated figures are then far from these values, the model should be re-examined. More lines can be added to see how the blocking falls, which is the design question for the exchange.

Assumptions

Calls are independent, lost calls do not retry, there is no ringing time, and all lines are identical. The talk time is taken as uniform 30 to 50 s for simplicity; an exponential time could be used instead.

✓ Answer checked by Claude Opus 5.5 (high effort)

All Simulation and Modeling chapter 9 questions →