Page 274 - DCAP601_SIMULATION_AND_MODELING
P. 274

Simulation and Modelling



                      Notes         Users of simulation languages have traditionally had to choose between one of two types of
                                    language. On the one hand, they could choose a block type language such as GPSS. Languages of
                                    this type have the advantage that the learning and programming of the language is both quick
                                    and relatively easy. Also, since the number of  de-bugging runs is usually small, turn around
                                    time is likely to be quite rapid. However, the block structuring of the language may also create
                                    some difficulties. The fixed nature of the blocks, both as to the types of blocks available in the
                                    language and the manner in which the blocks simulate a  particular activity, may render the
                                    language unsuitable for the simulation of certain types of systems. In addition, the need to pre-
                                    allocate much of the available memory space of the computer may make the use of a block
                                    structured language impossible on  a small  computer. The alternative to  a block  structured
                                    language is an algebraic language, such as SIMSCRIPT or FORTRAN. It would be desirable to
                                    have a language which combines the advantages of both types of language without some of the
                                    disadvantages. QUIKSIM represents an attempt to produce.

                                    14.1.1 GPSS (General Purpose Simulation Languages)


                                    General Purpose Simulation System (GPSS) (originally Gordon’s Programmable Simulation
                                    System after creator Geoffrey Gordon. The name was changed when it was decided to release it
                                    as a  product) is a discrete time simulation language, where a simulation clock advances in
                                    discrete steps. A system is modelled as transactions enter the system and are passed from one
                                    service (represented by blocs) to another. This is particularly well suited for problems such as a
                                    factory. It was popular in the late 1960s and early 1970s but is little used today. GPSS is less
                                    flexible than simulation languages such as Simula and SIMSCRIPT II.5.
                                    This topic explains designing general purpose, parallel simulation languages. We discuss how
                                    parallel simulation languages differ from general purpose programming languages. Our thesis
                                    is that the issues of distribution, performance, unusual implementation mechanism, and the
                                    desire for determinism  are the dominant considerations in designing a simulation language
                                    today. We then discuss the separate roles that special and general purpose simulation languages
                                    play. Next we use the two languages, Sim++ and CPS, to illustrate these issues. Then we discuss
                                    eight design considerations: process versus event oriented-view, basic program structure, I/O,
                                    making implementation cost explicit to the programmer, providing dynamic facilities, memory
                                    management,  the semantics  of false  messages in  time  warp,  and program  development
                                    methodology considerations.  A number of  conclusions  are drawn  from  our experiences  in
                                    language design.
                                    Modern simulation languages such as SIMSCRIPT II and SIMULA 67 are very powerful general
                                    purpose languages which contain facilities to handle lists and to schedule events in simulated
                                    system time (imperative sequencing statements). These languages do not include some of the
                                    useful  but more  specialized features  of  previous  languages  (GPSS,  CSL, SOL)  especially
                                    interrogative sequencing statements such  as “SEIZE  (facility)” or  “WAIT UNTIL  (Boolean
                                    expression)”; however, the definition capability of the new languages is powerful enough to
                                    permit their extension to include the interrogative features. The addition of some features of
                                    GPSS to SIMULA 67 was presented at a previous SIMULATION CONFERENCE. The present
                                    paper extends that work by describing an efficient algorithm which adds the “WAIT UNTIL”
                                    procedure to SIMULA.
                                    Present day approaches to discrete event simulation can be generally classified as using either
                                    special purpose data-driven simula tion systems or general  purpose simulation  languages.
                                    Although the latter embrace a far wider range of applications and offer much greater flexibility
                                    in modeling for a particu lar  application, their user base  is restricted  by the  high level  of
                                    expertise required. An Expert System interface to general purpose simulation languages, ISI (the
                                    Intelligent Simulation Interface), is pre sented here. Models are constructed and simulation runs





            268                              LOVELY PROFESSIONAL UNIVERSITY
   269   270   271   272   273   274   275   276   277   278   279