Open Collections

UBC Theses and Dissertations

UBC Theses Logo

UBC Theses and Dissertations

Anisim : an animated interactive simulation monitoring system Walker, Ward J. 1974

You don't seem to have a PDF reader installed, try download the pdf

Item Metadata

Download

Media
[if-you-see-this-DO-NOT-CLICK]
UBC_1974_A6_7 W34_5.pdf [ 5.43MB ]
[if-you-see-this-DO-NOT-CLICK]
Metadata
JSON: 1.0051762.json
JSON-LD: 1.0051762+ld.json
RDF/XML (Pretty): 1.0051762.xml
RDF/JSON: 1.0051762+rdf.json
Turtle: 1.0051762+rdf-turtle.txt
N-Triples: 1.0051762+rdf-ntriples.txt
Original Record: 1.0051762 +original-record.json
Full Text
1.0051762.txt
Citation
1.0051762.ris

Full Text

cl ANISIM: AN ANIMATED INTERACTIVE SIMULATION  MONITORING SYSTEM  by WARD WALKER, JR. B.A.(Honors), Washington State U n i v e r s i t y ,  1970  A THESIS SUBMITTED IN PARTIAL FULFILMENT OF THE REQUIREMENTS FOR THE DEGREE OF MASTER OF SCIENCE  i n the Department of COMPUTER SCIENCE  We accept t h i s t h e s i s as conforming required  to the  standard  THE UNIVERSITY OF BRITISH COLUMBIA April  1974  In p r e s e n t i n g t h i s t h e s i s  i n p a r t i a l f u l f i l m e n t of the requirements  an advanced degree at the U n i v e r s i t y o f B r i t i s h Columbia, the L i b r a r y s h a l l make i t  f r e e l y available for reference  I f u r t h e r agree t h a t p e r m i s s i o n f o r extensive  for  I agree t h a t and s t u d y .  copying o f t h i s  thesis  f o r s c h o l a r l y purposes may be granted by the Head of my Department or by h i s r e p r e s e n t a t i v e s . of t h i s thesis  It  i s understood t h a t copying or p u b l i c a t i o n  f o r f i n a n c i a l g a i n s h a l l not be allowed without my  written permission.  Department The U n i v e r s i t y o f B r i t i s h Columbia Vancouver 8, Canada  Date  XI  ABSTRACT  An  interactive  system  is  d e s c r i b e d which a l l o w s f o r the  g r a p h i c c o n s t r u c t i o n , s i m u l a t i o n , and simultaneous animation an  arbitrary  network  of  queues.  A  method  of  i s proposed and  implemented f o r r e p r e s e n t i n g the events o f a d i s c r e t e  simulation  by a continuous animation on a  terminal.  Techniques  are presented f o r the d i s p l a y o f p a r a l l e l animation  "sequences,"  and is  graphics  a n o n - t r i v a l mapping of s i m u l a t i o n time i n t o animation time described  relationships  which  preserves  between e v e n t s .  t h i s animation f a c i l i t y control discussed  features.  with  The  relative  and  time  The program implemented combines other  simulation  computer-aided  t o o l s , and r e s e a r c h t o o l s .  which makes use o f the  order  monitoring  and  u s e f u l n e s s of t h i s type of approach i s  with r e s p e c t t o  educational  the  lightpen  and  design  applications,  An i n t e r a c t i v e d i a l o g u e a  menu  of  commands  is  implemented f o r the c o n s t r u c t i o n and m o d i f i c a t i o n of the queuing network.  Certain  are d i s c u s s e d .  relevent  a s p e c t s of man-machine i n t e r a c t i o n  A l s o , some prospects are c o n s i d e r e d f o r a p p l y i n g  the animation t e c h n i q u e s developed other d i s c r e t e event p r o c e s s e s .  in  this  implementation  to  TABLE OF CONTENTS  INTRODUCTION 0.1  Animating S i m u l a t i o n s  0.2 Scope 0.3  Queuing Networks  0.4 S i m u l a t i o n S t a t e s And Events I.  INTERACTIVE GRAPHICS FOR COMPUTER-AIDED MODELLING ... ...1 1.1  Types Of Systems  1  1.2. ANISIM  1  1.3  Important P r i n c i p l e s  1  1.4 Model R e p r e s e n t a t i o n  ...1  II.  ANIMATION TECHNIQUES  2.1  Computer Animation  2.2  Representing  2.3  Animation Time Frame  1; .1c  Events  .  .1 ...2  2 . 3 . 1 -Types Of Sequences  2  2.3.2  Internal Cycles  2  2.3.3  E d i t i n g The Event L i s t  2.4  The D i s p l a y P r o c e s s  2.4.1  The D i s p l a y B u f f e r  2.4.2  Compiling  2.4.3  Double B u f f e r i n g  2.5 III. 3.1  ......3  3 . i .  Sequences I n t o D i s p l a y Programs  3 3 .4  The O v e r a l l V i s u a l E f f e c t  4  INTERACTIVE FEATURES  4  Simulation Monitoring  And C o n t r o l  .4  iv 3.1.1 System C o n t r o l  47  3.1.2 S i m u l a t i o n Monitoring  50  3.2 Model Design and M o d i f i c a t i o n ........................57 3.2.1 Network C o n s t r u c t i o n 3.2.2 Model V e r i f i c a t i o n IV UTILITY OF ANIMATION 4.1 S i m u l a t i o n T o o l 4.2 E d u c a t i o n a l T o o l 4.3 Research Tool V CONCLUSIONS, PROSPECTS, AND EXTENSIONS 5.1 A n a l y s i s  .57 ...65 70 ........70 73 ...77 81 .81  5.2 L i m i t a t i o n s 5.3 E x t e n s i o n s 5.4 Prospects For Further Work BIBLIOGRAPHY  ...82 85 .88 .92  APPENDIX A —  PROGRAM DESIGN  94  APPENDIX B —  DATA STRUCTURE  ....104  APPENDIX C —  USER'S GUIDE  106  V  LIST OF FIGURES  1.  A Simple Queuing  2.  Modelling  »  Network  Abstractions  3. Animation Sequences  .......6. ........10  For D i s p l a y Of A Departure Event . . . 2 1  4 . Simple Time Expansion  23  5.  23  Mapping Events I n t o Sequences  6. The 7.  Internal Cycle  28  D i s p l a y Program To A l t e r The State Of A Queue .......... 37  8. D i s p l a y Program Timer Words  9. B u f f e r C o - O r d i n a t i o n  39  ,  ......... 42  10.  Commands A v a i l a b l e  ,....49'  11.  Labelled E n t i t i e s  12.  D i s p l a y Of Blocked Items  13.  Menu For Network Design  .59  14.  S p e c i f y i n g Queues  -> 62  15.  Buffer Sketching  ..63  16.  D i a l o g u e For S p e c i f y i n g S e r v i c e Times  ..66  17.  Queuing  18.  Simple Deadlock  78  19.  A Partially  Deadlocked Network  79  20.  Transaction  Grouping  21.  System  22.  The NODE Record  104  23.  Data S t r u c t u r e For Queues  106  24.  The EVENT Record  .......52 ..........56  Theory Comparison  Configuration  76 ;  .T.. .-84  ••••  •  »»94  •••107  ACKNOWLEDGEMENT  I  would  like  Alemparte f o r t h e i r formulation  to  acknowledge  significant  Dhirendra Chheda and Miguel  part  of the o r i g i n a l system.  i n the  Dean  Uyeno f o r t h e i r s u g g e s t i o n s .  to express my  appreciation  to  Karen  support and a s s i s t a n c e i n f i n i s h i n g  and  I would a l s o l i k e t o thank  Dr. Doug Seeley f o r h i s help and guidance, and  programming  this  and  Drs. Jim  I would e s p e c i a l l y Hartley thesis.  f o r her  Varah like moral  1 INTRODU CTION  0 . 1 Animating S i m u l a t i o n s D i s c r e t e event s i m u l a t i o n has become an important the  analysis  the  and design of complex  performance of a system can be  produced  by  simulating  a  such the  a  simulation,  drawn  model  parameters and s p e c i f i c a t i o n s .  systems.  of  When  parameters.  Secondly,  he  from  analyzing  the  statistics  the  output  as w e l l as the values  may  need  to  model  that  may  averages or extremes.  of  of  know more about be  masked  by  Determining j u s t how  to a l t e r  i n order to improve i t s performance can be a  difficult  a  model  or  even c o u n t e r i n t u i t i v e process.  "step  C o n c l u s i o n s about  the modeller must f i r s t of a l l be aware of  c e r t a i n c h a r a c t e r i s t i c s of the statistical  in  that system with v a r i o u s  i n h e r e n t assumptions of the model,  the  tool  inside"  his  model  and  I f only  "watch"  the  modeller  could  i t perform as the r e a l  system might perform. T h i s t h e s i s d e s c r i b e s the implementation of a brings  the  providing  modeller a  package  which  animation  of  its  simulation.  i s the main f e a t u r e of a complete  allows  an  on-line  has  been  The  interactive  graphical definition  model and e x t e n s i v e monitoring of i t s s i m u l a t i o n . emphasis  that  to a c l o s e r understanding of h i s model by  graphical  animation f a c i l i t y  system  of the  Considerable  placed on p r o v i d i n g f o r a reasonably smooth  and meaningful d i a l o g u e between the user and the system.  2  One p a r t i c u l a r general  use o f t h i s  system,  that  t h e b e h a v i o r known a s " d e a d l o c k " ,  of  developed  as  an  educational  f o r t h e mapping  co-ordinated  animation  tool.  A  for  to  general  for  computer  technique i s  display.  i m p l i c a t i o n s a r e drawn c o n c e r n i n g t h e use o f techniques  and  of s i m u l a t i o n "events" i n t o a "sequences"  in  w i l l be d i s c u s s e d , as  w e l l a s a p p l i c a t i o n s t o computer a i d e d d e s i g n animation  studying  set  of  A l s o , some  similar  animation  m o n i t o r i n g o t h e r , perhaps r e a l - t i m e ,  processes.  Baecker [ 1 ]  sums  up  visualizing  dynamic  the  utility  phenomena  of  of  computer  animation  in  science,  and  mathematics,  engineering: "The c o m p u t e r h a s p r o v e d p a r t i c u l a r l y useful because of i t s ability t o construct precise, mathematically determined images, because o f i t s a b i l i t y t o s i m u l a t e hypothetical w o r l d s , because o f i t s a b i l i t y t o expand o r c o n t r a c t s p a c e and t i m e , and b e c a u s e o f i t s a b i l i t y t o p o r t r a y complex spatial phenomena, particularly those i n three dimensions."  2i2_Sco£e When  considering  the  objective of animating simulations,  p e r h a p s t h e u l t i m a t e g o a l w o u l d be could  animate  attempted, students for  any  to  develop  a  a r b i t r a r y s i m u l a t i o n program.  and i s p r o b a b l y n o t even p o s s i b l e .  system  T h i s was n o t  Baecker  [ 1 ] are developing a v a r i e t y of systematic  and  rather  so  than  f a r , has processes  been which  on are  a n i m a t i n g computer described  by  his  techniques  r e p r e s e n t i n g computer p r o c e s s e s w i t h dynamic images.  emphasis,  that  Their  £ro<jrams, simulation  3 programs.  One  i s impossible animation  to build a  of  machine.  c o n c l u s i o n they have a l r e a d y reached, i s t h a t i t  any  particular  which  program i n any  Instead,  special-purpose  system  they  want to  tools,  each  c l a s s of programs.  could  language running build  suited  a to  the  an animation  objects  and  processes  i n t e l l i g e n t program c o u l d motions all,  by  scanning  the model i t s e l f  animation which  event  the  lesser  often  i n " the time  goal,  GPSS [ 9 ] .  symbols and the  animation and  they  of  a  resemble  Even  meaningful  of  a  very  symbols  and After  reality.  easily  simulation effects.  well-defined  available case  between  The  and  of  from,  a  or  discrete  the animation  simulated  must  events  in  display.  therefore,  I t may  motions),  would  not  (described i n S e c t i o n 0.4),  of p r e - d e f i n e d , or  into  that  In f a c t , i n the  to provide a continuous  or  animation  code of a s i m u l a t i o n program.  written i n a s p e c i f i c simulation [21]  powerful  of a s i m u l a t i o n must  i s o n l y an a b s t r a c t i o n  to, the model.  appropriately " f i l l  A  of  modelled.  create  information  simulation  order  not  good  must c r e a t e a v i s u a l image of a r e a l s i t u a t i o n ; a task  requires  important  being  a  on a s p e c i f i c  variety  manipulate g r a p h i c a l symbols i n such a way the  produce  might  be to animate programs  language,  such  as  Simscript  be p o s s i b l e to provide a l i m i t e d defined,  graphic  primitives  set (both  a s e t of f u n c t i o n c a l l s to be i n s e r t e d  where  required  to  produce  T h i s method would be d i f f i c u l t  the d e s i r e d to  implement  p l a c e an overwhelming burden on the user to c r e a t e a program  with  all  of  the  necessary  information  a v a i l a b l e f o r the animation Thus, referred  the  system  routines.  which  but  contains  i t s own  designed t o handle a s u b c l a s s This s t i l l  an  existing  s p e c i a l simulation  program  i n v o l v e s a l a r g e v a r i e t y o f p o s s i b l e models,  model at the g r a p h i c s  structures  hereafter  of models known as queuing network  but t h e system i s now a b l e t o help defined  been implemented,  t o a s ANISIH, does not attempt t o animate  simulation,  models.  has  the user  terminal  formulate  a  well-  while i t c r e a t e s the data  necessary f o r the s i m u l a t i o n  and animation programs.  I t w i l l be shown l a t e r , how the techniques used i n ANISIM be  applied  to  c e r t a i n other  models or c l a s s e s of models.  concept of a b u i l t - i n s i m u l a t i o n a  command  language  t r a d e - o f f i s between language  and  simulation  rather  having  the  means that t h e user works  than  using  could  a  a programming language.  simple  ability  and  to  convenient  The with The  command  t a i l o r the power of the  t o handle s p e c i f i c needs.  0 3_2ueuin3_Networks i  Before proceeding t o f u r t h e r d i s c u s s i o n of ANISIH, i t be  useful  simulation A  to d e s c r i b e  will  what i s meant by queuing networks and by  s t a t e s and events.  queuing  network  model  travelling  along  "servers".  A queue r e p r e s e n t s  "transactions")  logical  trying  to  consists  paths a  get  of  basically  of  items  a network of "queues" and  waiting  line  of  items  (or  i n t o one of the s e r v e r s of the  5  "queue/server occupying  it  queue/server queuing  system".  A s e r v e r r e p r e s e n t s a delay of the  before  the  system or e x i t  item  can  from  the  move  on  network.  item  to  the  In  classical  t h e o r y , the "movement" of an item between any  i n the network i s assumed to occur i n s t a n t a n e o u s l y .  two  next  nodes  Items e n t e r  the network from a "source" and l e a v e the network by going to "sink".  1  Figure  shows a queue/server  s i x of them waiting t o be served small  squares).  The  symbols  ANISIM and do not  represent  Certain  simple  fairly  and in  any  system with ten items,  four  being  Figure queuing  queuing  theory  networks  can  queue l e n g t h s and  can  f o r the gueuing  mathematically,  i n steady s t a t e [ 1 1 ] . manner  Networks which  are l a r g e l y r e s t r i c t e d  can  no  (the  conventions. be  "solved"  waiting  times  system when i t i s  be  solved  in  this  time  distributions.  i n f o r m a t i o n i s a v a i l a b l e r e g a r d i n g the performance of  the system during more t r a n s i e n t or time-dependent s t a t e s . a n a l y t i c a l s o l u t i o n s are inadequate must  be  queuing  by  to those with i n f i n i t e queues and  s p e c i a l c o n s t r a i n t s on a r r i v a l and s e r v i c e Also,  served  1 are those used  a n a l y t i c a l l y — t h a t i s , average be found,  a  used  to  or  analyze the system.  unavailable, Like any  network i s an a b s t r a c t i o n of r e a l i t y ,  When  simulation  other model, a  although perhaps a  more formal one than some.  Thus any c o n c l u s i o n s drawn about the  behaviour of  model  approximations modelled.  the  queuing of  the  behavior  can of  only the  be real  considered system  as  being  6  FIGUBE  1:  A S i m p l e Q u e u i n g Network From L e f t t o B i g h t : S o u r c e , Queue, S e r v e r s ,  and  Sink.  7 i m u l a t j o n g t a t eg_and The type o f s i m u l a t i o n i n v o l v e d here i s known as a d i s c r e t e event  simulation.  This  means  that  the  model  can  be  c h a r a c t e r i z e d by i t s " s t a t e " a t any p a r t i c u l a r time and by a s e t of  "events",  instants. system) of  or  Events or  state can  endogenous  changes, be  exogenous  event  types  or  (generated  There are a  i s an i n s t a n c e of an event  a  hill, the  one-car  and  ferry  discrete  across a r i v e r ,  number  event  moving  to  the  end  of  the l i n e u p .  car into  the  of  He sees a ferry  plus  a c t u a l c r o s s i n g , the unloading, and perhaps the r e t u r n t r i p the f e r r y .  first-out  to  model  bend  F i n a l l y he sees a "departure" as the  car  queue."  moving  A typical discrete  model of t h i s s i t u a t i o n i s the s o - c a l l e d " s i n g l e s e r v e r  An  of  an observer on a nearby  on the other bank u n t i l i t disappears.  of  the  class.  " s e r v i c e " as the l o a d i n g o f the f i r s t  of  limited  sees an " a r r i v a l " as a c a r appearing at the l a s t road  the  outside  " c l a s s e s " o f events t h a t can occur, and each  Consider t h e f o l l o w i n g example of a for  time  (generated w i t h i n the system as a r e s u l t  a previous event o r s t a t e ) .  general  which occur a t d i s c r e t e  The s t a t e o f the system i s merely  c a r s i n the l i n e u p p l u s the one being served  by  event  first-in  the number the  ferry.  " a r r i v a l " i s the instantaneous exogenous event t h a t adds one the s t a t e and a "departure" i s the  event  instantaneous  t h a t s u b t r a c t s one from the s t a t e .  "service"  is  the a b s t r a c t concept  endogenous  The a c t u a l c r o s s i n g or  o f wait or d e l a y between two  8 departures.  Completely  abstraction  are the a c t i o n s d e f i n e d by the movement of the  or the f e r r y  (or the f a c t t h a t they are c a r s at  Of course, only these by  one  irrelevant  additional  The  modelling  development  it  was  of  or  more queues.  situations  that  ANISIM  had  the same l i m i t e d parking area.) I f  features  added  allowed  to  to  large,  c a p a b i l i t i e s of GPSS [ 9 ] ) ,  then two  programming graphical  to  use  systems primitives  and  awkward  tend  to  would  require  being  allow a limit two  be).  to  More  lines  say,  the First, become  (as many l a r g e  importantly,  i n a l l probability f a i l abstractions,  the  to keep up each  of  v i s u a l a i d s t o r e s t o r e some r e a l i t y to the model  monitored. One  o f the main o b j e c t i v e s of ANISIM i s to make i t p o s s i b l e  f o r a human at the d i s p l a y t e r m i n a l to monitor a s i m u l a t i o n to  of  power were  with, may  maintain  on one-  number  things might happen.  with the much wider v a r i e t y of modelling which  the  (approaching,  the programming system, which i s l a r g e to begin costly  should  the  stage  w a i t i n g l i n e , but the two  very  too  maintaining  the system to i n c r e a s e modelling  become  increased  I f the f e r r y t e r m i n a l had  each with t h e i r own  t o share  be  storage  car f e r r i e s ,  cars  using  For example, at an e a r l y  decided  (e.g.  model  all).  power may  " b u f f e r " e n t i t y t h a t imposes a f i n i t e common two  particular  p r i m i t i v e s while s t i l l  s t r u c t u r e of a gueuing network. of  this  c o u l d model a v a r i e t y  b a s i c concepts.  defining  in  do  it  as  e a s i l y and  a c c u r a t e l y as p o s s i b l e .  and  However, f o r  9  even a moderately complex cannot  be  accurately  system where the s t a t e of  to  simulation display  the (i.e.  i s not a t r i v i a l  task.  of  the  Solutions  s t a t e vector i t s e l f  D i s p l a y numbers o r other  monitoring  What to d i s p l a y and  i t becomes the main problem.  display  system  r e p r e s e n t e d by a simple number as i n the  f e r r y example, but by a vector with many components, the  the  symbols),  range  how from  every time i t changes to  a  sophisticated  animation where sequences of moving elements are added as v i s u a l aids.  ANISIM  mecessary analytical  uses  the  abstractions and  latter, which  computational  monitoring the system  under the assumption t h a t the  were,  indeed,  purposes,  (see f i g u r e  2).  so  useful  for  h i n d e r the process of  10  Rea'l S y 5 tern  A b s t r a c t i on of Real i t y  S i m u l a t i on  Restore (Vi sua!  C a l c u l a t ions  Real i t y Aids)  Statistics  Display  The  l I  Monitoring  FIGURE 2 :  Modelling  Human  Abstractions  The  I t  Analyzing  Human  11 I.  INTERACTIVE GRAPHICS FOR  COMPUTER-AIDED MODELLING  iiJ_Tv£gs_of_Svsterns A number of g r a p h i c s systems have last  few  developed  hopefully,  to  improve i t s d e s i g n .  learn  more  about  F u r t h e r d i s c u s s i o n and r e f e r e n c e s may  it  and,  be found In  in Prince  many  cases,  i n f o r m a t i o n a v a i l a b l e from such a model can be c o n s i d e r a b l y  enhanced by a l l o w i n g the viewer generates  say,  molecule  [17].  the  sophisticated input  to i n t e r a c t with the system t h a t  or d i s p l a y s the model, even  simply,  In  the  (Several of these are mentioned  [ 1 8 ] , Smith [ 2 3 ] , and Newman and S p r o u l l [16].) the  in  years that provide a c a p a b i l i t y to model a process or  s p a t i a l c o n f i g u r a t i o n i n order  below.  been  about  Some systems use sketchpad,  to, and  almost  rotation  this  interaction  an a x i s o f a 3-D  the  graphics  model of a  terminal  as  systems,  a  non-graphics sufficient  processing  of  models  system, some thought user  and  the  a  program.  data s t r u c t u r e must  c r e a t e d by the program to a l l o w , a t l e a s t , the saving and restoring  is  while others r e l y on the t e r m i n a l f o r  output from, a  all  if  generated.  Also,  in  be  later  even the s i m p l e s t  must be given to the manner  in  program communicate with each other  which (see  the  Chapter  III) . Consider the f o l l o w i n g program  to  design  [ 1 9 ] , and b) and  the  two  spatial  examples:  a)  an  interactive  l a y o u t of i n t e g r a t e d c i r c u i t s  a r c h i t e c t u r a l l y o r i e n t e d program f o r generating  12 p e r s p e c t i v e drawings of t h r e e - d i m e n s i o n a l each  polyhedra  [14],  In  case, the user can q u i c k l y sketch p r e l i m i n a r y "models", at  a convenient design mostly  in  s c a l e , of more  something  detail.  The  to g r a p h i c a l techniques  well-defined  model  and  he  may  later  processing  construct  or  program i s c o n f i n e d  which help the designer c r e a t e  a  then observe as much as p o s s i b l e about  the model t h a t he has j u s t  created.  Another type o f computer-aided modelling  a l l o w s the user to  see, and thus f u r t h e r comprehend, the r e s u l t s produced by a nongraphics  processing  interactive and  program.  For  example,  systems have been developed  other mathematical approximation  a  number  to a i d i n c u r v e - f i t t i n g  techniques  [15,23,12].  user s p e c i f i e s input data, parameters and o p t i o n s , any of he  may wish t o a l t e r a f t e r viewing  the output must  (or of i n t e r m e d i a t e  also  The which  g r a p h i c a l r e p r e s e n t a t i o n s of  steps).  Such  systems  usually  make a v a i l a b l e more d e t a i l e d p r i n t e d i n f o r m a t i o n f o r  l a t e r study. allows  of  the  ANISIM i s p a r t i a l l y t h i s type user  to  features  system,  as i t  q u i c k l y analyze the e f f e c t s of s i m u l a t i o n  parameters by d i s p l a y i n g the r e s u l t s interactive  of  of  the  simulation.  The  which f a c i l i t a t e t h i s c a p a b i l i t y are a l s o  discussed i n Chapter I I I . On the other hand, t h e r e graphics  cases  when  an  interactive  c a p a b i l i t y p r o v i d e s f o r a more n a t u r a l i n g u t medium to  a non-graphics possibly  are  program  reliability  in [24],  terms For  of  speed,  example,  convenience,  or  F o r r e s t e r [ 8 ] , has  13 found  i t necessary  graphically, the  i n order  variables,  language.  and  this  terminal  this  t y p e o f system  simulation  dialogue  may  simulation an  that  at the  the  importance  program  user  between  programming system  for  statements  generated. to enter  and  the  success  Of  The user  of  a  for  course,  a large  terminal.  system to the  models  o f a dynamic model on  the  graphics  the  in a  interactive  automatically  require  between  becomes o f paramount t o model  developed  are  detailed information the  code t h e  i n s u c h a way  actual  of  then  simulation  inter-relationships  graphical representation  the  of  complex dynamic  to f o l l o w the  Chheda [ 4 ] has  creating graphics  to describe  amount quality  therefore,  this  approach  design.  1. 2_ANISIM ANISIM  is  Chapter I I I through queuing the  we  the  also, see  how  the  necessary  network, while  simulation  input,  in part,  i n the  (and  guides  the  animation).  verify  the  intended  we  see  graphical  input  graphical  display  modeller  a of  ANISIM  the  results.  the  model a  necessary  system.  utilize  data  program In  the  the  i n order  properly  In  builder  well-defined  advantages of  combines  processing  of  also include  model i s b e i n g  that  to  can  type  to b u i l d  The  c a s e o f network d e s i g n , the  latter  required  constructing  that  Thus  program  steps  v i s u a l feedback that  this  base  for  graphical immediate to  help  created.  the with  advantages those  case of  of  of a  simulation  14 however, i t i s sometimes representation  of  desirable  to  occur  the  the  of the s i m u l a t i o n and the d i s p l a y of i t s events  must  simultaneously  in  order  In  to  other  enable  the  model  t o a c t u a l l y i n t e r a c t with the s i m u l a t i o n (the "almost"  i s e x p l a i n e d i n Chapter created  just  words,  almost  designer  not  a " f i n a l s t a t e " , but a d e t a i l e d animation of  t h e model as the s i m u l a t i o n progresses. processing  display  a  network,  II).  may  k user  of  AHISIM,  decide to monitor  once  he  an animation  of i t s  s i m u l a t i o n f o r a while, i n t e r r u p t the s i m u l a t i o n when he i s satisfied  with  the  model s  performance, and p o s s i b l y  ,  some s t a t i s t i c s f o r f u r t h e r a p p r a i s a l .  the  simulation  (after  not  display  He may then wish t o e d i t  one or more parameters or even the model s t r u c t u r e , monitoring  has  and  resume  r e s e t i n g the s t a t i s t i c s and  clock, i f necessary).  1 3_Im£ortant_Princi£les :  There are then, three present  in  main  principles  that  seem  more  r e l i a b l e , or otherwise  more convenient  p o s s i b l e methods, b) the system a l l o w s the modeller to with  a  r e l a t i v e l y s h o r t turn-around  d e s i g n , study, and r e - d e s i g n i n model  (or  otherwise  the  his  time, through attempt  to  faster,  than other proceed,  the c y c l e of optimize  the  t e s t v a r i a t i o n s ) , and c) the system makes  use of the g r a p h i c s t e r m i n a l as augment  be  most i n t e r a c t i v e g r a p h i c s modelling systems: a) the  system p r o v i d e s a means of t e s t i n g model design t h a t i s easier,  to  information  an  additional  t h a t may be presented  I/O  medium  to  by other media.  15 In f a c t , i n some reasonable observed  cases,  device (such  earlier).  on  as  the  graphics  which  in  the  Furthermore,  the  terminal  above  the  only  two p r i n c i p l e s can be  architecture  the  is  interactive  program  mentioned  aspect of the system  allows the user t o s e l e c t i v e l y provide, d i s p l a y , or  watch  only  t h a t i n f o r m a t i o n which he f e e l s t o be most p e r t i n e n t .  Ji4_H  o del_Bej>r esent at ion One  problem  a s s o c i a t e d with monitoring  the animation  queuing network model i n order to a i d i n the design system network  lies  in  the  terms.  understanding  The of  model i s formulated resemble  the  real  the  animation queuing  certainly  that  system t h a t much.  i s of  real  i t does  in  the  not  visually  The f o r m u l a t i o n may be a  t o the system,  more  aids  network, but i n some cases, the  i n such a way  produced may p r o v i d e important animation  a  f o r m u l a t i o n of that system i n the queuing  very a c c u r a t e approximation  the  of  of a  and  the  statistics  i n f o r m a t i o n about the system, but value towards system design i f the  modeller can mentally t r a n s l a t e what he sees i n t o what i t means i n the r e a l system. of  A simple example of t h i s phenomenon i s t h a t  an o b j e c t which t r a v e l s between two s e r v i c e f a c i l i t i e s (say,  a s h i p between two p o r t s ) .  The t r a n s i t time i s important  to the  model and cannot e a s i l y be combined with the delay of the service  facility  first  (e.g. the l o a d i n g times at the f i r s t p o r t a r e  assumed t o be e x p o n e n t i a l l y d i s t r i b u t e d and the t r a v e l times a r e uniformly d i s t r i b u t e d ) .  The  queuing  network  model  of  this  16 s i t u a t i o n thus r e q u i r e s one s e r v e r f o r each s e r v i c e f a c i l i t y a  third  route. as  server  to  approximate  box  inside  chapter how merely  a  s e r v e r symbol.  to d i s p l a y , smoothly,  several  between  In  a  fairly  the  may  modeller  p o r t i o n s o f the animation i n s t r u c t i v e There problem.  are A  two  ways  of  may  still  to  watch).  combating  in  a  logical  this  sense,  the  overall  find  specific  representation  user of ANISIH, with some p r a c t i c e ,  resembles,  system,  m u l t i p l y the complexity  p o s i t i o n the symbols of the network so that the closely  next  servers  complex  the network, f u r t h e r r e d u c i n g the u s e f u l n e s s of (although  route  s t a t e changes which are assumed to  occurrences of t h i s problem  animation  en  (We s h a l l see i n the  the animation shows the box moving  be i n s t a n t a n e o u s i n the model.)  of  the delay a s s o c i a t e d with the  Of course the animation then shows the o b j e c t  a  soon l e a r n s to animation  most  the processes being  modelled.  With a l i t t l e  more p r a c t i c e he becomes more adept  thinking  of  in  things  representations. include allow a  a wider range  certain  terms  of  features  (such  could  queuing be  of models t o resemble  definition  phase  i n c r e a s i n g l y t e d i o u s f o r the user and  III)  Chapter V c o n t a i n s  e x t e n s i o n s t o ANISIH.  further  would  i t would be more  discussion  To  The drawback i s  of  become  difficult  the program to help i n s u r e t h a t the model c r e a t e d was  defined.  to  that would  the r e a l systems.  (Chapter  at  network  expanded  as t r a n s i t times)  e x t e n t t h i s can and should be done.  that the model  for  strict  A l t e r n a t i v e l y , ANISIH  optional  and  well-  potential  17  Additional  comments  on the u t i l i t y of animated  as a s i m u l a t i o n t o o l are i n Chapter  IV.  monitoring  18 II.  ANIMATION TECHNIQUES  2. 1, gomputer_Animation Combining  computer  animation with s i m u l a t i o n as a design or  e d u c a t i o n t o o l i s not new. fields  such  This  seems  particularly  true  in  as p h y s i c s , c h e m i s t r y , e l e c t r i c a l e n g i n e e r i n g , and  medicine, where l a b o r a t o r y experiments g r a p h i c s i m u l a t i o n systems.  are  being  replaced  by  An example i s a system which a l l o w s  a medical student t o observe the e f f e c t s of d i f f e r e n t s t i m u l i a  diagram  of  a living,  moving organ [ 1 3 ] .  on  However, most such  systems i n v o l v e continuous s i m u l a t i o n r a t h e r than d i s c r e t e event simulation.  The  relationships  model  which  consists  determine  the  every time u n i t as the s i m u l a t i o n increment,  the  position,  entity in  the  animation  updated.  There  is  at  chapter  value  length,  recomputed  of  describes  each  animation component  how  ANISIM  of  mathematical  of each v a r i a b l e a t Thus, a t each  time  or whatever, o f each and  model changes  i r r e g u l a r time i n t e r v a l s .  change  set  i s no problem with p a r a l l e l  i n v e n t s h o r t , meaningful state  a  proceeds.  size,  other hand, an e v e n t - o r i e n t e d steps  of  the  display  processes. state  by  is  On the  discrete  I t i s u s u a l l y necessary to sequences of  to  the model.  accomplishes  portray  the  Most of t h i s  this  task  while  animated continuous s i m u l a t i o n  system  m a i n t a i n i n g the time r e l a t i o n s h i p s of the s i m u l a t i o n . One  example  of  an  t h a t otherwise c o n t a i n s some s t r i k i n g p a r a l l e l s t o ANISIM i s the  19 DYNIS  program  simulates  at  and  the  University  displays  the  of  Waterloo  response  of  [20].  DYNIS  three-dimensional  mechanical systems (composed of masses, s p r i n g s , dampers, d r i v e r s and of  the  position drivers). simulation  is  L i k e ANISIM, i n t e r a c t i v e c o n t r o l  provided  and  r e p r e s e n t a t i v e symbols i s used.  Both  stage"  through  which  d e c i s i o n s by choices.  leads the  The  the  use  use  user  of  "menus"  an o v e r l y t e d i o u s d i a l o g u e .  objects. the  standard  programs  in  representing  each  way  environment. BETWEEN THE  when The  set a  of  "first  systematic  certain  case,  possible (and,  allows  this  model without c a r r y i n g out  Like ANISIM, the symbols  used  are  a wide v a r i e t y of p o s s i b l e r e a l - w o r l d  On the s u r f a c e , then, these systems  same  have  a s e r i e s of  offering  stage to c r e a t e a w e l l - d e f i n e d  abstractions  a  of a c l o s e d s e t of s i m u l a t i o n e n t i t i e s  t h e r e f o r e , animation p r i m i t i v e s ) , first  force  used  in  an  perform  interactive,  s i g n i f i c a n t d i f f e r e n c e LIES IN  SIMULATION AND  THE  in  system THE  much design  INTERFACE  ANIMATION.  2«^.Representing_ Events As  mentioned e a r l i e r , s i m u l a t i o n events,  are assumed to happen time.  However,  instantaneously  at  discrete  such a change of s t a t e i s normally  a b s t r a c t i o n which corresponds to a r e a l - w o r l d some  relatively  or s t a t e changes,  short duration.  of Chapter I, an a r r i v a l to d r i v i n g up to the parking  the  area.  process  points a  in  modelling that  has  In the f e r r y t e r m i n a l example queue In order  corresponds  to  a  car  to g r a p h i c a l l y monitor  20 a  ferry  terminal  simulation,  every  time  an  arrival  event  o c c u r r e d , one should see a symbol o f a c a r moving to a symbol of t h e w a i t i n g area.  L i k e w i s e , t h r e e common v i s u a l a i d s f o r events  i n ANISIM are 1) an (arrival  item  moving  from  a  source  to  a  queue  e v e n t ) , 2) an item moving from a s e r v e r to a new queue  (departure e v e n t ) , and 3) an item moving from a s e r v e r to a s i n k (departure-from-system  event).  events w i l l be r e f e r r e d although  they  animation.  are  These, and other v i s u a l a i d s f o r  to h e n c e f o r t h as "animation  single  components  of  (We s h a l l see i n S e c t i o n 2.4.2  sequences  have no d u r a t i o n , such as the sequence or  one  r e q u i r e a sequence, r e s c h e d u l e d again Finally,  less  small  how  i s compiled  more  a  the o v e r a l l network  sequence  one  into  display  item i n a queue.  sequences",  each  animation  program.) that  Some  displays  A l s o , not a l l events  such as a blocked departure  which  must  ( i . e . the next queue or b u f f e r i s s t i l l  full).  a s i n g l e event may t r i g g e r o f f more than one sequence.  T h i s i s true of a departure event, which r e q u i r e s a sequence update  the state  sequence of  of  to  t h e l o s i n g queue/server system, a moving  (with a d u r a t i o n ) , and a sequence t o update  the g a i n i n g queue/server system  queue  be  (see F i g u r e  i s i n a " b u f f e r " , then a f o u r t h of f i f t h  3).  the If  state either  sequence may be  r e q u i r e d to update the bar graphs t h a t show how f u l l  the b u f f e r s  are.  arrows  A d d i t i o n a l sequences  blinking buffers.  to  identify  c u r r e n t l y i n ANISIM  blocked  items  and  use  blocking  and  gueues or  21  a,. S t a t e  o f System B e f o r e D e p a r t u r e Event.  fc. A n i m a t i o n - T i m e = T: I n s t a n t a n e o u s S e g u e n c e Queue/Server Systera; Moving Sequence B e g i n s .  c. Animation Progress.  Time = T+50:  Moving  Updates  Sequence  in  d. A n i m a t i o n T i m e = T+100: Moving Sequence Ends; Instantaneous Sequence Updates Second Cueue/Server System. FIGURE 3: A n i m a t i o n  S e q u e n c e s f o r D i s p l a y c f a D e p a r t u r e "Event  22 2 ^ 3_A Q i m a t i o n_T i me_ F r a m e A requirement preserve  the  relative  time  how  and  of  animating  relative between  when  to  duration.  animation  time  discrete  precedence  events.  display  positive  a  events  Thus t h e sequences  The  requires  of  mapping  simulation and  to  question which  of  is  to  preserve  the  arises  we c h o o s e  simulation  as  to  to  give  time  a  into  some f o r m a l i z a t i o n .  2a3.1_Typ.es ° f S e q u e n c e s One, expand every  perhaps  the  an  it  stops  leaving  distance  the  All queue  "t (b)",  cars  separates  at  where  the  them,  is  "t(a) ,  the  difference  "arrivals"  are  animation  sequences  n  the  line  and t h e y  positive two  the  and t h a t  are  simulation  will  be i n  queue  car  between  number.  For  which  example,  going  at  the  car  "a"  arrives  the  two  in  Car car  take  ferry.  "b"  events  after  sequential,  the  that  "b"  is  time  up f o r  However,  series.  until  to  sequence  drawback  completely  seguences.  approach  the  be  s i m u l a t i o n time every  display  parallel  of  would  4).  one s e r i o u s  ongoing  the  duration  Figure  has  time  small  towards  adding sequences  s i m u l a t i o n model knows i s  relatively  moving  for  two  our  the  Also,  no p r o v i s i o n  speed. at  "binds"  where  (see  however,  occurs.  case  small  or  way o f  s c a l e by  occurs  method,  event  the  simulated time  time an event This  that  trivial,  A  same  arrives at  times  time is  a  since  the  two  series,  the  two  will  not  " a " has a r r i v e d  begin and  23  Event 1  Event  3  Sequence 1-  FIGURE 4 :  Event 1  Sequence  Expanded Time Seale  S i m p l e Time E x p a n s i o n  Event 2 •  Event  PTwo-S i de Bounded Sequence 5:  Sequence 3  2  3  Event k  i sht-S i d ounded. fcequence .  FIGURE  S imulat i on Output  Event  2  Event 5  Event .6  S imulat i on T i me —  UnVoundea Sequence Blading  Sequence  £ert-Sice* Bounded Sequence  Mapping E v e n t s i n t o Sequences  An imat ion T i me  24 stayed i n the queue conveying  the  something  for t(a)-t(b)  parallelism  of  time the  units.  two  We  a r e not  arrival  sequences;  t h a t i s d e s i r a b l e f o r monitoring purposes.  In g e n e r a l  t h i s approach does not r e s t o r e much r e a l i t y t o t h e model. The d i s p l a y of p a r a l l e l sequences if  a  few  simulation  displaying. be  motion  correct is  on the screen ahead  graphics  of  D i s p l a y sequences, from  computer  generated. so  one while  The problem, that  preserved.  display  buffered  before can thus  f o r example, can s t a r t  time  and  arrive  a t the  spot i n t h e queue e x a c t l y a t the time the a r r i v a l  can be compiled  are  somehow  so that a r r i v a l sequences  to take p l a c e .  lists  are  These b u f f e r s of events, or "event l i s t s " ,  manipulated  their  events  can, however, be achieved  event  event  which may o v e r l a p i n time,  list  subsequent  and event  displayed lists  then, becomes one o f e d i t i n g  by the  are  being  the  event  the order and time r e l a t i o n s h i p s between events To s i m p l i f y t h i s problem,  sequences  into  certain  i t i s u s e f u l to  classes.  For  group  the f o l l o w i n g  d e f i n i t i o n s , c o n s i d e r an animation sequence on a h o r i z o n t a l time axis  (as i n F i g u r e s 4 and 5).  refer  to  t h e sequence's  The  left  starting  side time  and and  right  side  finish  time,  respectively.  Binding_Seg_uencej^ T h i s i s the type simulation  time  discribed  where  the  i s expanded by the i n s e r t i o n of the sequence.  &n example i s a departure of an item from queue.  above  a  server  to  a  new  25 Rlaz§id.§_B_2y.Hd_e_d_Seguences__  This  type  of  sequence must end  e x a c t l y with a s i m u l a t i o n event, but i t can be time  before  that.  The  started  time s c a l e i s not expanded.  at  An  any  arrival  event can be represented by a r i g h t - s i d e bounded sequence.  Left-side_Bounded_Se£uence_. T h i s type must s t a r t but can end  at any time.  events  completely,  can  Hot a l l "sequences" r e q u i r e a d u r a t i o n .  be  represented  by merely changing  the  partially,  or  right-side  bounded  more item.  A blocked-departure  instantaneous  sequences  full  the  queue and  which  blinking  blocked item to the f u l l sequence  events only. are  not  state.  sequence  moving item and an instantaneous sequence (at the  the event happens) which changes the queue symbol  The  sometimes  the r e p r e s e n t a t i o n of the  The a r r i v a l to a queue r e q u i r e s a for  event,  An example i s a departure to a s i n k .  £Ui>i§£i§2§2i2S_Se3uence_^ Certain  with an  Two  one  event i s represented only by "switch on"  of  defined  f u r t h e r types of in  show  an  arrow  two  the b l i n k i n g of the pointing  from  the  queue.  types  required  to  time  above  are used  animation  AUISIM at present, may  to r e p r e s e n t  sequences,  which  a l s o be u s e f u l i n  order to p r o p e r l y animate an e v e n t - o r i e n t e d s i m u l a t i o n .  H . °"BJg^-§.§2,ugB£,gi. n  b  A  sequence ( f o r example, an e r r o r or warning  message) t r i g g e r e d by some process i t s e l f can be regarded  other  than  as an unbounded sequence.  the  simulation  26 Twoz§i^5_l2U£Seguence^. end  with  but  it  T h i s type of sequence must s t a r t  s i m u l a t i o n events. can  be  I t does not expand the time  For example, i f we  process  place  that  takes  during  wanted to  that  would have to c o - o r d i n a t e the  event  started  terminated terminal  the  the  service  service  simulation,  (e.g. a  would give the modeller more  than  the  representation  concerned, the t r a v e l l i n g service  with  the  departure).  In  would  this  service  not bind the other  ferry  a  item  has  sequence  would  probably  An example of a more  occur  if  ANISIM  would  were  queues.  As f a r as the s i m u l a t i o n i s entered  into  a  delay  sequences.  or  ( i . e . the s t a t e of that p a r t of events).  But  the  viewer  as a moving sequence which, of course, events  As  considerably  does  (expand the time s c a l e ) .  F i g u r e 5 i l l u s t r a t e s the mapping of s i m u l a t i o n events animation  the that  the  Such  extension  problem.  of a s p e c i f i e d duration  that  ferry.  reality.  the system i s s t a t i c between the two sees  with event  t r a n s i t times between s e r v e r s and  p o i n t e d out i n s e c t i o n 1.5, ease  sequence  no u s e f u l i n f o r m a t i o n and  distraction  to allow  and  the  u s e f u l two-side bounded sequence extended  the  a two-side bounded sequence c o u l d be used  t o i l l u s t r a t e the round t r i p of  provide  animate  the  a b s t r a c t concept of a  " s e r v i c e " , we that  scale,  used to f u r t h e r e l a b o r a t e on a component of  s t a t e of the system.  and  into  I t should be noted that an i n s t a n c e of an  event from an event c l a s s generates an i n s t a n c e of a sequence of a c e r t a i n type. a  right-side  For example, an a r r i v a l event always bounded . sequence.  However, due  generates  particularly  to  27 sequences which change the g r a p h i c a l r e p r e s e n t a t i o n of the s t a t e of  the  system,  information  the  about  animation  the  system  require  certain  which was a v a i l a b l e i n the data  base a t the time the s i m u l a t i o n For  routines  routine  processed  example, a sequence which d i s p l a y s the new  the  event.  s t a t e of a queue  due t o an a r r i v a l r e q u i r e s knowing what the s t a t e of  the  queue  was before the a r r i v a l event o c c u r r e d . The  simulation  ways: 1) Record,  may  along  provide t h i s i n f o r m a t i o n i n one of with  the  event  s u b c l a s s d e s i g n a t o r s , or m o d i f i e r s . queue  must  be  passed  class,  one  classes. has  to the animation r o u t i n e s along with an  class  into  two  or  blocked  must  turn  off  the  distinct  blinking  p o i n t i n g from the no-longer-blocked item. more  convenient  event  class,  2)  event  distinct  clear  of the arrow  I t turned out  to  be  t o handle t h i s k i n d of departure as a s e p a r a t e from  a  normal  departure,  presence of the s p e c i a l , or " c r i t i c a l "  method  more  the queue.  For example, i n ANISIM a departure from a s e r v e r which  been  No  more  For example, the s t a t e of a  event t h a t causes an a d d i t i o n t o or d e l e t i o n from P a r t i t i o n the event  or  two  generalization  requires  less  has  modification  due  to  the  state.  become apparent as to which to  the  simulation  when  a d d i t i o n a l animation d e t a i l i s d e s i r e d . Chapter  V c o n t a i n s f u r t h e r d i s c u s s i o n of sequence types as  they r e l a t e t o the modelling of network s i m u l a t i o n s .  processes  other  than  queuing  28 2.3.2  Internal As  for  Cycles  explained  in  the p r e v i o u s  s e c t i o n , i t i s not  the a n i m a t i o n r o u t i n e s to process  occurs  i n the s i m u l a t i o n .  Instead,  an event a t  step  routine  and  pass  edits  calculating  the  centre! event  to  list  passes what i s now  called  produced  by  the  graphics  step  process,  computer called  The  it  the "sequence l i s t "  to a t h i r d sends  over a high speed channel.  the " i n t e r n a l c y c l e " , then  c o n t r o l t o the s i m u l a t i o n r o u t i n e  and Edit  simulation,  d u r a t i o n f o r each event,  which a c t u a l l y c o m p i l e s the d i s p l a y programs and the  happened,  an " E d i t " r o u t i n e ,  the a n i m a t i o n time and  time  the s i m u l a t i o n r o u t i n e must  proceed u n t i l a s u f f i c i e n t number o f events have then  the  possible  and  routine them  to  This.three-  repeats  itself  by  returning  The  i n t e r n a l c y c l e approach i s f e a s i b l e only because the d i s p l a y  1  r  (see f i g u r e 6 ) .  r I  SIMULATE  Graphics  ConDute r  •COMP I LE  Display I Program^ L _ _ _ J  The  Internal  L  Cycle  Event ' List j  EDIT Seauence] List  Main Computer FIG08E 6:  I  29 of seguences by the g r a p h i c s computer proceeds the  computation  in  the  main  computer  independently  (Section  2.4.2).  of Of  c o u r s e , the problem of c o - o r d i n a t i n g the timing of the seguences i n order t o provide difficult  one.  a  smooth,  accurate  He see below how  display  is  still  a  t h i s problem i s r e l a t e d t o the  l e v e l of user i n t e r a c t i o n with the s i m u l a t i o n . There are two &n  upper  limit  ways i n which the s i m u l a t i o n is  imposed  of  terminations  (departures  of  arrivals,  proceed  until  it  reaches  and  from the system).  user chooses to simulate without the animation, will  terminate.  by the user on c e r t a i n s i m u l a t i o n  v a r i a b l e s such as t h e c l o c k , the number number  can  the  the  I f the  simulation  one of these l i m i t s .  at t h a t  p o i n t i t w i l l terminate, and a s p e c i a l r o u t i n e i s c a l l e d to scan the data base and d i s p l a y the c u r r e n t s t a t e . user  is  monitoring  simulation  after  discovered  by  he  the  an animation, he may has  seen  enough.  as  wish  if  the  to i n t e r r u p t  the  This  interrupt  program between i n t e r n a l c y c l e s ,  that the number of events processed i n small  However,  possible.  In  this  way,  one the  cycle user  suggesting  be  to h i s i n t e r r u p t w i t h i n a reasonable time and  between  the  and  the  animation  kept  as  w i l l achieve a  response  simulation  is  the  lag  w i l l be kept to a  minimum. The " l e n g t h " o f the i n t e r n a l c y c l e must not be however, Basically,  or  the the  continuity simulation  of the d i s p l a y must  generate  too  short,  w i l l be d i s r u p t e d . enough  animation  30 sequences  i n order  to provide a d i s p l a y which l a s t s long enough  on the screen to allow subsequent d i s p l a y . display.  the  next  cycle  time  to  prepare  the  S e v e r a l f a c t o r s i n f l u e n c e the length of  the  For a given i n t e r n a l c y c l e l e n g t h , the d u r a t i o n of  the  d i s p l a y depends b a s i c a l l y on the p r o p o r t i o n of b i n d i n g  sequences  generated,  (for each  the  user-controlled  type of sequence), and Section  2.4.2.  a time  Oser  duration  conversion  control  of these  l e n g t h o f the i n t e r n a l c y c l e , i s (The  parameters factor  parameters, and  discussed  in  Section  s i m u l a t i o n r o u t i n e measures the c y c l e l e n g t h by  the number of sequences t h a t w i l l be generated list  described  from  in  of  the  3.1.2.  estimating the  event  being produced.)  2» 3«3_|diting_thg_|Yent_List The  Edit  routine  must  accomplish  two  things.  mentioned e a r l i e r , i t must c r e a t e a sequence l i s t times  from  together  an  with  of the new  event  list  order  simulation  sequence l i s t  first  the  animation  times.  Second, the  timing  with t h a t of the p r e v i o u s sequence  list  list.  o b j e c t i v e i s a matter of a n a l y z i n g each event i n  to determine whether i t i s a bound of a  determine  as  with  the Compile r o u t i n e , i t must c o o r d i n a t e  and the f o l l o w i n g sequence The  with  First,  type  of  the sequence.  sequence  to  Whenever the event t h a t  bounds a r i g h t - s i d e bounded sequence i s found, the time event i s moved up and  and  a d u r a t i o n a t t r i b u t e i s assigned  of  the  i n such a  31 way  that  i.e.  at t h e bound.  duration  the sequence w i l l end e x a c t l y when i t i s supposed t o , Left-side  assigned.  bounded  Two-side bounded  sequences  only  In  a d u r a t i o n equal t o the time delay between  t h i s way, the event l i s t  i t s duration.  The  i s transformed i n t o a sequence  instantaneous  sequences  beginning or a t the end of a moving  also  which  to  must  event  list.  The f i r s t  time  information compile  occur  any  at the  sequence.  S e v e r a l problems a r e encountered i n the process o f the  list  starting  Compile r o u t i n e uses t h i s  both t o compile the moving sequences and necessary  left-side  the two events.  where each sequence has two time a t t r i b u t e s , i t s and  editing  one has to do with the i n s e r t i o n of  b i n d i n g sequences and t h e i r e f f e c t on the timing of the r e s t the  sequences.  The s o l u t i o n r e q u i r e s the E d i t  two main passes through the event l i s t . care  of  events  which  d e s c r i b e d above) .  do  not  The  reguire  the  times  first  takes  b i n d i n g sequences (as  done.  The  of a l l sequences which begin a f t e r the s t a r t of  b i n d i n g sequence must be incremented by the d u r a t i o n o f the  insertion  of  which begin before overlap as  pass  When t h e second pass encounters an event that  b i n d i n g sequence. the  of  r o u t i n e to make  does r e q u i r e a b i n d i n g sequence, two t h i n g s must be starting  a  sequences c o u l d be handled  by d e l e t i n g t h e r i g h t - s i d e bound and a s s i g n i n g t o the bound  have  In other words, t h e time s c a l e i s expanded by the  binding  the s t a r t  sequence. of  the  Secondly, sequences  binding  sequence,  and  i t due to t h e i r d u r a t i o n a t t r i b u t e s , must be processed  follows:  right-side  bounded  sequences  must  have  their  32 starting  times  incremented  sequence,  and  two-side  durations  extended  by  by  the  bounded the  duration  sequences  duration  of  the b i n d i n g  must  have  of the b i n d i n g  their  sequence.  T h i s procedure a l l o w s the d i s p l a y o f an instantaneous event as a moving seguence it  while p r e s e r v i n g a l l time r e l a t i o n s h i p s  and the other events. A  second  problem  with  the  between  requires  r i g h t - s i d e bounded seguence  an  internal  editing  coordination  beginning of the c y c l e , the starting cycle.  time  in  the  Hore s e r i o u s l y ,  bounded sequence l e f t - s i d e bound.  may  of  the  cycles.  edit  of  those sequences affected  by  may  assign  the  right-side  bound  of  The g e n e r a l c o o r d i n a t i o n problem  sequence starting  The  that  is  tail  list  c y c l e ' s event l i s t . produce  which  it  a  a  two-side  i n t o two l i s t s :  which s t a r t  in  referred  or " t a i l  the  one i s composed of  i n the time range which  other,  list,  i s handled by  time  list",  range  to  as  has the  i s composed of  which  could  be  the next c y c l e or s t a r t i n g a f t e r the l e f t bound of  list  displayed.  event  i s found very near the  an u n r e s o l v e d two-side bounded sequence. sequence  an  involves  very l i k e l y not be i n the same c y c l e as the  sequences  the  If  procedure  been completely r e s o l v e d , and the "tail"  process  range a l r e a d y processed by the p r e v i o u s  d i v i d i n g the e d i t e d sequences all  between  sent  on  to  The f i r s t l i s t the  Compile  i s saved and processed with  is  routine the  the and next  Thus i t i s a c t u a l l y p o s s i b l e f o r a c y c l e to  no d i s p l a y a b l e sequences  (i.e.  a l l t a i l ) , i n c r e a s i n g the  chances o f a v i s i b l e l a g i n the animation.  I t has been found i n  33 ANISIM  however,  that  used produce a t a i l If the the  the c y c l e l e n g t h s and d u r a t i o n s normally  l i s t o f manageable p o r p o r t i o n s .  any two-side bounded  problem may seguences.  seguences were to  be  implemented,  become more complex, depending on the nature of I f the d u r a t i o n s of such sequences are known  be r e l a t i v e l y s h o r t , then the e d i t process d e s c r i b e d above be  suitable.  To  prevent  a  two-side  bounded  be  the  duration  duration is  required. sequence  is  long,  For into  components span  length  s p e c i f i e d long enough so that the sequences generated  i n any one c y c l e normally span a range of time than  would  sequence from  r e q u i r i n g more than two c y c l e s t o be r e s o l v e d , the c y c l e would  to  can  the two-side bounded  however,  example, two be  resolved.  particular  of  graphics  or  then  i t more  of  is  seguence.  other  longer If t h i s  technique  is  p o s s i b l e t o break up the such  that  the  first  b e f o r e the remainder of the time  method the  be  sequences  displayed This  may  some  that  is  very  sequence,  dependent  on  the  and would be g e n e r a l l y  awkward f o r the E d i t and Compile r o u t i n e s to  process.  If  the  d u r a t i o n of the sequence i s not known u n t i l the r i g h t - s i d e bound is  found, then chances are t h e sequence can be re-formulated to  be a s p e c i a l r e p r e s e n t a t i o n of a s t a t e , which can be switched on and o f f with i n s t a n t a n e o u s sequences  (e.g. b l i n k i n g  item  In the case of ANISIM, the  until  it  two-side bounded (discussed  i s able to d e p a r t ) .  sequences r e q u i r e d to implement  earlier)  would  probably  be  a  blocked  transit  times  s h o r t enough t h a t the  e n t i r e sequence could be d i s p l a y e d i n one c y c l e  (i.e.  the  tail  34 i s not r e s o l v e d  until  the r i g h t - s i d e bound i s found).  2 4_The_Dis£lay_Process i  Appendix  A  describes  ANISIM was implemented. methods  used  animation  the  Some  discussion  on which  of  run  on  subroutine  Buffer  an  IBM  program, w r i t t e n mostly  370/168,  makes  use  of a b a s i c  package [ 6 ] i n order t o communicate  [14] i n  the  Adage  i n ALGOLW  with  Graphics Computer.  graphics  a  monitor  This  graphics  computer has a 6000 word b u f f e r where a word may c o n t a i n a  display  technique.  B r i e f l y , the p r o c e s s i n g  program  general  architecture  however, i s necessary f o r f u l l y understanding the  24,_1_The_Display  and  system  display  vector,  or  a  control  instruction.  The  either monitor  c o n t i n u a l l y scans t h i s b u f f e r t o generate a d i s p l a y on the Adage Model 10 Graphics D i s p l a y  Scope.  The  significant  feature  of  t h i s graphics  monitor i s t h a t i t scans the e n t i r e d i s p l a y b u f f e r  at  rate  a  fixed  (40 scans per second), a l l o w i n g  c o n t r o l of the timing o f animation seguences. instructions  top of  displayed. phase,  ANISIM, t h e  f o r the d i s p l a y o f t h e network s t r u c t u r e , and most  potential state representations, the  In  the accurate  the  a r e contained  b u f f e r , and thus a r e c o n t i n u o u s l y  The remainder of the b u f f e r ,  i s free  in a  to  contain  the  during  individual  region  at  scanned and  the  animation  d i s p l a y £rogj:ams  35 necessary f o r each animation sequence dynamic  loading  described  of  i n S e c t i o n 2.4.3.  necessity  of  of the d i s p l a y . descriptions  Note t h a t t h i s  computer, each c o n t a i n i n g  of  the  changing  Thus a much longer  f o r the t r a n s f e r . per  avoids  an e n t i r e  allows  only  need be sent  to  sequence of apparent l e s s time and  moving  the  description  sequences  the the  frames  space r e q u i r e d  a l s o , the c a p a b i l i t y of updating the  second  The  (as i n movie frames)  components  be d i s p l a y e d with c o n s i d e r a b l y  times  scheme  Once the network has been c o n s t r u c t e d ,  display buffer.  40  section).  d i s p l a y programs i n t o the b u f f e r i s  sending a s e r i e s of "frames"  t o the g r a p h i c s  may  these  (see next  of  display very  high  resolution.  2.4.2,Compiling Sequences i n t o . D i s p l a y Programs The words  d i s p l a y b u f f e r may  and  control  words.  contain One  (properly formated by the b a s i c sent to the Adage i n any  one  a  combination  of  vector  or more contiguous b u f f e r words graphics  transfer.  The  subroutines)  may  Compile r o u t i n e thus  c o n s t r u c t s a l l the d i s p l a y a b l e sequences f o r a c y c l e i n an and  sends  this  entire  be  array  batch of small d i s p l a y programs to  the  Adage, where they are e f f e c t i v e l y executed i n p a r a l l e l , much  in  the manner d e s c r i b e d Several  buffer  by  Baecker [ 2 ].  control  words are c r i t i c a l  i n making t h i s  scheme work.  For example, c o n t r o l of the scan i n any  is  through  achieved  relative  and  absolute  one  pass  jump i n s t r u c t i o n s .  36 Thus, the number of items appearing i n a queue i s a l t e r e d  merely  by changing a s i n g l e r e l a t i v e jump  static  region  at  the t o p of the b u f f e r  instruction  (see F i g u r e 7 ) .  i n s t a n t a n e o u s sequence can be achieved by an program  containing  a  f o l l o w i n g b u f f e r word location  buffer  command  (the new  i n the b u f f e r .  in  jump  the  T h i s type of  animation  word  which  command)  to  display  moves the a  specified  I t i s d e s i r a b l e then t o compile such a  program that executes the move i n s t r u c t i o n at e x a c t l y the time,  and only once.  A l t e r n a t i v e l y , a moving sequence c o n s i s t s  of b u f f e r words which must begin being time  and continue to be scanned  scanned  (To  the  f o r each  dimension.  proper  number of scans  move  a  box  l i n e , the v e c t o r s f o r the box are preceded  two c o n t r o l words consist  at  fora specified  before they are f i n a l l y skipped a g a i n . straight  right  These  in a  by a s e t of  control  words  o f a command t h a t a d j u s t s , by a s m a l l amount each  scan,  the v a l u e of t h e f o l l o w i n g word, which w i l l be t h e c o n t r o l  word  that d i s p l a c e s t h e v e c t o r s along an a x i s . ) T h e r e f o r e , e i t h e r type o f d i s p l a y program must s t a r t with a set  of " t i m e r words" which a r e keyed  these timer words a r e a l l compiled starting  time  displaying key  of  the  first  words  used  in  counter which i s t e s t e d a t each  if  with times  sequence  In a d d i t i o n ,  relative  zero.  the  timers  scan  t o the  i n t h a t batch t o begin  ( i . e . the e a r l i e s t sequence i n the c y c l e ) .  control  already  to the scan.  and  The  two  each have an i n t e g e r decremented  i f not  In one case, the f o l l o w i n g word i s skipped o n l y  the counter i s zero, and i n the other case i t i s skipped only  37  , I! I?..-;111 D I tern 20 I tern 19  B u f f e r V/ords f o r One Queue (Create* When the Queue wa s Defined)  } Network St ructu re  1 tern *-  —  1 tern 1  —  J  r T i me r Sequence to D i s p l a y ^ Owe I tern in Queue  Words  Display Programs  1QVE to QJ JUMP 5 9  FIGURE 7: D i s p l a y Program t c A l t e r the State  of a Queue  38 if  the counter i s not yet zero.  following  word  is  a  jump  In  the  relative,  the l a t t e r case, the counter  sequence. of  the  scanner),  once  The scan  execution  of  the  duration  ( i . e . completed  display  buffer.  animation time, the speed  control.  For  This  system  When mapping  The  simulation  manner  i f the  in  f o r both  This factor i s  user  and  80  animation  of  r o u t i n e procedes  i n the E d i t r o u t i n e .  ANISIM, when e d i t i n g the event l i s t ,  animation time o r d e r . and  through  compiling each d i s p l a y program i n t o an a r r a y ,  the event r e c o r d s around  the t a i l .  program  f a c t o r i s s e t to t e n , then an  which the Compile  leads t o an a d d i t i o n a l problem  determined  time  (scans), or two seconds.  the seguence l i s t ,  version  single  of the d i s p l a y can be c o n t r o l l e d  variable  example,  a  b r i n g s up one a d d i t i o n a l  i n t e r v a l o f e i g h t s i m u l a t i o n time u n i t s w i l l l a s t time u n i t s  i n one pass  i s always  by m u l t i p l y i n g a l l times by a s u i t a b l e " f a c t o r . " a  the  ( f i g u r e 8b).  of the Edit routine.  a v a i l a b l e as  of  timer word i n order t o p r o h i b i t any  b a s i c animation time u n i t , then,  requirement into  the  Likewise,  i t i s allowed t o execute, moves a jump  r e l a t i v e on top of the f i r s t subsequent  i f the  ( f i g u r e 8a).  becomes  An i n s t a n t a n e o u s seguence  case,  the counter becomes the  number of scans before a seguence begins in  former  An  earlier  a c t u a l l y moved  i n order t o always maintain the l i s t i n  In t h i s way, the  designated  tail  could  be  easily  by a s i n g l e p o i n t e r t o the s t a r t of  However, i t i s not  uncommon  for  two  instantaneous  Starting  T i me  SKIP next word counter reaches  afte r zero  JUMP  SKIP- n e x t w o r d un t ? 1 counter reaches zero  Du r a t i o n  JUMP  Actual Seouence  a.  Starting  Timer f o r a Sequence  Time  SK!P  With a  n e k t word  counter  reaches  Duration,  after zero  JUMP M O V E t h e f o i l O K i n g wo r d tc the SKIP word location  JUMP  Actual Sequence  b.  Timer f o r an Instantaneous Sequence,  FIGURE 8: D i s p l a y Program  Timer Words  40  sequences in  to occur at the same animation time  the g e n e r a l case, r e q u i r e s them  to  a fact  appear  in  the  which, display  b u f f e r i n e x a c t l y t h e same order as t h e i r a s s o c i a t e d events were processed  in  gueue/server processes the  the  simulation.  system  with  a  state  of  example, ten.  consider  The  a  simulation  both a d e p a r t u r e from and an a r r i v a l to the system at  same time and i n t h a t o r d e r .  remain t e n . Compile  For  The s t a t e o f t h e system should  But, due t o the r i g h t - s i d e  routine  will  process  bounded  the  arrival  sequence,  the  first.  The  i n s t a n t a n e o u s sequence t h a t changes the s t a t e to t e n precedes i n the  b u f f e r t h e sequence that changes the s t a t e t o  after  the  scan,  reasonable s o l u t i o n that  the  the  state  w i l l appear to be nine.  was to r e - w r i t e the E d i t  simulation  order  list  are  required  in  from the sequence  2. _.3_Dquble_ Buff er Once the t a i l compiled  into  routine  Two  passes  The o n l y in  through  order  the  order to i d e n t i f y and s e p a r a t e t h e t a i l list.  ing i s determined, and the d i s p l a y sequences  are  an a r r a y , the problem remains of how t o send the  array to t h e Adage b u f f e r and s t a r t d i s p l a y i n g the new in  Thus,  of events i s always maintained and  only the time parameters a r e e d i t e d . list  nine.  p e r f e c t c o - o r d i n a t i o n with  the  sequences  of  the  sequences previous  cycle. First  of  a l l , the a v a i l a b l e b u f f e r space i s d i v i d e d  into  41  two  b u f f e r s of equal l e n g t h .  new  set  of  sequences  finishes i t s display. very  The b a s i c scheme i s to send  up  a  as soon as the o l d e r of the two b u f f e r s Again, t h i s scheme i s p o s s i b l e due  to  a  u s e f u l b u f f e r c o n t r o l word, c a l l e d a '•Notify", which works  as f o l l o w s .  When the Compile r o u t i n e  has f i n i s h e d preparing the  new sequences i t i s s u e s a Bead o p e r a t i o n  t o the Adage  computer.  Each b u f f e r i n t h e Adage has one a d d i t i o n a l timer sequence i n i t that  executes  a  Notify  after  the duration  expired.  The N o t i f y causes the g r a p h i c s  interrupt  which i n e f f e c t cancels  The  program i s then allowed t o  sequences up t o the Adage. yet i s s u e d are  set  o f that c y c l e has  monitor to i s s u e an I/O  the pending Bead from the 370.  proceed  with  sending  the  new  I f , f o r some reason, the 370 had not  a Bead when the N o t i f y i s executed, the c o n t r o l words up  so  that  the  f i n i s h e d b u f f e r w i l l continue to be  scanned and thus keep i s s u i n g a N o t i f y u n t i l i t i s s u c c e s s f u l . Now t h i s newly loaded b u f f e r must be co-ordinated sequences  in  the  simple example i n assumed  to  be  currently figure  five  9.  displaying The  buffer.  internal  sequences.  the  Consider the  cycle  Suppose  with  that  length cycle  is  n is  d i s p l a y i n g i n b u f f e r one and c y c l e n+1 has j u s t been loaded i n t o b u f f e r two.  Initially,  around b u f f e r two.  the scanner i s u n c o n d i t i o n a l l y  Note t h a t when the t a i l of the sequence l i s t  of c y c l e n was determined, i t was whose  starting  sequences from sequences  branching  times cycle  were n+1  in  composed the region  ( i . e . sequences  may s t a r t b e f o r e that t a i l  region  of  a l l sequences  which might e  and  contain  f).  but o v e r l a p  Other  with i t  42  Cycle n S i mu 1 atj^on Range  r  ~~~  —i— 500  Cycl e n E d i t Range  An i ma t i on T I me  -4600]  . t.30 >  1001  900  C y c l e n+1 E d i t Range  C y c l e n+1 S i m u l a t i o n Range  Sequence L i s t Cycle n C y c l e n+1  FIGURE 9 :  Buffer  a,b,c d,e,z,f,h,  Co-ordinaticn  Tail .d  i  /  C  List /  f .  j,k  43 due  to t h e i r durations  necessary for the  f o r the  as  But i n s t e a d  T h i s i s handled by  The  maximum  begin d i s p l a y i n g . starting  seguence two  simultanegusly  actually  including  length  of  cycle  n*s  (time 630  tail is  i n b u f f e r one.  i n figure  9).  This  special  the branch around b u f f e r two and a l l o w s i t to Of course, the sequence i n b u f f e r two with time  of  zero  i s simply  (sequence d) from c y c l e n.  that  a  pseudo-tail  Thus, b u f f e r one and b u f f e r  a r e d i s p l a y i n g s i m u l t a n e o u s l y from time 630 t o time 730. At  send  up c y c l e n+2 to b u f f e r one.  c y c l e s i s now complete.  the 370  The c o - o r d i n a t i o n  removed  between  The f a c t t h a t the o l d c y c l e expects the  new c y c l e t o be loaded and ready t o s t a r t as soon as the is  in  display  time 730, c y c l e n executes the N o t i f y command, a l l o w i n g to  itis  of that sequence, another seguence i s compiled to be  removes  relative  words,  i f seguence d were t o be d i s p l a y e d  executed at that time seguence  other  the l a s t sequence which s t a r t s before the " r e a l "  (seguence d) . assigned  In  two b u f f e r s to be d i s p l a y i n g  a short p e r i o d . tail  (seguence d).  branch  i s , i n f a c t , the reason why a l a g i n the animation  w i l l be seen i f the o l d c y c l e has a very short  display.  2i5_The_Overall_Visual_Effect It  has been shown i n t h i s chapter why i n t e r n a l  necessary  and  cycles  are  how the e d i t procedure transforms the event  list  i n t o a seguence l i s t and a t a i l  list.  The mapping of s i m u l a t i o n  time i n t o animation time has been d e s c r i b e d , a  carefully  co-ordinated  double  buffering  and the d e t a i l s scheme  of  have been  44  e x p l a i n e d f o r t h e l o a d i n g i n t o t h e g r a p h i c s computer, o f d i s p l a y programs  compiled  described  in  implement,  from  the  sequence  list.  techniques  t h i s c h a p t e r were somewhat p a i n f u l t o d e v e l o p a n d  but  classification  they  are  actually  quite  logical.  o f sequences and t h e e d i t procedures  enough f o r o t h e r a p p l i c a t i o n s .  Many o f t h e  are  specific  quite  The  dependent  on  the  are general  display  hardware  techniques and s o f t w a r e  a v a i l a b l e , b u t make e f f i c i e n t u s e o f t h e s e r e s o u r c e s . test  is  effect  in  the  q u a l i t y of the animation.  i s quite impressive.  continuous succeed  manner a n d  i n adding  departure  Consider event  do  aids,  The o v e r a l l  proceeds f o r the  exist,  however,  the sequences generated  move  sequence  system.  The  The  event  i s processed  Compile  animation additional  the  development  sequence,  s e r v e r , w e r e added s u c h departure  of  with  move s t a r t e d .  a  these when  a  i n E d i t as a  generates  that  generates  t h e new s t a t e o f t h e queue.  the  would l o o k e v e n s m o o t h e r binding  part,  the server to the  routine  T h i s method i s a n a r b i t r a r y s i m p l i f i c a t i o n in  most  and i f t h e queue i s n o t empty, i t a l s o  an i n s t a n t a n e o u s sequence t o d i s p l a y  early  visual  i n a smooth,  by ANISIM  b i n d i n g s e q u e n c e , due t o t h e d e s i r e d move f r o m new q u e u e / s e r v e r  real  IV) .  still  occurs.  The  t o make t h e s i m u l a t i o n e a s y a n d  (see Chapter  problems  techniques.  visual  enough r e a l i t y  i n f o r m a t i v e t o watch Some  the  The a n i m a t i o n  The  t h a t was  program.  and move  decided  on  The f l o w o f t h e  more  realistic  from  the  i f an  queue t o t h e  t h a t i t s t a r t e d a t t h e same t i m e a s t h e Two a d d i t i o n a l i n s t a n t a n e o u s  sequences  45  would be r e q u i r e d t o switch o f f , then on, the symbol of the item i n the s e r v e r . generates  two  In  general,  it  moving sequences,  seems  that  when  one  event  the E d i t r o u t i n e should make a  separate copy of the event r e c o r d so that both the seguences be e d i t e d independently. be  In t h i s case, a b e t t e r s o l u t i o n  t o always a s s i g n a d u r a t i o n to the new  than or equal t o t h a t of the Compile  program  departure  sequence t h a t i s l e s s  sequence  sequences  the  same.  c e r t a i n events t o t h e Compile v a r i o u s parameters The  real  indicates.  a t the same  time.  frame  the  between  r o u t i n e , which  must  problem  In a way,  is  end.  In  this  the animation does c e r t a i n l y  of the s i m u l a t i o n .  animation, depending them.  states  of  The  the  beginning  of  time  the  Two  on how  between  distort  the  events which occur w i t h i n a or may  not do  so  many b i n d i n g seguences come every  pair  of  (timewise)  a c c u r a t e , as does the a c t u a l p r o g r e s s i o n  network.  T h i s type of •»distortion" r e a l l y remembers  that  a binding sequence i s the "same time" as the  It would be n i c e t o  allowing  examine  more b a s i c than the above s i t u a t i o n  seems t o be i n s i g n i f i c a n t , then, as long as one the  the  of the event r e c o r d anyway.  adjacent events remains of  let  T h i s l e a v e s t h e p e c u l i a r i t i e s of  short time of each other i n the s i m u l a t i o n may in  and  the E d i t r o u t i n e can t r e a t a l l event c l a s s e s which generate  binding  time  would  use the i n f o r m a t i o n i n the s i n g l e event r e c o r d  t o generate both b i n d i n g sequences way,  can  try  two b i n d i n g sequences  to  reduce  this  distortion  by  to have the same s t a r t i n g time i f  they correspond t o the same event time i n the s i m u l a t i o n .  It i s  46 easy  to  require  find that  certain  examples,  the E d i t r o u t i n e  however, o f s i t u a t i o n s  increment  the s t a r t i n g times  which even  of  binding  s e g u e n c e s whose e v e n t s a r e s i m u l t a n e o u s w i t h t h a t  the  binding  sequence b e i n g p r o c e s s e d .  of  47 III. An i n t e r a c t i v e unless  special  between the user Sproull  INTERACTIVE FEATURES  modelling  system i s o f l i t t l e  and  the  system.  three  main  According  qualities  program, 2) consistency, language  and  in  the  overall  dialogue,  qualities,  and  distinguishes  simulation  control  Newman  other  between  and  the  The  construction  following  important the  actual  and  of o p e r a t i o n of the o f the  e r r o r r e c o v e r y , and 3) economy from  the u s e r ' s and program*s s t a n d p o i n t . these  to  t h a t the programmer  should attempt t o o p t i m i z e a r e 1) s i m p l i c i t y  of  use  a t t e n t i o n i s paid t o the design of the d i a l o g u e  [ 1 6 ] , the  command  practical  model  discussion  features  overall  both  of the  system  construction  and and  modification.  3 1_S i m u 1 a t i o n_M o n i t o r i n a _ a n d _ C o n t r o l  3» j|»l_S;stem_control ANISIM p r o v i d e s a simple,  but e f f e c t i v e ,  f o r t o p l e v e l i n t e r a c t i o n with the system. level  are  entered  on  the  to the g r a p h i c s t e r m i n a l .  explicitly,  rather  inputs.  being  the user.  which i s  Each command i s d e f i n e d  implicit  in  the  sequence of  Furthermore, i t i s easy f o r the programmer to  commands t o the system, although  language  A l l commands a t t h i s  IBM 3270 D i s p l a y Terminal  l o c a t e d next  than  command  add  new  no e x t e n s i b i l i t y i s provided to  The o b j e c t i v e throughout t h e system has been t o allow  48 the  user  maximum  freedom  of  control  o p e r a t i o n s , wherever f e a s i b l e . reliance  the  flexibility  sequence  of  reduces  the  on f r u s t r a t i n g questions which must be answered by  user, but  places  attempts  more  emphasis  on  error  recovery  to enter i n a p p r o p r i a t e commands or d a t a .  i n t e r e s t of s i m p l i c i t y , system  This  of  or  the  u n l e s s otherwise  a  minimum  simulation  is  of  when  about  (on e i t h e r  help  requested.  shown i n f i g u r e 10,  list  reminder of t h e i r use.  used  commands.)  applicable.  In  The  HELP and  a l l available  brief  MOBHELP commands,  commands  along  where the user does not  (e.g. d i s p l a y  without  can  be  default found  by  value)  of  entering  s p e c i f y i n g any arguments.  a  on  the  simulation.  The  system  The  current  or  display  For example, e n t e r i n g "CYCLE" values  of  the  options s t a t e and  for  printing  four  command "CYCLE * * * 100"  change the l i m i t on the number of t e r m i n a t i o n s t o 100 and out t h e four v a l u e s .  and  the a p p r o p r i a t e command  w i l l r e s u l t i n a p r i n t out of the c u r r e n t limits  yet  parameters),  the number of mandatory i n p u t s to a minimum.  parameter  a  a d d i t i o n , d e f a u l t values are used whenever  T h i s i s u s e f u l i n cases  (and thus the  with  (MOBHELP l i s t s the l e s s f r e q u e n t l y  know what value i s a p p r o p r i a t e  value  program  keep the user aware of what o p e r a t i o n s are a v a i l a b l e  and what responses are r e q u i r e d .  keeps  the  terminal)  In order t o a i d i n a c h i e v i n g these o b j e c t i v e s , the must  he  Also, i n the  information  displayed  the  will print  The PBIHT command a l l o w s a s e l e c t i o n of out  full  or s p e c i f i c d e t a i l s about  the s t a t i s t i c s of the s i m u l a t i o n .  The  TBACK  17 the  command  49 # $run walk:anisim.o+dhir:camadd+agt:basic par=size=150k # EXECUTION BEGINS ARE YOU USING THE ADAGE? TRUE OR FALSE false ENTER COMMAND OR HELP help BUILD TO BUILD OR MODIFY THE ACTIVE NETWORK NEWNET TO BUILD A NEW NETWORK EDITNET TO USE BUILD FOR SMALL CHANGES TO A NETWORK GO N TO SIMULATE AND TO DISPLAY THE ACTIVE NETWORK FOR N TIME UNITS FROM CURRENT TIME FASTER TO SPEED UP THE DISPLAY SLOWER TO SLOW DOWN THE DISPLAY SCAN TO INHIBIT MOVING SEQUENCES DESPEED TO RESTORE THE DEFAULT SPEED NODISP TO INHIBIT DISPLAY UNTIL NEXT GO COMMAND RESET TO RESET SIMULATION CLOCK AND STATS SAVE TO SAVE THE NETWORK RESTORE TO RESTORE A SAVED NETWORK LABEL TO DISPLAY LABELS AT EACH NODE CYCLE TO CHANGE SIMULATION LIMITS #OF TIME UNITS, #OF GEN,#OF ENTRIES,#OF TERM PRINT I TO DUMP RESULTS, FOR CODES SEE DOCUMENT 20 GIVES STATE, 1 STATS, 13 PARAMS, 7 QSTATS, ETC MORHELP ADDITIONAL COMMANDS STOP OR END TO TERMINATE EXECUTION ENTER COMMAND OR HELP morhelp UNLABEL TO REMOVE ALL NODE LABELS FACTOR DEFAULT=10; INCREASE TO SLOW DISPLAY DECREASE ONLY IF USE RESET INTERCY DEFAULT=15; INCREASE WHEN DISPLAY IS FAST SCALE TO CHANGE THE SCALE AND 'SCALER' DUR TO CHANGE THE 4 SEQUENCE DURATIONS TRACK I TO SET DEBUG FLAGS ON. 0=<I<7, SEE DOCUMENT PLOT S TO GET A HARDCOPY OF ADAGE DISPLAY S IS MAXIMUM PLOT SIZE, IN INCHES STOP OR END TO TERMINATE EXECUTION ENTER COMMAND OR HELP stop 000.03 SECONDS IN EXECUTION # EXECUTION TERMINATED  FIGURE 10: Commands A v a i l a b l e  50 turns  on  detailed  one  of  six  debug  t r a c e s of the s i m u l a t i o n ,  In the case of both PRINT and can  be  flags  used  to  i n the  edit,  program, p r o v i d i n g  and  compile  routines.  TRACK, an o p t i o n a l second argument  route the output to a d i s k f i l e of the  user's  choice. Most t o p - l e v e l commands r e g u i r e no the  user.  The  exceptions  further  to t h i s are the  may  and  the SAVE, RESTORE, PRINT, and  require  dialogue  TRACK  already  operating point  The  user  system by  he  has  may  also  access  temporarily  attention to  any  using  the MTS  the user  to  interrupt.  the At  disk f i l e s created  program, as w e l l as run-time s t a t i s t i c s . then be r e - e n t e r e d ,  and  s t o r e the c u r r e n t network  return  i s s u i n g an  full  NET1",  e x i s t s , then the program must ask  i t i s a l r i g h t to empty the f i l e and it.  which  f u r t h e r c l a r i f i c a t i o n of f i l e - h a n d l i n g o p e r a t i o n s .  t h e f i l e NET1  on  (section  commands,  For example, i f the user t e l l s the program to "SAVE  if  from  BUILD, NEWNET, and  EDITNET commands, which envoke an e n t i r e l y new 3.2),  response  The  MTS this  by  the  ANISIM program  may  SRESTART command.  S»j»2_Simulation_Monitoring Two graphics  of the system  most are  important the  fast  advantages turnaround  g r a p h i c a l d i s p l a y of complex i n f o r m a t i o n . an  equally  of and  an  interactive the  Smith [22]  important advantage the c a p a b i l i t y t o allow  to t r y " v a r i o u s  immediate lists the  as user  a t t a c k s " on a p a r t i c u l a r problem during a s i n g l e  51 s e s s i o n with the computer, i n two  ways.  several  The  user  versions  with ANISIM, t h i s can be i n t e r p r e t e d  should  be  of a model, and  able  to  description  parameters, but a l s o  of such i n f o r m a t i o n .  a l l o f the d e t a i l s of the capacities,  and  I t may  model on  routing  data.  d e s i r a b l e , both from a s i m p l i c i t y and  and  The  to  each  including  however,  the  rates,  would not  demand.  For  symbol i n the network, a l a b e l i s c r e a t e d  labels  a l l s t a t i s t i c s are p r i n t e d on  the  view.  example,  3270 t e r m i n a l  entities.  LABEL command t o a c t u a l l y d i s p l a y the l a b e l s at each symbol  (see  The  labels  b u i l d i n g or animating buffer. and  can  and  the  11).  statistics,  the  use  figure  to i n t e r p r e t these  be  internally.  are used to r e f e r e n c e s p e c i f i c s i m u l a t i o n  user, i n order  the  be p o s s i b l e to d i s p l a y  an economy point of  make other data a v a i l a b l e on  At pr es en t, the  access  i s i n s t e a d d e s i r a b l e to keep a minimum of i n f o r m a t i o n on  screen for  quick  the screen, This,  the  ways.  f i r s t g o a l r e q u i r e s not o n l y the c a p a b i l i t y t o e d i t  model s t r u c t u r e and  It  simulate  he should be able to view  r e s u l t s of a s i m u l a t i o n i n s e v e r a l d i f f e r e n t The  quickly  are a u t o m a t i c a l l y removed during  of the model, t o save space i n  the  the  Adage  Other i n f o r m a t i o n a v a i l a b l e on demand i n c l u d e s the r a t e  c a p a c i t y parameters, obtained  by the PRINT 13 command.  The  d i s p l a y of r o u t i n g assignments poses some d i f f i c u l t problems and has not yet been attempted.  The  user should  try  to  construct  the network so that i t s g r a p h i c a l r e p r e s e n t a t i o n conveys much of the  routing  access  information.  S e c t i o n 3.2  d e s c r i b e s an a d d i t i o n a l  to c u r r e n t parameters while a c t u a l l y e d i t i n g the network.  S03  501  FIGURE  502  •SV3J  11: L a b e l l e d  Entities  53 The  second g o a l c i t e d a b o v e — t h a t  of p r o v i d i n g s e v e r a l ways  of a n a l y s i n g the output of the s i m u l a t i o n — h a s certain  extent.  simulation proceed  A  NODISP  (with the  quickly  GO  with  met  to  command, given b e f o r e s t a r t i n g  command),  allows  no animation.  d e s i r e d to watch the animation  the  simulation  a the to  T h i s i s u s e f u l when i t i s  a f t e r the model has advanced to a  more steady s t a t e .  The  watch the animation  from the beginning.  stops,  been  user i s not r e q u i r e d  in  this  case  to  Whenever the s i m u l a t i o n  the c u r r e n t s t a t e i s d i s p l a y e d and  the PRINT command  be used to f i n d c e r t a i n standard s t a t i s t i c s such  as the  may  average  and maximum gueue l e n g t h s and b u f f e r s i z e s , the average t i m e - i n system  of  items  a r r i v a l s and items  between  s o u r c e - s i n k p a i r s , and  t e r m i n a t i o n s at  are an important  each  source  and  the number of  sink.  aspect of gueuing networks.  v e r s i o n of ANISIM might allow s e v e r a l o p t i o n s f o r of  blocked  arrivals  and  departures.  t h a t blocked a r r i v a l s are l o s t and  disappear)  Blocked  An extended the  handling  The e x i s t i n g p r o t o c o l i s  (they move halfway  to  the  and blocked departures remain i n the s e r v e r  attempt t o depart again a f t e r waiting the u s e r - d e f i n e d time".  be  available giving  number of l o s t a r r i v a l s and the number  of  blocked  RESET  statistics,  If  statistics  command  must  automatically  is  the  departures.  i s used to s e t the c l o c k to zero, r e s e t a l l  and r e s t o r e the i n i t i a l  NODISP  and  "re-send  also  The  Thus,  gueue  not  accompany  random number  specified, the  then  simulation,  v a l u a b l e i n f o r m a t i o n about the model.  Two  the  seeds.  animation  will  providing additional areas of  interaction  54  are  essential  i n order t o help the user monitor the animation:  s p e c i f y i n g how much to d i s p l a y , and From  any  long  to  display i t .  p a r t i c u l a r s t a t e , the l e n g t h of the s i m u l a t i o n can be  c o n t r o l l e d i n one o f three ways. without  how  the  I f the  GO  command  argument, the s i m u l a t i o n w i l l proceed  is  given  either  until  one o f t h e l i m i t s i n the CYCLE command i s exceeded o r u n t i l user  hits  then  the  attention interrupt.  i t s v a l u e i s the  number  s i m u l a t i o n i s t o proceed,  of  provided  the  I f the argument i s g i v e n ,  time  units  f o r which  the  no c y c l e l i m i t i s exceeded or  interrupt issued. If  the  user  wishes  to  monitor  the  s i m u l a t i o n , not i n  d e t a i l , but t o get a g e n e r a l f e e l f o r the p r o g r e s s i o n of of  the  model,  then he may use the SCAN command.  i n h i b i t s moving seguences by making a l l d u r a t i o n s the  animation  factor  i s a l s o decreased  faster  that  state.  display  of  would,  otherwise,  The f o l l o w i n g s p e c i a l  envoked by instantaneous  get  seguences,  events.  SCAN  mode  i s slightly  I t i s especially useful slowly  state  build  up to a  representations  (The  less  i n , and  the  in a  congested are  also  sequences and thus appear i n SCAN mode:  the b l i n k i n g of a f u l l queue or b u f f e r due to an item to  Thus,  to watch, but provides a quick, c l e a r way o f observing  the g e n e r a l trends of the model. model  zero.  and the i n t e r n a l c y c l e i s made longer,  as d i s c u s s e d i n Chapter II.) The pleasing  T h i s command  time frame i s not expanded by b i n d i n g  resulting i n a considerably  states  b l i n k i n g o f a blocked  attached which p o i n t s t o the f u l l  queue or  attempting  item with an arrow  buffer  (see f i g u r e  55 12} . Moving  sequences,  although  artificial,  v i s u a l c o n t i n u i t y between s t a t e s . basic  variables  each sequence. of  each  which  The user has  c o n t r o l the speed  Briefly,  provide v a l u a b l e t o the  of the d i s p l a y and of  the DDR command c o n t r o l s  the d u r a t i o n  type of sequence, the FACTOR command c o n t r o l s t h e time  c o n v e r s i o n f a c t o r e x p l a i n e d i n s e c t i o n 2.4.2, command  controls  the  length  number of seguences generated command may be used  not  have  of  and  the INTERCY  the i n t e r n a l c y c l e  each c y c l e ) .  (i.e.  the  For example, the DUR  t o shorten the d u r a t i o n o f b i n d i n g sequences  with r e s p e c t to t h e other should  access  to  sequences.  use  FACTOR  to  The  c o n t r o l the speed  animation, f o r two reasons: 1) i t i s not a d j u s t t h e i n t e r n a l c y c l e length  inexperienced  always  clear  user of the  how  to  (INTERCY) to compensate f o r the  change i n speed, and 2) i f the s i m u l a t i o n i s not RESET, the t a i l of  the  sequence  list  using  the o l d f a c t o r w i l l no longer be  c o o r d i n a t e d with t h e new sequence l i s t . set  Thus, ANISIM p r o v i d e s a  of "speed" commands which make t h e necessary changes  smooth t r a n s i t i o n t o a f a s t e r or slower speed. of  seven  standard  speeds a r e a v a i l a b l e ,  for a  Basically, a set  three slower than the  d e f a u l t and t h r e e f a s t e r . No p r o v i s i o n has been made t o s t o r e animation disk  for later  viewing  without  T h i s would probably be more saved  model.  sequences  on  s i m u l a t i n g , as i n DYNIS [ 2 0 ] .  expensive  than  r e - s i m u l a t i n g the  One f e a t u r e t h a t can a i d i n the quick r e - c r e a t i o n  56  -o  FIGURE 1 2 : D i s p l a y cf Blocked  Items  57  of a  previously  powerful  displayed  design  tool,  simulation state. forward  from  In  a  sequence,  as  i s the a b i l i t y this  given  way,  well  as  provide  a  to save and r e s t o r e a  t h e modeller  s t a t e s e v e r a l times,  can  simulate  experimenting  with  v a r i o u s parameter v a l u e s . Extensions  which would p r o v i d e a d d i t i o n a l ways o f a n a l y s i n g  s i m u l a t i o n r e s u l t s are d i s c u s s e d i n Chapter V.  3.2 Model Design The  and M o d i f i c a t i o n  BUILD, NEWNET,  and  EDITNET  commands  a l l cause the  program t o enter a d i s t i n c t phase with a d i a l o g u e of i t s own f o r constructing  o r modifying  the same r o u t i n e , although  a network.  A l l t h r e e commands envoke  EDITNET appears somewhat d i f f e r e n t t o  the user, due t o the s e t t i n g of an " e d i t f l a g " i n the program. Only  NEWNET  will  any e x i s t i n g a c t i v e network  RESTORE* d  or  Otherwise,  BUILD and NEWNET a r e i d e n t i c a l .  A  newly  destroy  considerable  constructed  amount  network)  q u a l i t y o f t h e d i a l o g u e becomes very  or  I t i s here t h a t the  important.  The  task  of  input must not become awkward and t e d i o u s and a t r a d e -  o f f must be made between a l l o w i n g the user input  proceeding.  of i n f o r m a t i o n must be provided t o  the system i n the network d e f i n i t i o n phase.  entering  before  (i.e. a  leading  him  through  a  to  decide  what  to  f i x e d sequence o f i n p u t s to  58 ensure a p r o p e r l y  defined  provide  to  feedback  mode.  Also,  i t i s important  to  the user i n order that he may v e r i f y what  has been entered. Opon entry i n t o the b u i l d  phase, then, a l i s t  of  possible  commands, or "modes", a r e d i s p l a y e d on the g r a p h i c s scope i n the recommended list  order  of  use (when b u i l d i n g a new network).  (see f i g u r e 13) i s c a l l e d  a  "MENU",  and  the  This  prompting  message "MODE?" i s a c t u a l l y b l i n k i n g i n order to i n d i c a t e to the user  that  i t i s time to s e l e c t a mode by p o i n t i n g t o i t s name  with t h e l i g h t p e n . control.  At t h i s point the user s t i l l  has freedom  He may e n t e r or r e - e n t e r any mode a t any time.  of  Smith  [22] c a l l s t h i s " i n t e r a c t i o n by a n t i c i p a t i o n " , i n the sense t h a t all  possible  desires  possibilities  are  of  a  presented  r a t h e r than specify;, thereby rather  than  reguiring  user  remember  allowing  the  a  simple  user  phase, the program  helps  may  position  A f u r t h e r convenience  the  In h i s book, Design short-term  The important  thing i s that  memory He  the modes  subtasks.  of Man-Computer Dialogues  problem s o l v i n g and c r e a t i o n .  is  t h e menu anywhere on the s c r e e n ,  break up a lengthy task i n t o e a s i e r , d i s t i n c t  that  lightpen h i t  which modes he has a l r e a d y entered by d i s p l a y i n g  using a p a i r of d i a l s .  states  These  a c o r r e c t l y s p e l l e d a l p h a b e t i c command.  these names at a d i f f e r e n t i n t e n s i t y . that  anticipated.  as c h o i c e s f o r the user to s e l e c t  On any given entry i n t o the b u i l d user  are  , Martin [ 1 3 ]  i s heavily u t i l i z e d further  states  i n complex  that  humans  SYMBOLS LINKS ASSIGNQ FIRST QUEUES ASSIGN BUFF ROUTES CAPACITIES FLOW SERVICE TIMES DONE  FIGURE  13:  Menu f o r Network Design  60  tend  to  organize  completed.  activity  into  "clumps"  t h a t can be e a s i l y  Thus, t h e modes i n ANISIM are designed  so  that  the  user need only worry about a f a i r l y simple or d i s t i n c t aspect of the  network at one time.  the  modes  act  checkpoints".  as  a  The  In f a c t , when b u i l d i n g a new network,  series  of  termination  Martin's  of  p r o v i d i n g "mental c l o s u r e " — i . e . the that  he  has  completed  that  confused or makes a mistake, mode and s t a r t over When  working  i f he  user  a  can  assure  of the i n p u t .  he need only r e - e n t e r  in  a  as  a  I f he gets the  of him next,- or even which  i s at a l l d i s t r a c t e d .  current  response  reminder  i s expected.  rather  might  mode  he i s  To a v o i d t h i s s i t u a t i o n , the kind  of  mental  cue  T h i s prompt, o f t e n a one or  two word message d i s p l a y e d a t the bottom of the only  himself  p a r t i c u l a r mode, the user s t i l l  program always prompts t h e user with some whenever  mode can be regarded as  from t h a t p o i n t .  f o r g e t what i s expected in,  phase  a  "conversational  screen,  serves  than a d e t a i l e d e x p l a n a t i o n .  b l i n k i n g of symbols i s used to s i g n i f y which p a r t i c u l a r  The  entities  of t h e network a r e i n q u e s t i o n . Proceeding through t h e menu, then, a t y p i c a l d i a l o g u e would begin by e n t e r i n g the SYMBOLS mode.  The menu d i s a p p e a r s  all  The c r o s s h a i r s and a s e t of  modes)  and c r o s s h a i r s appear.  (as i n  f u n c t i o n buttons are used  to p o s i t i o n and s e l e c t any one of the  five  An e n t r y  a v a i l a b l e symbols.  the data base f o r the  (ALGOLW r e c o r d ) i s c r e a t e d i n  corresponding  simulation  entity.  Two  61 symbols r e q u i r e i n t e r a c t i o n beyond the i n i t i a l s e l e c t i o n : queues require  a  second  (angle) o f t h e t a i l are  usually  crosshair  s e t t i n g to d e f i n e the o r i e n t a t i o n  of the queue (see f i g u r e  later  be used from  around two queues  be assigned t o t h e b u f f e r e n t i t y .  which  The l i g h t p e n may  screen  and the data base.  "link"  A s p e c i a l f u n c t i o n button  t e r m i n a t e s SYMBOLS mode, causing the re-appearance  of  Figure  i n SYMBOLS mode i n order t o d e l e t e a symbol or a  the  LINKS  buffers  sketched, although a d e f a u l t i s a v a i l a b l e .  15 shows a b u f f e r symbol being sketched will  14), and  of the  menu.  mode a l l o w s the user to use t h e l i g h t p e n t o connect  pairs  symbols.  These l i n e s are v i s u a l a i d s  to  help  portray  network s t r u c t u r e , but no entry i s made i n the data base. the  intensity  of  the  links  terminated by a l i g h t p e n h i t on the prompting The  and  next f o u r modes (ASSIGNQ, FIRST  ROUTES)  are  necessary  ASSIGN  BUFF,  t o make a s e r i e s o f assignments of of  the  network.  each case, both the programmer and the user d i s t i n g u i s h  entities  graphically,  rather  than  l a b e l s or e n t e r i n g numbers i n matrix this  approach  doing."  list  i s that  the  these  t r y i n g t o r e f e r to them by form.  The  user can a c t u a l l y  There i s no problem o f i d e n t i f y i n g  with symbols. the  The mode  message.  QUEUES,  s i m u l a t i o n e n t i t i e s t h a t d e f i n e the s t r u c t u r e In  Also,  i s separate from the r e s t of the  network and can be turned down by the t w i s t o f a d i a l . is  the  advantage  of  "see what he i s  labels  or  numbers  For example, i n ASSIGNQ, the program goes through  of s e r v e r s t h a t has been c r e a t e d and f o r each s e r v e r ,  b l i n k s t h e symbol and prompts the user  to  designate  a  gueue.  62  o  o  T A I L ORIENTATION ? FIGUfils 14: S p e c i f y i n g  Queues  FIGURE 15: B u f f e r  Sketching  64 The  user  need  only  point  with  the l i g h t p e n to the gueue he  wishes to be assigned to the b l i n k i n g s e r v e r . point  it  f o l l o w e d i n a l l the remaining set,  at  this  i s advantageous to lead the user through a l l p o s s i b l e  assignments i n order t h a t none are l e f t  is  Clearly  however,  out.  This  modes as w e l l .  policy  when the e d i t  flag  i t i s assumed that a l l assignments have been  made once a l r e a d y , and t h a t the user wishes to change one assignments o n l y .  is  In  this  case,  he  must  select  or  with  two the  l i g h t p e n a s e r v e r , i n the example of ASSIGNQ, before the program w i l l prompt f o r a gueue. or  He may  proceed  t o s e l e c t other s e r v e r s  t e r m i n a t e the mode by h i t t i n g the prompting In  the same manner, FIRST QUEUES i s used to a s s i g n a  queue/server  system  ANISIM c u r r e n t l y p r o v i d e s one form  r o u t i n g — a fixed routing possible  (see  Chapter  scheme,  V).  s i n k when i t i s generated queue/server  system,  the  at  The terminal.  other  the  source.  At  the next queue/server  user  fills  p o i n t i n g t o the next queue queue-sink  although  schemes  to of are  Each item i s assigned a d e s t i n a t i o n  the route i s dependent o n l y upon mode,  unique  to each source, and ASSIGN BUFF i s used  a s s i g n b u f f e r s to queues.  ROUTES  message.  this an  (or  system  particular (or sink) i n  destination.  internal  the  any  sink)  Thus,  r o u t i n g matrix for  each  in by  blinking  pair. final  three  modes  require  user  input  Newman and S p r o u l l [ 1 6 ] advise t h a t ,  single-device  approach  often  leads  to  in  simpler,  on the 3270 general,  a  more e a s i l y  65 l e a r n e d command languages.  However, i n t h i s case i t was decided  t h a t i t would be e a s i e r f o r the user to switch from to  the keyboard  than i t would be t o enter numerical data a t the  graphics terminal. to  a l s o , the 3270 screen o f f e r s the o p p o r t u n i t y  e a s i l y d i s p l a y more d e t a i l e d prompting  g r a p h i c s approach would r e q u i r e Figure  16  course,  shows  the  an  program  example still  symbols on the Adage d i s p l a y . "TO  the l i g h t p e n  messages, whereas the  valuable  Adage  buffer  of the d i a l o g u e on the 3270. designates  entities  by  and  buffer  for  each  CAPACITIES mode a l l o w s the assignment capacities  source,  the  Of  blinking  The Adage scope prompt message of  3270—>" reminds the user t h a t h i s next response  the keyboard.  space.  other than the d e f a u l t s . inter-arrival  time  w i l l be at of  queue  In FLOW mode,  distribution  is  specified  ( s i m i l a r t o the s e r v i c e times d i a l o g u e ) , and a l s o the  percentage  of a r r i v a l s from t h a t source t h a t  each  s i n k must be given, i n order to f i l l  are d e s t i n e d f o r  i n an i n t e r n a l  "flow"  matrix. In  any mode r e q u e s t i n g parameters,  i f the e d i t f l a g  the c u r r e n t v a l u e o f the parameter i s f i r s t If  the e d i t  for  those parameters which are i n i t i a l l y  (e.g.  flag  i s on,  p r i n t e d on the 3270.  i s not on, the c u r r e n t value i s p r i n t e d o n l y assigned d e f a u l t  values  queue c a p a c i t i e s ) .  3i2_.2_Model_Verif i c a t i o n The network c o n s t r u c t i o n d i a l o g u e ,  as  mentioned  earlier.  FOR THE BLINKING SERVER, ASSIGN THE SERVICE DISTRIBUTION CODE: 1= EXPONENTIAL, 2 = DNIFOR M  1  ENTER MEAN  TIME ( > 1)  FOR EXP. DSTBN  ENTER RE-SEND TIME FOR BLOCKED ITEMS FROM THIS NODE ELSE DEFAULT VALUE IS 4 2 DISTRIBUTION CODE (1 OR 2 ) :  1  ENTER MEAN TIME ( > 1) FOR EXP. DSTBN 7 ENTER RE-SEND TIME FOR BLOCKED ITEMS FROM THIS NODE ELSE DEFAULT VALUE IS 7 1 DISTRIBUTION CODE (1 OR 2 ) : 2 ENTER MEAN TIME (>1) AND DEVIATION FOR UNIFORM DISTR. *» 5  DEVIATION IS TOO LARGE. TRY AGAIN. ENTER MEAN TIME (>1) AND DEVIATION FOR UNIFORM DISTR. 4 2 ENTER RE-SEND TIME FOR BLOCKED ITEMS FROM THIS NODE ELSE DEFAULT VALUE IS 4 BACK TO ADAGE  FIGURE 16: Dialogue f o r S p e c i f y i n g S e r v i c e Times  67 uses  a  menu  making a  to  guide t h e user through  well-defined  freedom  of c o n t r o l .  model,  while  allowing  him  In other words, i t i s s t i l l  to c r e a t e a network with missing especially  the necessary steps of  assignments  a f t e r e d i t i n g the network.  sufficient  quite possible  and  parameters—  T h i s problem i s a t t a c k e d  i n s e v e r a l ways,  F i r s t of a l l ,  when the user f a i l s t o  proper  symbol  the  type  of  ASSIGNMENT" appears asked  to  with  lightpen,  on t h e s c r e e n b r i e f l y .  the  Also,  message "NO  the  the  uniform  distribution.  phase and before a new servers  and  sources  assigned a queue  t h i s time, but any simulation.  In  After  simulation are  i s allowed  checked  to  undefined  be  as  routes  The  will  be  caught  i n the  model.  follows:  the  simulation i s  DYNIS system [ 2 0 ] makes use of yet careless modification  I t s e d i t i n g phase i s d i v i d e d i n t o two Their related functions i n  REVISE  would  d e l e t e symbols, analyze the e f f e c t s of prompt  begin, a l l  t h a t case, the item i s sent t o i t s d e s t i n a t i o n  commands: REVISE and MODIFY. might  to  The r o u t i n g assignments are not checked at  continue.  original  mean  to make sure then have been  another method of reducing e r r o r s due t o the  the  e x i t i n g from the b u i l d  s i n k , a message i s p r i n t e d on the 3270, and  of  is  ( i n order t o prevent a t e r m i n a t i n g e r r o r i n the  s i m u l a t i o n program).  allowed  user  r e - e n t e r any numerical i n f o r m a t i o n t h a t i s not i n the  proper range such as a d e v i a t i o n t h a t i s g r e a t e r than for  h i t the  ANISIM  allow t h e user to add or this  change,  and  then  him to r e - e n t e r any modes necessary i n order to make the  network w e l l - d e f i n e d a g a i n .  MODIFY on  the  other  hand,  would  68 allow  only the a l t e r i n g of parameter values,  make  the  network i l l - d e f i n e d .  f o r the user  none of which c o u l d  MODIFY would be more economical  (quick, s a f e changes; minimal d i a l o g u e ) ,  f o r the program  (abbreviated  This  would  approach  in  menu; l e s s checking  and  and  also  prompting.)  f a c t be f e a s i b l e i n AHISIM, using  the  b a s i c BUILD-EDITNET s t r u c t u r e . Once we still  have i n s u r e d t h a t the model i s w e l l - d e f i n e d ,  remains  the  p o s s i b i l i t y t h a t a mistake has been made i n  the model design, i . e . the model b u i l t i s not e x a c t l y the intended.  However,  compared  to  any  non-graphical  environment, t h i s p o s s i b i l i t y i s minimal. modeller does. can  can  on the screen  First  model  simulation  of  all,  the  the e f f e c t s of much of what he  A l s o , he i s l e s s l i k e l y to s p e c i f y a wrong e n t i t y when he actually  Furthermore, v e r i f i e d by should other  see  there  point  to  its  assignment  representation  and  parameter  using the PRINT command, and  expose  most  hand, anyone  on  the  information the  who  has  written  a  non-trival  of  model  statements  and  easily  matrices.  become The  obscured  in  be  itself  unintended r o u t i n g s p e c i f i c a t i o n s . On  i n a language such as GPSS [ 9 ] knows t h a t the may  can  animation  program the  screen.  the  simulation structrue  the  program  i n p u t data i s l a r g e l y  numerical  and h i g h l y s u b j e c t to mistakes as w e l l . A second s i d e e f f e c t of a g r a p h i c a l l y e s p e c i a l l y i n an  described  i n t e r a c t i v e environment that h e l p s the  c r e a t e a w e l l - d e f i n e d model, i s t h a t the process  a  model, modeller  of b u i l d i n g the  69 network  may  very  well  c o n c e p t i o n of the model. the  inadequacies  of  force  the modeller to r e - e v a l u a t e h i s  To some extent he may  his  initial  more q u i c k l y  formulation  as  a  see  valid  a b s t r a c t i o n of the r e a l - w o r l d s i t u a t i o n . Bracchi for  and Somalvico  computer-aided  computational designer  design  capability  during  [3]  the  emphasize t h a t a software  should and  design  a  provide  both  a  system strong  f l e x i b l e i n t e r a c t i o n with  process.  Likewise,  the  ANISIM's  u s e f u l n e s s as a s i m u l a t i o n t o o l depends both on the power of the simulation first  routine  and  part of t h i s chapter  p r o v i d e simple, presentation  of  the q u a l i t y of the user d i a l o g u e . used  to  yet f l e x i b l e c o n t r o l over the s i m u l a t i o n and  the  its  described  results.  the  techniques  The  Moreover, experience  with users  d u r i n g the development o f the p r e l i m i n a r y v e r s i o n s of ANISIH  has  i n d i c a t e d that the q u a l i t y of the network d e f i n i t i o n dialoque i s c r i t i c a l to i n s u r i n g session of may  that  with the system.  the  user  will  have  machines.  successful  I t i s t h i s phase where a l a r g e amount  i n f o r m a t i o n must be s u p p l i e d t o the system by be  a  a  person  who  nervous, confused, or i n t i m i d a t e d by c o n v e r s a t i o n s with I f t h e d i a l o g u e i s awkward or  otherwise  inadequate,  the user i s not f r e e to c o n c e n t r a t e on such t h i n g s as e v a l u a t i n g the of  conceptual  v a l i d i t y of h i s model or v e r i f y i n g the accuracy  the network he i s b u i l d i n g .  improvements  There w i l l always  room  for  i n the d i a l o g u e , but the c u r r e n t v e r s i o n of ANISIM  seems to meet most of the c r i t e r i a f o r a interaction.  be  smooth  and  effective  70 IV UTILITY OF ANIMATION One  of  the  points  systems,  i s that the  clarify  certain  that  use  of  ideas.  M a r t i n [ 1 3 ] makes about g r a p h i c moving  Animation,  or  changing  like  images  color,  can  i s a type of  encoding that can i n c r e a s e the amount of i n f o r m a t i o n the l i m i t e d human mind can grasp and guestion  to  ponder  at  one  ask, then, i s when and how  time.  A  reasonable  should we use  animation  i n order to best take advantage of t h i s c a p a b i l i t y .  4 J_S i m u l a t i o n _ T o o l T r a d i t i o n a l s i m u l a t i o n programs g e n e r a l l y produce the form of s t a t i s t i c a l averages, are  v a r i a n c e s , maxima, e t c .  They  g e n e r a l l y expensive t o execute and are o f t e n run i n a batch  environment. statistics,  Model design and t e s t i n g i s done by a n a l y z i n g altering  interactive  simulation  program  time by producing r e s u l t s remembers  what he was  means f o r a l t e r i n g modeller  statistics, purpose.  c o u l d improve t h i s  quickly  (while  t r y i n g to do)  the model.  Clearly,  the  for  the  modeller  the  improved  However,  significance  if  he  that  appear  turn-around may is  of the s t a t i s t i c s  still  and by p r o v i d i n g convenient  T h i s i s t r u e , provided  changes  an  turn-around  that  can a l s o analyze the s i m u l a t i o n output q u i c k l y .  looking  the  the model or i t s parameters, r e - c o m p i l i n g  i f necessary, and then running the program a g a i n .  is  output i n  trying  in  a  few  the I f he  simple  be s u f f i c i e n t f o r h i s to  understand  the  with r e s p e c t to a f a i r l y complex  71  model, the program must provide him with a d d i t i o n a l a i d s . One  such a i d a v a i l a b l e i n an i n t e r a c t i v e environment  monitoring  capability.  The  modeller  is a  not only gets the f i n a l  r e s u l t s , but he sees some s o r t of r e p r e s e n t a t i o n of the s t a t e of the model while the s i m u l a t i o n i s p r o g r e s s i n g . the  modeller  This  may  allow  t o q u i c k l y z e r o - i n on the time range or parameter  range t h a t he i s i n t e r e s t e d i n , as w e l l as p r o v i d i n g i n f o r m a t i o n about the  starting  conditions  A l o s , monitoring i s l i k e l y  and  other  transient  effects.  t o provide more i n f o r m a t i o n about the  behavior o f the model when i t reaches c e r t a i n c r i t i c a l s t a t e s . One  s i m u l a t i o n monitor  system t h a t has proven  f o r e c o l o g i c a l models i s SIHCON—a [10],  Language selected He  Simulation  Control  v a r i a b l e s of a s i m u l a t i o n program w r i t t e n  in  may i n t e r r u p t the s i m u l a t i o n and d i s p l a y or a l t e r  many  cases,  monitoring entities  a  model  purposes,  variable  process variable.  can by  line  or  (or the  relationship An  example  several  plots  variables,  several states.  adequately  FORTRAN.  Thus, i n  represented,  for  o f the l e v e l s of c e r t a i n  In other  cases,  however,  the  o f the model l i e s not i n monitoring the value  t h i s would be true might between  be  (such as p o p u l a t i o n s ) .  r e a l understanding a  Command  SIMCON a l l o w s the user to p l o t during execution  and he may r e s t a r t the s i m u l a t i o n from  of  quite useful  length that  of be  o f a queue), but monitoring a determines  the  value  o f the  a continuous s i m u l a t i o n model where a  territorial  study  of  changing  populations.  The  boundaries simulation  72 s t a t i s t i c s may see  on  a  begin t o make sense i f the modeller can  graphics  screen  a  p o p u l a t i o n being crowded out of  e x i s t a n c e by n e i g h b o r i n g p o p u l a t i o n s . becomes  too  long  may  be  Similarly, a  they  are  going  gueue  analyzed by monitoring an  showing j u s t where the items are a r r i v i n g from when)  next.  actually  Without  and  that  animation  where  (and  some movement of items  between e n t i t i e s , the viewer, i n Martin's terminology, i s unable t o keep enough i n f o r m a t i o n about the r e l a t i v e e n t i t i e s i n the 'foreground*  states  of  these  of h i s mind a l l a t the same time.  T h i s i s s u e of movement b r i n g s up an i n t e r e s t i n g p o i n t about ANISIM. network, as  When we think of the system  as a gueuing  then animating with moving sequences can be thought  distorting  expansion  the  m o d e l — p a r t i c u l a r l y with  respect  o f time caused by b i n d i n g seguences.  of the system only  being modelled  being modelled  approximated  by  a  the  But i f we t h i n k  as some r e a l - w o r l d system  queuing  to  that  network, then animating  is with  moving sequences can be thought of as r e s t o r i n g some r e a l i t y the  model.  The  network, but he does not have  of that e x t r a i n f o r m a t i o n provided by movement.  can s e l e c t varying degrees of d i s t o r t i o n / r e a l i t y by the  durations  of  the  moving  animation techniques can at progression amongst model critical  of  sequences.  least  be  used  s t a t e s , to show the changing components,  states.  to  user of ANISIM can use the SCAN mode f o r a t r u e  r e p r e s e n t a t i o n of the gueuing benefit  of  and  to  signal  In to  the  Or,  he  controlling either  case,  represent  the  interrelationships the  occurrence  of  73  The concept of a l l o w i n g the model d e s i g n e r o p t i o n a l of  "reality"  system  i s not unique  developed  to ANISIM.  An i n t e r a c t i v e g r a p h i c s  at IBM f o r d e s i g n i n g and t e s t i n g l o g i c  a l l o w s the user t o s p e c i f y one of t h r e e r e g a r d i n g the t i m i n g of p u l s e s [ 1 3 ] , fast  approximation  this  case,  modelling  i t is  the  circuits  abstractions  The t r a d e - o f f i s between a  and a slower, more r e a l i s t i c  however,  degrees  actual  simulation.  simulation  that  In is  a f f e c t e d , not j u s t the g r a p h i c r e p r e s e n t a t i o n , a s i n ANISIM. The  ATOPPS system [ 5 ] d i s c u s s e d i n the next s e c t i o n , i s an  example of a d i s c r e t e event s i m u l a t i o n monitor point  graphically  without  which  making any attempt  makes i t s  to r e a l i s t i c a l l y  model the timing between e v e n t s .  ii2_Educational_Tool If the  the use of animation p r o v i d e s  understanding  of  a  additional  generally  g r a p h i c s system placing  more  means  placing  cases  less  of  educational the  emphasis on c a r e f u l l y i l l u s t r a t i n g  to  exaggerate  purposes.  emphasis  on a f l e x i b l e design o p t i m i z a t i o n  r e a c t i o n that i s of i n t e r e s t . some  into  complex process, then c e r t a i n l y i t i s  d e s i r a b l e to apply t h i s c a p a b i l i t y toward This  insight  i n the  approach  and  the process or  In f a c t , i t may be reasonable the  more d i f f i c u l t  in  f e a t u r e s a t the  expense o f t h e o v e r a l l accuracy of the animation. For example, the ATOPPS system [ 1 4 ] a t  Pennsylvania  State  74 University Discrete  is  presented  Time  Operating  Concepts".  Films  as a "Computer Graphic System  for  S i m u l a t i o n of a  Introducing  have been made of the system, which d i s p l a y s  the contents of the memory, a c t i v e hardware, and a t h e o r e t i c a l o p e r a t i n g system. flow of i n f o r m a t i o n from one time  simulation  The model  important graphic  of  appears  structural  and  to  principles  used  to  call  major gueues of  o b j e c t i v e i s to  watch  be  fairly  of  does  the  simple,  options  to  operating not  i n the d i s c r e t e  but  system  Instead,  viewer's  allows  strategies.  in  which they  arrows  and  intensity  a t t e n t i o n to  (and  to f u r t h e r  The s t a t e of each e n t i t y  events. the  represent  the  elapsed  is  time between s u c c e s s i v e events.  updated  immediately  to  displayed.  when an event  The  most  ANISIM i s the manner timing  of  discrete  the  time  of  viewer  been  the  next event,  In other words, a l l s t a t e  bind  To help  f u t u r e events  gueue i s d i s p l a y e d on the screen, a l l o w i n g one  to  see  when  why  inter-relationship  which i s  changes  i n some d e t a i l .  the  the  and  the  displayed  of events,  exactly  understand  or  Instead, the c l o c k  has  the d i s p l a y , while they are represented the  (e.g. a  ATOPPS makes no attempt to d e p i c t p a r a l l e l processes  time i s always shown and clock  between ATOPPS and  graphically  The  i n the sense of  queue) i s d e s c r i b e d by a number r a t h e r than a symbol. difference  enough  demonstrate many of the  i n v o l v e animation  explain) each change of s t a t e .  signigicant  the  d i f f e r e n t o p e r a t i n g system c o n f i g u r a t i o n s .  parameter  technigue  The  job step to another  elements moving on the screen. are  Elementary  each event  i s scheduled  during  the  75 p r o c e s s i n g of the c u r r e n t reasonable  for  the  o p e r a t i n g system  event.  stated  This  approach  objective  principles.  The  of  seems  guite  understanding  emphasis i s  on  the  basic  detailed  d i s p l a y of each event r a t h e r than an accurate o v e r a l l d i s p l a y of the performance  of the model.  ANISIH, on the other hand, has c o n s i d e r a b l e p o t e n t i a l as an educational  tool,  but i n a s l i g h t l y d i f f e r e n t sense.  not be p a r t i c u l a r l y causes a new events  i n s t r u c t i v e to show  how  an  It  would,  parameters.  based  For example, a student t r y i n g  the r e l a t i o n s h i p between the a r r i v a l r a t e  rate  affect  the  queue  length  animation of a simple queue with simple  might  with one two-server queue have  a  (see  large  Figure  heavily  the  service  by watching  parameters.  based at  of two one-server queues 17).  If  the  service  v a r i a n c e , the student can see  how one  with demonstrating t h e o r e t i c a l r e s u l t s i s t h a t they are  on steady s t a t e p r o b a b i l i t i e s .  any  an  Another  items tend to t r a v e l f a s t e r through the two-server system. problem  on  to understand  and  benefit  various  example would be the comparison  distributions  event  however, be u s e f u l i n demonstrating  c e r t a i n concepts of queuing theory which are  how  arrival  a r r i v a l event to be scheduled and put i n the f u t u r e  queue.  timing  I t would  particular  period  of  time  M o n i t o r i n g the  simulation  ( e s p e c i a l l y the  beginning)  p r o v i d e s no guarantee t h a t the s t a t e w i l l be anywhere near specified statistical simulation.  by  the summary  long is  term still  probabilities. available  after  Of  that  course  the  stopping  the  76  FIGURE .17: Queuing Theory Comparison  77  iiJ_Research_Tool One  of  the o r i g i n a l m o t i v a t i o n s f o r developing  t o study, i n a g e n e r a l way, lead  the processes  or  conditions  t o network c o n g e s t i o n and system deadlock.  been pointed out how  ANISIM  was  which  I t has a l r e a d y  ANISIM can be used to design or o p t i m i z e  to a v o i d u n d e s i r a b l e s t a t e s .  specific  model  animation  allows the modeller  leading  up  perhaps  the  animation  can add a d d i t i o n a l i n s i g h t to c u r r e n t r e s e a r c h on  the  to  the  to  critical  of  watch  the  state.  deadlock.  Specifically,  a  chain  However,  aspects  used  to  c o n s t r u c t and  modify networks which, when s i m u l a t e d , a) l e a d  to  conditions  congested  (gueues or b u f f e r s f i l l  always items  eventually  two-node  complicated first  two  F i g u r e 12 i n Chapter  unblock),  are mutually  simple  (see  up  from  be  I I I ) , b) become  time  to  or c) reach deadlock  permanently deadlock  can  events  theoretical  blocking  ANISIM  of  the  blocked).  appears  in  One  Figure  causing  congestion  has  permitted  in  example 18.  the  but  (two or more  network shown i n F i g u r e 19 i s deadlocked buffers,  time  of  The  a  more  between the  rest  of  the  network. Time  not  the experimentation  order to i n v e s t i g a t e the p r i n c i p l e s behind by  deadlock.  necessary i n A  survey  Coffman, et a l [ 5 ] , d e s c r i b e s v a r i o u s s t r a t e g i e s f o r d e a l i n g  with the p r e v e n t i o n , d e t e c t i o n (and r e c o v e r y ) , and avoidance deadlocks. design,  The  dealing  of  d i s c u s s i o n i s o r i e n t e d towards o p e r a t i n g systems in  terms  of  tasks  and  r e s o u r c e s , but would  IHHU'IIIIHII  imiiuii  FIGURE 18: Simple  Deadlock  FIGURE 19: A P a r t i a l l y  Deadlocked Network  80 provide  an  excellent  experimentation  with  starting  ANISIM.  point  on  which  to  base  81  V CONCLUSIONS, PROSPECTS, AND  EXTENSIONS  5 l_Anal_;sis i  It  must  be  c u r r e n t form, as  a  c a n o n l y be  finished  animation event  emphasized  can  thought  product.  It  can  benefit  s e q u e n c e s and  more  or  from  less  r e s u l t i n g i n two  and  clearly  the event  demonstrated  from  editing  as  its  M a r t i n [13],  first  i n h i s survey  considerations  of  programming  begins.  Such  II.  The  system apparent,  problem  concerns  of methods, f e a t u r e s , man-machine  planning,  dialogue,  the  in  dialogue  the  case  ANISIM, c o u l d have eased t h e programming t a s k , p a r t i c u l a r l y respect to providing simple, uniform The  second  beginning handle  problem  with  i s t h a t not  extensions  the  lack  enough p r o v i s i o n c a n  and  refinements.  i n most g r a p h i c s s y s t e m s , t h e d a t a just  about  every  error recovery of  phase  of the  of  became  e m p h a s i z e s t h e need f o r c o m p r e h e n s i v e p l a n n i n g o f before  such  ANISIM went i n t o  techniques.  The  at  of Chapter  capabilities  general problems.  that  the c l a s s i f i c a t i o n  procedures  animation  not  u s e f u l part i n discrete  e f f o r t i n implementing  evolved  psychological  and  and  Hopefully, f u t u r e attempts  t h e s i m u l a t i o n and  the idealogue.  has  particularly  Much o f t h e i n i t i a l developing  of as a r e s e a r c h t o o l ,  play a very powerful  simulation modelling.  systems  a t t h i s p o i n t t h a t ANISIM, i n i t s  overall be  with  procedures. plan  made  of  to  at  the  easily  For example, i n ANISIM,  structure program.  is  accessed  Repercussions  as  from of  any  82 changes to the s t r u c t u r e or to the  information  to r i p p l e  In c o n c e n t r a t i n g  throughout the program.  of the animation r o u t i n e s while coding some  basic  certain  features  statistics  parameters  as  were overlooked, and  (i.e. in  time of a r r i v a l  the  the  to  to the system).  f u r t h e r extensions  on the  simulation  needs  routine,  such as the g a t h e r i n g  allowance  addition  s t o r e d i n i t tend  for  more  transaction  the d e s t i n a t i o n sink and  Adding these f e a t u r e s , as  ( s e c t i o n 5.3),  represent  of  a rather  the well  tedious  programming chore. Even i n l i g h t of what i t does not do, system  i s s u r p r i s i n g l y inexpensive  that i t i s a simulation involves extensive data  on  disk  I/O  files.  program,  however, the  to use, it  is  f o r g r a p h i c s and  c o n s i d e r i n g the interactive,  f o r s a v i n g and  Furthermore, any  current  and  be  constrained  s i m u l a t i o n r o u t i n e and  by  both  it  restoring  attempt t o r e - w r i t e  program i n a more modular f a s h i o n to perform more general would  fact  the need f o r a f a s t ,  the  tasks  efficient  the l i m i t e d c a p a c i t y o f the Adage d i s p l a y  buffer.  5«2_Limitations One following  important sections,  addit ionajL  technique  substitute  for  conclusion, is for  classical  that  born  by  this  and  the  animation i s mainly u s e f u l as  analyzing technigues.  a c t u a l l y using ANISIM to study a  out  real  simulations, When problem  one he  not  as  an a  gets down to finds  that  83 1} he  still  needs  to  have  certain  s t a t i s t i c s a v a i l a b l e to  summarize or v a l i d a t e when he saw (or d i d n * t s e e ) , and models  difficulty  imposed by  the  queuing  network  formulation.  additional  representation  simulation  power  network s t r u c t u r e , a l l o w i n g represented In  of  the  network.  a  to  more  potential  already  the a v a i l a b i l i t y of  simplify  complex  models  with d i s c r e t e s i m u l a t i o n s ,  the s i m u l a t i o n be  tends  As  size  the r e q u i r e d  situation  to  be  on the screen.  discussing  familiar  This  i s compounded by the l i m i t s on problem  p o i n t e d out i n t h e example of t r a n s i t times,  to  most  r e q u i r e a t l e a s t one or two s i m u l a t i o n f e a t u r e s t h a t a r e  not a v a i l a b l e i n a s t r i c t second  2)  with  people  a p a t t e r n began t o emerge i n  f e a t u r e s r e g u i r e d i n order  formulated.  a r i s i n g from  f o r ANISIM  to enable many  A few of the most important  models  recommendations  (or confirmed by) these d i s c u s s i o n s  are  mentioned  here. In  many  together  queuing  models,  individual  as they t r a v e l through the network.  items This  must  group  i s true  of  r a i l r o a d c a r s , cargo on s h i p s , and words i n a telecommunications network.  To  accomodate  this  type  of  model  i n ANISIM, the  concept o f m u l t i p l e s e r v e r s must be changed t o allow one symbol  to  capacity.  represent  shows  server  of  Also groups o f items should  nodes using one symbol 20  a  one  (and g e n e r a t i n g  way o f animating t h i s .  unlimited  server  (user s p e c i f i e d )  be able t o t r a v e l between single  events).  Figure  In the case o f t r a i n s or  84  'FIGURE 20: T r a n s a c t i o n  ships,  Grouping  i t would a l s o be d e s i r a b l e t o a l l o w  departure  protocols.  specifying  p e r i o d i c or otherwise  number  of  items  F c r example,  there  some  in  i s c u r r e n t l y no way o f  scheduled  ( i . e . departures  flexibility  departures  independent  cf  a  set  o f when s e r v i c e  begins) . Another necessary measure  the average  capability  delay  points  o f t h e network;  delay  between  o f many g u e u i n g  of items  The c u r r e n t  source-sink  pairs.  transaction  parameters  requirement  f o r t h e ALGOLS r e c o r d s  for  system  between  only  The o n l y  is  to  arbitrary  measure^  the  drawback o f a d d i n g  would) i s t h e i n c r e a s e d which c o n t a i n  storage  the i n f o r m a t i o n  e a c h t r a n s a c t i o n i n a gueue.  Two class  would  additidnal features  o f models  (discussed  and  (as t h i s  travelling  models  that  earlier)  involve testing would  network.  could and  which be  logic  would  simulated switches,  on u s e r - s p e c i f i e d  considerably  considerably  complicate  are  transit  or gates.  transaction  the dialogue  widen t h e  The  times latter  parameters  f o r d e f i n i n g the  85 5 3_Extensions i  In a d d i t i o n to those d i s c u s s e d i n the p r e v i o u s s e c t i o n ,  the  f o l l o w i n g p o t e n t i a l extensions to AHISIH merit c o n s i d e r a t i o n .  1)  As p o i n t e d out  preclude  the  earlier,  the  animation  facility  need f o r s t a t i s t i c a l summaries.  Statistics  s h o u l d be added i n c l u d e the mean and v a r i a n c e of each  gueue  and  l e n g t h s and  buffer,  as  b u f f e r contents.  does  the  not which  delay  at  w e l l as the v a r i a n c e of the gueue Of  course,  the  animation  then  allows the viewer t o watch the v a r i a t i o n s happening, i n order to get  a  better  feel  f o r the nature of the f l u c t u a t i o n s and  r e l e v a n c e of the averages.  Furthermore,  the animation  the  together  with the s t a t i s t i c s on b l o c k i n g , p r o v i d e s a b e t t e r understanding of  how  occasional  blocking  (congestion)  may  distort  the  s i g n i g i c a n c e of the other s t a t i s t i c s .  2) It may  be  possible  to  provide  p r e s e n t i n g s t a t i s t i c s to the u s e r . a  "third  more One  meaningful  l e v e l " of i n f o r m a t i o n u s i n g a command which a l l o w s the  time.  Another  d i s p l a y s the average final  state  suggestion  as  queue  length,  i s to provide a command which  s t a t e of each e n t i t y r a t h e r than  i n which the s i m u l a t i o n stopped.  to implement f e a t u r e would be some type during  of  s u g g e s t i o n i s to p r o v i d e  modeller to view a p l o t of a s t a t i s t i c , such over  ways  of  just  the  A more d i f f i c u l t  continuous  the animation o f , f o r example, the average  display  gueue l e n g t h .  (This would i n v o l v e a separate symbol, or number, d i s p l a y e d near  86 the queue symbol.) I t would  also  s i m u l a t i o n c l o c k time during  the  3)  Currently,  only  two  be  helpful  to  probability  distributions  service  Erlang  be added, as w e l l as  must  rates.  have been  Others,  such  more f l e x i b i l i t y  with the random number seeds  user  two  start  or  more  streams  as  the a b i l i t y  c r e a t e a d i s t r i b u t i o n from u s e r - s p e c i f i e d e m p i r i c a l data.  to  the  animation.  implemented f o r a r r i v a l and distribution,  display  would  to  Also,  allow  the  with the same seed, f o r  comparison purposes. A f u r t h e r type of a r r i v a l r a t e that would for  modelling  be  c l o s e d systems i s a f i n i t e c a l l i n g  very  useful  population.  l i m i t e d number of a r r i v a l s are generated, p o s s i b l y a l l at and  new  arrivals  appear  a t sources only  A  once,  when items depart to  sinks.  4)  The  r o u t i n g mechanism used i n ANISIM r e p r e s e n t s  route  selection.  Other  possible  types i n c l u d e a  r o u t i n g scheme, where an item's route source, from  any  and  a  given  distribution.  stochastic node  is  one  type  pre-defined  i s f u l l y s p e c i f i e d at  the  r o u t i n g scheme, where the next node determined  from  a  probability  Other p o s s i b l e f e a t u r e s than c o n t r o l r o u t i n g  the t r a n s a c t i o n s p l i t t i n g and  of  l o g i c switching  features  of  are GPSS  [9].  5)  As w e l l as a l l o w i n g a r r i v a l and  s e r v i c e time o p t i o n s ,  ANISIM  87  should  provide  blocked  optional  policies  transactions.  generation  Priority  to  illustrate,  representation.  there  represented  the  end  be  some  defined  models  which  of  its  servers)  were r e p l a c e d  would allow  suitable  replaced  in  macro symobls.  For  gueues  simplified.  representation  Of  course  this  ANISIM t o handle l a r g e r models, s i n c e the  used to represent  viewing s i m p l i c i t y , capability,  network i s d i s p l a y e d  that  Even  (with i t s a s s o c i a t e d  main c o n s t r a i n t on problem s i z e i s the number  "windowing"  own  by a network macro symbol, or i n t h i s  of the model would be c o n s i d e r a b l y technique  be  model  by s p e c i a l , or user c r e a t e d , 19 i f each b u f f e r  can  case by a small v e r s i o n of the b u f f e r symbol, the  for  transaction  sub-networks.  with e n t i r e sub-networks of the  animation  words  current  a "network macro" f a c i l i t y f o r the  previously  may  example, i n F i g u r e and  would be somewhat  given  the  the  t y p i c a l network c o n f i g u r a t i o n s occur o f t e n enough  automatic c r e a t i o n of  the  ( i . e . allow  and  i n the s e r v e r .  might be u s e f u l to provide  better,  however,  item go back to  queue, i n s t e a d of w a i t i n g  it  queues  disciplines  An example of an a l t e r n a t e blocked  p o l i c y i s that a blocked  Some  queue  of d i f f e r e n t types of t r a n s a c t i o n s )  difficult  6)  for  the network. it  may  where  a t one time.  be only  of  Adage  buffer  Also f o r t h i s reason, and worthwhile one  Windowing  to  portion may  attempt of  a  a large  not prove to be  of too much value i n t h i s case however, s i n c e the modeller would never be able t o view the e n t i r e network a t once.  88  7)  One  that  problem  with the animation o f  a l l of  if  t h i s problem  non-trival  the moving items look a l i k e .  times to f o l l o w the progress of an especially  a  item  It is difficult,  through  i t spends time i n queues.  network  the  A p a r t i a l s o l u t i o n to  so t h a t they can be d i s t i n g u i s h e d from the o t h e r s as they  additional  The  transaction  t h i s shading f e a t u r e are a) specified  source,  generated by the  5 r o s p e c t s  and  items travel  drawback i s the space r e q u i r e d by parameter  field.  mark  at  network,  would be to shade, or otherwise mark, c e r t a i n  through the network.  is  Two  a l l items  the  methods of using arriving  from  a  b) mark every t e n t h item, or whatever ,  system.  f o r F u r t h e r Work  Although i t i s p o s s i b l e to formulate a f a i r l y  large  number  of models i n terms of networks of queues, the guestion a r i s e s as to  what  other types of d i s c r e t e models or r e a l processes might  be animated  u s i n g the techniques d e s c r i b e d i n Chapter I I .  I t seems t h a t most d e s c r e t e make  use  of  sequences, then,  simulation  the i n t e r n a l c y c l e concept,  and the e d i t i n g  for  event  animation  procedure.  feasibility,  s t r u c t u r e can be s u i t a b l e represented on a whether displayed  meaningful  animation  seguences  the c l a s s i f i c a t i o n  The  would  deciding  can of  factors,  be whether the model graphics can  be  using the g r a p h i c s software a v a i l a b l e .  any two-side  models  bounded sequences might be a problem  scope compiled  and and  (The length of i n some cases.  89 as noted i n Chapter different  II.) One  emphasis  from  graphics c a p a b i l i t i e s problems.  Consider,  type of s i m u l a t i o n with a  t h a t used i n ANISIM would u t i l i z e  to study models i n v o l v i n g for  example,  o p e r a t i o n , where the c o s t a s s o c i a t e d between  two  a  spatial  model  with  of  an  to  the  layout  warehouse travelling  p o i n t s i n the model i s d e r i v e d i n t e r n a l l y from The  the  user  is  optimize the model, with r e s p e c t to c o s t and space,  s i m u l a t i n g and animating i t with v a r i o u s This  a  item  p h y s i c a l d i s t a n c e between symbols on the screen. able  slightly  type  spatial  of model would a l s o r e g u i r e queuing  by  arrangements.  facilities,  the r e p r e s e n t a t i o n of the l e n g t h of the queue would  now  only  become  important. The  question  of  animating  s i m u l a t i o n s i s a more d i f f i c u l t  real  rather  than  For example, assume i t  is  desirable  to monitor an animation of some s o r t of i n d u s t r i a l  or  scientific  process which cannot be d i r e c t l y  to  the  location  or  size  one.  processes  of  observed  the components of the p r o c e s s ) .  F u r t h e r assume that the process must be monitored discrete  events,  in  r a t h e r than continuous updating.  due t o the method of measuring  (e.g. due  terms  of  T h i s may  be  i t s p r o g r e s s , or perhaps only the  g e n e r a l stages of the process are important t o the observer. t h e events are merely process  being recorded f o r l a t e r  happens too f a s t or too slow  then t h e r e i s no problem. as done f o r display  the  simulations.  study  the  for real-time monitoring),  The events can be e d i t e d and If,  (say  If  however,  it  is  compiled  desirable  animation s i m u l t a n e o u s l y with the ongoing  to  process.  90 then two b a s i c problems a r i s e .  For one t h i n g , the process can't  be stopped every few events i n order to wait f o r the e d i t i n g  and  c o m p i l i n g of sequences.  "to  binding  sequences  Furthermore,  the time expansion due  would r e s u l t i n a c o n t i n u a l l y i n c r e a s i n g l a g  between the time of the event and the time i t i s d i s p l a y e d . First problem  of a l l , the problem  at a l l .  order to add of  an  R e c a l l that b i n d i n g sequences  some s o r t of r e a l i t y to the  instantaneous  movement.  most r e a l processes monitored bounded sequences animate  of time expansion may  rather  movements.  than  modelling  I t seems l i k e l y ,  bounded  however, that  sequences  L e t us assume then, that we  sequences  configuration reguires  that  three  would  parallel  (370 program and Adage continuously  record  of  unmanageable  probably  make  to  be  monitor).  and  length. this  The  first  the events of the ongoing  animate no  A  task  twosystem  feasible  processor  would  process and make  processor,  which  would  to e d i t  events  f o r the g r a p h i c s computer to d i s p l a y .  animation would of course l a g behind fixed  properly  wish to  able t o use the i n t e r n a l c y c l e approach  and compile sequences  two-side  o p e r a t i o n s i n s t e a d of the c u r r e n t two  the event l i s t a v a i l a b l e to the second then  a  abstraction  i n r e a l time w i l l r e q u i r e binding  be  were r e q u i r e d i n  a r e a l - t i m e process r e q u i r i n g no b i n d i n g sequences side  not  the  actual  events  The by  a  s t a r t - u p time, but the speed of the d i s p l a y c o u l d be made  equal to that of the r e a l p r o c e s s . T h i s d i s c u s s i o n i s q u i t e a b s t r a c t and t h e r e would  certainly  91 be b u g s t o work o u t i n t h i s a p p r o a c h . potential  e x i s t s f o r applying  The  the general  II t o t h e a n i m a t i o n o f systems o t h e r  than  point  is  that  the  techniques of Chapter simulations.  92 BIBLIOGRAPHY  1.  Baecker, R.M. "Toward Animating Computer Programs: A F i r s t Progress Report," Proceedings of the Third Man-Computer Communications Seminar, NRC, Ottawa, Canada, May 1973.  2.  Baecker, R. m. Interactive Computer-Mediated Animation, (THESIS) 7"une~ 1969,"Project MAC, MIT.  3.  B r o c c h i , G.; Somalvico, M. "An I n t e r a c t i v e Software System f o r Computer-Aided Design: An A p p l i c a t i o n t o C i r c u i t P r o j e c t , " CACM, Vol.13, No.9, September 1970.  4.  Chheda, D.P. "CAM, A Computer-Aided Modelling Program f o r Systems Dynamics Models," Master's T h e s i s , Department of Computer Science, U.B.C., 1974.  5.  Coffman, E.G.; E l p h i c k , M.J. ; and Shoshani, A. "System Deadlock," Computing Surveys, Vol. June 1971.  6.  C o u l t h a r d , W.J.; Dekleer, J . "UBC:AGTBASIC - B a s i c Communication Package f o r the Adage G r a p h i c s T e r m i n a l , " Computing Centre, U.B.C, 1973.  7.  C o u l t h a r d , W.J. "UBC:GRAPH - A Simple I n t e r a c t i v e Computing Centre, U.B.C, 1973.  MAC-TR-61  3,  Graphics  8.  F o r r e s t e r , J.W. World Dynamics, Wright A l l e n P r e s s , 1971.  9.  General Purpose S i m u l a t i o n System V tjser*_s Manual, IBM Publication~No7~~SH20-0851.  No.  2,  Package,"  10.  H i l b o r n , R. S i m u l a t i o n C o n t r o l Command Language—SIMCON, I n s t i t u t e of Animal Resource Ecology, U.B.C, October 1972.  11.  H i l l i e r , F.S.; Lieberman, G.J. JfiiE2JS£tion t o Operations Research, Holden-Day 1967.  12.  L a f a t a , P.; Rosen, J.B. "An I n t e r a c t i v e Display f o r Approximation by Linear Programming," CACM, V o l . 13, No. 11, November 1970.  93  13.  M a r t i n , James Desicjn of Man^Computer D i a l o g u e s , P r e n t i c e - H a l l , 1973.  14.  Mcintosh, J . F . "GRAPHIC," Computing Centre, O.B.C., 1973.  15.  Merchant, M. "Interactive Spline Approximation," Master's Department of Computer S c i e n c e , D.B.C., 1974.  16.  Newman, W. M. ; S p r o u l l , H.F. P r i n c i p l e s of I n t e r a c t i v e Computer G r a p h i c s , 1973.  Thesis,  McGraw-Hill,  17.  Okaya, Y. "Interactive Aspects of C r y s t a l S t r u c t u r e A n a l y s i s , " IBM Systems J o u r n a l , Vol.7, Nos. 3 and 4, 1968.  18.  P r i n c e , M.D. I n t e r a c t i v e Graphics f o r Computer-Aided Wesley,~1971.  Desicjn,  Addison-  19.  Richardson, F.K.; O e s t r e i c h e r , D.R. "Computer Assisted I n t e g r a t e d C i r c u i t Photomask Layout," i n P e r t i n e n t Concepts i n Computer G r a p h i c s , Faiman, M., N i e v e r g e l t , J , , eds.. U n i v e r s i t y of I l l i n o i s Press, 1969.  20.  Savage, G. J . ; Andrews, G.C. "DYNIS: A Dynamic I n t e r a c t i v e Simulation Program For Three-Dimensional Mechanical Systems," Proceedings of the Third Man-Computer Communications Seminar, NRC, Ottawa, Canada, May 1973.  21.  The SIM SCRIPT II_.5 Reference Handbook, C o n s o l i d a t e d A n a l y s i s Centers Inc., 1971.  22.  Smith, L.B. "The Use of I n t e r a c t i v e Graphics To Solve Numerical Problems," CACM, V o l . 13, No. 10, October 1970.  23.  Smith, L.B. "A Survey of Interactive Graphical Systems f o r Mathematics," Computing Surveys, V o l . 2, No. 4, December 1970.  24.  S u t h e r l a n d , W. R. "On-Line G r a p h i c a l S p e c i f i c a t i o n o f Computer MIT L i n c o l n L a b o r a t o r y , TR 405, May 1966.  Procedures,"  9n APPENDIX A — PROGRAM ANISIH i s implemented cn (Michigan Corporation  Terminal Graphics  System)  an  DESIGN  IEH  370/168  operating  Computer,  as  system,  shown  and  in  * 12 0 00 0 IBM  using  the an  HIS Adage  Figure  21.  hits/sec  370/168  4. IBM 3 2 7 0 Display Terminal  ADAGE M o d e l 10 Graphics D i splay Scope — *  2.  •  Teletype .  IT  .Fu'nct i ori But tons  FIGURE 21: S y s t e a  The  program  operations  in.  D.E.C. Computing  Adage  [6],  O p e r a t o r >s Cont r o l Panel  Configuration  is  written  FORTRAN. Centre  and  Adage Computer £ 7 ] .  chiefly  i n AIGCIW, with  Software consists  r o u t i n e s , the b a s i c s u b r o u t i n e the  . ADAGE G r a p h i c s .Computer  provided  a few I/O by  file  the  of  the  HTS  handling  package  for  communicating  with  the g r a p h i c s monitor which r e s i d e s i n the Following i s a  brief  description  of  the  95 major procedures i n the ALGOLW program.  MAIN: The main body o f the program monitor. called  Upon  initial  to i n i t i a l i z e  execution,  the  the  procedure INITMAIN i s  the  Adage  buffer  menu, messages, and symbols.  words  string  is  found.  Commands which a l l o w parameters f o r changing  of  system  to  variables  variables.  the  calling  print  Thus, i f the parameters  command  The  input  each p o s s i b l e command u n t i l a match i s  always  v a l u e s w i l l be p r i n t e d .  f o r the  The monitor then asks  the user to enter a command, as shown i n F i g u r e 1 0 . compared  command  v a r i o u s system v a r i a b l e s , and the procedure  SETUP i s c a l l e d t o generate crosshairs,  i s basically  out are  the  value  the new values of the ommited,  the  current  Simple commands are executed i n l i n e by  processor,  while  other  commands are executed by  one or more procedures.  BUILD: The BUILD procedure monitors a l l network c o n s t r u c t i o n and modification. prompting  Upon e n t r y , i t l o a d s t h e words f o r the  messages  into  c o n s i s t s of turning on lightpen  read,  the  the  display  display  the  and  The main loop  menu,  issuing  a  t u r n i n g o f f the menu, and executing a procedure  (depending on t h e l o c a t i o n of the termination  of  buffer.  menu  lightpen  hit).  Also,  upon  of the procedure executed, c o n t r o l o f the mode name  i n the menu i s switched from d i a l two to d i a l  five.  NODES: T h i s procedure i s c a l l e d when the SYMBOLS command i n the  96 menu  is  hit.  I t s main loop, a f t e r t u r n i n g on the c r o s s h a i r s ,  c o n s i s t s o f i s s u i n g a read  to the f u n c t i o n buttons  the a p p r o p r i a t e  buttons  servers,  code.  The  s i n k s , gueues, and  symbol i s d i s p l a y e d at buffer  the  buttons  a  lightpen  sources,  For each such e n t i t y ,  the  location  of  the  the  crosshairs,  a record i s created  of records f o r that e n t i t y .  A s p e c i a l button hit  terminates  Further  the SYMBOLS  i s read i n s t e a d of a button,  l i n k p o i n t e d to i s no longer d i s p l a y e d . to,  create  use  i s r e q u i r e d i n order to p o s i t i o n a gueue or to  sketch a b u f f e r . If  executing  buffers.  words f o r the l a b e l are c r e a t e d , and  and added to the l i s t of  the  are used t o  and  mode.  the symbol or  I f a symbol i s  pointed  i t s a s s o c i a t e d r e c o r d i s a l s o d e l e t e d from the data base.  JtOKS: ^ T  e  connecting  LINKS mode makes use of the l i g h t p e n i n order to draw l i n e s between p a i r s of symbols.  the s i m u l a t i o n  data  base.  controlled  dial  E,  by  c o n t r o l l e d by d i a l  The  while  intensity  No  entry i s made i n  of  the  links  is  the i n t e n s i t y of the symbols i s  B.  ASSIGNQ: T h i s procedure i s c a l l e d , with d i f f e r e n t arguments, f o r the ASSIGNQ, FIRST QUEUES, and  ASSIGN BUFF modes.  if  of queues and the l i s t  the arguments are the l i s t  (ASSIGNQ mode), then the process to and  lightpen  is  read.  p o i n t e r to the queue r e c o r d i s  example, of s e r v e r s  i s as f o l l o w s : a s e r v e r i s made  b l i n k ; a prompting message asking f o r a queue the  For  is  I f a gueue symbol was placed  in  the  displayed, h i t , then a  server  record,  97 otherwise the message "NO ASSIGNMENT" i s d i s p l a y e d . flag  i s not  server  on,  i n the l i s t  then  the  I f the e d i t  process s t a r t s over with the next  u n t i l a l l s e r v e r s have  been  the e d i t f l a g i s on, then the user i s f i r s t  processed.  If  prompted to p o i n t t o  the s e r v e r he i s i n t e r e s t e d i n .  ROOTING:  The  ROOTING mode r e q u i r e s a procedure s i m i l a r to that  used i n ASSIGNQ i n order or  sink  records.  Each  w i t h i n the e n t i t y type) number  i s used  to f i l l  to  a matrix o f p o i n t e r s  entity when  created  of  the  i s not  r o u t i n g matrix, the f i r s t  queue numbers, and the numbers.  in  Thus  SYMBOLS  second  set,  mode.  The  the e n t i t y In t h e  dimension i s indexed by  dimension  i s indexed  by  sink  f o r each b l i n k i n g queue-sink p a i r , the user i s  T h i s i s done by s t e p p i n g stepping  queue (unique  appropriate.  asked t o p o i n t to the next queue i n the route,  sink,  a number  form the l a b e l and t o r e f e r e n c e  whenever a p o i n t e r to i t s record case  i s assigned  to  through the l i s t  through the l i s t  or to  the  sink.  of s i n k s and, f o r each  of queues.  I f the e d i t f l a g i s  t h e user i s asked f o r a sink but every queue  is  processed  f o r than s i n k .  2MACI2IJS: then the l i s t  T h i s procedure steps through the l i s t  o f b u f f e r s , b l i n k i n g each i n turn and prompting on  the 3270 f o r the c a p a c i t y . default  of queues and  capacity  (20  and  Each queue and  buffer  i s given  a  100, r e s p e c t i v e l y ) i n SYMBOLS mode.  The d e f a u l t or otherwise c u r r e n t c a p a c i t y i s p r i n t e d  with  the  98  prompt. queue  I f a n u l l l i n e i s entered by the user, t h e f i e l d or  buffer  r e c o r d remains unchanged.  I f something other  than a number i s entered, the c a p a c i t y i s s e t at the  gueue symbol i s a l t e r e d  i n the  1,000,000  to r e p r e s e n t an i n f i n i t e gueue.  a gueue c a p a c i t y l e s s than twenty i s entered, the  gueue  and If  symbol  i s shortened p r o p o r t i o n a t e l y .  SOORCEFLOW:  The  SOURCEFLOW procedure  i s used f o r both FLOW and  SERVICE TIMES modes, where the a r r i v a l and s e r v i c e parameters,  respectively,  f i e l d s i n the records—see  source  a r e entered  and  Appendix  server  B).  into t h e i r appropriate  records  assigned,  time  f l a g i s on.  filled  Since  I n SERVICE TIMES  parameter i s a l s o requested  mode the flow matrix, indexed is  the DIS  d e f a u l t s are  the c u r r e n t parameters are only p r i n t e d with the  prompt i f the e d i t send  (actually  The method of b l i n k i n g each symbol  under c o n s i d e r a t i o n i s used here as w e l l . not  distribution  i n the  same  mode  the r e -  f o r each s e r v e r .  In FLOW  by source number and s i n k  number,  manner a s the r o u t i n g matrix.  f r a c t i o n s of flow t o each s i n k from a source do not  add  I f the up t o  one, a message i s p r i n t e d and t h a t step i s repeated. This  completes  the  major  procedures  within  the BUILD  procedure.  SAVEgET: T h i s procedure allows  a  complete  onto an MTS f i l e  i s invoked  by  the SAVE  command  and  d e f i n i t i o n of a network model to be w r i t t e n  of the user's c h o i c e .  The filename i s prompted  99  for  i f i t was  subroutines The  not entered  are  as a parameter to  saved  network d i s p l a y , 2)  an  encoded  of the r o u t i n g matrix, and  inverse  description  of  4) the flow  The  network t h a t initialized  LABEL:  The  restored may  to  exist,  the  are  b u f f e r when r e q u i r e d called the  the  relevant  matrix.  network and  the  r e p l a c e s any  the  data  base  and  currently active  simulation  statistics  are  zero.  LABEL  labels  of  the  an encoded d e s c r i p t i o n  re-creating  procedure  is  used to d i s p l a y or remove the  l a b e l s at each symbol i n the network. of  to open i t .  SAVENET, t h i s procedure reads i n and  decodes the saved i n f o r m a t i o n , display.  and  MTS  c o n s i s t s of 1) the b u f f e r words f o r  f i e l d s of the r e c o r d s f o r each e n t i t y , 3)  The  command.  used to c r e a t e or empty the f i l e  information  RESTORE:  the  kept  The  b u f f e r words f o r  i n an a r r a y and  for display.  to remove the l a b e l s before  only  loaded  all  i n t o the  This routine i s automatically entering  BOILD  or  starting  simulation.  GO:  GO  is  a small procedure which monitors the  Compile c y c l e . start  the  I t i s envoked by the GO  simulation.  Hhen  checks the data base i n order server  has  been assigned  Simulate-Edit-  command to s t a r t or  starting  re-  a s i m u l a t i o n , GO  first  to make sure each source and  each  a queue.  Between i n t e r n a l c y c l e s ,  checks to see i f an a t t e n t i o n i n t e r r u p t has been i s s u e d  or  GO one  100 of  the  simulation  limits  has  SIMULATE procedure i s c a l l e d . are  then  current  been  exceeded.  The EDIT and  If  COMPILE  c a l l e d , u n l e s s a HODISP command was  not, the procedures  i s s u e d before the  GO.  SIMULATE:  The  processing exceeded,  of an  required  main  body  of  SIMULATE  checks  between  the  each event to see i f a s i m u l a t i o n l i m i t has been attention  number  of  interrupt  has  been  p o t e n t i a l seguences these  f o r the i n t e r n a l conditions  the cycle  If  GETEVENT  i s c a l l e d , otherwise c o n t r o l i s returned to  the GO  of  or  has been achieved. procedure  none  issued,  list  maintain  two l i s t s  (or gueue) and  the l i s t  of  the f u t u r e events gueue and puts the a l t e r e d list.  then GETEVENT f i r s t  simulation events  of processed events to be passed  the EDIT procedure.  event  the  of event r e c o r d s : the f u t u r e  to  output  the  procedure.  GETEVEHT: The c o l l e c t i o n of r o u t i n e s comprising program  hold,  on  GETEVENT processes the event at the head record  in  the  (If t h e r e are no f u t u r e events scheduled, c a l l s GENABB.) The event r e c o r d i s d e s c r i b e d  in  Appendix B.  B a s i c a l l y , i t c o n t a i n s the event c l a s s , the time  of  the  and  event,  various  parameters  s p e c i f i c simulation e n t i t i e s involved.  further  defining  the  The r e c o r d a l s o c o n t a i n s  f i e l d s l a t e r used f o r the animation time and d u r a t i o n . GETEVENT new  event.  begins  by  updating the c l o c k to the time of the  I t then t e s t s on the event c l a s s and  uses  the  more  101  specific  information  to  appropriately  update  s t a t i s t i c s of the model i n t h e data base. t h a t must be scheduled as a r e s u l t of  the  s t a t e and  For each f u t u r e event  the  current  event,  the  procedure GETEVENT i s c a l l e d i n order to c r e a t e the proper event record  in  the f u t u r e events queue.  The aspects of the c u r r e n t  s t a t e o f the s i m u l a t i o n t h a t w i l l be procedure placed  are  i n the output event  to  generates  one  arrival  also  event  at  each  of the next a r r i v a l event a t t h a t source.) derive  independent  streams f o r each source (and each s e r v e r ) .  the time o f a r r i v a l i s determined by the stream specified  COMPILE  (An a r r i v a l event always  A pseudo-random number generator i s used t o number  the  list.  i n i t i a l i z e the s i m u l a t i o n .  causes the s c h e d u l i n g  random  by  then added to the c u r r e n t event record and i t i s  3ENABB: This procedure source  required  and  p r o b a b i l i t y d i s t r i b u t i o n f o r that source.  the  Thus user-  GENABB must  use the flow matrix and a s e p a r a t e random number stream i n  order t o determine the d e s t i n a t i o n sink f o r the new a r r i v a l .  GENEVENT: GEN EVENT i s c a l l e d specifying  an  argument  the event c l a s s d e s i r e d f o r the new event.  GENEVENT  then uses the i n f o r m a t i o n  from  GETEVENT  with  i n the c u r r e n t event r e c o r d and i n the  data base to create the new event record.  T h i s record i s placed  i n the f u t u r e events queue.  SENDSTATE: When the s i m u l a t i o n s t o p s , the data base c o n t a i n s the  102  c u r r e n t s t a t e o f the model. at  this  time  to  scan  c u r r e n t s t a t e o f each desirable  SENDSTATE i s  the  relevant  queue,  buffer,  s i n c e e i t h e r NODISP was  l a s t i n t e r n a l c y c l e was not  the  sequence  and  server.  (This  is  of the  displayed.)  of event r e c o r d s  simulation.  These  same  list  list.  Chapter I I d e s c r i b e s  and t a i l  called  r e c o r d s and d i s p l a y the  s p e c i f i e d , or the t a i l  EDIT: The EDIT procedure e d i t s the l i s t by  automatically  output  r e c o r d s are used to form the the  editing  process i n d e t a i l .  COMPILE:  The  operations  also described steps  i n Chapter I I .  through  each  the event c l a s s , actually  performed  The f i r s t  part of  r e c o r d i n the sequence  selected  compile  by the COMPILE procedure are  the  smaller  the  list.  procedures  procedure  Depending  are  called  d i s p l a y programs f o r each sequence.  second p a r t o f the r o u t i n e then compiles the b u f f e r timer and sends the completed  RESET:  The  RESET  It  SPEED:  lists,  The  The words  routine  goes through the data base and, f o r their  initial  a l s o d i s p l a y s a f r e s h copy of the network, r e s t o r e s  the random number sequence  to  a r r a y t o the Adage.  each e n t i t y , changes the s t a t e and s t a t i s t i c s t o value.  on  seeds,  eliminates  any  remaining  event  or  and r e s e t s the s i m u l a t i o n c l o c k .  SPEED  procedure  uses a small a r r a y of  pre-defined  103 s e t t i n g s f o r the animation time c o n v e r s i o n f a c t o r and of the  internal cycle.  whether  to  assign  The  d e f a u l t speed d i s p l a y , or the  display  (which a l s o r e q u i r e s  zero).  Also,  new  i f a tail  adjust  factor  (see  the  length  specifies  the v a l u e s f o r the next f a s t e r d i s p l a y ,  next slower d i s p l a y , the  back and  argument to the procedure  the  s e t t i n g the sequence  scan mode  durations  l i s t e x i s t s , the SPEED procedure w i l l  animation times i n the  s e c t i o n s 2.3.3  and  2.4.2).  the  t a i l a c c o r d i n g to  to go the  104  APPENDIX B — The  basic  record  describing  (see f i g u r e 22).  record  separate l i s t s  e a c h model e n t i t y  These r e c o r d s  of sources,  i s t h e NODE  a r e grouped  into  five  s e r v e r s , s i n k s , queues, and b u f f e r s .  Ending I Current Buffer \ State Locat ion Starting Buffer L o c a t i on  DATA STRUCTURE  Y-Coordinate. of Symbol  Ident if yi ng Number  X-coorc i nate of Symbol  Po i n t e r t o Q u e u e NODE if a Server or Source and to Buffer NODE i f a Queue  Pointer to n e x t NODE in List  Pointe Statis Record not a  r to tics i f Sink  Pointer to MULTSERV i f a Queue a n d to DIS i f a Server, Source or Buffer  FIGURE 2 2 : T h e NODE R e c o r d The  NODE  record  i s augmented,  when  necessary,  HULTSERV, a n d S T A T I S T I C S r e c o r d s .  The  fields  o r s e r v i c e time  and  contains  the arrival  code and p a r a m e t e r s , o r t h e b u f f e r record  also  contains queue  has  three  thes t a t i s t i c s  length  fields.  DIS  record  capacity. F o r queues  has  three  distribution  The  STATISTICS  and b u f f e r s , i t  f o r computing the average  o r b u f f e r occupancy.  by t h e B I S ,  and  maximum  For sources i t contains the  number o f l o s t a r r i v a l s a n d an i n t e g e r  identifying  the  random  105 number  stream.  the re-send  F o r s e r v e r s i t c o n t a i n s the stream  identifier,  time, and the number of times found f u l l .  F i g u r e 23  shows the use of the MULTSER V r e c o r d and t h e a s s o c i a t e d and  HSPTR records.  f o r every Future record.  For each queue, there i s one TRANPAR  item i n t h e queue (not i n c l u d i n g items being  transaction  TRANPAR  parameters  A l s o , f o r every  record  served).  would r e q u i r e expansion of t h i s  s e r v e r using the queue,  there  i s one  HSPTR r e c o r d . The  network  definition  i s completed by t h e ROUTE matrix  c o n s i s t i n g of p o i n t e r s to NODE r e c o r d s the FLOW matrix The  EVENT  (queues  or  sinks),  and  o f r e a l numbers. record  contains  several  f i e l d s which take on  v a r i o u s meanings a t d i f f e r e n t p o i n t s i n the p r o c e s s i n g . 24 summarizes t h i s r e c o r d .  Figure  106  MODE  Pointer . t o NODE . (Dest inat ion Sink.)  (Queue)  Source Number and A r r i v a l Time  FIGURE 23: Data S t r u c t u r e f o r Queues  107  t Event Class Code  Pointer to MODE R e c o r d s as " S u b c l a s s Des i e n a t o r s "  Sequence D u r a t i on S i m u l a t i on I i me  Pointer to P rev i ous Queue a n d B u f f e r State Parameters for Compile Routine  EVENT  Record  F Po i n t e r t o NODE (Dest inat ion Sink)  Pointer to n e x t EVENT Record  FIGURE  2 4 : The  EVENT  Record  108 APPENDIX C —  USER'S GUIDE  Purpose ANISIM  provides  s i m u l a t i n g , and There  are two  a  command  animating  arbitrary  language queuing  for  creating,  network  models.  main phases of e x e c u t i o n : the normal command mode  at the 3270, and  the menu d i a l o g u e f o r  network  definition  and  sure  the  m o d i f i c a t i o n using the Adage and the 3270. Running the Program Before  attempting  g r a p h i c s monitor the  Computing  to  run  ANISIM,  has been loaded i n t o Centre  f o l l o w i n g command may  writeup  UBC  then be used  make  the Adage GRAPH  for  that  computer.  See  details.  The  to s t a r t e x e c u t i o n of ANISIM:  $S0URCE WALK:ANISIM The program w i l l f i r s t ask ADAGE—TRUE  OR  FALSE,"  the  Adage  "ENTER  screen  COMMAND  OR  and  "ARE  which should be r e p l i e d  out the word "TRUE" (or "FALSE"). the  question  YOU  USING  to by  The program w i l l  THE  spelling  then  clear  enter the command mode with the message  HELP."  On  entering  "HELP,"  a  available  commands w i l l be presented along with a b r i e f  of t h e i r  purpose.  list  of  reminder  109 Adage  Input The  six dials  connected  to  the  Adage  are used i n the  f o l l o w i n g way:  DIAL A  DIAL D  the h o r i z o n t a l crosshair  the v e r t i c a l c r o s s h a i r  DIAL B  DIAL E  intensity  of symbols and  names o f un-entered  modes  intensity  of l i n k s and l a b e l s  and names of entered modes  DIAL C  DIAL F  X-co-ordinate of menu  Y-co-ordinate of menu  To use the f u n c t i o n buttons of  the  menu  should be used.  ( r e q u i r e d during  SYMBOLS  mode  dialogue) t h e yellow o v e r l a y card marked "ANISIM" I f t h i s card cannot  be l o c a t e d , the f u n c t i o n of  each button i s as f o l l o w s :  BUTTON 1: C r e a t e s a source. BUTTON 2:  Creates a server.  BUTTON 3:  Creates a s i n k .  BUTTON 5:  C r e a t e s a queue. O r i e n t s the t a i l  o f the queue symbol.  110 BUTTON 6:  Creates a b u f f e r . Sketches t h e b u f f e r  BUTTON 7: Terminates b u f f e r  symbol.  sketching.  Terminates SYMBOLS mode. BUTTON Hz S e l e c t s t h e d e f a u l t b u f f e r BUTTON 8: Allows a sketched b u f f e r Bhen using has  been  symbol.  symbol.  the l i g h t p e n , the d i s p l a y w i l l b l i n k when a h i t  accepted,  and  t h e button should then be r e l e a s e d to  avoid  an unintended second h i t .  menu  dialogue,  Also,  as a g e n e r a l  r u l e i n the  a l i g h t p e n h i t on the prompting message i s used  to terminate a mode or avoid an assignment.  Av a i l able Commands ^ b r a c k e t s denote o p t i o n a l parameters},! BUILD  NEWNET or EDITNET  X  X  Each causes the NEWNET  first  program  to  enter  the  menu  phase i s d e s c r i b e d _nJJ Ls2J  later  Ls^j  If  any  parameters  parameter  are  and  i s missing  prints or given  value i s r e t a i n e d  1) the s i m u l a t i o n  the  into  gueue/server  systems,  resulting  as an a s t e r i s k and  printed.  c l o c k time l i m i t , 2 ) the  maximum number of a r r i v a l s generated, 3) the maximum entries  dialogue  [_MJ  ( p o s i t i o n h o l d e r ) , the c u r r e n t The  The menu  i n more d e t a i l .  Changes the l i m i t s on the s i m u l a t i o n values.  phase.  d e s t r o y s any a c t i v e network, and EDITNET should be  used f o r small changes t o the a c t i v e network.  CYCLE  dialogue  4)  number  of  the maximum number of  111 terminations 200,  200,  (departures to s i n k s ) .  and 50,  Default  values  are  1000,  respectively.  DESPEED Returns to the d e f a u l t speed f o r subsequent animations. DOR  LSiJ  Alters  LS2J LRU LRU the  sequence  durations  (in simulation  values i f s p e c i f i e d , and p r i n t s the v a l u e s . 1)  arrivals,  The  2) l o s t a r r i v a l s , 3) departures  departures t o s i n k s .  A l l default  durations  time) to the new sequences  (binding),  are  10  are  and 4)  simulation  time u n i t s , except during SCAH mode when they are zero. EDITNET See BUILD. END Terminates control  the  program.  An  attention  interrupt also  to MTS but the program can be resumed  with  a  returns $RESTART  command. FACTOR L H J Alters  the animation time c o n v e r s i o n f a c t o r to the new value i f  s p e c i f i e d , and p r i n t s the value. f a s t e r the d i s p l a y .  The d e f a u l t  The s m a l l e r  the  factor,  the  f a c t o r i s s e t to 10.  FASTER I n c r e a s e s the speed of subseguent animations, u n l e s s the c u r r e n t speed i s the f a s t e s t , and p r i n t s t h e new f a c t o r and c y c l e  length  values. 30 In J Simulates  the  a c t i v e network f o r n time u n i t s  from the c u r r e n t  112 s t a t e or u n t i l exceeded  interrupted,  or  until  (see the CYCLE command).  a  simulation  The animation  limit  is  accompanies the  s i m u l a t i o n u n l e s s a NODISP command i s f i r s t i s s u e d . INTERCY £ n j Alters  the l e n g t h  specified,  of  the i n t e r n a l c y c l e t o the new value i f  and  prints  the  internal  cycle  should  be  animation  between c y c l e s .  value. made  For  fast  displays,  the  l a r g e r t o a v o i d d e l a y s i n the  D e f a u l t value i s 15 sequences.  LABEL D i s p l a y s unique l a b e l s  at  each  symbol.  These  labels  allow  reference  t o s p e c i f i c network e n t i t i e s by i n f o r m a t i o n a v a i l a b l e  from  PRINT  the  command.  The  intensity  of  the  labels  is  c o n t r o l l e d by d i a l E. MORHELP P r i n t s a d d i t i o n a l commands not l i s t e d by HELP. NEWNET See BUILD. NOJDISP Turns o f f the animation  f o r the d u r a t i o n of the next GO command.  PLOT [_sj Provides is  a hardcopy p l o t of t h e d i s p l a y .  10 inches unless the parameter otherwise  The maximum  dimension  specifies.  PL0T:Q  must be run a f t e r t e r m i n a t i o n ANISIH. PRINT ni |_n2J Prints argument.  the f o l l o w i n g  information,  according  The second argument, i f not  zero,  to will  the cause  first the  113 program to ask f o r the name o f an MTS f i l e information.  on which to p r i n t the  The codes a r e :  0) A l l of the i n f o r m a t i o n  a v a i l a b l e from codes 2-8 and  16. 1) A l l of the i n f o r m a t i o n  a v a i l a b l e from codes 3-8 and  16 ( i . e . a l l s t a t i s t i c s ) . 2) A d e s c r i p t i o n of the f u t u r e events 3) A l l of the i n f o r m a t i o n 4) Source numbers and  list.  a v a i l a b l e from codes 4-8.  statistics.  5) Sink numbers and s t a t i s t i c s . 6) Server  numbers and  7) Queue numbers and  statistics. statistics.  8) B u f f e r numbers and s t a t i s t i c s . 11) A d e s c r i p t i o n of the c u r r e n t seguence  list.  12) The most r e c e n t l y compiled animation b u f f e r ( f o r debugging) . 13) A summary of the c u r r e n t  model e n t i t i e s and  parameters. 14) The c u r r e n t  value of each random number stream (for  debugging). 15) The e n t i r e Adage d i s p l a y b u f f e r  (for debugging).  16) The average time-in-system s t a t i s t i c s  by source-  sink p a i r s . Any  other  number  will  s t a t u s of the s i m u l a t i o n .  result  i n the p r i n t i n g of the c u r r e n t  111 RESET Resets the  simulation  variables,  the  statistics,  the  s t a t e , the random number seeds, and the d i s p l a y to t h e i r  model  initial  status. RESTORE [_filenamej Destroys the current saved on the MTS f i l e SAVE  a c t i v e network and makes a c t i v e the network specified.  j_filenamej  Saves the a c t i v e network on the MTS f i l e does not a l r e a d y  specified.  I f the f i l e  e x i s t , i t w i l l be c r e a t e d .  SCALE _ x j Alters and  the  s c a l e of the d i s p l a y  p r i n t s the value.  to the new value i f s p e c i f i e d ,  The d e f a u l t i s 0.6.  SCAN Allows the animation t o be d i s p l a y e d no  moving  items  at an i n c r e a s e d  ( i . e . a l l "seguence d u r a t i o n s "  new f a c t o r and c y c l e l e n g t h  speed  with  are z e r o ) .  The  values are p r i n t e d o u t .  SLOWER Reduces the speed of subsequent animations, u n l e s s  the  speed i s t h e slowest, and p r i n t s the new f a c t o r and c y c l e  current length  va l u e s . STOP Same as END. TRACK n l [_n2J Sets debug f l a g s f o r the programmer.  The second argument causes  the program t o ask f o r t h e name of an MTS f i l e  on which to p r i n t  115 the  output.  The  flags  a r e 0) PRINTCYC, 1) PRINTSTEPOUTP, 2)  LITDUMP, 3) TRACE, 4) DUMPER, 5) COMPTRACE, 6) COMTRACE, and BUFTRACE.  Flag  3  may  also  be  of  7)  value to the user, as i t  p r o v i d e s a d e t a i l e d t r a c e of the s i m u l a t i o n . UNLABEL Removes the l a b e l s from t h e s c r e e n .  (This i s done a u t o m a t i c a l l y  b e f o r e s i m u l a t i n g and b e f o r e e n t e r i n g the menu dialogue.)  The Menu  Dialogue  Once t h i s phase of the program i s entered, commands a r e by  pointing  with the l i g h t p e n to a mode name i n the menu.  menu should be p o s i t i o n e d by d i a l s location of  on the screen.  each mode.  un-entered at  C  and  I t w i l l disappear  F  to  a  during the execution  are a t normal i n t e n s i t y and entered  intensity.  The  convenient  A l s o , D i a l s B and E should be adjusted such  modes  a reduced  entered  that  modes a r e  A mode may be re-entered by t u r n i n g the  i n t e n s i t y back up i n order t h a t  the  lightpen  h i t will  take.  When b u i l d i n g a new network, a recommended order of execution i s the  order  in  which the mode names are l i s t e d .  The purpose of  each mode i s o u t l i n e d below, along with any i n s t r u c t i o n s f o r use not obvious from the d i a l o g u e . SYMBOLS: T h i s mode i s used t o c r e a t e function  buttons  and  position  d e f i n e d by the c r o s s h a i r s . mode.  model  entities  with  the  t h e i r symbols a t the l o c a t i o n s  Button 7 i s used  to  terminate  the  When c r e a t i n g a gueue, a second button h i t i s reguested.  116 The head of the gueue w i l l be l o c a t e d location second any  and  the t a i l  appears  Upon  If  specify point  crosshair  B u f f e r symbols may  selecting  a buffer  be  sketched  in  (button 6 ) , the bargraph  at t h e c r o s s h a i r s l o c a t i o n and the user i s asked  he wants t o s k e t c h 4).  the f i r s t  w i l l be o r i e n t e d i n t h e d i r e c t i o n of the  crosshair location.  shape.  at  (button 8) or use the d e f a u l t  shape  whether (button  i t i s s k e t c h , button 6 i s used with t h e c r o s s h a i r s t o  l i n e endpoints. specified.  No l i n e w i l l  Button  7  be  terminates  drawn the  to  the  first  sketching,  The  l i g h t p e n may be used i n t h i s mode t o d e l e t e a symbol or l i n k  by  p o i n t i n g to i t .  A maximum of 19 gueues, 19 s e r v e r s , 10 sources,  10  6  sinks,  and  b u f f e r s a r e c u r r e n t l y allowed, i n c l u d i n g any  d e l e t e d ones, LINKS: T h i s mode i s used line  by  pointing  to  to connect any p a i r of symbols the symbols  with  the  with  lightpen.  a  The  i n t e n s i t y of the l i n k s i s c o n t r o l l e d by d i a l E. ASSIGNQ: Every s e r v e r must be assigned a unigue and  other  assignments,  the l i g h t p e n .  are made by p o i n t i n g to  gueue.  These,  to the symbol with  The assignment  i s made  the s e r v e r  that  is  Every  must be assigned a unigue queue t o  blinking. FIRST QUEUES:  designate the f i r s t generated  source  queue/server  system  i n the r o u t e  f o r items  mode i s r e q u i r e d i n order t o t e l l  the program  at that s o u r c e .  ASSIGN BUF:  This  where t o send an item next, given that i t i s a t system  (blinking  a  gueue/server  queue) and i s d e s t i n e d f o r the b l i n k i n g  sink.  117 The user should p o i n t t o the next queue or to the s i n k . CAPACITIES: T h i s mode i s r e q u i r e d i f the d e f a u l t 20  f o r queues  and  100  capacities  of  f o r b u f f e r s are not a p p r o p r i a t e .  c a p a c i t y o f a queue does not i n c l u d e the s e r v e r s , s t a t e of a queue r e f e r s t o the queue/server  The  although  the  system.  FLOW: T h i s mode i s r e q u i r e d i n order to d e f i n e the i n t e r - a r r i v a l time  distribution  type  and  parameters.  ( C u r r e n t l y , the  e x p o n e n t i a l and uniform d i s t r i b u t i o n s a r e a v a i l a b l e . ) is  also  used  to  define  The  the flow of items generated  source, by e n t e r i n g t h e f r a c t i o n  (decimal f r a c t i o n  mode  a t each  between  0.0  and  1.0, i n c l u s i v e )  of those items t o be d e s t i n e d f o r each s i n k .  If  t h e f r a c t i o n s do not add up t o 1.0 f o r each source, the user  w i l l be asked t o t r y a g a i n . SERVICE TIMES: T h i s mode i s r e q u i r e d i n order  to  specify  the  d i s t r i b u t i o n and parameters o f the s e r v i c e time f o r each s e r v e r . It  i s also  used t o s p e c i f y the (constant) time a blocked item  must wait i n the s e r v e r before attempting t o depart a g a i n . item  i s blocked  filled  by  (An  e i t h e r the next queue or i t s b u f f e r being  to capacity.)  DONE: T h i s i s not a c t u a l l y  a  mode,  but  causes  the  menu  to  disappear and c o n t r o l t o be r e t u r n e d to the normal command phase at  the 3270.  Since  there  could cause an unexpected created  or  may s t i l l  be bugs i n ANISIM which  t e r m i n a t i o n of the program, any  newly  modified network should be saved a t t h i s time using  the SAVE command. T h i s user's guide i s not intended  to  provide  a  thorough  118 understanding interested further  of  the  uses  user i s r e f e r r e d  details.  and  capabilities  of ANISIM.  to the main body of t h i s t h e s i s  The for  

Cite

Citation Scheme:

    

Usage Statistics

Country Views Downloads
China 5 1
United States 4 0
Malaysia 1 0
Mexico 1 0
Canada 1 0
City Views Downloads
Shenzhen 4 0
Ashburn 2 0
Unknown 1 4
Winfield 1 0
Buffalo 1 0
Jitra 1 0
Mountain View 1 0
Beijing 1 1

{[{ mDataHeader[type] }]} {[{ month[type] }]} {[{ tData[type] }]}
Download Stats

Share

Embed

Customize your widget with the following options, then copy and paste the code below into the HTML of your page to embed this item in your website.
                        
                            <div id="ubcOpenCollectionsWidgetDisplay">
                            <script id="ubcOpenCollectionsWidget"
                            src="{[{embed.src}]}"
                            data-item="{[{embed.item}]}"
                            data-collection="{[{embed.collection}]}"
                            data-metadata="{[{embed.showMetadata}]}"
                            data-width="{[{embed.width}]}"
                            async >
                            </script>
                            </div>
                        
                    
IIIF logo Our image viewer uses the IIIF 2.0 standard. To load this item in other compatible viewers, use this url:
http://iiif.library.ubc.ca/presentation/dsp.831.1-0051762/manifest

Comment

Related Items