general purpose visual simulation system
TRANSCRIPT
1GENERAL PURPOSE VISUAL SIMULATION SYSTEM
byJohn Leslie Bishop
Osman Balci, Chairman
Computer Science
(ABSTRACT)
The purpose of the research described herein is to
prototype a software system that aids a simulationist in
developing a general purpose discrete event simulation1 model.
A literature review has shown the need for an
integrated visual simulation system that provides for the
graphical definition and interactive specification of the
model while maintaining application independence. TheGeneral Purpose Visual Simulation System (GPVSS) prototyped
in this research meets this need by assisting a
simulationist to: (1) graphically design the model and its
M visualization, (2) interactively specify the model’s logic,
and (3) automatically generate the executable version of the
model, while maintaining domain independence. GPVSS is
prototyped on a Sun 3/160C computer workstation using the
SunView graphical interface. It consists of over 11,000
lines of documented code. GPVSS has been successfully
tested in three different case studies that are described in
this work.
1
III
I
iii
TABLE OF CONTENTS
Abstract .............................................. iiAcknowledgements ...................................... iiiList of Figures ....................................... viList of Tables ........................................ viii
Chapter 1: Introduction ............................... 11.1 Statement of the Problem ..................... 11.2 Statement of Objectives ...................... 11.3 Overview of Thesis ........................... 2
Chapter 2: Literature Review .......................... 32.1 Definition of Terms .......................... 3
2.1.1 Animation ............................. 32.1.2 Visual Simulation ..................... 42.1.3 Visual Interactive Simulation ......... 52.1z4~Visual Modeling ....................... 62.1.5 Visual Interactive Modeling ........... 6
2.2 Background ................................... 62.3 Graphical Symbology .......................... 72.4 Display Type ................................. 92.5 Interaction .................................. 10
2.5.1 Types of Interaction .................. 102.5.2 Levels of Interaction ................. 102.5.3 Methods for Incorporating Interaction . 11
2.6 Construction of VS/VIS Models ................ 122.7 Conceptual Frameworks for VS Programming ..... 132.8 Perspectives on VS/VIS ....................... 142.9 Benefits of VS/VIS ........................... 162.10 Drawbacks of VS/VIS ......................... 182.11 Conclusions ................................. 21
Chapter 3: Design and Implementation of GPVSS ......... 223.1 Hardware and Software Environment ............ 223.2 GPVSS ........................................ 263.3 The Image Editor/Model Editor ................ 30
3.3.1 The Image Editor ...................... 333.3.1.1 Pen Mode ....................... 333.3.1.2 Line Mode ...................... 353.3.1.3 Rectangle Mode ................. 383.3.1.4 Select Mode .................... 403.3.1.5 Image Load ..................... 443.3.1.6 Image Save ..................... 48
3.3.2 The Model Editor ...................... 513.3.2.1 Submodel Definition ............ 523.3.2.2 Path Definition ................ 573.3.2.3 Dynamic Object Specification ... 60
iv
1
3.3.2.4 Specification Mode ............. 743.3.2.5 Load Model ..................... 833.3.2.6 Save Model ..................... 88
3.4 The Generator ................................ 903.5 The Animation Tool ........................... 93
3.5.1 Animation Mode ........................ 953.5.2 Run Mode .............................. 100
Chapter 4: Case Studies and Testing ................... 1034.1 M/M/1 System ................................. 103
4.1.1 The Experimental Model and Results .... 1034.2 MVS System ................................... 107
4.2.1 The Experimental Model and Results .... 1094.3 Capacity System .............................. 113
4.3.1 The Experimental Model and Results .... 1154.4 Testing ...................................... 119
4.4.1 Verification .......................... 1194.4.2 Validation ............................ 121
Chapter 5: User’s Manual .............................. 1235.1 Round Robin System ........................... 1235.2 Starting GPVSS ............................... 1245.3 Drawing Images ............................... 1245.4 Defining the Model ........................... 132
5.4.1 Defining SubModels .................... 1385.4.2 Defining Paths ........................ 1385.4.3 Saving a Model ........................ 142
5.5 SubModel Specification ....................... 1475.5.1 SubModel Logic ........................ 1475.5.2 SubModel Attributes ................... 160
5.6 Dynamic Object Definition and Specification .. 1635.7 The Model Generator .......................... 1715.8 The Model Animation Tool ..................... 178
Chapter 6: Summary and Future Research ................ 1846.1 Summary ...................................... 1846.2 Recommendations for Future Research .......... 185
Bibliography .......................................... 188VITAE ................................................. 192
v
1nk
LIST OF FIGURES
Figure 3.1 GPVSS .................................. 23Figure 3.2 Model Name Requester for Editor ........ 27Figure 3.3 Editor Initial Screen .................. 28Figure 3.4 Model Name Requester for Generator ..... 29Figure 3.5 Model Generator Execution .............. 31Figure 3.6 The Process Interaction Program Screen . 32Figure 3.7 Image Editor Pen Mode .................. 34Figure 3.8 Image Editor Line Mode ................. 36Figure 3.9 Image Editor Rectangle Mode ............ 39Figure 3.10 Image Editor Select Mode ............... 41Figure 3.11 Selecting an Image ..................... 42Figure 3.12 Duplicating an Image in Select Mode .... 43Figure 3.13 Image Editor Load Panel ................ 46Figure 3.14 Image Editor Save Panel ................ 49Figure 3.15 The Model Editor ....................... 53Figure 3.16 Submodel Name Requester ................ 54Figure 3.17 Defining a Submodel .................... 56Figure 3.18 Path Name Requester .................... 58Figure 3.19 Intermediate Path Point Definition ..... 59Figure 3.20 Path Termination ....................... 61Figure 3.21 Dynamic Object Name Requester .......... 62Figure 3.22 DO Definition and Specification Tool ... 64Figure 3.23 DO Interarrival Time Menu .............. 65Figure 3.24 Interarrival Probability Distributions . 67Figure 3.25 Maximum Generated DO Menu .............. 68Figure 3.26 Attribute Name Requester ............... 69Figure 3.27 Attribute Definition/Specification Tool 71Figure 3.28 Attribute Variable Type Menu ........... 72Figure 3.29 Initial Attribute Value Menu ........... 73Figure 3.30 IAV Probability Distributions .......... 75Figure 3.31 Specification Menu ..................... 78Figure 3.32 Specification Path Requester ........... 79Figure 3.33 Submodel Logic Specification Tool ...... 81Figure 3.34 Model Load Requester ................... 87Figure 3.35 Save Model Requester ................... 89Figure 3.36 Animation Tool with Loaded Model .......° 96Figure 3.37 Process Interaction Conceptual Framework 99Figure 3.38 The Animation Tool Run Panel ........... 101Figure 4.1 M/M/1 Model ............................ 104Figure 4.2 M/M/1 Dynamic Display .................. 105Figure 4.3 M/M/1 Experimental Model ............... 106Figure 4.4 MVS Model .............................. 110Figure 4.5 MVS Dynamic Display .................... 111Figure 4.6 MVS Experimental Model ................. 112Figure 4.7 Capacity Model ......................... 116Figure 4.8 Capacity Dynamic Display ............... 117Figure 4.9 Capacity Experimental Model ............ 118
vi
Figure 5.1 GPVSS Main Menu ........................ 125Figure 5.2 System Model Name Requester ............ 127Figure 5.3 Image Editor/Model Editor .............. 128Figure 5.4 Re—sized Image Editor .................. 129Figure 5.5 Completed Background Image ............. 130Figure 5.6 Saving the Background Image ............ 131Figure 5.7 Dynamic Object Images .................. 133Figure 5.8 Selecting the DO Image ................. 134Figure 5.9 Saving a DO Image ...................... 135Figure 5.10 Loadiig the Background Image ........... 136Figure 5.11 Image Editor After Background Load ..... 137Figure 5.12 The Model Editor ....................... 139Figure 5.13 Submodel Definition Name Requester ..... 140Figure 5.14 Completed Submodel Definition .......... 141Figure 5.15 Path Name Requester .................... 143Figure 5.16 Path Starting Point .................... 144Figure 5.17 Path Termination ....................... 145.Figure 5.18 Completed Path Definitions ............. 146Figure 5.19 Save Model Requester ................... 148Figure 5.20 Specification Menu ..................... 149
lFigure 5.21 Specification Path Requester ........... 150Figure 5.22 Terminall Internal Logic Specification . 152Figure 5.23 Terminal2 Internal Logic Specification . 154Figure 5.24 Terminal3 Internal Logic Specification . 155Figure 5.25 CPU_QUEUE Internal Logic Specification . 156Figure 5.26 CPU Internal Logic Specification ....... 158Figure 5.27 CPU Internal Logic Specification ....... 159Figure 5.28 Attribute Name Requester ............... 161Figure 5.29 Nicpu_sm Attribute Specification ....... 162Figure 5.30 Nicpu_queue_sm Attribute Specification . 164Figure 5.31 QUANTUM Attribute Specification ........ 165Figure 5.32 OVERHEAD Attribute Specification ....... 166Figure 5.33 Execution_time Attribute Specification . 167Figure 5.34 DO Name Requester for Jobl ............. 168Figure 5.35 Jobl DO Specification Tool ............. 169Figure 5.36 DO Attribute Name Requester for Origin . 170Figure 5.37 Origin DO Attribute Specification Tool . 172Figure 5.38 Rservice_time DO Attr. Spec. Tool ...... 173Figure 5.39 Job2 DO Specification Tool ............. 174Figure 5.40 Job3 DO Specification Tool ............. 175Figure 5.41 Model Generator Requester .............. 176Figure 5.42 Generating the Model ................... 177Figure 5.43 Model Animation Tool Screen ............ 179Figure 5.44 Animation Tool After Load Operation .... 180Figure 5.45 The Dynamic Display .................... 181Figure 5.46 The Experimental Model ................. 182
vii
1
LIST OF TABLES
Table 3.1 GPVSS Database Tables .................. 47Table 3.2 Dynamic Object Standard Attributes ..... 76Table 3.3 Submodel Logic Specification ........... 82Table 3.4 Macros ................................. 84Table 3.5 Program Generation Files ............... 92Table 4.1 M/M/1 System Experimental Results ...... 108Table 4.2 MVS System Experimental Results ........ 114Table 4.3 Capacity System Experimental Results ... 120Table 5.1 Round Robin System Experimental Results 183
viii
CHAPTER 1
INTRODUCTION
1.1 Statement of the Problem
Many visual modeling tools and packages have becomeavailable in recent years. Of the software currently on the
market, most tend to be “either collections of FORTRAN
subroutines, such as SEE—WHY, or purpose built languages
such as Inter_SIM and Xcell“ [Bell and O’Keefe 1987] or
extensions to existing simulation languages. Examples of
this approach include CINEMA which interfaces to the SIMAN
simulation language [Johnson and Poorte 1988], and TESS
which interfaces with the SLAM II simulation language
[Standridge 1986]. RESQME [Gordon et al. 1988] provides a
full visual simulation modeling environment, but forces the
user to use such primitives as "Sources", "Sinks", "Chains",
"Nodes", "Queues", etc. [Sauer 1982].
Clearly there is a need for an integrated visual
simulation system that provides for the graphical definition
and specification of the model while maintaining application
independence.
1.2 Statement of Objectives
The purpose of this research is to prototype a software
system that aids a simulationist in developing a general
1
I
2
purpose discrete event visual simulation model. Thesoftware system should assist a simulationist to: (1)
graphically design the model and its visualization, (2)
interactively specify the model’s logic, and (3)
automatically generate the executable version of the model.
1.3 Overview of Thesis
Chapter 2 presents a state-of-the-art review of Visual
Simulation (VS). Chapter 3 describes in detail the
conceptual framework and internal logic used in GPVSS.
Chapter 4 contains three case studies and the verification/
validation of GPVSS. Chapter 5 fully documents the current
use and functionality of GPVSS and contains a simple
tutorial illustrating its use. Chapter 6 presents a summary
of work accomplished and suggests areas for future research.
CHAPTER 2
LITERATURE REVIEW
2.1 Definition of Terms .
Recent years have seen the increasing proliferation of
discrete event simulation packages that include some
facility for "animation", "Visual Simulation" (VS), "Visual
Interactive Simulation" (VIS), "Visual Modeling" (VM), or
"Visual Interactive Modeling" (VIM). The meaning of these
terms to describe a dynamic display facility for simulation
has become relatively ambiguous.
2.1.1 Anination
Animation refers to any graphic display of information
where the information to be imparted to the viewer is
conveyed by image change [Baeker 1974]. This includes many
' displays clearly outside the scope of simulation. Therefore
it is inappropriate to restrict the definition of "animation
tool" to that which provides a display "portraying the
dynamic behavior of the system model" with some variable
degree of user interaction [O’Keefe 1987].
A more apropos definition is offered by Standridge
[1986]. The term animation as it applies to simulation
refers to either simulation-concurrent or post-simulation
animation. In simulation—concurrent animation, the
3
4
simulation is run "based on the state of the system as seen
in the animation" [Standridge 1986] and allows the user to
interact with and change model parameters. Post—simulation
animation "emphasizes the presentation of the dynamics and
structure of a system as captured by a simulation"[Standridge 1986] and does not allow the changing of model
parameters by the user.
As the above illustrates, the term "animation" has been
used to refer to a variety of dynamic simulation displays
and degrees of user interaction. According to Mathewson
[1985] "animation is a particular use of the topological
information in a program generator". For this reason, it
is desirable to restrict the scope of animation as it
applies to simulation to refer solely to the generated
dynamic display. Thus, a "simulation—concurrent animation" ·
is defined as a dynamic display generated by the state of
the system model, regardless of whether user interaction
with the model is supported. Similarly, "post-simulation
animation" is a dynamic display driven by a simulation trace
and may or may not include facilities for user interaction.
2.1.2 Visual Simulation
VS is the process of building a model which permits a
visual display of the dynamic behavior of the system under
study and experimenting with this model on a computer for a
specific purpose. The major difference between Discrete
I
5
Event Simulation and VS is the fact that the simulationmodel’s input, internal behavior, and/or output arevisualized and displayed on a computer screen. VS is asubset of the capabilities provided by VIS.
2.1.3 Visual Interactive Sinulation
VIS includes all of the capabilities of VS, but adds
the capability of the user to interact with the running
model. This interaction may be either model or user
determined, depending on who initiates the interaction
[O’Keefe 1987].
Prompting the user to make some sort of scheduling
decision is one example of model initiated interaction. In
fact, the need for a user to know the current state of the
modeled system when making such a decision is considered the
impetus behind the first VIS efforts [Bell and O’Keefe
1987].
User initiated interaction allows the user to change
model parameters and continue execution of the model. This
ability to "play" with the model can be crucial for
understanding the system. For example, the TRAVIS (Traffic
Intersection Visual Interactive Simulator) [White 1988]
allows the user to change such parameters as ·traffic light
sequencing, interarrival times of automobiles, etc. and
observe the effect on the modeled system produced by these
changes.
“F6 i
2.1.4 Visual Hodelingl
The term Visual Modelling has been used relatively
loosely in the literature, and refers generally to the
process of building any form of Visual Simulation [Paul
1989]. Therefore VM is a component of VS and a subset ofVIM.
2.1.5 Visual Interactive Hodeling
The definition of VIM is restricted to the process of
building a VIS model. VIM is a component of VIS, and
contains all of VM.
2.2 Background_·4AlthoughGPSS/Norden was created in 1973 and was the
first documented work in VIS [Nance 1989], Bell and O’Keefe
[1987] report that the first significant work in VIS was
conducted by Hurrion at the University of Warwick in
England. Hurrion was trying to simulate a job shop
manufacturing system. The difficulty in accomplishing this
lay in the fact that often a human scheduler had control
over the system. Attempts to model the scheduling process
with traditional modeling techniques were unsatisfactory.
. Therefore it was decided to implement a "man-in-the—loop“
model. In order for the human scheduler to make realistic
decisions, it was necessary for the scheduler to be able to
know the current state of the model. To accomplish this, an
7
iconic visual display with letters depicting entities was
created. From this and subsequent work, Hurrion introduced
the term "Visual Interactive Simulation".
Since its inception, VS/VIS has become an increasingly
popular method of problem solving [Paul 1989]. Graphical
symbology, movement depiction, display type, and the degree
of user interaction vary greatly from one system to the
next.
2.3 Graphical Symbology
Currently there are a variety of methods used to
represent the state of a system model visually. These
methods consist of keyboard characters, icons, or three
dimensional rendering [Paul 1989].
Keyboard characters are the simplest method of
representing model objects. The use of keyboard characters
is inexpensive in both hardware and development time.
Hardware costs are lower because no special graphics
hardware is required to display the character image.
Development time for creating the object image is lower
because the object images (characters) already exist. The
tradeoff is that the diversity of model object images that
can be employed is extremely limited, and one may feel
constrained in adequately conveying the diverse objects in a
system visually. In addition, object movement
representation is crude at best.
;l
8
Icons are a more faithful representation of systemmodel objects. Icon images may be pre—defined, defined by
the user, or generated automatically [Paul 1989]. The use
of iconic representational graphics is typically more
hardware- and development—intensive due to the need for
special purpose graphics hardware and the time required to
create the icon image. Despite the additional overhead, the
use of icons to represent system model objects greatly
enhances the quality of the visual simulation.
If desired, the visual simulation may be further
enhanced by the addition of animation. Animation may be in
the form of icon movement, or icon change. In icon movement
animation, the icon is dynamically drawn on the screen with
time, position, movement, and speed attributes analogous to
the object being represented in the system. Icon change
animation occurs when the animation is implicit in the
varying icon image. Thus it would be possible to show a
customer moving from a queue to a server, and show him
walking at the same time. The overhead associated with icon
change animation is considerable since it requires multiple
icon images for each object to be animated and requires
substantially more skill and effort of the modeler.
Finally, three dimensional rendering can be used for
maximum realism. Techniques range from simple polygon
projection to photo—realism. The primary drawback of these
methods is that they are currently not able to run in real
[
¤9 u
time due to hardware considerations. However, with suchl
technical advances such as the Intel 80810 RISC architecture
CPU, which features on—chip Phong and Gouraud three
dimensional shading, the prevalence of this technique is
sure to increase.
2.4 Display Type
Hurrion [1979, 1986] classifies display types into
schematic, logical, and null displays. Schematic displays
attempt to parrot the system being modeled. Typically they
have a detailed blueprint or schematic diagram as a
background over which icons representing objects in the
system move. This approach is particulary suitable for
creating dynamic displays of relationships among objects
where a spatial or simple logical relationship exists. ’
Logical or summary displays take the form of bar
charts, histograms, time series, etc.. Use of this type of
dynamic display is appropriate when relationships among
system model objects are extremely complex or when use of a
schematic display is inappropriate. In large complex models
it may be more useful to present the user with a logical
display containing summary statistics rather than observing
a schematic display of the model.
Null displays enable the end user to run the simulation
without the performance degradation associated with a
dynamic visual display. This method is similar to executing
I
10
a conventional simulation model.
2.5 Interaction
The degree of interaction that VIS provides users is
perhaps one of its most significant benefits. Within VISinteraction varies greatly in the type, level and methods
for incorporating interaction.
2.5.1 Types of Interaction
There are two means by which a user may interact with a_ running model: model prompted and user prompted. Model
prompted interaction occurs when the simulation itself
prompts the user for input. An example of this method in
Hurrion’s seminal visual simulation of a job shop
manufacturing system where the scheduler was prompted to
make scheduling decisions. User prompted interaction is
characterized by the user’s ability to specify when the
interaction is to occur. This method enables the user to
change system model parameters and continue execution of the
model.
2.5.2 Levels ov Interaction
Originally Hurrion categorized three levels of
interaction [Hurrion and Secker 1978]: basic operations,
priorities, and algorithms in order of increasing levels of
interaction.
n
ll
Basic operations consist of interactions that effect
one—to—one changes in the system model. Any entity or any
attribute of any entity on the dynamic display may be
modified, deleted, moved, or replicated and the
corresponding modification is incorporated into the systemmodel.
Priority interactions modify the priorities of
operations, jobs, or entities. This form of interaction
gives the user the capability of assigning dynamic
priorities to entities for the balance of the simulation
run.
Algorithm interactions modify the various driving
algorithms of the simulation model. Using algorithm
interaction, an analyst would be able to create "algorithmic
modules" [Hurrion and Secker 1978] which could be combined
in various ways to produce the desired system model.
Hurrion [1980] later combines priority and algorithm
interaction into a new level called structural interaction.
2.5.3 Hethods for Incorporating Interaction
O’Keefe [1987] outlines three methods for handling both
model- and user-initiated interaction: embedded
programming, standard interactions, and stopping
interpretation.
The embedded programming method incorporates all
display generating code into the model itself. This method
12
provides a great deal of flexibility, but requires much moredevelopment effort and offers little reusability.
Providing a library of standard interactions is a stepforward. Using this method allows the modeler to pick andchoose amongst a set of pre—defined interactions therebydecreasing development time. If need be, some standard
interaction libraries may be extended. OPTIK is an example
of such a library [O’Keefe 1987].
Stopping interpretation is perhaps the most powerful
method by which a user may interact with the simulation
model. As the name implies, the underlying code of the
simulation model must be interpreted in order to utilize
this method. When stopping interpretation, it is possible '
to actually alter the simulation model code. While this may
provide great flexibility, it does require the user to have
some knowledge of the code being modified.
2.6 Construction of VS/VIS Models
Two methods of VM/VIM currently exist. The first
technique separates design of the model and the dynamic
display [Macintosh et al. 1984; Hurrion 1980]. Hurrion[1980] explicitly divides the VM/VIM process into
construction of the simulation model and design of the
display and interaction facilities. This has the effect of
forcing the modeler to construot two models: a model of the
system, and a visual display which is in effect a model of
»
13
the model.
An alternative method is to provide the user with the
capability to create the system model and specify the
dynamic display at the same time, so that a one—to—one
correspondence exists between objects in the display and
objects in the model [Gordon and MacNair 1987; Bell and
O’Keefe 1987]. Unfortunately most of these systems have
suffered from a distinct lack of application independence.
2.7 Conceptual Frameworks for VS Programming
Activity scan, event scheduling, three—phase, and
process interaction approaches have all been used in VS/VIS.
Hurrion [1980] advocates the activity scan conceptual
framework because it provides significant "advantages for
interaction at run time". Provided the model is designed
such that a one—to—one relationship exists between objects
in the model and objects in the dynamic display, it is a
relatively easy task to change the activity tests.
Because the event scheduling and three—phase conceptual
frameworks are event based, animation of state changes in
the system model is relatively straightforward. However, if
user interaction with the model is desired, several
difficulties arise. Since the simulation always leads the
animation display by some amount, the additional burden is
placed on the simulation of continuously keeping track of
the model state at the current animation time. Also, any
I
14
future events that have been calculated must be re-
calculated using the new system model parameters.
Process interaction has the advantages of the activity
scan approach and the disadvantages of event based
conceptual frameworks. Since the process interaction
conceptual framework is object based, changes in attribute
values of objects in the dynamic display can be reflected
quite easily in changes in the appropriate system model
object attributes. On the other hand, objects experiencing
delays which are time—based and unconditional must be
handled using a future event set [Derrick 1988] which must
be handled in a manner similar to that discussed for event-
based conceptual frameworks.
Ultimately, the choice of conceptual frameworks is
dependent on the degree of user interaction desired and the
nature of the system being modeled.
2.8 Perspectives on VS/VIS
O’Keefe [1987] defines five separate views of VS/VIS:
statistical, decision support, computer aided design (CAD),
gaming, and simulator.
The statistical or traditional perspective treats
VS/VIS as a selling aid. Statistical experimentation is the
primary means of decision support. Little or no provision
is made for the user to interact with the system model as it
is running. This perspective is almost mandated by the use
v
15
of post—simulation animation, since any significant degreeof user interaction is ruled out.
A
Decision support perspective views VS/VIS as a decision
support tool to solve unstructured problems. Consequently
much emphasis is placed on providing the user withfacilities to interact with the system model. Use of a
standard set of interactions may limit the usefulness of a
VS/VIS system under this perspective.
The CAD perspective perceives VS/VIS as a tool for
designing a system by combining either pre- or user—defined
parts. The CAD perspective is particularly appropriate when
an object—oriented approach is used. Users can create
instances of objects and place them in the system model.
The CAD perspective is prevalent with VS/VIS users involved
in manufacturing system design.
Gaming perspective views VS/VIS as a tool for learning
as opposed to analysis of results.
The simulator perspective incorporates VS/VIS as a
rudimentary simulator with the user as the "man-in—the—
loop".
The perspectives described above are sufficient to
describe the domain of capabilities of VS/VIS when taken as
a whole. However, no single perspective currently exists to
adequately encompass VS/VIS.
I
16
2.9 Benefits of VS/VISMany benefits are associated with VS/VIS [Bell and
O’Keefe 1986; O’Keefe 1987]. O’Keefe states that VS/VISgives the client and developer three additional capabilitiesnot found in traditional simulation methods in the [areas ofselling, gaming, and learning [O’Keefe 1987].
VS/VIS augments selling by providing both acommunication and a presentation medium [O’Keefe 1987].During model development the dynamic display becomes a
communication medium that enables the modeler and the client
to discuss model validation, development, andexperimentation. The dynamic display becomes a presentation
medium for the presentation of model results obtained using
VS/VIS or by traditional statistical experimentation.
VS/VIS enhances gaming capabilities by making it '
possible to use gaming with relatively complex system
models. The need for user interaction with the runningsystem model was the impetus behind Hurrion’s original job
shop visual simulation [Bell and O’Keefe 1987].
Learning capabilities are enhanced because the
interactive capabilities of VIS allow the client to "play"
at managing the system [Bell and O’Keefe 1987]. This allows
the client to gain knowledge pertaining to management of the
system.
In addition to these augmented capabilities, the
following are generally accepted benefits that VS/VIS
17
provides.
The dynamic display associated with VS/VIS augmentsmodel credibility through the enhanced presentation ofsimulation results. This is due to the fact that the client
‘ need not have an extensive simulation background tounderstand model results [O’Keefe 1987]. In a survey by Belland Kirkpatrick [1986] seventy percent of the respondents
felt that their decisions were implemented more often when
VS/VIS was used. Although Bell and Kirkpatrick [1986]
themselves admit the validity of their survey is inquestion, clearly VS/VIS has had some beneficial effect onmodel credibility for some.
VS/VIS enhances model verification and validation.
This is because the analyst can easily see the effect ofincorrect behavior when the system model is not working
correctly [Paul 1989]. In addition, the communication
medium that VS/VIS provides enables the client to
participate to a greater degree in the verification/
validation process. In the same survey by Bell and
Kirkpatrick [1986] eighty—eight percent of the respondents
said that validation was either "faster" or "much faster"
when using a VS/VIS system.
One additional benefit of VS/VIS is that the client can
be involved in model development at a much earlier stage
than is otherwise possible. This allows the developer totailor the model much closer to the clients needs, and to
18[
possibly avoid costly misunderstandings. In addition, the
client may soon know enough about the system to ask
questions that would not have previously been thought of
[Palme 1977].
2.10 Drawbacks of VS/VIS
VS/VIS has definitely advanced the state of the art in
discrete event simulation. However, VS/VIS does have some
undesirable characteristics that the analyst and client
should be aware of before choosing to construct a VS/VIS.
It is difficult to estimate the cost/benefit ratio of
developing a VS/VIS simulation [Bell 1985a]. While
increased costs are certain, the benefits of implementing
VS/VIS are much less tangible.
VS/VIS tends to be hardware specific [Bell 1985a] due
to graphics requirements. Furthermore, the choice of
hardware determines the graphics capabilities available to
the modeler. While increased complexity may or may not be
desirable, this does have the effect of placing a limit on
the maximum complexity of the model display.
The use of VS/VIS introduces further requirements for
the construction and presentation of model results that
~ would not be present for conventional simulation techniques.
In addition to constructing the system model, the
analyst is now responsible for creating a dynamic display.
Currently, a good screen design methodology has yet to be
19 V
developed within the simulation community. Consequently,
the modeler must also be substantially familiar withgraphics design and programming. Some aspects of model
behavior may be difficult or impossible to portray visually.Paul [1989] presents an example of a port model that easilyportrays incoming ships entering their berths. However, the
assignment of a given ship to a berth, the primary impetus
behind the simulation, is dependent upon many different
attributes such as cargo, berth capabilities, and ship type.
Paul [1989] states "Any attempt to represent visually such
rules would probably be self—defeating" due to the resultant
complexity in the dynamic display.
The use of a dynamic display as a presentation medium
may require the modeler to add more detail to the system
model than actually required to obtain the desired
statistical results. Bell [1985a] cites an example of a
truck dispatching system model. If the system road network
is dense, it may not be material which route a truck
actually takes to arrive at a given point. The client,
however, may not fully accept the model as credible without
actually seeing which route the truck takes.
A dynamic display is an aid in model Verification/
Validation, not a means in itself. Paul [1989] makes the
observation that "undue confidence" may be placed in the
model merely because it "looks alright". Bell [1985a] warns
that since VS/VIS displays the model transient period in
r
20
great detail, and since the client can observe thistransient behavior in the system every day, there is a
distinct possibility that the client may assess model
credibility based on the transient period rather than steady
state.
The client must be aware that interacting with the
running system model by changing model parameters
invalidates the usual assumptions associated with steady-
state analysis of model output. The danger exists that the
client views a "snapshot" of model behavior and assumes that
the system always exhibits these characteristics [Paul
1989]. The use of a dynamic display does not abrogate the
need of the modeler to instruct the client about the nature
of statistical methods.
Paul [1989] begins to address one area that has been
distinctly lacking in VS/VIS literature — human factors.
The expressions "seeing is believing" and "a picture is
worth a thousand words" immediately come to mind when
discussing VS/VIS. Yet within the legal community
eyewitness evidence is considered the least reliable form of
evidence. Paul [1989] states that "Dreams, wishes, desiresand thoughts" can affect an individual’s perceptions.
Another human factors consideration is the choice of colors
used in the dynamic display. Red and green are two of the
most widely used colors in VS/VIS but roughly ten percent of
the total population is unable to distinguish these due to
21
color blindness [Paul 1989]. Thus, considerable attentionmust be paid by the modeler to established human factorsguidelines when designing a VS/VIS dynamic display.
2.11 Conclusions
The use of VS/VIS has many positive effects on theprocesses of model Validation, Verification, andacceptability of model results. There are some drawbacks
associated with VS/VIS however. Not the least of which isthe lack of a comprehensive VS/VIS methodology to guide
modelers in the construction of a VS/VIS. As the qualityand quantity of VS/VIS systems increase, the impact of humanfactors considerations is increasingly to be felt. The onusis on the modeler to determine when, where and how toimplement VS/VIS.
CHAPTER 3
DESIGN AND IMPLEMENTATION OF GPVSS
The General Purpose Visual Simulation System (GPVSS)has been developed to enable a simulationist to
interactively define and specify an executable discrete
event visual simulation model of the system being studied.
It should be noted here that all user interface terminology
conforms to the SunView user interface standard [Sun 1988b].
The top—level menu of GPVSS is shown in Figure 3.1.
At the highest level, GPVSS is comprised of three main
components: the Image Editor/Model Editor, the Model
Generator, and the Model Animation Tool. The purpose of the
Image Editor/Model Editor is to provide the user with
facilities to graphically define and interactively specify a
model of the system being studied. The Model Generator
utilizes the model definition and specification provided by
the Image Editor/Model Editor to create an executable visual
simulation model. Finally, the Model Animation Tool creates
a dynamic display of the running simulation.
3.1 Hardware and Software Environment
GPVSS was implemented on a SUN 3/160C1 color
1 SUN 3/160C is a trademark of Sun Microsystems, Inc.
22
l
1 123
G P V S S ~ ’ . ··”General Purpose Visual Simulation System II , . i
lliago Editor/Hodol EditorlMods!
Hodol GonoratorGenorats
Model An1¤•t1on Tool
Figure 3. 1 GPVSS
n
24
workstation running the SUN UNIX operating system. The SUNis a 2—MIPS machine consisting of a 16.67-MHz MC68020
microprocessor with a 16.67-MHz MC68881 floating—point co-
processor, a 380-MB Fujitsu Eagle disk subsystem, a 1/4—inch
cartridge tape subsystem, 8-MB of main memory, a l9—inchcolor monitor with a resolution of 1152 X 900 pixels, a
pointing device called a mouse, and a connection to the
Ethernet network which enables high speed file transfer to
and from other University computing systems.
The most significant element of the user interface is
the 19—inch bit—mapped display screen. This display
technology offers excellent graphics capabilities.
The user communicates with the SUN via keyboard input
and the mouse. The mouse may be used to point to or select
locations on the screen. The system provides feedback on
the current mouse location by continuously updating the
position of the mouse pointer. Virtually any material that
is displayed on the screen can be pointed to and treated as
input.
The windows are the basic building block of the user
interface and are roughly analogous to sheets of paper on a
desktop. Windows may be resized, overlapped, closed, or
quit. Resizing a window allows the user to effectively
increase the available workspace [Sun 1988b, p. 35].
Overlapping is useful when the user needs to interact with
multiple windows, but there is not enough room to display
25
all of them. Closing reduces a window to a small 64 X 64bit image known as an "icon". Icons are useful when awindow contains a process that does not require immediateuser interaction, but it is still desirable to keep thatprocess running (shell, for example). Quitting a windowdestroys the window entirely when there is no further use
for it.
Menus and buttons are perhaps the most important window
features in terms of the user interface. Menus provide a
user with the ability to select an option from a finite list
of choices. Menus may be "pop—up", requiring the user to
depress a mouse button before they are active. Buttons
allow the user to interact in a more limited way with the
running program. Selecting a button requires the user to· position the mouse cursor over the button image and depress
a mouse button. This action executes a C function that has
been associated with the button by the programmer.
The GPVSS code consists of approximately 11,000 lines
of documented SunView, C, and EQUEL/C code. All window
features are programmed using the SunView application
package, which consists of high—level routines to create a
graphical user interface and window management system [Sun
Microsystems 1988]. The databases are created using the
INGRES relational database management system [Sun
Microsystems, 1986]. EQUEL (Embedded QUEry Language)/C was
used to access INGRES.
Z26
Although many modern systems have the hardware
capability to support GPVSS, the SunView interface
technology has proved invaluable for its rapid development.
3.2 GPVSS
To define or specify a model, the Image Editor/Model
Editor tool is used. Selecting the "Image Editor/Model
Editor" Icon executes the pre_objed() function which sets up
a blocking requester that queries the user to input the name
of the model to be defined and specified (see Figure 3.2).
This name must be unique and conform to C identifier
conventions. Selecting the "Construct Model" button calls
pre_objed() which forks the objed program with the model
name obtained from the blocking requester passed as a
command line argument (see Figure 3.3).
The user may exit the model_frame without naming a
model by selecting the "Exit" button. This event executes
the exit_proc() function which merely contains a
window_return() call to break out of the blocking requester.
A similar process is used to call the Model Generator.
Selecting the "Model Generator" icon executes the pre_gen()
function which brings up the frame model_frame mentioned
previously (see Figure 3.4) [Sun 1988b, p. 207]. Instead of
the "Construct Model" button however, the user is presented
with a "Generate Code" button. If selected, this button
executes call_gen(). Call_gen() takes the model name found
1
n
27
IEG)W>~WO‘¤
IEiV;
z:s3Svz°‘Zi"Ä S S**——cu
EE*8S ? § SS ‘- ITS 55TSE‘
ä ¥ 2**1 I2Q)wm
EFi
re . Igu 3 2 Model Name Requester for Editor
';
lf E
__
._
2 8
g
.,__ __
__
"‘•-"—‘¤
EP?
—-12·'13w
äf6E
iic
ÄggE:
gglL
«—iaE¤·g'
'ZEQ‘*eg“‘”‘‘·‘·‘-·¢·‘·‘i S
Slal
SCI'Gen
I
29 I.— . ä 駧§§§§§Eiäiäii;E§§§Eiäää§ääiääE;EiE;E§äääääääääSEEEEäEESES?EäSäESääääöEESSäEääääEE2S25EE2EESESES?SEEES5éääéä2EéäéäsESEääzäzi2S$$2§2§2§2S;E2iaäzä$252E2%;E2Péééäéääsäsäé2%%sääaäzäsäaää$ä%?$sä=äsä*!6~:€;äS&;é;¢?;;mz=2=2=é:22:22=;:2¤22=2:6=s:2=s=s=2:2:2=2:2=2=2=5:2:2:;=;=;¤;=s:;:;s:=:=:;:=:=:=:=:=:=:¤:=¢:=:=:r:=:=:=¤=:rz=;=:=:=:ze:;:¤:;=;=;=;:;=:=;::¤;:::;=
.'5n.-E0
g;:5:5:;:5:;;;:;:5:;:3;5:5:5:;:55;:5:;:525E32;EgigägigigEgigigigigägigigägEgägigig;;;;;;§;;;;g;;;;;;;;5;;;;:5:5:;:;:;:;:;:;:5:;:gEgSgigägigigägägigigägégE;§;E;E;E;£;§+2 { ;;§;§;§;§;§;§;§;§;§;§5gg§;E;E;E;E5E;£;E;E;£;£;EgägägägägigägS;E;E;£;£;2;£;2;2;£;;;zgägägzgä;;;2;a;;;;;;;2;;§;E;E;5;5;E;E;E;E;£;E;E5%;5;E;E;E;E;E;i;é;§5E3E;E;EgägigigäVI>~VJ
· ?§§§§§§§§§§Ä§§§Ä§Ä§§§Ä§€€§§§EÄEÄ€§EÄ5§€Äääääääääääääägi;EÜÄgiÄäE§§Ö§§§§§§§§§§§§§Ä§Ö§Ä§Ö§Ä§€§§§€§§§Ä§Ä§§§§§Ä§Ä§Ä5ÄE§€§EEEÄEÄEEEEE§EEħ§§§§§§§§§§§§§Ü§§§§§§§ÖEÄÄEÖÄ=SO_ gzgziääaäääsizäa§2§z§s§2§2§s§2§s§2§;§z§2§;§s§s§s§;§;S;E;EsE;S;E;E;S;E;5;é;é;£;%;S;£;Egégägägä;2§2;2§2ääääisäéäzäzäääzfaizäsäzäsäsäsäaäzä2E2P2E;E;éaEsä;E;E;E;E;%;ä;E;E
- ·•-4 ; :Q:;:;:5:5:;:5:5:;:3g:5:;;;:5:5;;:;;;;3;;:;;5;;;g;gE;E;Egi:E;i:E:§:§:§:E:§:3:;:;:§:§:§:;:§:5:;:5:;:;:5:;:;:Q:5:;:5:;;:55;E55gi;E;E;EgigägigE;E;i;E;E;E:i:$:§:§:E:§:§+2¤ ‘ EäiifsiäääEiäiäeäää;E;E3E;E;E;E;5;£5E;2;E;E;E;E5E;i;E5E;S5E;E3E;E;E;EgE5£;€;252§é§2§£§;§£§E?£§;E;5;E;E;E;E;E;E;E;E;E;E;E;E5E;E;E;EgägägigEgägigägägé;;;;;;;;;;;;;;;;§;
E — ifa?2äafääzäzäzäsäzäsäéääääääEäääéäéäääéäéääää§&§é§é§S§2§2§z§2Eaäääzä;§2§s§;52%2%z52é;%z%;SaésäséésEz5;;;&;ääS;éeääéäsääEéääääésäzésäéääéäizieäsiz§z§2§s§;§2§2§sä2S-,4 { :fz}:§:§:§:§:§:§:§:Z:§:§:§:§:§:§:Q:}:§:§:§;§:§:§:§:§:§:§:§:§:§:3;:;;;:Q;Q:}E}E§EQEgE;E;E§E§EQEgEgE;EgEgE;EgEgigigifgEgägätigiriZ§:§:§:§:§:§:E:§:§:§:§:§:§:§:§:§:§€§EV} äEäääääääéäääääääéääiéäääääääéäääéäéäéääääéäääääägägégégägägägägigE;ägägégägägägägäééééééäägézééäsääaä2ä2;;;;;;;;;;;;;;;;;§;e;§;ägäéääéäääégägégégé;ä;é;ä;§;§;§;§;§§é„„i*9T " Z2E25zäéeäzäsE;§;ä;E;E;€;E;E;€;§;S;Eäéääéiäéiäääéiäääiäéäääaiääääääsäaää52525;%EsF;E;€;€;E;3;E;€;E;E;E;E;£;E;E;EgägigE;Egéiäiéiäiz§Si2§2§2iz§2§2§;§2E;E;55E;ä;E;E;E;
:¤ T2M;-·· g g ägägägägägägägägägägägägigägägägägägig;eésäsäsäzE2;;;sääsäsäs§s§2§z;2äsäaisäs36§a§;;;;s;a;e;s§e§s;s;sä;é;S;é;E;E2a%§2§ä§%§&§2§2§2é2§2§2§2äääsäeéeäzéz§2§2§s§2§2§sé
3 E EEGS 82Q-g E „- .. ä2EEäaäzäaäaS25;€;E;E;E;%;E;€;ä;E2E;E;E;S;E;E;E;E;E;E;E;§;E;E§SEE;EEééiääéiiiEäääéiéäéäääääsäääzäzäääääsäéääFeäsfäE252525232E2E2B22;säaE;5;E;E;EzizäsiéääégiiiäääääéE . SS¤-E ; 88.„ 6;e5geg;zg65;;;5;;;gg;;;;;;;;;;;;§;ä;§;§;ä;ä;é;§;ä;§;ä§äääiE2ääéäägägägägE;§;ä;é;é;ägägégä5E;ägégägäsäzäeäaäsäzä2äsäaä2ä2E2äéäéääE2Eäääääiä䧧§§§§é;䧧;ä;ä;§;§;ä
E E g§i3Ä esäääääääQQ,=' ; 2:2=z:2=;=;:2=;=;=2:2·.w=2 2;;§2§2§;§z§2§2§;§;§;5;;;gs$2;;§;;a§;;;§e;;§;;;;;;;;;;egsgagegägägägägägägE3EgägägägäSééigiäigä2äziéäsE2§2äsä2isä2isE2i;äz§6äs§2;;;iz§2§2§2§s§2§s§2;;§z§;§;§§;§§§§§§D. E ·C-I-i·Z-Z~Z~Z~Z-Z~1~Z-:-:-:-:·Z-Z~:-:-:-:-:-1-:-;-:-;-:-;-;-;-:-;-3-;-;·;-;-;•;-;-;-·¢·Z·.·1·.-I-Z-Z-Z-Z-I-PZ-E-:-I-Z-I-i-Z-:·1-:·:-:-:-:~:-;-;~;-;-;-;~;~;~;-:-;-;-w
‘—’<-> ä ÄESSEEE@5EEEE§EfiäEEEEE§E§EEEEEäiäE§EEE§i§EEEEE§E§E§E§E§§fE§E§E§£§£§§§E§iESSÄEEEEÄFÄEÄEÄ?ÄEEESÄEESEE§EEE§E§EE;S25EEEEÄEEEEE§E§E§E§EEE§E§E§E§E§E§E§E§i§E§E§E§wE>1;3B F 2SäéiéääESESESiéäEEEäéééäääéésääESäéisäaä2;ais;2äaäaäzizä6ä2;sie;s;s§2§§;§;ä;§;§;§5%5E;E2;Egä5Eéäääé6E2äéäéääzäSE2äsieä2i2;6äsäzäsäs;252;;§;;z;s;e;a;a;a;§;ä;ä;ä;
*3 z
gFigure 3.4 Model Name Requester for Generator
30i
in the Panel_item mname_item and passes it as an argument tothe gen program. The gen program is called using thesystem() function and not forked off as is the objedprogram. The "Generate Code" button remains selected untilcode generation is complete (see Figure 3.5). This is donebecause the gen program creates special files in its own
directory that are model specific. Therefore, only one
model can be executing at any_ time until the file handling
oapabilities of the gen program are improved.
The "Exit" button can be used as described previously
to exit the model_frame without generating code.
Selecting the "Model Animation Tool" executes the
call_anim() function which forks off the pi (process
interaction) program created by the model generator tool
(see Figure 3.6). It is important to only select this item
once as the SunView windowing system queues mouse events and
the user could wind up with multiple executing pi programs.
Selecting the "Quit" button calls quit_proc() which
closes down the fonts, destroys the Frame base_frame and
exits the program.
3.3 The Image Editor/Model Editor
The Image Editor/Model Editor is designed to provide
the modeler with the capability of: (l) drawing a graphical
image whether it be the model background or a dynamic object
image and (2) specifying the model logic interactively.
I
• ·.Z-Z·Z~I·I-1-1-Z-Z-I-2-1-2-2·Z~:~I~:·:-;-:-:4-:-;-:-:—:~:~:~:~:·:~:·:·:-5;ZziS:Z:Z:Z;Z;Z;Z;Z;!;¢;Z;¥;Z;Z;Z;Z;Z;Z;I;I;Z;Z;I~Z·Z·I-Z·Z·5·:·Z·:-Z-:~:~:~:-:-:-:·:-:-:~3-:·;·:-:·:~:¢;Z5:Z;Z:l:C;Z;Z;€;Z;Z;Z;Z;I·';Z;Z;Z;Z;I;Z;Z·I-Z-Z-I-DC-Z~1-:·Z·Z-:-:·:·:-:-:-:·:-:·;·:·;-:·:-:-:-:-;-:Z;Z;Z;Z;C;Z;Z;Z;Z;Z;I;Z;Z;I;Z;I;Z;Z;I;;;Z;Z-Z-I-Z·:·1-Z-:-:~:~:·:-:·:·;-:-1-:·:-1-;-:-;-:Z;!;Z;Z;Z;I;Z;C;Z;I;Z;Z;2;Z;Z;I;I;!;I;Z;Z;I;:;.
Q E §$EéiäfsäE52Ezäia5;E=E=E=5=E=?E=E=E=E=E=ä=E=E=£=E=E=E=E=E=E=E=E¢E=E¤E=E=E=E¢E=E=E=i:5¢E:E:䤣:E=E¤E:E:E=£¤§:E:£:£=;:£:;:;€;E£5;E25;E;E;E9E5EzE=E=E=E=E=S=E¤E=E=E=E¤E=E=E=E=5=E¤E¤E=£=E=E=£=£=£=E=E=E=E:2E:2E1s=E:2;:2:2:EE{E25;E;äE;E;§;E;E;E5€=i=E=E=E=E=E=S=E=E=E=E=E=ärirä=E:i=E=E:E¤E:£:E=E:£:E:E=£:;=;:;:§:;:;:;:$:2:;:;:;E;E;E;€5E;E;E;E;Z555E;E;E;£;£¤E;E=E=i=E:E:E=E=£:E$:2:;E:E:2:;:ä:2:;:;:;:;:;:;:;:;:;:;:;:;:1 I -¤=E=E=E=E=E=E=£:E1E1E1EfiäEE€§?E€£FEiiEääiää5;?£E;?;E;E;f;E;E;E;E;Eii;E;E;E5E{E555E;S;E=E=E=E=E=E=€¤E=E=E=E¤E=i=E=E¤E=E¤E=E1E:E=i=E:E=E:}=2=szärääifäizäzäääzfziaizä;E;E;E;E;E;E;E5E555EaE5E{S55;E=E=E¤E=E=E:E=S=E=E=E=E=3=£=£=E:E:E:$=E:$$:2:;:;:$:;E$E;5;E;E;€;E;E;E;55E;E;E5E5i;€;E3E5E;E;£5E;E;E¤£=E5£=E=E¤E=i¤E=£=E=£:£:&:£:;:;:;:2:;:;:;:;:;:;:;:;:;:;:;:5:5E5:;E5E;E5E55525E5E5Egi;E;E5E5EgigE;i:E:E:E:£rE:&:i=;:E=2:;:;:2...........,.1,-,-,„EE12:E:E:§:§:i:§:i:§:§:§:§:§:Q:§:§:§:§:§:§:§:§:§:§:§:§:§;Q:;:;:3:gz;:5:}:;:¤:¤:¢;=;¤:¢E1E5E1E1SIEZE1E:35ZZ:§¤§:Eti:§:§:E:}:§:}:i:E:ii:}:§:§:§:§:§:§:{zi:Q1;:;:;:5:5:;:3:§:3:;;3:;:;:3;5;;:5;I;1EgErE:E:E:§:E:§:E:i:§:Z:i:i:§:§:{zi:}:;:;:;:;:;:;:;:5:;;:;:35:;;5;;:;;;:;;;:;:;;;:5;;;;;;:;:;g;:E:Er;:E:$:iz;:§:§:§:§:§:§:§:§:;§:§:§:;:;:Q:3:5:5:{:;:;:3:;;;;;;g;;;;;;;;;g;g;1;gg5ggg;g5:;:;gr§:§:§:3:§:;:§:§:§:;:§:;:;;
§;E=E=?=E=S=E=E¤E=E=E¤5=E=E=E=E=E:5:E¤E=E1?ri:S=£=E:E:E:£:E=Ecäz£:£:E:§:i:§:;:;:;:;:;:;:;:;:2:;:;:;:;:;:;:;E;äE;E=E=E=E=E¤Z=E¤E=E$:5=ErE=E=E=E=ErärE=E:5:3=äS:E=E:S12:Eé:Sri:£:£:E13:£:£:;:£cz:;:$:ic;:£:;:;:5:;:sz;:5:;:;E35;:5EQE;E=E=E¤5¤E=Sri=E¤Eri:E¤E=E=£:E=E=E:E:i:i:E:&ri:E2:£:&:2:;:§:;:§:;:;:;:;:5:;:5:;:{:5:;Egig:;E3E5§;ä;E;€=i¤E=E=E=E=ErE=E=E1E:£:§=£=&=E:E:i:£:;:£:&:&:£:;:;:;:;:;:;:;:;:3:;:2:;:;:5:;:5:;:;E;E;:5E;5;E;E;E=£;£=E=E=E:ä=£:E¤i:;:§;E;E3E;Ezi;Sei555553;5;;{gi;Egé;Egä5E;E=E=E=5:$$5:E=i:5:E:$:3:3:51;:Eri:;:;:£:£:£:$:;:;:£:;:;:;:;:;:;:;E;:;E;E5E;555;E555S55;E;E55;E32;555555552;;E;Egigigi5Egägig3;;Egi;E5;5E5;:£:£:;:$:;:;:2:;;:;:;;:;:;:5:5:z:;;:5:;5:5E;Egigi555Egigigigägögégigigigigägi;;;E:£;§:§:;:;:;:;:;:2:;:;:;:5:;;:;:;:;:;:;:;:5:;:5:3:;:;;;:5:;;;E;E5E;E5§;E5E5;;EgE;E;§;£;£;;;;;;;;;;;;;2;;;3;;Q:;:;:;:5:5:;:5:5:5:;:5:5:;:;;5:5:5:;Q3:5:5;gzgzgiggigigigigägégég
söiä=EsE;5;FifaE25EE;5$5;EsäzfaääEQE;E;E;E;Q$555;E5552;Egi3EgigEgigigigigE{3;S§E;£§E§€5£§S?S§E?E$§£€&?EEiiiEäääfääääääéäiäizääizääE;E;§;E;555;E;E;E;E;E;E;E5E;E;E;E5E;E555E5?5E5E;E;E;E5E;E;Egi;Egi;€;E;S;Q;E;E;E;E;£:£§i:éiääaäEis?;5;EEEeis?;E;E;E;E;E;E;E;E5E5E;E;E5E5E;E5E;E;E;E5E;S;E5£;E;E;E5EgE;3;Z;Egig&:£5;:;FEB;Ei?EE;E$5;E$555255E;E;E;E555S55;E;E;3;E;E;£;E;E5E5£5E3£5E;E;E;Egi;EgigEgigigägigizägégigigzgigi:;;;:;5;E;E;E;E;E;E5E;E;E;E5€;E;E5E5
$3:2:2:1::%:2717:?I¢:?:7:¥:*:¢:$:*:7:7:Q:Q:Q:Q:Q:¢:Z:¢:¢:!:?:!:Y:Q:Q:5:Z:Z:1:5:1;Z:¤:?;Z;1;1:Z;Z:¤:Z-I-C;1-I-S-2-3-1-2-:—I?Z¥:·I-:?:?:—:?:¢:¥:¥:QS:Z:?:7:¥:¢:¢:Y:¢:¥:¢:¢:¢:?:Z:Z:¥:Z:¤:2:5:1;Z;Z;Z;1;Z;Z;I;I;Z;I;I;Z;I;I;Z;Z;Z;Z;I·I;Z-:·1-t·:~:-:·:?:¢:¥:¢:Q:Q:¥:Z:Q:Z:Z:€:Z:Z:¤;Z:?:¥;Z:Z;Z;Z:2:1;¥;1:1;;I;I;Z;I;I;Z;l;1;I;:515;:;:-:;:-:-:-:-:~:-:·:~:·:¢:Q:¢:¢:Z:¥:¤:?:!:Z:Q:¢;¢:l;Z;¤;2;I;I:Z;I;C;I;I;1;:;:;:;:;:;:;2;:;:5;:;:;:;:-:;:-:-:;:;:-:·:¤:-£:E:S:£:i:£:E:$r£:§:§:§:£:§:§:{:Q:E:§:;:E:5:Q:§:§:;:§:;:;:¢:¤:¤:=:=:=:=:=:=:=:=:¢:=:=:=:=;=:=:=:=;=;=E=i=;:E¢E¢E:E=i=E:3:E:£:E:3=£=i:£:iri:§:i:E:E:E:i:Q:§:§:§:§:£:;:¤:¤:;:=:=:=:=:=:¤:=:=:=:=:=:=:=:=:=:=:=;=:¤:¢:=;=;=:=:=;=;:;:;:E=;¤§:E:&:E=E:£:§:§:§:ici:§:§:;:;:§:;:;:;:;:2¢:5:=:=:¤:=:¢:=:=:=:=:=:=;¤;¢:=;=;¤:¤:1;¢;:;=;=;¤;:;=;:E:;:E:E:E:E:E:E:£:§:§:§:§:;:§:§:;:§$:§:§:§:§:;:;:5:=:¢:¤:=:=:=;=:¢;=:=;=;::=;=;:::;:::;:;:;:;:5:;:E:;:§:§:;:;:§:§:§:§Q:Q:Q:¢:Q:¢:¢:¥:Q:Q:¢:¢:¢:¥:¤:Q:Q:¤:¤:¤:¢:¢:¤:¢:¢:¤:¤:¤:¤:1:=E¤E¢E=E¢E=EIEIESESEZSSESEIZZE1E5:$:*2*:*:Q:Q:*:*:¥:Q:Q:Q:Q:?:¥:Q:Q:Q:Q:Q:Q:¢:Q:Q:¤:Q:¢:¤§:¢:Q:¤:¤:¤:¢:ZE¤E¤:1E¢E¢E1EZE¢E¢EIEZEZEIEIE¤E=EtZI*¢E=Eri:¢:*:*:Q:*1*:*:Q:Q:Q:¢:?:¢:Q:*:*2*:Q:¢:¢:Q:¤:Q:¢:¢:QS:¤:¤:¤;¢:¤E¤E¤:¤E¤E¢E¤E¤E¤E¤§¤E=EIEIESEIEZ§¤§¤E1E:§=S25:Q1}:Z:Q:¥:Q:Q5:Q:Q:Q:¢:¤:Q:¢:Q:Q:Q:Q:Q:¢:Q:1:1:¤:¤:¤:¤:¤:¢:¢:¢ESElE¢E¤E1EKEri¢EIE:$:E:5:E:§:Z:i:§:§:Q:Q:i:¤:¥:¤:¢:Q:¢:¢:¢:Q:¤:¤:¥:¢:Q:¥:¥:¥:¢:Q:¢:Q:Q:¥:Q:Q:¥:¢:¢:¤:¥:¥:¤:¤:Q;¥:?:¥:S:¤:Z;1;¤;¤;1;I;1;I;I;S;I;S;:;I;:;:;:;¤;:Z:i:§:§:Z:}:§:{:§:§:§:§:Q:§:*:¢:Q:Q:¢:Q:¢:Q:¤:¤:¤:¤:¤:¢:¤:Q:¢:1:5:¢;¤;I:¤;¤;¢;¤;1;I;=;2;:;:;:;:;:;1;:;:;:;:;:;:§:;:;:;:§:§:§:§:§:§:§:§:$1;:;;:}:Z:§:¢:Q:1:21:1;1:Z;I;¢;I;I;I;¤;¤;¤;1;:;:;r;:;:5:;:;2;:;:;:;:5:5:5:5:;:5:;:;:525:;:}:5:§:§:§;§:§:§;};};g;I;¤:I;I;Igl;Z;I;I;1;:;I;:;I;:;:;:;:;:;:;2;:5:5:;:;:;:;:;:;:;:;:;:;:;:::;:5;::5;}:;;;:};¢;I:1;I;1;I;¤;Z;l;¥"¤*:*:*:¥:*:¥:¥:¥:¢:*:Q:Q:¢:7:Q:Q:¢:¥:¢:Q:¥:¥:¥:¢:¢:Q:Q:¤:¢:¤:¤:¤:¤:¥:¤:¤:f:¢:¢:¢:5:¢:f:¤:1:I;¤;I;l;=;¤:Z;I;I;I;:;IZ:;:i1§rZ:§:§:§:§:§:Q:Q:§:¢:¥:¥:Q:Q:¥:Q:Z:¢:¢:?:¤:¥:¤:¤:Z:¤:¥:¤:¢:1;¤:¤;Z:1;¤:¤;¤;¤;1;2;I;I;I;1;I;I;I;I;:;1;:;I;:;:;:;:;:§:;:fr{zi:}:¥:Q:¢:Q:Q:Q:Q:¤:¢;Zzl;¤:¤:Z;Z:15:1:Z;¢;1;¢;I;I;I;S;1;5;I;=;=;I;Z;r;I;¢;:;2;:;:;:5:;2;:5:;:;:}:§:§:§:§;§:§:§:?:¥:Q:¤:Q:Q:5:¤;1;5;¤;1;I:1;¤:¢;I;¢;I;1;:;:5;:;:;:;:;:5:;:;:;:;:;:;:;:;:§:§:§:§:§:§:§:§:§:§E€E$5$$5EEEEFEEEFEFEFEFEFEEEEEEEEEZi€§€§€§?§E§€;5§E;E;E;E;E;E55;E;E;E;E;i;?;E5E;E¤E=E;E55=E¤E¤?€=E=E=E¤E=E=E=E=E=Er5=E:5:i=E=Sri=E:E€i?E:E€i€EE5S55EEEEEEEEEEiE;E2?§E§€;E;E;E;E;E;E;E;S;E;E3EQE5£5E5E5E;äE5E5E5E5E=E=E¤5=E=E=Egi:5¤E=E:£:$:E:E:E:i=E¥iEEEE?i€§?§E;E;€;E;E;E;$¢?¤€;E;E5€55;E;E;E;E5E;E;5;i;E5E;E;S;E;5;E;E;E;i;E=E=E¤E:E:ä:E=E:Ezi:E:$:£:z:i=E:E:EE§?;E;E;€;E5E;E;€;§;E;E;E;E;E;E;E;E;E;E;E;E;E;S;E;E;E;£5E;E;2;£:E:E:£:E:E:E:£:E:$:;:;:;:;éiiiE;EQE5E;EE;E{E}?§EQE{E;E5E;E5E;E5E32;E;E;S=E;E;ESE=E=E¤E=E=E=E:E=Er£1ir§:i:E:E:E:5:£:E:S22:Ezi:i:§:§:§:§€§E§€§€§E§€§E§E§E§E§E;E§E§E§E§E5E;E5EQEQEgigägägi{£;E5E;EgE3EgägigigE;Egi;EgE1{2S2E1E1E1E2E:E:E:§:i:£:§:§:£:}:§:i:§:§:;:Q:§:;€;E§E;€§E;E;E;5555Egigägägigigigägigigé, _.;SgE;EgE;Zg§;Eg$;igic§:§:i:§:§:§:§:§:§ri:{:5;3:;:5:;:5:;E;E;E;E;E;E;E;E;E;E;£5EgigigEgigigigigEgägigigägigEgigigizi:§:£:§:§:§:§5:;:;:;:5:;:;:5:5:5:§:5E;E;E;E;E;E;S3E;E;Egi
§;§g§:§:§:§:§:§:§:§:§:§:§:§:§:§:§:§:;:3;:;;};{:;;g;g;;;g;gEj;gE;EgEgfgigfgfgZgEg§:§1E:ES§:§¢Eri:§:§1Z:§:Z:Z:§:§:§:§:§:§:§:§:§:§:§:§:§:§:§:§:§:§:§:§:§;§;§:§:§:§:3}:3}:;;;:g;gg;;;g;g§};g§Q};EgigfgigigZgäzf:i:§:§:§:§:§:§:§:§:§:§:§:§:§ci:§:§:§:§:§:§:§:§:§;g:;:5;;:;;;:;:};Q:g;;;g;;;g;g;g;g;g;g;gg{gggg;g§g§:§:§:§:§:§:§:§:§:§1Q:§:§:Q:§:§:§:§:§:{:§:Q:§:§:§:§;§;§;{gg;Q;};};g;g;;;g;g;§g§g;g§g§g§g§2{2Z:E:§:§:§:§:§:§:§:§:§:§:§:§:§:§:§:§:§:};§:§:§:;:‘··:;:;:§:§:§:§:§:§:§:§:§:Q:§:§:§:§:Q:§:{:§:§;§:§:§:}:§;;:;;;:;;;;};j3};;:;;I;g;g;IEZZIE1§g§:§ZEiiciii:{cf:§:§:§:§:§:§:§:§:§:§:§:§:§:§:§:§:Q:§:§:§;§:§:§:§:§:}:§:§;§;§:Q;g:g:g;;;;;Q;;;};Q7};g;g;g;g;g;g;g;g;:§g§:§:§:§:§:§:§:§:E:§:§:§:§zi:}:§:{:§:Q:{:§:§:§;§:§:§:§;§:§:Q3:;;§:g;§;;;Q;g;g;g;Qggg;g;g;g;g;g;g5;;;g§:§:§:§:§:}:}:3}:§:§:Q:§:§:}:§:}:}:;;;:3;:};}:3;:};;;g;g;g;g;;;g;g;g;1;;;g;g5g;g;g;g§g§;§g§;§:§:§:§:§:§:§:§:Q:§:{:Q:g:§;§;;;;;g;;3:;;;
:;:2:;£:e:;:;:;:;:;:;:;:;:3:;:;:3:;:;:25;:;E;E;E5€3E;E;EgE;E;EgE;£;E5E;E3E;E=E=é=E:E=E:E:E:£1£:E=§:E:£:§:;:E:§:2:;:;:§:;:iz;:;:;:;:;:;:;:;:;:3:;:;:;:5:5:;:3:;:5:;:55;Egi;3555S3552355553gi;S55:E5E=E=E:E:Eri:Eci:2:;:;:;:§:;:;:;:;:;:;:;:;:;:;:;:5:;:;:;:;:;:5:;:95;:;55;ig;335;;E;E;E;E;E;E;E;E;E;£;ä:E;£:£:£:£:£:;:£2:;:;:Q:;:;:;:;:;:;:3:;:;:;:5:;:5;;:5:;:3:3:;;;:;;;E5E;EgE5E;E;E;§;zgégsgézigi:§:;:£:;:;:;:;:;:;:;:9:;:;:;:;:;:;:;:;:;:;:5;;:;:;:3;;:;
äiiE5EEEiEäEEiE§3§Eiz§EEE§EiEiE§E§E5;§3§EEEiii;§E§E§£§2§€§Ei€§€§€§€iE§€iiiiäE§€§€§€§§§€§E§€§€§§§€§€§E§€§€§€§€§€§§EEEEEEEEEEEQE§EéiéiäE§E§E§E§E§E§E§5§3§i§£§E§2§2§£§E§i§€§E§i§€§§§€§E§€§E§€§§§E§§§§§§§§§§§§§§§§§§§E§§EEEEE§EiEEE§E§E§EEE§EiE§E§E§E§i§E§E§E§E§E§E§E§E§E§E§£§£§é§E§§§E§i§§§€§E§§§§§§§E§§§§§€§§§§§§§§E§§§E§E§5§E§€§E§E§§§E§E§i§E§E§E§E§5§E§E§E§E§£§E§£§E§E§E§i§E§EQ§§€§€§E§E§E§§§§§§§§§E§§§§€EE2E2EEEEE§S5EEE§E§EEEäE§EQEiE§E§E§E§£§E§Q§£§i§£§€§2§€§$3;;;gä5ägäg§gä{gi;ägä;§g§;§g§;§;§2§a§s§;§s§z§2isäsäsg6;aisäs;sgaga§s;z§z;e§s;s§;§;§s;;;2;;;;;e;;§;§;;;;;S;%§&;2;2E2Eéäéä2äsäaEsä2äzäääzä2äsäsäzi2iaäsi2;sis;ä2;säsäsä2;6;2Q2§2;;2äz§2§2;sga$5;;s$2;;;agsg;äéésäaääääéiéäéäéäéäSiEäzäsä2%2äsäzäsééä2$2äzä612iaE2äsä2äaE2;2;2{aizisäsäsäeäsäsäaäsäsäzäsézEziaE;S;é§S§ééé§é§%§%ä&§Sä2ä2äääéäéäéäéäaäéääzisézäzäaäaiäsä2§2§2i2§s§6§;§s§s§2§2éz§2SaS;SäääääääéäéäääéäéäSäéäEEEEEESäéäääääéääääézäéäsäääzE5;:;:;:;:;:;:;:5:;2;:;:;:;:;:;:;:;:;:§:§:§:§2}:;;:;:;:;:§:{:;:5:;:;:;:;:;:;:5;;;=;¤;3:¤;¢;¤;::¢;¤;¤;1;:;:E:§ri:E:§:i:§:§:§:§:i:§:izizici:§:§:§:§:i:§:§:§:$:;:;:3:3:;:;:;:§:§:¤:1:=:¤:¤;=;¢:¤;S;¤;S;=;S;r;:;:;1E:E:E:5:£:£:§:§:§:i:§:§:§:§:§:i:§:§:§:§:§:§:§:§:§:§:§:§:3:;:§:;:g:;:=:5:¤:=;¤;=;¤:¤:=;=;:E:;rE:i:S15:E:§:§:§:§:%§:§:§:§:§:E:§:§:§:§:;:;:3;:;:§:;:§:;:¤;¤;;:¤;S:=;=;1;¤;=;S;:;¢;:;:E:;:E:E:§:i:i:E:E:§:§:i:§:§:§:§:§:§:§:§:§:§:§:§:§:§:¤:¤:¤;¤;-;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;,;,;.;.;.:.;::;;;:3;:;;::;;;::;:;:;;::3;;:;:;;;-;:5;:;-;:;-;-;.5-;-;-;-;-;.;-5;.;.;.7-;.;.;.;.;.;.;.;.;.ggf;Z5;Z5;Z:::1;:g::1;:;:;t;:;:;:;:;Z;:;:;:;:~:-;-;·:-:-:—;-:~:~;4-:-:-;-;-;-;-;-;-:-;-;-;-;-;-5-;Z;.;Z;Z;Z;Z;1;I;Z;Z;I;Z;I;I;Z;Z;Z;1;Z;:;I;:;I;:;:·:-:-:-:-1-:-:-:-:-:-:-:-:·:»;-:-;Z;Z;-;Z;Z;Z;Z;Q:Z;¥;Z;Z;Z;Z;2;i;Z;Z;Z;Z;Z;Z;I;I;Z;Z·Z;Z·Z~Z~:»I-I-Z-:-:-:·:-:·:-:¥:?:7:Z:§§5§;§;§;§;§;§;§;§;§5E;E;E5EgEgi5E;EgägigägigégigägägigigigEgigégégägi;E5E5s5ägigigägägägägzgägzgz;s;;;;:;:;:;:;:;:;5;:;E3:;E5:;E;E;E;E;E;E5E;E;E;E;E;S;£;E;E;E5E;E5E;Egigägägä3E5E5Egégägägzgz52525zgsgsggegzgagagE:2:;$=;:;E;E;E;i;E;E;E;E;€;E;E5E5E55;E;E;€;?;E;E5E;S;E;€;S;E;£;EgägägägE5&;£;i;3;&;&;E;;g;;;;;:;:2:2:;:;:;:;:;:2%;?;E;E;E;E;E;E;E;E;E;E§5E5€;S5E;E;E;E;E;E5E;E;£;E;Q;E;E;i;E;£;£g£;§=i:ici:2;:;:2:;E;:;€;E;E;5;E;E;E;E;S;E;E;E;E;i5E;E;E;22;:;1;:;:;:;:;1;:;:S:Q:E:{:Ezi:§:§:§:§:§:§:§:§:§:§:§:3:5:;:§:;:§:§:§:§:§:;:;:¤:=:¤;¢;¤;¢;¤;I;¥;¢;S;:;=E¤E=E¤E¤ESi:E:§:§:i:§:i:E1E:E:E:Zzi:Z:E:{:E:{:§:§2E:{:§:§:{:§:§:{:{:§:E:§:5:;:Q:Q:§:1;Z:Z:¤:I:I;¤;¤;Z;2:1:1;¤EIE:E:£=E:E:i:§:§:i:§:i:E:i:E:E:§:§:§:§:§:§:i:§:§:§:§:§:§:§:{:;:;:2;:;;1:Z:¤:¢:1:¤:=:=;¢:¤;¢;¢i¤E=E=E:Er§:EIiririririräri:E:§:§:§:i:i:§:§:§:§:§:§:§:§:§:§:§:§:§:§:§:¤:¢:¤:¤:=:¤;¤;¤;=E¤EZESE=E:E:E:E:E:E:E:§:i:£:§:§ri:§:i:§:§:i:§:§:§:§:;:—'-I-Z-1-I~:—:·:-1-:-:-:·:-:-:—:-:·:·:~:·:·:·:·:-:—:¥:!:¢:¥:?:?:¢:Z:¢:Z;1:21;¤;Z:Z;¤;¢;I;5:1;5;I;1;I;I;I;I;I;Z;Z;:;I;:;:;:;2;:;:;:;:;:;:;:§:§:§:§:§:§:§:§:§:§:§:§:§:§;§:§:¤:Z;§:Zi:1:Z:Z55;1:2;1;-;2;I;Z;i;Z;Z;:5;:;:;1;:;:5;:5:;:§:§:§:f:§:§:§:{:§:§:§:Q:§:§:§:Q:§:{zi:Z1f;Q:2;Z:2;1zf;1;f;I;¤;2;I;I;I;I;I;:;:;:;:;:;:55;:;:;:;:;:;:;:§:§:§:§:§:§:};Qzi:}:fz};Z;}:Q;Z;Z;Z;Z;Z:Z;I;Z;Z;Z71;Sg!;:;:5;:;:;:;:;:;:;:;:;:;:§:§:§:§:§:§:§:§:§:§;§:§·Q:Q;Q:Q;};Q:§E§§EQÄ}E§EQE§QEQEQEQQQQEQQZEQEIfZEZ{Z{Z{2{1{Z{tf:QZ{:§:§:§:§:§:§:§:§:§:§:§:§:§:§:§;§:§:§:§:Q;§:Q:Q:§;}:}:Q;Q;§:Q;Q;Q;Q;Q;Q;Q;};Z;Q;Z;Z;I;I;Z;I;Z;Z;I;2;:;:;Z;2;:;:5;2{:fz;:{:{:§:Q:{:Q:Q:}:Q:Q:}:Q:Q:Q:Q:Q;Q;Q;Q3}3};Q;E5};Q5E;Q;Q;I;1;I;Z;$:;:;:;:;:;:;:;:;:;:51;}:;:;:}:§;§:§:§:§:Q:§:Q:§:§:Q:Q;Q3E:3;Q:Q:§;};};Q;Q;g;Q;;;Q;};Z;;;:;:;:;:;:55;:;:;:;:;:{:;:;:{:{:Q:E:f:Q;E:Q;gf;Qgf;Q;Q;Q;Q;Q;Q;Q;Q;Q;g;Q;g;g;E;:;:;:;:;:;:;1;:;:;;;:;;;:;:;:;:;:;:‘‘-··~·····-·—·—·—·F·—·F·¢·¥·¤·Z·¥·F-?-F-F-I-F·¥-¢-¤·¤-¢~¢~¤-S-S-1-Z-1-14·v~Z~r~r·1-:-:+:-:~:~:—:·:·:-:-:-:—:-:-:-1—:¢:¥:¥:Q:¤:¤:¤:Qrf:Z:1:Q:frä:¢;fx!:¤:¤:¤:Z$:1;S-!;I;g;g;g;g;g;g;g;g;g;g;g;g;;;g;g5;;;5g;g;g;:;:;:Q:;:Q:;:;:}:}:;:;:3;;:;:;;;Q;ggg;g;g;g;g;g;g;g;g;g;g;g;g;g;g;:;:;:5:;:;:;:;:5;:;:;5:;;Q:Q:5;§:g;;;;:g;g;;;g;g;g;g;g
Z*C·Z·I·Z·I-2-Z·I-2-1-I~Z-Z·I-Z-Z-;-Z-Z·$:::::1:1:;:::;:;:;l;l;l;Zj€;€;€;Z;Z;Z;C;Z;I;C;I;Z—Z—I·Z·Z-}I-Z-Z-Z-Z:Z:§:Z:::;:ZÜj:;Ü;:;::Ä:T:Z;Ö:Z;Z;€;€;€;];C;Z;Z;C;I;I;Z;Q?=?*€E€E?E?E€252?$€;?;€$¥;€;€=€;E=€=E=5=E=E=E=E=E=E¢E=E=E¤E=§=E:3=E=E¤E:E¤&¤E¤E=§¤£:£=E=EääääääääääääääääzääE2E55sE;E;€;E=E=é¤E=E=E¤€¤E=E=§=&=5¤Eé=§=E=£:5:2:2:2:2
gz5:{:3:5:;:5:5E5:5:=:=:¢E¢E=E=E=E=§¢E=E:E151E1E:£:2:i:£:i:£:§:£:£:i:§:§:§:§:;:;§:;:3:;:;:;:5g:;:5:§:g:;:5E=E¤E=5=E=E=E:E=ErE1E:ErE:£:E:E:E:ErE:§:§:£:£:§:§:§:§:§:i:{;;;:;;;;;;;;;;;:;I;g5gg;g;g;g;g;g;g;;;:;;;:;:;:;:5:;:;:;:;:;:;:;:;:;:5;:;:;:;:5:;:;:;:;:;2;:;:;:;:;:;:5:;:;:;:5:;:;:5:Z:Z:Z:¤:¤:1:Z:=:¤:=:1;I:=:¢:¢;¤;=;¢;I;=;I;¤;=
EG)¤E=E=E=E¤E=E=E:5:E:E=E1E:E:E:E:£:E:i:;¢:¤:¤:¢:¤E¤€¤E=E¤E=E=E¤E=€=E¤£é=E=E=E=E=E¤E=ErE=E:€=E:E:i:$:E:§:£:i:$:§:§:§:§:;:§:¤:E:¢:¤:=:¤E¢E¢E=E¤E=E¤E=E¤E¤E=E:E¢E=E1E:E=E
*" E=E=E=5=E¤E=S=E¤£=E=£=£rE=E:i:£:2:Eri:E5if$5EiiiEE?$5;E;?;E;E;E;5;E;S;E;5;E¢E=E=E=£=S=E=E¤E=E=E=E:5=EE=E:E=E¤E=i=E¤i¤Eé€E=£€E€£€E559EF5EEE;€$€&E;E;Z£€;E;€E€;E=5;E=V!A ‘ E;E;i;i;E;S;E;Egigigigicäziziz3:i:i2§:§:3:5:5:§:;:5E;E;535;E;E;E5E;E;EgigigigigigigigigigigégigigEgigigigigigi:3:Z:;:{:5:9z5:;:5:5:5:5:5:;:5E5E;E;E5E5E;E;E;£;E;E;§;$;E/J:'Q4->
‘ E;EgiägE;EgigägigEgigägigi52335Q;E;§§£§2§ZiE§£§$§£§i§£§&§;§§§2§25;E;§;EzS;€;E;E;E;E;E;E;S;Q;E;E;E;E;E;E;E;E;E;E5é5E;E5E§E§E5E§2§£§£§E§E§E§E§5§$§&§Q§E§E§E§i§E§i§;5$€E<¤ä; isä2@2;;;2i;§2§2§;§s§2§s§;§2§;§;§;$5;%:5zäzéeäeäaéz5;%;E;E;é;E;ä;%;22252gäéäééiääsézääééäeiäiääéiaääésäsiaäsäziaésisääeisäzäaäzEäézäaääsäsäsäzäaéaä252ä;E;%;S;&
--;V;• ;»3.;Z;Z;Z;I;I;2;I;1;Z;I;1;Z;1;:;:;:5;:;2;:5:;;;:;:;:·:-:-:-:~;-:-;:-3-;-5-;-;1;Z;Z;Z;1;Z;2;I;I;Z;I5;:;:;:;:;:;:5;:;:;:5;:;:;::1;;;:;:;:;:-;;:~;i;Z;Z;Z;Z;Z;I;Z;Z¥ ·I-Z~Z-I·1-Z·I·Z—Z-C-Z-:~:-:-:-:·:~:·:·:·:·:·:-:-:«:·:!;Z:Z;¥;Z;1:Z:€:2:2;Z;I;Z;I;I;I;I;I;Z;I;1;:;:;:;:;:;:;:;:;:;:5;:;:;:;:-:;:-;-:~:·:-;-;-;Z;-;!;1;Z;Z;Z;Z;Z;I;I;Z•-e { €;E;E;E;E;E5E5S55;};E;E;E;E;3;E;E;£;E5E;EgägigigE;£;£¢E:E:£:i:E:E:E:£:£:£:£:§:§:£:;:;:;:;:§:;:5:;:;:;:;:;:;:;:5:5:3:3;;:;:;:;E;:5E;E;i;5=E¤E¤E¤E=E=E¤E=£¤i:E:E=5:E:£:§¤
’; 5;E;E=£5E=E¤§¤E¤E¢E=irErErärärä=E13riri$:3:;:;:&:;:§E;E;E;E;E;$5€;E3E;E5i;E;E;§;Egigägigigä5£;£;£;i;2:;:ä:;:2;:3:;:;:;:;:5:;:3:5:;:;:;i;EgägégögägigägägägägEgigzgäg:s 7 ¤ E;Egsi;5äiiiääääéäéz52äääsfzä2EésäääääsfzäsäaE25;%;5;E;5;Eai;E;E;E;E;€;E;ä;§;£;E;£;S;E;E;E;£;E;E;&géäääéääEEEE?E?E$2F2EE€2€25;?;52E2¥;ä2€2ä2E2E;?;ä;E;E;5;E;E;E;E;E;m 1
•—2;2;a;s;2;a;2;;;2§2§2§s§;§a§sisgzäsä;§2§;§;§;$2;;;S;232;;äeägsgsgsgagagsgsgzgag;;;;;;;;;;;;s;s;;;2;s;2;2§;§2§;§a§;§2§;§2§2ia$2§2§2§;E;252;%;gégägägsgsgsgsgzgsgsgag
··-• g g ;ää;§2§;§;§z§2§;§;§;§s§;E;E;E;E;S;E;E;§;5;E;SgägäzS§E;i§S§EééäéäääääääSi2iäiääääsi2§2§2§2§;§2§z§;§s§;§;§2§;;aE;5;é;§;55352;;;€;&;€;i;Sääiéäéääiääéäéääi2§&§2§2§2§2§2> I •*
-EEiözäiääiäEiäzäE;E;E;E;E5E5E;E3E;E;E;E;E;E;E;E;E5253;ägigi:3EEEääziiäzääE;55€5E;E3E;E5£;E;E;E5§;E;E;E;E;E5E;Egägi52;igig2;;;ig};sg;5;;35;;;;;;;:;;;:5E;E;E;i;E;E;E
Q Z*’ 2E;23Z;E;E35=E¢E;E=E=E¤E¢E¤5=E=E=Erä=E=E:E1E12:E:&:i:E:£:iziiäE;E;E;E;E;E;555g5;E;E35555552gigigigi:E:£zirizi:E:E:;:2:;:5:5:;:;:;:;:;:;:;:;:;:5:;:gägzgägigigigigiggiQ) « ¤ Z 55;E;E;E5E;E;E;E;§§E§EFäiääéäEEEFEFiääöiäääää;52P;5zf;E;E;E;3;E5253;;E;E;E;E;E;E;igägägägägégigäg2§£;2§;§;§;5;§;E;?;52E;i;E;E;E;E2E;E;E5€;E;§;E;$5E;£;E;£;EgägégägagäYg II; 1 g g 2Esäsäzézä;ésäaäsäää2Eääafääääääiääéäääääé§Eéääéääéäiääääääsäzisäaäsä2Eäfzäääzä2E;E;EsS;E;52&;%;525sEaäaäaäsäääzéäääääéäääéäääE§S§é§é§E§2§2§2E2§2§;§;§;E;§;§2%;ä;56E2E
? ‘ i“=O-3 ,. ,, E{Egg};§E§E§E§EÜEÜ5§EÜEÜZÜEEEEEEiÜZÜEÜ{Ef?E1Z€{Efiiifääfä䧀§€§€§€§€§€§Ä§E§E§€§E5E§E§€äEääfäf§E§E§E§E§EÜEEEEZܧÜEÜEÖZÜ{Ü}ÜEZBEEEZÜZEEEE$§€§€§€§§€é€§€§E§€ä€§€§S5 {+:5 5 g_:¤g
ä fsäéääsééäääääääEEääääääéäéääääääääéäééééEéäéäééäEääiaäääsi2;;;$2;;§2§2¥;5sE2€;S;&;Ez€;&;é;Eéäéig2Esäääaie§2§2§6§2§2§s§2§6§2§2§z§2§;§;;;§;§;§;;;§;§;;;;zégägggägggzg•-• Ä —izuS-mGJ
I} 1,_’¢·‘
ggigäé :3;3S=E=E¢ESErE¤E¤E:i=E:E:E:E:E:E:Er3:§:§:£:§:£:E$1;:;:iz§:;:;:;:;:5:5:5:;:;:;:5:5:;:;:5;;;5:5E5E;E;E;E:3:Sci:ici:E:£:i:E:i:i:§:§:£:§:§:;:§:2;:;:;:;:3:;:;:;:5:;:5:;s: , 7 £:;=;„;1;:2=;:2: .5; E:2räfääää2€;€2€;E;€;E;EsS22?2E1E;S3E;£;Egäeä52;5;E;£;E;E=ä¢E;E=E=E=E¤E:E:52:2:2:E:£=&:;:;=;:;:;:;=;:;%;5;E;E;E;E;E;€;E;E;E;E;E;E;E;E;E;E;E;E=E¤E=E=E¤£=i:E:E¤5=E=£:
3 · :¢;¥:¥:¤:Q:¢:¥:¤;¤:¥:¤n1: :{:5:;:;1;:;:;:{:5:;:5:5;;;5;;;3;;;;;g;;;g;;;;;g;g;g;;;ggi:i:;:Z:§:§:§zizi:§:§:§:§:§:§:5:§:§;5;;:§;;:3;;;:;:;;5:;;;g;;;;;g;;;gg;g;g;g;g;g;g§:Z;§:§:§:§:§:§2}:;:;:;CL 1 E:E=E1E1E=E:E:5=Eriri=E=i=E=E:i:E:£:E:$:i:i:E2:;:Z:;:5:5:;5E;E;E;E;E;E;E5§;£;§5E;E;E;E¢E=E=E=£¤E:£¤£:E:i:E:E:§:&:i:£:£:i:i:§:;:;:3:5:;:;:;:5:;E;:;€;E;E5E55;E;E5E5E5W U - 555555gigigEgigigigä55;:E1{1Egirä:E:i:§:i:E:i:i:i:Q:§:§:§:3:;:;:;:i:§:;:§:;:;:;:;:;:;:;E5E3E5E;E;E;i;E;E5EgigigigägE;£:§:£:E:§:i:§:§:§:§:§:§:;:;:;:;:;:;:;:3:;:;:5:;:w ~ ¥äSäääéäääéäéééäéäéééäéääééäéäéäéäéäääääéä2§2ä2§2§2ä2§2§;§siz§s§z§z§s§2§s§2%2§s§;%;5Eéeääéäéäéäéäääééääéäéäääéäéäéäzääzäzéaä2§2§2§2§2§s§2§2§2§2§2§2§2§6§;§;§s;z;a;s;s°’ =Q¤E¤E=E=E:E:E:E:£:E:é=§:£:E:£:£:§:;:;:§:;:;E;:$E3E;?;E;£;E;€;E¤5=E=E=E¢E¢£¢i¢E=E¤E¤E¢E¤E=E:E:€:E=E1;r£:i:E:E:i:&:£:;:;:§:;E;E;E5E;5;E5E;E;25E;£;E;£;5;E¤E;E=S=E=E¤E=E“‘E ‘ iE§2§aizäää25zäaäsäsE;€2E;5sE:5;%1EzE;E;Ezä2S35;Egäeégi5E5EgigäiiääEäiäéééäääääiäié$2§s§2§;§2§2§2§zisösä;E;E;ä;?;?;€;E;EzäaäeE;E;E3ä;€;E;ä;&;&;Egigigägiiigiiäääisääiz
¤ Z;::;:::;1E:£1E:i:£:5:E:E:E:E:E:E:£:£:E1E:Ezi:E:E:E:aizi:{:äQ1;:5:{:{zi:5:3:5:;5:3:5:5:35:5:5;5:;:5E5E5EigE35gi5EgigigE5E5E5Egi3EgigigigigZgigigigigigigigigigigi
Figure 3.5 Model Generator Execut1on
I
3 2
IIIIIIII
I{ I
III IIIIIIIII Ié
IFigure 3.6 The Process Interaction Program Screen
n
33
3.3.1 The Image Editor
The Image Editor consists of a 1150x900 scrollable
canvas with a row of buttons situated directly above it (see
Figure 3.3) [Sun 1988b, p. 207]. The current mode of the
Image Editor is displayed as the frame label at the top leftcorner of the frame. The button panel consists of buttons
labelled "Pen", "Line", "Rect", "Select", "Load", "Save",
"Model", and "Quit" [Sun 1988b, p. 208]. The following is a
detailed discussion of the functionality and implementation
that each of these buttons provides.
It should be noted here that the "Quit" button is
active any time there is not a blocking requester.
Selecting this button calls function quit_proc(). This
function de—allocates memory and quits the program.
3.3.1.1 Pen Mode
Pen mode is the default mode of the Image Editor. In
this mode it is possible to draw freehand using the mouse
with the left mouse button depressed (see Figure 3.7).
Pressing the middle mouse button while in pen, line, or
rectangle mode erases the pixel currently being pointed toby the mouse pointer. This can be used as a limited erase
capability.
Selecting the "Pen" button calls the function
pen_proc() of the objed program. Pen_proc() puts the editor
into pen mode and changes the SunView event handling
l
34
Image Editor ·· Pen Mode ·Line Rect Select Load @ Quit
!¤Figure 3.7 Image Editor Pen Mode
263'
function to top_event_proc().
Top_event_proc() executes all events pertaining to pen,line, and rectangle modes. In pen mode, top_event_proc()utilizes pw_put() to set the pixel at the current mousepointer position when the left mouse button is depressed.Thereafter, pw_vector() draws a line from the last mouse
position to the next mouse position as long as the leftmouse button remains depressed. This means that curves can
be drawn as long as the mouse is not moved very quickly. Ifthe mouse is moved rapidly, the freehand drawing begins totake on a segmented aspect due to the large change in mousepointer coordinates between SunView events. This designdecision was made in order to prevent the occurrence of
"dotted" lines when using rapid mouse movements." The pen, line, and rectangle modes also ‘support an
erase feature as mentioned above. While the middle mousebutton is depressed, pw_put() is used to clear the colorvalue at the present mouse pointer coordinates. No
provision for fast mouse movement is supported as when usingthe left mouse button. Therefore fast mouse movement
results in some pixels being skipped while erasing.
3.3.1.2 Line Mode
Line mode is entered by selecting the "Line“ button on
the Image Editor control panel and is used to draw lines onthe canvas between any two points (see Figure 3.8). The
I
E3 6 A
Image Editor — Line Mode IÜ Line Rec! Select Load Qui t
·· 3 3 z 3 3 3 3 3 eq 3 mg
I
Figure 3.8 Image Editor Line Mode
J37
first point is selected by moving the mouse pointer to the
desired position and depressing the left mouse button.
While the button remains depressed, the user may move the
mouse pointer anywhere on the canvas and a continuously
updated line between the first point and the current mousepointer coordinates is drawn. When the line is positioned
correctly, releasing the left mouse button freezes the line
in its current position.
The line mode is implemented similarly to pen mode in
many respects. Function line_proc() of the program objed is
executed when the "Line" button is selected. This function
places the editor in line mode and the frame’s SunView event
handling function to top_event_proc().
When the left mouse button is initially depressed, the
pixel at the current coordinates is set with pw_put() just
as in pen mode. Mouse drag events are handled differently
however. Instead of drawing a line from the mouse’s old
· position to the new position as in pen mode, two lines are
drawn using an exclusive—or (XOR) logical mask. The first
line is from the original mouse position to the mouse’s last
reported position. The second line is from the original
mouse position to the current mouse coordinates. Since the
logical mask being used is XOR, drawing the same line twice
has the effect of erasing it. Thus while the mouse is
dragged with the left mouse button depressed, the editor
continually erases the line at the old mouse position and
38
draws a new line at the current mouse position.
It should also be noted that attempting to draw twolines on top of each other results in the second erasing thefirst where they overlap.
3.3.1.3 Rectangle Mode
Rectangle mode is entered by selecting the "Rect"button on the Image Editor control panel and is used to draw
rectangles on the canvas between any two opposite corners(see Figure 3.9). The first corner is selected by movingthe mouse pointer to the desired position and depressing theleft mouse button. This corner remains fixed for the
remainder of the rectangle drawing process. While thebutton remains depressed, the user may move the mousepointer anywhere on the canvas and a continuously updated
rectangle with opposite corners at the first point and thecurrent mouse pointer coordinates is drawn. When the
rectangle is positioned correctly, releasing the left mouse
button freezes the rectangle in its current position.
Implementation of the rectangle mode is virtually
identical to line mode. Rec_proc() in the objed program
puts the editor in line mode and sets the SunView event
handling function to top_event_proc(). Instead of drawing
single lines however, rec_draw() is called to draw four
lines that comprise a rectangle with opposite corners at thespecified coordinates.
I
39
[Image Editor — Rectangle ModeLine nec: saiooz Load quit
{,älliw ._ mg
E
„_ gg g
Figure 3.9 Image Editor Rectaugle Mode
40
3.3.1.4 Select Mode
Select mode is entered by designating the "Select"
button on the Image Editor control panel (see Figure 3.10).
The select mode is provided so that the user can select any
portion of the canvas for duplication or in order to copy
the selected image to disk. The image selection process is
akin to the process of drawing while in rectangle mode. The
first corner of the image is selected by moving the mouse
pointer to the desired position and depressing the left
mouse button. While the button remains depressed, the user
may move the mouse pointer anywhere on the canvas and a
continuously updated rectangle with opposite corners at the
first point and the current mouse pointer coordinates are
drawn. When the rectangle is positioned correctly,
releasing the left mouse button selects the image within the
boundaries of the rectangle (see Figure 3.11). Once this
process is complete, the user may duplicate the selected
image on the canvas by depressing the middle mouse button
(see Figure 3.12). While the button is depressed, the image
appears on the canvas and follows the mouse pointer. When
the middle button is released, the image is fixed. Thisprocess may be repeated as many times as desired until a new
image has been selected with the left mouse button.
Seleoting the "Select" button on the main control panel
executes function select_proc() of the objed program.
Select_proc() puts the editor into select mode and changes
4 1·*—n-
‘䀧€§€E€§€§€€€€€§€?€$€€€?€€€€€?§?€€€€€€€?€€€i€?€?€?€5€?€?€€€?€?€?§i€€€?€€€€€?€€€€€?§€EE€E§E§ä§§§€§€§€§€§€§€§€§€§E§€§€?€€€§€§€§€€€?€?€E€F?E?€€€€€?€?€?€€€€€?€€€€€€€E€?€€€F€€€€€€€F€ESF?E?EBS?§Eäiääħ€§€§€§€§€§€§€€§§€§€?€§€€€?€€§?iiiEE?€€€?§€€€Ä€€3€€€E€€€€€?€FE?EFE?€?€€EIEEEE§€§€§€§€§€§€§€§€§€§§§€?€€€?€€€€€EÄ?€€€E€?€€€?€€€E€€§€EEEE€EEEEEE?€€€?€E€€€€€€€€€€§€€E§Ä§EE€§€§€§§§§§§§€§€§€§€§€€§§€€€€€€€i€?€€€?§€€?€E€€€?€€€?€?€€Ä?§?€€€€€€€€EF?
äé5E5E5EEEEäääéäääääéäéäéäéäéäéäéäääéiéäiéSäääéiéäääzéääéäsäéäéäéiääéäsäsäsäsäs§2§2§2§2§a§s§2ä2§2%af?äaéaääéäääääääääääéääEEäSEEESESESSEééäSE2ESäéE2äEEäéä2ä2§ééSäsäsäsäsäéäaäsäsäsäsäséaäsäsäzäsäsäzäéääääéäéäéäéäéäEEäEEäéäéääééäääéiéäääééäézäääéäaééäsäeäsäsäsäääz§2§2§2§s§s§s§2§2§a;2§a;säsiaäääéääééäéééäéäéääääééääiääséäééäsäéä2§S§2§s§2ä2§2§2§s§2äzäsäsäs§2§2§2§;§s§6;2§;;;§§E;;i5äS?EE2éäéäiéäéäéääéséäéäéäääääééäéisäsääääzisäsäizäzäzäsäsäaäaäsäs
ggägégägigägägägäg§;§;§2§säsäsääsäz;s§s§2§s§:;s;;;s;;;e§;;a5;;;55;;;;;;;;e;;56%izaäééäéä2äzäaiéäeäeäeäa52aéaézizääeizäeä2E2;;2E2§2;säz§z§2§z§z§2§2§a§6;z;2;2;s;z%sQgsis;s%;é;é;2sS;é§%é2äéä2äS§2ä2§2äsä2§2§2§2§2äzisäääsäääsé2§&§:§2;2§2äs§2§2;s§2§säsäsäsäésésEzéséääESäéäéäéäéäéäéééäéäéäéäéääääääsäsäéäsäéäsäsäziaäsäsäzäsäzäsäzäézäsSzäzääésäE6äSäääääSäéääiéäéäéäéäéäéäéääéääéäéééi2äéééäzäéäääsésisäzääsäzä252S2¥2%z¥25s%s¥2%§%§%§%䧧%§S§5ä%;:;:;:;:;:;:;:;:;:;:;:;:¤:§:¤:¤:¤;1:¢:¤:5:Szi;=zi;i;S;¤;¢;Szi;S5:;¢;:;¤;:;:;:;:;:i:E¢E:ErE:i:§:§:§:§:§:i:§:i:§:§:§:§:Q:}:§:§:¢:§:¤:¤:Z:iz¤:¤:¥:Z:¤:¢:S:S;=:=:=;Z;is;ii=;i;=ES;iiriiiriii:2:2:5:3:3E:ErE:§:E:i:i:§:§:§:§:§:§:i:§:§:¢:¢:§:¤:¢:¤:Z:¤:¢:¤:=:I:=:=:iEii!EZEZEli!EZE=Z={SEE:5:5r{Evi:E:{ri:§:§:E:irf:E5:%Z:I:¤:¢:¤:¤:¢:¤:¢:¤:¤:Z:¤:¤EiE¤E=EiESEZEZESEiE=E¤E¢E¤E:E:E¤E=E:£:§r§rE5:¥:¢:¢:¥:¥:¥:¤:¥:¤:¥€¥E¤:¥E¢E¤E¤E¤EZEZEZEFEZEYEZSZESEZEIEZEZESEIE$2:;:;:2:;:2:;:2:2:;5;:;€;£;E;%aE25;E;%;€;S;E;E;E5E;E;5;E;£5£;E;E;§5E;E;E;E;E;E;E¤§¤i¤£=E:§rE:$:£:&:£=£=2:22:;:Ec2:;:;:2f;:sE2E;5;E;E;?;E;E;S;S55;E;E;E;E5%;E;E;E;i5§;£;E;E;E;E;E;E5E:£=E=Eri:E:£:£=£:2:£:2¤§:2:§=&:;:&:$=2:2:2525;:25;E;E;E;E5E;E;E;5;E;E;§;i;E;£;E;Egi5E=E;E=E¤£¤%=£:ä:E:E=é=E=2:E:E:&:£=£:2:säääsE;5;EzäzäzäaäzääE;é;5;E;E;E;E;E;E;i;E;€;E=E¤E=E¢E=E:E=£¤£:£=E:£:£¤2:E:SF2?2P2äafsiä5;E2EaizäzézézE5E;S;£;?;§;§;%;E;S;E;€=€=£=E=£=E¢E¤E=S=* ;:;:E:i:§:§:i:§:§:§:§:§:§:§:§:§:§:Ezi:§:§:Q:Q:§:§:{:5:5;;:;:§:§;3:§:3:3:;;;:3:3:3:g;;E;E;EgE§E5{gi5EgigigigEg§;Eg§gE;Eg§ZE2Eri2E:§:§:§:§:E:£:§:{sici:§:§:i:§:§:§z{:Q:}:;:5:§:§:§:§:§:§:Q:555552;QEQEQE;EgfgigigE;S55;EgigfgEgigigfgäziritfrf:i:§:E:§:§:§:Exi:}:Qc{xi:}:E:§:§:{Ef:§E§5§E§E§E5E§EgEgE;E;Egig};E}E3}:{CEE:}IEZESiri:ErE:§:i:§zi:Z:i:E2E:§:§:E:Q:§:§E§FQ?}E§€§E§E§E§EQEQEQE3E5EQEQEZEQEi§i3iE=EIEr2:5:E:E:E:§:§¤§:i:E:E:}:§:§:§:§:iEiE§E§€§E§E§€§E§E§2§§s§2is§E§2§2§2§2§;§s§s§;§;§z§2§;§;§;§;§a§;§;§;§;§;§;§;§;§;§;§;§;§;§;S;E;S55;E;E;EgégégS;Sg2;E;§;§;Egägägägä;2;£;2;2éziéiäiäi2§2§2§;§;§a§;§;§$§;§2§;§2§;§;Q;§;§;€;§;E;E;E;€;E;E;E;E5E;£;E;E;§;%5E;Egägägigägägägägigägägägégagz;2§;§2§z§2§2§z§2§;§2§2§s§;§;§;§s€;E355355;555;E;€;E;E;5;%;€;£;E;S55;Egä3ägägägéiä§2§&§2§2§2§£§z§2§2§2§2§2§;§2§z?;EeE;P;E2EzäsäzäzE2$5;%;E;E;S;S;E5E;é;E;E;€;S§&;éäääéiääiéäisä2§£§2§2isäääsäzisEzisäsäzäääézäaäzäxEsääaäzääagäégägägägägégägägägägägägägägäsäsäsäsäsä2ä2äeäässa;s;2§s2:;626;:;:;e;§;§;§;é;§;§;§;ä;§;ä;§;§;§;é;ä;ä;§;§;é;é;é;§gig;5E;E5ä2;%5ä22ésäzäzäsäs;z;s;2;2;z;2;s;s;s;§;s;§;é;i;§;E;E;ä2%;;äzé;égägägägägégägägägégägägägäsäsisäeéeäeäsäsäeäaäs2222aésäsäzäsä;;z;s;ä;§;é;§;§;§;§;ä;égägäsägägéségägégégä;ägägégéz$2äzäeääsäsäsäsäsäsäzäzässz;z;s;§;§;ä;ä;ä;ä;é;é;ä;§;é;§;é;ä;§;é;ä5;§;ä;ä;%;ä2ä6é;ä2;zésä2ä2;222;;s;e222;22E;6sääzää;ä;§;ä;§;é;é;ä;é;§;é;ä;ä;ä*52%6äzäsäaäzäszäsäzssäsäzäeä;;§2é;§;é;§;ä;§;%;ä;é;§;§;§;§;é;é;ä;é;é;é;ä;ä;§;is$222222%%ééeääsäeä62622äeäsäsäaäsäaääsézäääéäzääääséääsäääääsääé2ä;ä5é;§sésägé2ä;§6§2éEEéézéäéeéeäsézäzäsäsäzésäeéeäeäeäeäséeézäääéäääääääéäéäääääääääéäéääséé;§;§;é;ä;§éäSézééééßäsééäeéeäsäeéeäsésääsäeéeäe2s@2ézääéääääéääääääääääääääésS;éääéääääsäéäéééäééééeäéäéééäsézéaéééééäésézéeäsäe26éäéääääääääääésäää;é;§;ä;§;ä;§;§;§;éé§é%ääéäääéäéééäéäsääééäééäzäéä
iéifääääiäiääF252Es5Eä2äsf2?;5s€2525;ä2Es€;E2%2S;E;ä;E;E;S;E;E;E§E§EéäääääBSfifääääiäéfEääääEEFéäääää252Eääääéäs5252E;EsE2E;E;ä;5;E;S;E;ä;€;E;é;äE;E;S;égigägägägägéäéiääääääéfäfsfäääfsäääää;E;E25;E25;E;EeE;E2E25;E2E2E;5;E;EgégägigägégégägigägägägEgäääöäfzöääääää2Fzäeäaäsäzäaä55;E;E5S55;E5E;E;E;E;E5E;Egigégägigägägégégägägz;2:2%ai;Fäfsi2€zE2€;E;S;E;E5£;ä;E;Egägigägigägägägigégägägägégägsgsgzgag32;;;:2:;:;:zE;E;E;E;E;€;£;§;£;ä;E5S;ä5E;E;E;E;252ä;2$2$2;;;§2§;§s§s§s§;§2§2§;§2§s§;§;§;§;§;§;§;§;ä;§;2;2;2;ä;2;£;é;ä;2;2;2;2gaga;ääisäzäaä2ä;$2;;;§2§;§;§s§2§;§;§2§2§2;2;;;s§;§;§;;;§;§;§;§;S;E;;;E;S;2;Egägä;E;E52;;25ägsgäiä§2§sisizisis§2§s§;§s§s§;§2§;§2§;§2§2§e§;§;§5Q2§;§;§;§;;;§;E;£;£;E;&;%;S;Sgégägägägäg2§2§2§2§2§2§2§2§2§;§2§;§s§s§2§;§s§;§s§;§;§;§;§;;;§;é;;;E;E;§;&;S5%;&;2;2;25ä32;;;2;25Eis;ia§2§2§2§s§2§s§a§;§;§s§;§;§;Q;g;g;§;;;§;S;§;E;E;£;é;£;2;S;2;2;;2;25252;§s§;§s§;§;§s§;§s§;§;§;§
‘···‘············ ·*-*._=*=***=*=*¢*=**=**·=*=**=**=*¢=°=*==*¤*=*=*=*==*=*=Z¤*¤*=====¥=??=€=¥F%=F=f=?=%=?=%=§2§2§2§2§2§2§2§zisäsäéäiiéääääiéäEFääääääääääääääääéääääääääéäééääESääéäääääiääéäéääääääéäääääééääääääifäääääFäääfäääääääfiääfifäääääääääääfäääFääääääiäääääääääää
'@ä1165ä;§;ä;§;§;ä;ä;ä;ä;é;§;ä;§;é;ä;é;ä;ägägégägégägägägägägsgégägägääaäzäzässäéäääääääéää2é;é;ä;ä;§;é;i;ä;ä;§;ägégägägägégägägäg2;ägégägägä2;äe;s;s;e;s2s;2;s;z;2;§;ä;'
iaßzä §§ä§§i§2§2§éiääaääé222;2;;§;§;§;§2§;§2;;§ais;2§2§;§;§2§s§s§;§2§2§§§§§E;§§§§§§Eäiiäääiäiääééääiéäz§&§;§s§2äaääääizä2§2§;§2§;§2§s§a§s§;§;§;§€§;§§§§§§§ä§§§§§§§§§§€€§§E§5
ä?·¢« Z;;;;;5;;:;;;;;;;E;E;E;E5E;E;E;i5S;E;E;EgigigigägigägégE;E;i;E;£;E;i:;:§:;sz;zi;5;55:;;gz5;;;;E;E;EgE5E5E;E;E5E;E;E5E;E5E;E;E;E;E;E;E;E;E;E;E:i:i:;:;:;:;:3:;:;:5;;;25;;;gägigägagigigäzizä:2:;:2:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:5:555:55;2555532;;E;E;E;£;E5E;E;£;E;i;E=igE:E¤E:E:5:&:£¤E¤i:E:£:E:E:3:;;:E:§:i:EEiE;€;E£5;?;E;E;Eäizizi¤ Eä626;;;ä626;$222;;;E;äsääE;§;§;ä;ä;ä5äsää;izä;ä;é;ä2ä2éeäeä2222äeäeäeé22222222säséeäsäzäsä2;zäääaäEääääéääsäääääésä2E;éäéääséääééééEEéééäséeäsésééézéséaäzäeä
Z {1; §2;;;§z§2;;;2;;§;§;§;§;§;§;ge5;;;;S;E;i;i;S5égieégägäääiäiääEääääiéiä$2äziaäais§2§z§2§2§2iziääsiais§;§;§;§aE256Esäaäzfzé;E;5;E;ésieääääääiéiääääääääéääiäääéääiiää_;Fi. 335Egägfgigigi;E;Egi555552;;E;i;i:E;€:§:§:Z:§:3:§?§ziEi?}E{SEE;E§5;E5E;E;E§E;E5i;igigigigE525EgEgi;E;qigägégEgigägigE:§;£:§:§:£:iE{E;E;E;E;E§E§E§E5£;E;E3E;E;E;€;E;E
ää zfääzäaésä2E2E2%;äzä2%ééääääéäéééfäfäääääääääSéäääéääääééäiéäsiz§2§s§;§2§2§;E2€;S252Eaäsäzä252E2E;%;E2EzäaéeäiéEEéääääääéiEäiäéäääääääE2äääsiää;§;§a§;§s§s§2€;%sE2äz5Gl'°§
ä" ;E;E3E5E;E;E;E;$;ä;E;E;E;2;&;§;égégigégé:E;2gzzz:;f2:;E;E;E;€;E;E;E;E5E;E;E5E;E;i;Egi;EgägigigEgigägégägägägägägzgägagegz:;:;:;:5:;:;:55;E;:;E;E;£5E;E;E;E;E;E;E;E;E;£Z, 55 g2;2;;;;;;;ägegsgsga52;;;2;252;;;ägsizgsgs§;§s§;§;§2§a§2§2§e§s§;2;2zäzzgagegzgsgagegagsg2;2;a;;;;;;;;;;s;zgzgzgsgzgs;2§2§;§s§2§;§2§s§2äs§2§2§;§;§;§;2;2;2;25;;;s,_ 1:/; _-;.:-3.3.;-;.3.;.;.;.3.gi;I;Z;I;I;Z;:;i;Z-:;Z·I—:·:-:·:·I-:-1~:·:«:·:·:-:—;-:·:—;~:-:-:-:-:·;-;·;-:~;-:-;·;-;-:Z;Z;Z:Z;€;Z:i;I;Z:i;Z;Z;I;Z;C·I·I·C-Z-Z·i-I-i-C·I—i·Z-Z¤•"’
äf ;2;2§;;&;2;z§z§s§2§s§;§;§2§2§2§2§2§siz§2§;§;§2§2§;E;§;E;£;2;2;s;;;1;;;;;2gs552;;;2;;;s;;;;;;§2§s§;§z§;§;§s§2ia§2§;§z§2is§2§s§;§;2;ä;§;£555552;s;2;2;;;2;;;2;;;2;2;2;&I ¤ **.*3 :¤:Z:Z:IS:¤:¤:¢:Z:¢:¢:¤:=:=:=:i:=:¢:¢:=;=:¤;=;S;=E3:Siri:Sri:E:§:i:i:¤:Z:¤:¢:¢:¢:¢:¤:=:Z:Z:¢:¤:¢:Zzi:ici:=:=:=;¢:=;=:=::;:5:;:;:§:§:;:E:E:E:i:i:$:i:E:§:¤:¤:¤:¤:¤:¢:¢c gi? :3:5:i;3;¤;i:¤;:;i;i;i;¤;:;¤;:;:;:;:;:;2;:;:;:;z;1;:;:;:;:;:5:;:;;;:;;5:3;;:;;g;g;33;;;g;;;g;:;:;c5;:;:;1;:5:;:;:;z;:5:;:5:;:;:;:55z;::5;;;;;;;;;:;;;;;g;;;;;;;g;gL "' tr I~I-1%·:¥:?:¥:?:?:¢:?:?:Z:?:¥:Z:7;1;€:Z;i;Igi;Z;Z;Z;:;35;:;:;:5;:;:;:;:;:;;;;:3-;-:-;-;.;.;Z;I;Z;Z;Z;:;:;:;:;:55;:;:;:::;::3gg;:;;:1;;:::;:;:3:;:;:;:;:;:;:;.;.O—lg
*1* $5252525%;Eézäsä;EäéäääääEääéiäiäéääiäiääää2§s§2§2§2§s§;§2§;§2§;§;§;E;§;€;E;ä;E;%;é;E;E;é5Egégägagagäiziä§s§2§s§2§s§2§;§;§;§;§;§;§;§;§;§;;;§;;;gggageggggggggégsgägäII-I iv 2EIEzi:E:E:§:§:§:§:§:§:§:§:§:§:§:§:§:§:Q:Q:;:3:;:Z;¤;¤;¢:=:S:i;i:¤;=;ZES25:E:EZi:{xi:Eri:E:}:§:Eiz}:$2{zi:i:§:§:Q:{:{rf:Q:5:§:§:§:;:{:Z:¤:i:¢:i;i;1;i;i;S;:;:E:i:§:EE . :·:-:·:-:—:-:·:-:-:-:·:-:-:—:~:—:-:-:~:-:-;-:-:-;Z:?;Z;1:izizf;i:1;i;i;i;1:1-i·I-I·Z·i·i·I·C·C·:·i-I-:-Z-t~r-:·:-:·:-:-:·:-:·:~:-:~:-:-:¥:?:¢:¥:¢;?:¢:¢:¥:!:Z;Z:1:¢:Z:3. säéäsäääaäääaäséaisäaäzäaäsäzäaäiaäzäsäeäeäsäaäsäaäsäsgs;a§z;;;;;;;a;;Se2séäSis;äzääiséséaäaäaäsiaésäsisääeäa§2§2§2;2§;§s§2§s§s§a§s§;;z§;§;§;§;§;§;;;;;;;2;;;22;;Z H éää駧;ä;ä;§;§;§;§;§;§;§;§;é;§;§;§;§;§;é;§;ä;égägégägégégägägégägägägäzägäsägässäaäzäe26;;;äää;ä;§;§;§;é;§;ä2é;§;§;§;ä;§;§;igägégägägägégägägägégägägägäg;;&;§;ä2;s;
I I i c i
e-riFiI' ·gu 6 3.10 Image Ed1tor Select Mode
I
II
-—. E,gägäägägägägägigäägääägääzäéäizäziéai;äzääääsäsäaä§2§2§2§2§zäsiés22§2§2ääzäsäsä2$2;;;ä2äéaäzä2§z§2§2§2iz;äaä2§z§;§2§2§2§si;;$2äzizäää2äaiä§;;§§2äsääéä$$22$5;E;?;%é;2E;€é2Sézäéz225;ä€;äS;E25;€;S2äzäzé;S25;2;%;E25;%;S;S2?;E=S¤E=S=ä=%&S¤ä=E=%E2=2¤E=22=E=2=3=22ä=2=2=2:2=2=E:2:2:2:2=2:22:2:2:2:2:2:2%;:2:2:2¢:;:=:=========:¤==:=:=:=¢:=:===:¤:=:=:¤:rU =E;Es€25;E2EsäsE;E;E5EaE5€;é§E;€§E§E§E§Eäé§3§E§EäääiääéiéäEEEE§EäEäääiääiéääääääiäääääiäiääéäéäääiiäiäääié§&§2§2§2ä2§2€;ä;¥eäääääsEääääääääsäääs5s€;f;?;5;E;€;E;E;E;E;E525E5i;E;EäEEEäi§E§EEE§EäE25éäiE§EEäiiéEiEiéiäääiäiéiäfäéiiäiiäääz52FifaE2EafsääfeäääsäääzääfzézE;E;§;E;EeE5£§E§€EEäEäEääiääéäiäääääääääéiäéääääéäéiiEEääiäiäiääsfaäéäEääaäsäzfsE;525;FaäzäzfsEsi2E;E;5zäzE;E;€§E;EEEEE§E§S§SäiESäääääéiäiääiäéiiääiäääiéEI' äääääääääääiääääääääääääääääääääääääääääääääääääääääääääääääääéSäääéäéäéäéééäéäéäéäéäéäéééäéäääéäéééäéééEéiéäääéäéiéäéäääéäsäsä2E2äsäsäsäsäaäsäääzäzääiääääääääääääääääääääääääEäääiäéäääääääääéäéääéäääéäééäägääääääääääääéäéééiääéäsizäeäééeääéeäaäaäeäaäääääääääääääääéäääääé§äää䧧ä;§;§;§;§;§;ä;§;§;ä;éäägégäéééäaésééésäääeäséeäsäeézäzäeäsäsäääzäsäsäaäzäE;§;§;ääéäägääägääégäéäägégEgigägägägägégägégésäsäsäääsäzésés
A.;E2E2Eei;E;E5E;5;E;E;§;E;E;E;E;E§;E;5;§;55555;;E5E;E;S;E;E;E;S;S;E;£;E;E;€;S;§;S;E;E;Egi5E;igéiéiäééääiääääéäsiääzäEääiääääaf2525EzääääféäsäzäääzäsäzäzEsäsäa923z5;ésE2E;E;E;E;E;§;E;E;5;€;E;E;E;E;E;E;E;E;E;E;E;E;E;€5i;é§E;E;Eäääéäiäéiääéääiääääéää35252äafääsäzäzäääeääf2E2EzE;Esä;5;€z€;E2E;E;5;€;E;E;E;S;S;E;E;€;5;E;E;E§E§ä§&§ääääääéiiiääiääEEFéöäféféääfääzfzäsäéäääääafaäääzä2%2€;E2E§zE2E5Ezäsézisäsésäeäzägäzäéää
ZSZEZEZEYEZEZEYEZEZEZESEZESEZEZESSSE$5151SIE¤§=i¤E¤§:Z¢§:E¢i:E:i:E:Z:§:§:§:Z:Z:iciriz§:§:§:§:§:i:§:§:§:§:§E§E§E§E§E§€§E§EQEQEQE{E§E§S55QEQEQEQE§E§E§E§E;EgigigigigfgfgiSigi;ECE:EZEZEZEIEZESE:i:§:§:i:i:E:i:i:§:§:§:§:§:§:§:i:§:§:§:§:i:§:{:§S§?§i§E§E5E;E;E;E§E55;E§EgigägigigigägägigigägEgigfgigägi;E;§;£g{:Z:§:Z:E:§:E:§:§:§:§:$:}:3;:§:§:§:;:§:§:§E§E§E§E;E;E5E;§5E;EgfgigigfgigEgigigigägE;EgEgEgEgE;§:§gi:Z:}:§:§:§:§:§:§:§:Q:§:§:§:§:§:§E§;;;5;;E;Egig}ääS2;§giSE2äzE2ä2E2ä2E2E2E2E2äSésésäzäsäéäsäsézäzäzäzäsäsäsäsisésä6äeäézäzésäsäs§6§2ä2§s§;§säsäzäzäzäsäzäaäeääz$2;2$2;;;§;§22;;;äxäeäzgzä62;;;;6;;%656;:%;2;%%esEééäéäéääééäzäéäéäääséaäaäsäaésäéäsé2äsé2äsi2ä2ä2ä2ä2ä6äsieä6äsé2ä2ä2§2äsäsia§e;a;säsäs;z§2§2§a§s§a;zääaäséaézéaézésäeäéséaEaéséäéäééäääésäsääéäääééääéäéäsäsäzäääs§2§2§2§2§aéaäzäsäsäsäzäsäeiaisäaäaäsäeäsäsäésésäzS22E2é2S§%sé§é§éäéäééS§ééS§2ééäéäääéééäzäääéäéäzäsäsäsäääsä
-o ;g;g;g;g;gigfzfcit{zi:}zi:Q:§z§:§:§:§:§:§:§:§:§:§:§:§:§;§:§:§:§:Q;§;§;};§;Q;Q;gggg};ggg;;g;g;g;I;:;:;:fr;:;:;:§:§:§:§:§:§:§:§:§:§:§:§:§:§:§:§:§:§:§;{;§;g;§1;;}:;;;:;‘¤ ;=:: Z·:~:~:·:·:-:¥:¢:?:¢:?:7:Z:¢:¥:¥:¢:¥:¢:¢:Z:Z;¥;1:Z:!:Z:1;1;5;Z;¥;¤;1;¤;Z;¢;I;I;I;I;1;I;Z;I;Z;S;Z§Z§:f:§:Z:§:§:§:§:{55:*:7:$:7:¢:¢:¢:¢:¥:¥:¥:¥:?:?:¢:¢:1:¤:¤:¥;Z:¥:Z:QZ·;.j« -;.;.;Z;Z;I;Z;2;Zgfyt;:;Z;Z55;:;:;:5;:;:;:;:;:5:1;:;:;:;:;:-3-;;:-:-:-:-:+;-:-3-3-3-:~;-;-;-;-;Z;¥;i;l;Z;I;Z;2;I;I;Z;Z;Z;Z;Z;Z;:5;Z;3;:;:;:5;:;:;:;*;:;:-1-:
I jgégiE5E5E5E;Egi5€gE5E;E;i;E;EgägégägigigigägägigigägEgi;§;£;E:E:;:;?&E;:;E;E;i;?;5EE;E;E;E;E$?;E;E;E;E;E;§;i;E;E;E;E;E;E;E5EgE555$55553;5555Egä;E;E;E;£;E;E:E€:£:£?£EE
II ·;ig.— E5£5E;5;E;E;£5E;£:;;;:;:£:5;;:;;;:;;;:5;;:;;;;;;g;;E;E5E;S5E5i5Egigigä3E;E;S;E5E;E;E5E5E;E5EgägägigigEgigigägigi5Egägigiz$:3:;:;3:;:;:;:;:;;;:3;5;;;;i5;5i;E;5;E5E;E;sg;;s;s;2;2;2;2;;§;§2§;§2§;§z§a§2§;§2§2§;§;§s§2§s§s§;§2§2§2§2§;2;2;2;&;2;E;2;2;2;agägsgzgsgzgägagag2;2;2;2;;;z;2;2;2;2;;§;§;§;§6§z§a§s§2§2§;§ai;§;§6§2§2§s§;§s§2§2§2§e
ä„«ais§;§s§;§2§2§aie;;§:§;§z§z§2§s§z§2§2§2§2§ääsäag2E2262;2z2;2;a;2;2;s;s;;;;;2;;;s;2;2;;;2§2§;§2§äizäsäa§2äeisisiziz§2§z§;§2§;§;§s§s§2§s§2§2§2§2§;§;§z§s§e£;§;E;&;s;2;;;
S äagsä2§2§2§s§a§;§;§;§s§2§2§2§2§2§;§;§;§2§a525zäzääfäääfäääääääääEääääääiiiäääééäéééäääaäsisä2iz§;§;§;@2§2§2§s§;§s§2§s§s§;§2§2ä;§2;;§2§;§;§a§;§;§2§;§2Szäääääääéäéääfää2E;E;E;E;E5E;E;5;E;S;E;E;3E;EgägägägE;&;§§&i2FEääiiäaääääää5;E;E&E;E2EE;E;5;E;E;S23;E;E;E;E;E;E;S;£;£;£gi5E5;gi;Sgégägägägagigsg;gs;;;;;;;2:3:;:;:;;E;E;E5E;E;E3E;E>f1 :=:=:=:¤:¤:=:=;¤:=:¢;¢:=;=;¤:¤;¤:¤;:;:6;r:2;ri:iri:E¤E:E:E:5:Z:§:§:i:§:i:i:i:£:§:i:¤:¤:¤:¤:¤:=:¤:=:=:¢:¤:¤:¢:=:=:=:¤:=:¢:=:¢:¤:=:=;¤:¤;¤;¤;ri¤E¢E=E:E:£:E:E=£:i:i:E:EIäeäzöaäzFsäzäzäaäaF2E252EaäséeäsS;EséaäzäSe?2525;Ezéaöz%;E;S;S;é;&;&;ä;ä;S;ä=&¤%=2ä2FääääääéäéfääafääéE2ääääääzäzäzäääaäaéeäzäzäzäzäaäsäeäzäsés%2S;S;ä;E;S;%;S;&;5ä;ä;§;§;§;§;ägégégégägäääääääääääééääéäéééäsä2EIäzésäeä2§2§2§é§2§2§Sä2äéäéäääéäéää26;;;2§;;2;;;s;;;;gä;é;§;§;é;ä;é;é;§;ä;égägägägägägééäääéääééäéäéäéäéäéäéäéäéäéää
§ä§§§§§§§§§ä§§§§§§§ä§§§EéääiääiäiääääéäääiiSiE§§§§§ä§iiäiääiäääääEiääää䧧§§§§§ä§ääEäisäzä2äééääéäääéäsääääääi䧧§§§§§ä§§§§§€§E§é§§§E§§§§§§§§§§§§§§§§§§§ä§§§§§§§Eäéiää2§ äEääääääEääääää%éää%ä€äää§ä䧧§ä;§§§;§2äsäzäéäääääzäéäaä2ä2äéäääääääéäääääéääéääääéäääéäiäääääääéäääääéääEéäéääääEääéääääääääEääääääääääääéäääéé2§2§2ä2ä2ä2%éé2§6§2é2¤*•-· ;»„, »;-;-:-;;-;-;-;-;-;-;-;-3-;-;-;-;.;.;-;-;.;-;.;Z;i;:;I;:;Z;:;:;:5;:;2;:;:;:;2;:;:;:;:;:;c-z;:·:·:-:—:~:·1-;-:-:-:~:-:-:-:·:—:-:-:1;1;¥;1;I:Z;Z;1;I;Z;I;I;¥;¤;¤;S;I;Zm Ms 23:;:;:;:;:;:;:;:;:;:;Z;1;:;:;:;:;:5;:;:;:;:5;:;:;:;:;:;:;:;:;:;:—:;:—:~:~:·1-:—;-:-:-:¤:·:¤;15:1:1:1;1:5;¤:¥;1:Z;¤;I:1:1;l;1;I;1;I;Z;Z;I;:;S;:;:;:;:;:;Z;:;:;:;:¤*>{Se:·2g_Q,44->
sz _ _Q;Q;l;Z13;I32;Z;I;Z;Z;I;C;Z;I;2;I;Zgi;I;2;I;I5;I;C5;Z;Z;Z;:;:;Z;z;:§C§C{:§:§z§:§:{:§:§:Q:Q:Qz§:§:§:QzQ:§:f;Q:Q:Q:Q:{;Z:Z;!;Z;Zzfgi;Z;I;I;Z;252;Z;Z;l;Z;I;Z;C;Z;Z;Z;ZEF.‘“
;z§2§;§2§s§;§2§2§;§2äéäfäääEääiääääääzäaäsiaä2E2225252ääxäsäzä2Eafaäsäs€2E2€a3;52EaääääaE2¥z?2Esf2EaäzäéäösE;E25aäsäääEEEäiéääääääääääifäääfäéäéäaiziäisE2€;5;5s€;äg, 2§;§a§;§2Q2$2;;;sis§2§;§;§s§;§;§;22§;2§2;é§E§;§2§2§;§;§s§;§;§s§;§;§2§2§;§s§z§;§;§2§;§2§;§zisizisäsi2§2§2§;§2§a§s§2§;§;§z§2§s§zäzäsäzisäzäz§;§;i;ä;2;2;£;E§&§£§2§2§;§g Bgu: ·‘
r--—~-··~···--‘F
i re ·Su 3.11 SGl€CtlHg am Image
II
I
II
43
l'
-3•·
5163:V
$-23£·2
$2I3·;W
E0.„I.Bg,
B
;:Figure3.12 Dupl1cat1ng an Image lh Select Mode
44l
the SunView event handling function to select_event_proc().
The select area box is drawn in a manner similar to the
rectangle mode. When the dimensions of the selected area
have been determined, a pixrect is created in memory using
mem_create() and the selected area read into it from the
canvas using pw_read(). Image movement is accomplished by
writing the stored pixrect to the canvas using an XOR
logical mask with the function pw_write().
The same erasure capabilities and restrictions
associated with the use of the XOR logical mask discussed
previously for line and rectangle modes apply here. Thus it
is possible to erase large portions of the screen by
selecting the area to be erased and then drawing the
selected image directly over its canvas equivalent.
3.3.1.5 Image Load
The image editor has the capability of loading either
backgrounds or objects. Background loading restores an
entire canvas that has previously been stored to disk.
Object loading restores images that have previously been
obtained in select mode and saved to disk. In addition,
provision has been made to store path names for backgrounds
and objects that are "attached" to a specific model.
Selecting the "Load" button brings up a blocking
requester with a PANEL_TEXT item lname_item labeled
"File/Name ", and buttons labeled "Load Object", "Load
n
45
Attached Object", "Load Background", "Load AttachedBackground", and "No Load" (see Figure 3.13).
The "Load Object" button executes oload_proc(). Thepurpose of this function is to load a file from disk andallow the user to use it as a selected image in select mode.A previously selected image in memory is destroyed usingpr_destroy(). The file specified in the load panel isopened and copied into a pixrect using pr_load(). Finally,
the editor is placed in select mode, the SunView event
handling function set to select_event_proc(), and theblocking requester cleared.
Selecting the "Load Attached Object" button executesthe oload_attach() function. This function is substantiallyidentical to oload_proc() except that the path namecontaining the image is obtained from the database rather
than the user. Within the database provision has been madeto reference object images by name rather than by path (see
Table 3.1). Thus, an image associated with an object named"job" in the "CPU_System" model could be retrieved by
entering "job" at the "File/Name " prompt and selecting this
option provided the modeler had specified "CPU_System" asthe model name when entering the editor. Upon completion ofloading, the blocking requester is cleared.
Selecting the "Load Background" button executes
bload_proc(). This function performs identically tooload_proc() except that the entire canvas is being loaded
I
46
Image Editor — Pen ModeLine Rect Select Lxgigäljäeiigä: Save QuitL
Q Q·.·-..2·~§·j _-.2·._·._— QFile/Name:‘Load
0b‘ect Load back round NoLoadLoadAttached 0b°ect Load AttachedBackroundB_
Q. _—__________ _______
Figure 3.13 Image Editor Load Panel
47
Table 3.1 GPVSS Database Tables
Table: attr_dat
NameIxmeB1z;besmodel text 30 System model namename text 30 Name of attributebrief text 80 Brief descriptionattr_type text 1 See object codes belowtype integer 4 Variable typeiav text 80 Initial attr. value dataiav_type integer 4 Initial attr. value type
Table: model_datNameIzp.eB1cbesmod_name text 55 System model nameobject_type text 1 See object codes belowname text 55 Name of objectpath text 55 Path name of file
Table: dynamic_datName IzmeBm:e.smodel text 30 System model namename text 30 Name of Dynamic Objectbrief text 80 Brief description
_ submodel text 80 First sub—modelfile text 30 File containing imageiat text 80 Interarrival timeiat_type integer 4 Interarrival typegen text 80 Maximum generation datagen_type integer 4 Maximum generation type
Object Codes
Model_dat:"O" — Object image"B" — Background image"M" — Model specification file"L" — Path to submodel Logic specification files
Attr_dat:"S" — Submodel attribute"D" - Dynamic Object attribute
I
48
from the specified file whose path name was entered at the"File/Name:" prompt. First the image is read into memory
using pr_load(), then it is drawn on the canvas using
pw_write(). Bload_proc() destroys any previously selectedimage if the user is in select mode. After loading thebackground, the blocking requester is cleared.
Selecting "Load Attached Background" executes the
bload_attach() function. This function is similar to
bload_proc() except the filename containing the image is
retrieved from the database (see Table 3.1). There can only
be one background for each model. Therefore it is not
necessary to enter any name or filename at the "File/Name="
prompt as it is ignored.
Selecting the "No Load" button executes the no_load()
function which merely clears the blocking file requester.
3.3.1.6 Image Save
The image editor has corresponding image save functions
to those described previously in the image load section.
Selecting "Save" on the image editor control panel
executes the save_proc() function, which in turn sets up a
blocking requester on the save panel. The save panel
contains two PANEL_TEXT items labeled "File " and "Name:" as
well as buttons labeled "Save Object", "Save/Attach Object",
"Save Background", "Save/Attach Background", and "No Save"
(see Figure 3.14).
49
Image Editor — Pen Mode[Z1 Line nee: Select Load £;s;s„·;eve;s;s;; (mg) gun
I Q~_‘-_ _.FHe. ‘ »Name: · Q I
Save 0b°ect Save Backround ISave/Attach 0b'ect Save/Attach BackroundiI
III_Figure
3.14 Image Editor Save Panel I
50
Selecting the "Save Object" button calls functionosave_proc(). Osave_proc() stores a selected object imageto disk. Therefore "Save Object" does not work correctly ifthe editor is not in select mode and an object imageselected. Moving an image to disk is a three step process.Storage for the image is allocated using mem_create(), andthe image transferred from the canvas to memory usingpw_read(). Finally, pr_dump() is used to transfer the imagefrom memory to the path specified in the "File:" panel item.The blocking requester is cleared upon completion of theoperation.
Selecting "Save/Attach Object" executes functionosave_attach(). This function performs identically toosave_proc(), and also stores information in the databaselinking an object name to a path containing its image for agiven model (see Table 3.1). For this reason, the desiredname of the object should be entered at the "Name:" panelitem in addition to entering the path name of the image fileat the "File:" panel item.
Selecting "Save Background" calls bsave_proc(), whichis identical in almost every respect to osave_proc(). Thereare important differences, however. The primary differenceis that the entire canvas is saved to the path specified inthe "Fi1e¤" panel item. Also, osave_proc() may be calledwhile in any mode, but destroys any previously selectedimage if called in select mode.
551
Selecting "Save/Attach Background" callsbsave_attach(). This function is functionally equivalent to
bsave_proc(), but also updates the database to attach thepath name specified in the "File " panel item as the
background image for the current model being worked on. Itis not necessary to specify a name as this information is .
ignored. If the current model has already had a path
specified for the background, and the background saved using
"Save/Attach Background", the path defaults to the previous
entry providing that absolutely nothing was entered at the"File=" panel item, including blank spaces. If a new path
name is specified, the database is changed to reflect the
change. Thus it is only necessary to specify a path name
for the background once.
Selecting "No Save" executes the no_save() function
which merely clears the blocking requester without saving.
3.3.2 The Model Editor
The purpose of the model editor is to provide
facilities for the interactive definition and specification
of the model logic.
The model editor is entered from the image editor by
selecting the "Model" button which calls the model_proc()
function. Model_proc() draws any paths and submodels that
have already been defined, and changes the main panel
buttons so that the model editor buttons are shown (see
52
Figure 3.15). Drawing the model definition is a relativelystraightforward process. Submodels are drawn using therec_draw() function as in rectangle mode with the XORlogical mask. Paths are drawn using the pw_vector()function as in line mode between successive pairs of pointsalso using the XOR logical mask.
The "Image“ button takes the place of the "Model"
button when in the model editor. Selecting the "Image"
button executes the function object_proc(). Object_proc()
erases the model definition by re—drawing it with the XOR
logical mask and sets the main panel buttons for the image
editor.
3.3.2.1 Submodel Definition
This model editor mode provides the user with thecapability to partition the background image into multiple
discrete rectangular submodel partitions.
Selecting the "SubMod" button on the model editor
control panel executes submod_proc(). Submod_proc() merely
sets up a blocking requester to input the name of the new
submodel (see Figure 3.16).
The submodel name requester contains a "Sub—Model¤"PANEL_TEXT item and two buttons labeled "Define Sub-Model"
and "Exit". Selecting the "Define Sub—Model" button
executes the function model_def_proc(). Model_def_proc()
allocates memory for the new sub—model if necessary, updates
I
53sg I IIIÜ II
. IÜ II I
I
I I. A |
Figure 3.15 The Model Editor
54 I@3 *6 6 6
5. II. ‘F
IIé I
Q IEI
'¤ .2 I
E I °'
8 i2 ä II >6 ä 2 Ü I
6E•— II .,
.-Figure3.16 Submodel Name Requester
55
the list of submodels, and changes the SunView eventhandling function to sub_event_proc().
Sub_event_proc() first obtains the name for the sub-model that is entered at the "Sub-Model¢" prompt on the
blocking requester. This name must conform to standard C_ identifier conventions. From this point forward, the
procedure for actually drawing the submodel rectangle isvery similar to the implementation of the rectangle mode
capability of the image editor (see Figure 3.17). The
function upper_left() is called to update the submodel
coordinates at each SunView event. Note that the internal
logic assumes that submodel partitions are discrete, and
that the model editor does not enforce this convention.
A limited submodel delete facility is provided. By
depressing the middle mouse button, the last submodel to be
defined is eliminated. The memory is not de-allocated here
and may be used again if defining multiple submodels. The
Boolean variable abort_sub keeps track of whether the last
submodel in the submodel list has been "deleted“ or not.
This feature is only active immediately after a sub—model
has been defined and the user has not exited the submodel
definition mode.
Selecting "Exit" from the submodel blocking requester
executes the function exit_proc(). Exit_proc() returns
control to the model editor by clearing the blocking
requester and not defining a submodel.
4
56la4EE
I 4ÜÄ?
Ü 4·< [
O l>N"’
I¤ P 4ä :‘ 4
0)‘4
E „? 4E i.,
D 1
2.1:2.2 42~
;éäa
Figure 3.17 Definimg a Submodel
V57
3.3.2.2 Path Definition
Path definition facilities are provided to allow theuser to define a path between any two submodels. Paths areuni—directional. Currently only one path with a given"from" and "to" submodel is supported. Note that the modeleditor does not enforce this convention.
Path definition begins by selecting the "Path" button
on the main control panel. This action executes the
path_proc() function which puts the editor into path mode
and sets up a blocking requester for the input of the path
name (see Figure 3.18).
The path name requester contains a "Path " PANEL_TEXT
item and two buttons labeled "Define Path" and "Exit".
Selecting the "Define Path" button executes the function
path_def_proc(). Path_def_proc() initializes some variables
and changes the SunView event handling function to
sub_event_proc().
The path coordinates can now be defined. Paths must
start and end within submodels. First move the mouse
pointer to the desired coordinates within the "from"1submodel. Depressing the left mouse button designates thisas the path starting point. Subsequent points are
designated by moving the mouse pointer to the appropriate
coordinates and depressing the left mouse button (see Figure
3.19). These intermediate points may be anywhere on the
canvas, including within submodels. The termination point
58E
Ö Ö Ö3 FF Ö Ö PII. IÄQÄ
III II2 IÖ1 II II II
I I
IT I¥'.62 I6 I6I:
6 1I„ I I¤ IZ ?.s I· II IE I..6 6 I I§ 2 ä =2 2 6 I•» *·’ ~•- I I
In " W I„ 2 ;§ a' i.1: ¤ jI-“ :
E ä ¤ ä IZ ! ¤— ·‘
I
Figure 3.18 Path Name Requester
59IH I ‘ I ‘ ‘ I · P—IÜ.Ö‘
“ ' I; I' II@ ¤I i
ä Q E I [
Figure 3.19 Intermediate Path Point Definition
———————————————————————————eeeeeeeaaaaaaaerSSSrrSSSSSSr”——————————————————————
D60
is designated by moving the mouse pointer within a submodel
and depressing the middle mouse button (see Figure 3.20).
Sub_event_proc() is the function that handles the above
process. lnitially, memory is allocated and the path list
updated. As start, intermediate, and end points areselected the path definition is updated and memory allocated
as necessary. For start and end points, fin_sub() is used
to make sure that the coordinates lie within a submodel. In
addition, a line is always drawn between the last selected
point and the current mouse pointer coordinates in a manner
similar to the method used while in line mode in the image
editor.
Selecting "Exit" from the path definition blocking
requester executes the function exit_proc(). Exit_proc()
returns control to the model editor by clearing the blocking
requester and not defining a path.
3.3.2.3 Dynamic Object Specification
Dynamic object specification is initiated by selecting
the "Dynamic" button on the main control panel to execute
the name_dynamic_object() function, which sets up a blocking
requester for the input of the dynamic object name (see
Figure 3.21). This name must conform to standard C
identifier conventions.
The dynamic object name requester contains a "Dynamic
Object Name:" PANEL_TEXT item and two buttons labeled "Name
61
I II
II; I’ IäI:. I=. I7 I
I; Iie? I
„¤2SIÜ
¥ZQQ I·; Iä I’ IO f" IE I
I I
EZFigure 3.20 Path Termination
X
X62§J 2
22Eä$2 Eä"¥J
2E2
EVträ
2
ärn 5„EI J 21 5‘ E1„
i¤ €z · 2W ‘E=äE2¤
} 1U — I2 “ 2 2
ä S¤•:2ä2„.€ $3,E'“ 6·E22ää,é§
"*·‘*"*****1·‘”·‘*°2*‘··“"·*"··‘·^”*·"·‘· ·—* —· ··”^’”‘:’:°”‘'‘‘”>°'·''‘”1"":°‘*'X””‘”'‘ “;
Figure 3.21 Dynamic Object Name Requester
63
Dynamic Object" and "Exit".
Selecting "Exit" from the dynamic object name blockingrequester executes the function exit_proc(). Exit_proc()
returns control to the model editor by clearing the blockingrequester and not naming a dynamic object.
Selecting the "Name Dynamic Object" button executes the
function doname_proc(), which forks the dynamic program with
the model name and system name as command line arguments.
The dynamic program is designed as an input tool forthe definition and specification of dynamic objects (see
Figure 3.22). All dynamic object (DO) information input
through the dynamic program is stored in the database in the
attr_data table (see Table 3.1 in Section 3.3.1.5).
The DO name previously specified heads the display.
Underneath are provisions for entering (1) a brief
description of the DO, (2) the origin submodel, (3) the
inter—arrival time, and (4) the maximum generated DOs.
The brief description of the DO is primarily for the
use of the modeler. It holds a single line of 80 characters
describing the significance of the DO within the model.
The origin submodel is the first submodel the DO
attempts to enter.
The interarrival time may be "Constant", "Returned", or
"Sampled" (see Figure 3.23). “Constant" interarrival times
never vary. "Returned" interarrival times are determined by
a user defined function. "Sampled" interarrival times may
6422_2.
E
IlIII2{ {
2L\2
E„.23222EQ2
B ^• ; ä‘•-m •-1
= :Z ä E5en¤. nn ' :3 O •5 :2 „. 2 . Q ;*7 .C -•- C :" f S _ E{Q Q E Eé22 Q?w
·¤ x ~— Y E3 Q ..„ E ä Ü E{{g ä *7 ä 6uE¤ < § S "’ S ä {.2 2{‘~=
ä § E i 3{3t 2 .2 2{3Q g 2 z{-
E m cs m E •- I QO "° *' "•-* X Q ;„ {2 é E .5 $2 = 32
'Figure3.22 DO Definition and Specification Tool
I
65
2;EE
2:: 2<2E·ä iäämE w EÖ §LTESE22 IQ 2
lg (D -5 •.“ 5 22xs2äE <A82 ä$222Us. gg C •-> C ·— E·•- E 1 UI D • ;S 2 2 ··· S 2 2 2 2Ä E é ·•·> 1:;% p V LJ ttV:S·= 2 ä, \ 2(U ••I. 82 2E22 2 E E§··
Ä "° ÄEä: :.1 I é Q””’ QS E m Ü QD "‘ ;-4--4-
I¤ ¤¢¤| X :„ 2 2 E S E 2EC:
Figure 3.23 DO Interarrival Time Menu
I
66{
be chosen from the probability distribution screen (see
Figure 3.24). Currently only the exponential distribution
function is implemented.
The maximum generated DOs may be either "Infinite" or
"Finite" (see Figure 3.25). Selecting "Infinite" creates a
never ending stream of DOs into the model system. If
"Finite" is chosen, the user must specify an integer value
for the number of DOs entering the model system at the
"Data " prompt. The user may specify a function to
determine the number of DOs to enter the system, as long as
that function returns an integer value.
Located at the bottom of the display are buttons
labeled "Save", "Quit", and "Specify DO Attribute".
The "Save" button calls save_proc(). Save_proc()
stores the currently displayed °DO specifioation in the
"attr_dat" table in the database (see Table 3.1 in Section
} 3.3.1.5).The "Quit" button calls quit_proc() which quits the
dynamic program without saving the DO speoification.
Selecting the "Specify DO Attribute" allows the user to
define an attribute that becomes part of the DO structure
definition. This button executes the function spec_proc().
Spec_proc() sets up a blocking requester for the input of an
attribute name (see Figure 3.26). This panel has an
"Attribute Name:" PANEL_TEXT item and two buttons labeled
"Name Attribute" and "Exit".
I
I
I
IIIIIH III I I I I II IIIIIII II II II I II I II II
AII32;
IIIE
I S
éILZ.. I é ÄIIié · .I§EI"'bI3
I c~· 5 EIrä <~·"‘§ ÄI 2. I6! EIE‘§I.„
EI„-U ;I___Figure
3.24 Interarrival Probability Distributions
X
X68 X
XXXCXHX X X X X XXXXXXX XX X X XX XX XX X X”XX‘3XX‘1"’—"XX°XX‘ W2 1 "" 2
FIXD‘;5 2
a :zäZ
< E
, S 6 é20E ”
E.C ~•— .•-• 13 X g#4 rx .9- U) -4 ZO 0 U c6 < 6 ä6 6 12
'S 0 Ü — E" SEÄE) lg in 3 Ö8 I 3 3 —· ¤= ä·•w -·- w C '°“’ 23 6- V [E6? §· 6 27 EE"6 6 S 2 :2‘··
g “ 6 ·* .6 6··—‘ 3 Ä .2 ° § 52 LZ 22Eg 5 ·—1:6- 6 ';g°*,5 'E Z 2"° •-• L. E*5 § g ä 5ux
*C ! 2 :E 0 XE: 0 E -6- 5
U Ä Ä L »·-4 z
1Figure3.25 Maximum Generated DO Menu
\
69WWE WWW W WW WW WW W W W WW ÄI Z
Äbisf
;— 2
i ‘r é2%EE23* ··• Eä E 2
2 Q. w Ü. O Z: § 6 °'i 2~· ¤ 22 S S 2' Y 6 Q 2
1 ä : co E' 2 \ :> 0 Q; w 6 QJ " KE 2E 32:• pg
Q_ •• •—|E¤ ‘ *5 Ä Ä; " SE*‘E‘ : é fz Ä .. == § 23 Ä 3 3 E2E2 3 2: 2 ·— 1: 2
2 :2 2 Q' E '; 2S S E 3 2„ . gg L Z6 ¤> * E2 g ? E 6 g .E m E - QQ 0 2 •· N X ;
" Ä "' C :
E>·ä 2 . . EQ ‘ 2 E
Figure 3.26 Attribute Name Requester
1
70
The "Exit" button executes the exit_proc() function
which clears the blocking requester without defining an
attribute.
The "Name Attribute" button forks the attribute program
with the model name, attribute name, and "D“(for DO) as
command line arguments. The purpose of the attribute
program is to provide facilities for the definition,
specification, and storage of both DO attributes and
submodel attributes. DO information is stored in the
"attr_dat" table of the database (see Table 3.1 in Section
3.3.1.5). The attribute panel contains: (1) the attribute
name, (2) a brief description of the attribute, (3) the type
of attribute value, and (4) the initial attribute value (see
Figure 3.27).
The brief description describes what aspect of the DO
or model system the attribute depicts and the type of
attribute value describes what values the attribute may
take. Attribute types may be (1) "int", (2) "long", (3)
"float", (4) “double", (5) "char", or (8) "time" (see Figure
3.28). These classifications correspond to C variable types
except for "time", which in this case is type double.
The initial attribute value may be (1) "Constant", (2)
"Returned", (3) "Sampled", or (4) "Evaluated" (see Figure
3.29). "Constant" may be any value of the same type as the
attribute. "Returned" allows the initial value to be set by
a user defined function. In addition, the pre—defined
7 1
__--{{2
{E22E
T i gE E ?¢ ¢{2,s .2 .2{zE Ä Ä{§7; .2 .2{:8 2 I': | E8 8 *; ·;I
in
SFigure3.27 Attribute Definition/Specification Tool
1
72MIEV 77777 7 7 7 77 77aÜ>
:22AEä „„
.5 cu Sc; E LmEéäéäéää ;" xEE22g_§ B3§*2 Ä Ä s,9 E ..: J: §I ä SSU
,.1ä „_ °ö 3 é"’ 2 g ::2 „.2.¤:
EFigure 3.28 Attribute Variable Type Menu
7 3
ii
I]2
Eääug §Q! N C G1 N Z'5 E *6 5 'E.3 sj C C ·•->
ä cu E| /\ 3 O GJ > .
C.1 .1 ZC C E6 6 I22__22222Eä Z1:2= E23§ „. ..
u- Q E EW m E-•• 3>~ E ?2 *·
*EFigure 3.29 Initial Attribute Value Menu
I74
function seed_init() is available if the user wishes to havea random number seed initialized from the pre—defined globalseed "seed". It is merely necessary to pass seed_init() the
address of the integer seed it generates a random number
from (i.e. seed_init(&seed)). "Sampled" allows theattribute to be initialized from a probability distribution
(see Figure 3.30). Note that currently only the exp()
function is implemented. "Evaluated“ allows the user to set
the initial value of an attribute to true or false depending
on the expression or function supplied at the "Data:"
prompt.
It should also be noted here that DOs have a number of
attributes pre—defined in GPVSS as shown in Table 3.2.
Perhaps the most useful of these attributes is the “q_sm_et"
attribute which is usually set to be the queue submodel
entry time.
Two buttons labeled "Save" and "Quit" are placed at the
bottom of the panel. The "Save" button executes the
save_proc() which saves the attribute data in the database
and quits the program (see Table 3.1 in Section 3.3.1.5).
The “Quit" button executes the function quit_proc() which
quits the program without saving.n
3.3.2.4 Specification Mode
The specification 'mode allows the user to specify
submodel attributes and submodel logic. The specification
7 5
11E- 1 I12
2*"1 E5, Q E „ 1 Qan I J ; E 1E • E E ·E:5‘ 1 ä3 1 5'E 1 21;2C;
"· = E c;ÜII""" 3 — — 1 2S — ¢~- 5 : : 1 5Y, I; "'°° S ÄÜ ä • EÜ12·S 11 2ux *
Üi?12ä1E
22 2_222 __ _ W
2Figure3.30 IAV Probability Distributions
——————————————————————————————————————————————————*‘t———"ttttttffffffffffff‘—
l
1
76
Table 3.2 Dynamic Object Standard Attributes
IxpeHam:doubletag The unique DO tag
int type The type of the DOint max_gen The maximum generated DOstime occurence_time Time of the activitytime q_sm_et Queue submodel entrance timeint first If DO just entered the systemint sub_exec Sub—model sect. to processchar origin_name[56] The prev. submodel holding DOchar dest_name[56] The next submodel holding DOint submodel The submodel containing the DOtime entry_time DO entry time to the systemint job_origin Where the DO came fromPixrect *DO_image What the DO looks likestruct DO_list *next A pointer to the next DOstruct DO_list *prev A pointer to the prev. trans.
1
k77 1
mode is entered by selecting the "Spec" button on the main
control panel, which executes function ms_proc(). Ms_proc()
changes the frame label to reflect the specification mode
and the SunView event handler to ms_event_proc().
Ms_event_proc() handles the model specification events.
Precisely, it forks off both the submodel attribute and
submodel logic specification programs. This is accomplishedby means of a menu that is active only when the mouse
pointer is within a defined submodel rectangle and the right
mouse button is depressed. Available menu choices include
"Sub—Model Attribute" and "Sub—Model Logic“ (see Figure
3.31).
Selecting the "Sub-Model Attribute" menu item first
executes the name_attr() function. Name_attr() brings up
the same blocking requester for the input of the attribute
name that was used for DOs (see Figure 3.26). The procedure
is identical to the process of DO attribute specification
described earlier except for the fact that an "S" (for Sub-
model attribute) is passed to the attribute program in the
command line instead of a "D" (for Dynamic object
attribute).
Selection of the "Sub-Model Logic" menu calls function
spec_path() which sets up a blocking requester for the input
of the specification path (see Figure 3.32). The path is
needed to store the multiple files that the spec_log program
generates.
7 8IH Ä Ä "" "°"""'77 " °°'I5 I
2 Iu I" II I; I~ I
Ä II52 II I•;[ 3: }
4EI
E EI 6 62 II IN 2 2 s I
ä Ti II
159 Q.9 ziJ II.
O I'. IZcQ ÖÖÖ IE II IIG I~'=‘ Ii IAL I¤> II% é‘
'I 1Iä; IUJ 5‘... I2 ä H2 __ 5 I
Figure 3.31 Specification Menu
I
7 9
IIE I
I IIn II« II II I
I EI äI ;
I Iz
, 6* I2 ä 2 I.1 •*I2 6 ID N
E I I6ä::lg :: I .2 3 2 IE gg E I Ic% tg va I II C I I5; E I
L? 2 IzuI
IFigure 3.32 Specification Path Requester
80 lThe specification path requester has a PANEL_TEXT
itemlabeled"Specification Path=" and two buttons labeled
"Specify Logic" and "Exit". The "Exit" button clears the
blocking requester without specifying submodel logic. The
"Specify Logic" button executes the function spec_proc().Spec_proc() takes the specified path and store it in
the database for future use (see Table 3.1 in Section
3.3.1.5). If no path is specified, then the path defaults
to the database value. Note that absolutely nothing must be
typed at the "Specification Path:" prompt, including blanks.
Finally, spec_proc() clears the blocking requester so that
the spec_log program can be called with the system model
name and submodel name, and specification path as arguments.
Program spec_log provides the actual submodel
specification facilities. Each submodel is broken down into
multiple components [Balci 1986]. In addition, a "Global
Definition" file is provided for the inclusion of user
defined functions. .
Spec_log opens a number of SunView Textsw’s for each
submodel that is specified (see Figure 3.33 and Table 3.3).
The Textsw files are stored in the path passed to the
program as a command line argument. Two files for the same
Textsw but different submodels are distinguished by the
submodel name appended to the standard filename. Thus, the
entrance condition file ("EC") for the "CPU" submodel would
be saved in the "EC_CPU" file in the specified directory.
I
II
_- Y'“—‘°l*" v—vv—~—————·—· .IIII?I
1,..;I‘I
IIEIIII
ÄéII1
Y I ___ «„ _____ _Q ‘«
L‘¤•-•(0•»
D.CUI.¤\Lm3\
é»° Q'O
D äg ^ °'8•-4 f\.. E "‘
.. ‘ <¤ .axa· ä E, sO 3 3 I "2 Q. CL 3 .11 U Q. 1.1..1.¤ ·-— ‘-’ <.1 QJ cn c -4 ‘g_- Qm II V II X C zII I-— II m vw IE E S ~·* E E äE 1 z 1 ß u.1 1- 1-lv 3 :.1.1 3 Z Z w w·•-> Q. ax Q < Il.1 •—1 V"’ -9 E .‘·’ > ä E Z “$‘
:11 c -4 E Q E _ EJ 1-Illüuüll! Eääadli II- <>IA LQ_: .‘.Z.E g _*_;_·„- g _~_:... 3 I 1 : GID In u"' U 1,,, ¤I= 1 IS
Figure 3.33 Submodel Logic Specification Tool
S2 ;
Table 3.3 Submodel Logic Specification
EC: Entrance conditions that must be true in order toenter the submodel. This may consist of anexpression or a function as long as the functionevaluates to either true or false.
LO if EC is True: Logical operations to be completed if theentrance condition evaluates to true. These operationsmust be in standard C code. However, for this andother Textsw’s, more user friendly macros have beendefined that bring the logical specification up to ahigher level.
ASC: Activity start condition that must evaluate to truebefore the activity in the submodel may begin.
LO if ASC is False: Logical operations that are executed ifthe activity start condition evaluates to false.
LO if ASC is True: Logical operations that are executed ifthe activity start condition evaluates to true.
A: The activity of the submodel. Provision must be madefor advancing the DO to "LO_EOA“ after the activity iscompleted if not using a pre—defined macro.
LO_EOA: Logical operations to be performed at the end of theactivity. ‘
XC: Textsw contains the exit condition that must evaluate totrue before a DO may leave the submodel.
LO_XC: Logical operations to be executed if the “XC“condition evaluates to true.
J
583
A “Save“ button is located at the bottom left of thepanel that calls the ms_save function. This saves the
contents of each Textsw in the appropriate file.
Note that only one “Global Def" file is used.
Therefore it is important to edit only one version of thisfile when multiple sub—window logic specifications are
running, and to save the edited version last.
A number of macros have been defined to expedite the
submodel specification process. See Table 3.4 for a
presentation of their availability and proper use.
In addition, the function "least(DO,
submodelname_MODEL)“ is provided to determine if a DO is at
the head of a given queue in the specified model.
These macros and functions bring the submodel
specification process up to a higher level than exclusively
using the standard C programming language, while still
maintaining a high degree of flexibility.
3.3.2.5 Load Model
The load model mode is offered to provide the modeler
with the ability to load previously defined submodel andpath definitions. These definitions are stored in a text
file with a unique format.
Submodel definitions are at the beginning of the file.
For each submodel a string containing the submodel name, the
coordinates of the upper left corner, the width, and the
84
Table 3.4 Macros
Purpose Use
ADVANCE(x)
Prevents a DO from exiting Should only be used in thethe "A“ section of a submodel "A" submodel specificationuntil time x has passed. section. This macro calls
the function Advance().
BRANCH(seed, x, y, z)
Uses seed to generate a Seed must be an integerrandom number. lf the variable. X must be agenerated number is less than floating point value.x, the macro will MOVE the DO Submodels are specified byto submodel y. Otherwise the their names followed by theDO will MOVE to submodel 2. "_MODEL" extension.
COND_BRANCH(x, y, 2)
MOVEs a DO to submodel y if x X may be a logical argumentevaluates to true, or to or a function that returnssubmodel z otherwise. true or false. Submodels
are specified by their namesfollowed by the "_MODEL"extension.
DECREMENT(x, y)
Decrements the variable x by X must be a variable.amount y.
DESTROY
Used when a DO leaves the This macro callsmodel. destroy_proc(), which
destroys the DO and tellsthe program that the DO madea logical advance.
EXIT_SUBMODEL
Advance the DO directly to Used only in the "A“the "XC“ section. submodel section. The use
of this macro is appropriate‘ when the DO spends zero timein a submodel activity.
I
II85 I
Table 3.4 Macros Continued
Purpose Use
INCREMENT(x, y)
lncrements the variable x by X must be a variable.amount y.
MOVE(x)
Moves the DO to the “EC“The submodel must be
section of the specified specified by the name of thesubmodel x. submodel followed by a
"_MODEL“ extension.
SET_DO(x, y)
Sets the DO attribute x to X and Y must be compatiblethe value y. variable types.
STATISTICS
Collects the proper This macro callsstatistics when a DO leaves statistics_proc(), and itsthe system. use is optional.
SYS_ENTRY
Used to collect the lnitializes DO statisticsappropriate statistical variables. Use of thisinformation when a DO enters macro is optional.the model system.
UNT1L<x>
Prevents a DO from exiting This macro should only bethe “A“ section of a submodel used in the “A“
section of auntil condition x evaluates submodel. X may be ato true. logical argument or a
function that returns trueor false.
86
height of the submodel rectangle are stored. "END„OF_MODELS“is placed directly after the last submodel definition in thefile.
Path definitions follow the submodel definitionsbeginning with a string containing the path name. This isfollowed by two strings containing the _“from" and "to“
submodel names that define the end points of the path.Next, the x and y coordinates of the path are listed. Aarbitrary number of points can make up a path. Therefore,
the coordinates -1,-1 denote the end of each path. Note
that negative coordinates are impossible otherwise, since
the x and y values correspond to actual pixel positions onthe screen and the Sun color monitor does not have negative
coordinates. "END_OF_PATHS“ marks the end of path
definitions.
The "Load M“button on the main control panel starts
the process of loading a model definition by calling
loadm_proc(). This action brings up a blocking requesterthat has a PANEL_TEXT item labeled "Are you sure?" and twobuttons labeled “Load Model" and “Exit“ (see Figure 3.34).As discussed previously, the “Exit“ button executes
exit_proc() which clears the blocking requester without
loading a model.
The “Load Model“ button executes the model_load()
function. This function looks up the filename containing
the model definition in the database. Therefore, any text
8 7
’ Model Editor — Load Model Mode ~- 7 ' ·3ubMod Path Spec ”„L‘ö,ä§!:j:B\ SaveMAreyou sure'7‘
EI
Load Model Ex1 t
’1E 11Ef. ‘s‘
EIf;i
1
;..—‘ — 7
Figure 3.34 Model Load Requester
I
68‘
previously entered at the "Are you sure?" on the blocking
requester is ignored. Next any existing path and/orsubmodel definitions are erased using the XOR logical maskand their memory de—allocated. Finally, the new model
definition is loaded into memory and drawn onto the canvas,again using the XOR logical mask.
lf the model definition is saved frequently using the
"Save M" button, the "Load M" button can also be used as a
limited path and submodel definition deletion facility.
3.3.2.6 Save Model
The purpose of the save model mode is to create the
file containing submodel and path definitions. The save
file format follows that previously discussed in the load
model section. ‘
The "Save M" button on the main control panel starts
the process of saving a model definition by calling
savem_proc(). This brings up a blocking requester with a
PANEL_TEXT item labeled "Model:" and buttons labeled "Save
Model", "Save/Attach Model" and "Exit" (see Figure 3.35).
As mentioned previously, the "Exit" button executes
exit_proc() which clears the blocking requester without
saving a model. '
The "Save Model" button executes function model_save().
Model_save() saves the submodel and path definitions in the
file specified at the "Model " prompt in the blocking
II
89 EI
Model Ed1tor’ ·I Save Model Moda ' ·· I 'Emm Path IEIEEIBEHI Load M IIIHIB owModel: I ¤IA ’
|SaveIModel} Save/Attach Model @
I
Figure 3.35 Save Model Requester
90
requester. The usefulness of this option is limited due to
the fact that model definition path names are retrieved onlyfrom the database.
The "Save/Attach Model" button executes function
model_attach(). This saves the submodel and pathdefinitions in a user defined file as mentioned above, but
also stores the path in the database (see Table 3.1 in
Section 3.3.1.5). If no path is specified, then the path
defaults to the database value. Note that absolutely
nothing must be typed at the “Model " prompt, including
blanks.
3.4 The Generator
The generator creates the executable code for the
visual simulation by invoking the gen program. Selecting
the "Model Generator" icon on the main menu serves as the
invocation. The gen program accesses several files both in
the generator directory and in the directory specified for
submodel logic specification as well as making extensive use
of the database (see Table 3.1 in Section 3.3.1.5).
The "MASTER_INCLUDE.h" file is created in the same
directory as the submodel logic specifications. This file
tells the pi (process interaction) program where to find the
DO structure definition, the GLOBAL_DEF file, and the
function definitions created for each submodel.
For each submodel, a function is created and stored in
91
a file named for the submodel with a “.h"extension. Thus
the function handling the "CPU“submodel would be in the
CPU.h file in the submodel logic directory. The created
function has the name "CPU_proc()“. The various files
created in the submodel specification mode of the model
editor are opened, and the code is inserted in the proper
place.
Next, the pi.h file is created. This file contains all
macro definitions and global declarations.
The pi.pre_h is copied into the pi.h file. The purpose
of this file is to allow convenient addition and deletion of
code without the need to program the changes into the gen
program.
Submodel constants are defined for each submodel.
These take the form of the model name followed by a “_MODEL“
extension. The "CPU" submodel would have a "CPU_MODEL"
unique integer constant defined for it. These constants are
used by the DOs to determine which submodel function to
execute.
Following the submodel constant definitions all user-
defined attributes are declared and initialized. The
required information to accomplish this is queried from the
"attr_dat" table in the database (see Table 3.1 in Section
3.3.1.5). The system model name is defined in, the
“MODEL_NAME“ constant.
Table 3.5 contains descriptions of the additional files
1
192
Table 3.5 Program Generation Files
pi.h: Contains all global definitions.
DO_ATTRIBUTE.c¤ This file is automatically included in theDO_DEF.h file which declares the entire DO structure.Thus user defined attributes apply to all DOs as thereis only one DO structure.
DOINIT.c: This file contains the initialize() function.lnitialize() is used to initialize all variablesbetween simulation runs, whether they are user definedor not. Each DO specified in the database has it’sattributes initialized and is assigned a unique integeridentifier which is used for the determination of suchthings as inter—arrival times, priorities, etc.,
lDOINITl.c: This file is used by the initialize() function
to determine a DOs inter—arrival time based on its DOtype. The code contained in this file is designed tobe inserted within a C switch statement on the DO type.
DOINlT2.c¢ lnitializes the user defined DO attributes whenthe DOs are created.
DOSWITCH.cS Contains code that is designed to beinserted in a C switch statement on the current‘ submodel of a DO. This determines which submodelfunction the program will execute.
ANIMSWITCH.c= This file contains code designed to beinserted in a C switch statement on the submodelconstant. The purpose of this code is to convert thenumerical constant submodel names to the stringsubmodel names the animator understands.
93
required by the gen program to transform the model
definition and specification into the programmed model.
To transform the programmed model into the executable
model, the gen program issues a system command to "make —f
pi_makefile" which compiles and links the pi program.
3.5 The Animation Tool
The capabilities offered by a GPVSS generated
simulation include the ability to show moving bitmap images
on the dynamic display, and to freeze/restart the animation
through user initiated interaction. When the dynamic screen
first appears, two buttons labeled "Load" and "Quit" are
shown (see Figure 3.6).
The "Quit" button calls quit_proc() which merely quits
the program. The "Load" button calls function attach_load()
which executes attach_load(). This function retrieves the
path name of the background image from the database (see
Table 3.1 in Section 3.3.1.5), loads it into a pixrect
memory structure, and then draws the image on the dynamic
display.
The dynamic display utilizes a technique known as"double buifering" to draw the dynamic objects on the screen
[Sun 1968a]. Double buffering provides smooth animation by
hiding erasing and redrawing until the next frame is ready
to be viewed. Even with rapid regeneration systems, these
operations are visible. Double buffering enables images to
l2 94 *be drawn behind the currently visible frame. When drawingis complete, the buffers are switched, thereby making allthe objects on the new frame appear to have been drawninstantaneously.
Double buffering is implemented by restricting read andwrite access to a specific buffer. Limiting write access to
a buffer is achieved by dividing in half the bitplanes
associated with the canvas using the pw_putattributes()
function. Display or read access to a buffer is limited by
manipulating the colormap. Two colormaps are constructed:
one with colors associated with the low—order bits, the
other with the high-order bits. This effectively halves the
maximum available bits for color definition. Thus, a 256-
color canvas is capable of supporting two 16-color buffers.
Display of either the high- or low-order buffer is
accomplished by changing the colormap appropriately. _
Due to the use of double buffering, the background
image must be loaded into the dynamic display twice, once
for each buffer. Because write access to the canvas has
been masked, any attempt to resize the window results in the
elimination of the background image in that buffer. This
results in an undesirable flickering effect when the dynamic
display is run.
If the background image is successfully loaded,
attach_load() performs the remainder of the setting up
tasks.. Submodel and path definitions are loaded into
95
memory from a path name retrieved from the database (seeiTable 3.1 in Section 3.3.1.5). If no errors wereencountered, initialize() is called to initialize allsimulation variables. Finally, attach_load() eliminates the“Load" button and brings up the “Animate“ and "Run“
buttonsh
(see Figure 3.36).
3.5.1 Animation Node
The "Animate" button starts and stops the dynamicdisplay. It executes the anim_proc() function which enablesor disables the repeated execution of the draw_objs()
function and whether or not the "Run" button is shown. Thecalls to draw_objs() are enabled by using
notify_set_itimer_func() to make the system repeatedly call
draw_objs() as often as possible. The "Run“ button is
removed due to the fact that the dynamic display must
necessarily halt in order for the simulation to execute
U properly in “Run"mode. This is because both "Animate" and
"Run" modes require the use of some of the same global
variables, thereby making it impossible to initialize the"Run“
model properly while producing a dynamic display.Therefore, making the "Run" button and the dynamic display
mutually exclusive avoids this conflict.
Draw_objs() is the heart of the dynamic display
facility. It first checks to see if any animation objectson the animation list have a start time less than or equal
6 6
II2II Ü
22
I Ü
II
aa Ei ÄFigure 3.36 Animation Tool with Loaded Model
97
to the animation clock. If there are, these objects areinserted into the draw list. These animation objects are
classified as "EXTEND“ objects due to the fact that allmovement between submodels is assumed to be instantaneous.
Therefore, the animation clock must halt during theirmovement.
Since all movement between submodels is assumed to be
instantaneous in simulation time, a problem arises when an
object spends zero time in a submodel. Assume an object
moves from submodel A to submodel B, spends zero time in B,
and then moves to submodel C. Since both movements occur at
identical times, care must be taken so that the same DO is
not seen moving on two different paths at the same time.
This preserves the sequential logic of the model. Thus,
instead of seeing a DO move from A to B and from B to C at
the same time, the DO moves first from A to B then from B to
C.
This solution was implemented by giving each DO a
unique integer tag. If the draw list contains a DO with the
same tag, the animation object is placed on a temporary
list. When all objects currently on the screen arrive at
their respective destinations, the temporary animation
object list becomes the draw list again and the above cycle
continues.
Code exists to animate object movements that begin at a
specified animation clock time, but are otherwise unbounded.
I
98,
The animation clock does not halt during the animation as is
the case for instantaneous object movement. "EXTEND“ and
"CONCURRENT“ animation objects are maintained on separate
lists in a manner similar to that described above. No
"CONCURRENT" objects move until all the "EXTEND“ objects
have reached their destination. This_code is currently not
utilized, but could be used to animate arrivals or
departures from the model system. Note that the animation
of system arrivals should be led by the proper number of
animation time units so that the animation object arrives at
its destination at the designated time. The function
path_length() computes the number of animation steps
required to traverse a given path.
Once all current animation objects have been removed
from the animation list and place on the appropriate draw
list, the function simulate() is called.
Simulate() contains all code pertaining to the system
model. The simulation code was created under the process
interaction conceptual framework as described in Figure 3.37
reprinted from [Balci 1988, p. 294]. Simulate() updates the
simulation clock to the first event on the Future Object
List (FOL) and moves all DOs with occurrence times less than
or equal to the simulation clock (which is distinct from the
animation clock) from the FOL to the Current Object List
(COL). It then attempts to advance each DO as far as
possible until no DO may move any further.
1
9 9
STARTINITIALIZATIONS
CLOCK UPDATE PHASE
CURRENT TIME = MOVE—TIME OF TI·IE FIRST OBIECT ONTHE FUTURE OBJECTS LIST (FOL)
TRANSFER ALL OBIECTS WITH MOVE-TIMES EQUAL TOTHE CURRENT TIME FROM THE FOL TO THE CURRENTs OBJECTS LIST (COL)
SCAN PHASE
MOVE THE NEXT OBJECT ON THE COL THROUGH AS· MANY PROCESSES AS POSSIBLE
ANYMORE OBIECTS
TO MOVE?
NO
TERMINATE ‘SIMULATION
?YES
I OUTPUT I
END¤·¤·¤-===·===—=·="·"‘*‘="‘Ü$Figure3.37 Process Interaction Conceptual Framework
[Balci 1988, p. 294]
1
100
Since the ability to animate "CONCURRENT" animation
objects was originally incorporated, simulate() is called
until the last simulation DO movement leads the animation by
the constant "INTERVAL". "INTERVAL" must be greater than or
equal to the longest path length used for "CONCURRENT"
animation objects in order to start the animation object
early enough to arrive at the correct time.
The FRAME_LABEL of the dynamic display is updated to
reflect the current animation clock.
Lastly draw_objs() computes the new positions of the
animation objects, draws them in the background buffer,
swaps the buffers, and erases the old animation objects.
3,5.2 Run Node
The run mode provides facilities for the gathering of
statistical data using the method of replications. GPVSS
reports the average number of DOs in the system, and the
average waiting time for DOs.
Selecting the "Run" button executes stat_proc() whichl
brings up the run panel (see Figure 3.38). The run panel
provides an interface to enter! (1) "Random Number Seed",
(2) "Number of Runs", (3) "Transient Length", and (4)
"Steady State Length". Two buttons labeled "Run Simulation"
and "Exit" are located at the bottom of the panel.l
The "Exit" button calls exit_proc() which clears the
blocking requester without running the simulation.
‘1
101
?11 .1
E:*"‘
1§13ä E? !i E= 1E
ä ·A
__ Sg, Ü.2 .. 6 Sg " E1*%%% 3 ä 3 B ;
2 § S g2gS S S ä ?.,. ·¤ .¤ x:euSS S E 2 ·
Q — C! Z •- t/J —i
~*Figure3.38 The Animation Tool Run Panel
102 :
The "Run Simulation" button executes functionrun_sim(). This function retrieves the data entered by theuser on the run panel, initializes all variables, and runsthe simulation. The output heading, the average number ofD0s in the system for each replication, and the averagewaiting time of DOs for each replication are all output tostandard output. Instead of the animation clock beingdisplayed as the frame label, the number of the currentreplication is shown. After all replications are complete,
run_sim() closes down all windows and quits the program.
2CHAPTER 4
CASE STUDIES AND TESTING
4.1 M/M/1 System
A simple computer system has one Central ProcessingUnit (CPU). Users access the system from a single keyboard
device and submit jobs to the computer.
Interarrival times of jobs to the system are
exponentially distributed with mean 200 seconds. Service
times of the CPU are exponentially distributed with mean 160
seconds.
A GPVSS model of the system was constructed using the
facilities described in Chapter 3 (see Figure 4.1). Figure
4.2 shows the running animation of the CPU_System. A job
can be seen leaving the CPU, while another is on its way
from the CPU_QUEUE to the CPU.
4.1.1 The Experimental Hodel and Results
Statistics were gathered using the "Run“ mode of the
animation tool (see Figure 4.3). The system model was
assumed to enter steady state after 3000 completed jobs.
After reaching steady state, the model was allowed to
process 15000 jobs. The method of replications was used to
gather 20 values for the average time a DO spent in the
system and the average number of DOs in the system.
103
I
104 IT " " " ""‘ ’ · -· —' ~— V——-MY.I
QTgf
ä I.. I5 ige
äi
-SQT
I?
IIUJß·;E*0E HZ »‘·‘‘ ‘ ‘ ’· .,1·.«g¤u·. = ¤
Figure 4.1 M/M/1 Model
I106 I
IIIÜ I‘I’IIIIIIII IIM III
IIIII II2 III
I
Figure 4.2 M/M/1 Dynamic Display
106
ll
Ü *¢Ö: §’ luu
}lin
111ä2g nsg‘
Z lge CD S S zu*5 Z3 3 3 2 EE.11111 .. 2, E;:;l:{ Q E
.·=¤=:= B 12 .1 6; Ig E 6 fg) 6 ägg E E E —S‘1U U D C (U2 2 2 2 2 10: z •— K/J
rvFigure4.3 M/M/l Experimental Model
1
107 V
The results of the simulation are listed in Table 4.1.
The average time a job spent in the system was between
778.998 and 821.214 seconds at the 95% confidence interval.
The average number of jobs in the system was between 3.896
and 4.116 at the 95% confidence interval.”
4.2 MVS System
A Multiple Virtual Storage (MVS) batch computer system
has two Central Processing Units [Balci 1988]. Users access
MVS through an interactive Virtual Memory (VM) computer
system running the CMS operating system. Users are
classified as follows: (1) 300 baud modem users, (2) 1200
baud modem users, (3) 2400 baud modem users, and (4) LAN
users.
Each user creates a batch program under VM/CMS and
submits it to the MVS with the distributions listed below.
User Type Interarrival Times Mean
300 baud Exponential 3200 Seconds1200 baud Exponential 640 Seconds2400 baud Exponential 1600 SecondsLAN Exponential 266.67 Seconds
The four facilities in the MVS system are the Job Entry
Subsystem (JES) scheduler, processor 1 (IPU1), processor 2
(CPU2), and the printer (PRT). Listed below are the
distributions of service times.
108
Table 4.1 M/M/1 System Experimental Results
Average Waiting Time
VALUES GIVEN:
851.207 825.170 878.756 747.024 707.498727.253 822.011 851.601 812.012 781.124826.138 804.737 795.171 710.398 724.980823.250 798.654 795.861 908.723 810.554
CONFIDENCE INTERVALS FOR THE DATANumber of data points = 20Sample Mean = 800.106140Sample Varianoe = Z980.889404
Confidenoe lntervalstLevel 0.100 0.050 0.025 0.010 0.005Lower limit 783.893 778.998 774.554 769.109 765.178Upper limit 816.319 821.214 825.658 831.103 835.034
Average Number of Jobs in the System ‘
VALUES GIVEN:
4.290 4.148 4.422 3.722 3.5223.687 4.143 4.346 4.052 3.8964.119 4.037 3.964 3.531 3.6264.081 4.011 3.928 4.545 4.053
CONFIDENCE INTERVALS FOR THE DATANumber of data points = 20Sample Mean = 4.006063Sample Variance : _ 0.080510Confidenoe IntervalsrLevel 0.100 0.050 0.025 0.010 0.005Lower limit 3.922 3.896 3.873 3.845 3.825Upper limit 4.090 4.116 4.139 4.167 4.188
109‘
Facility Processing Times MeanI
JES Exponential 112 SecondsCPU1 Exponential 226.67 SecondsCPU2 Exponential 300 SecondsPRT Exponential 160 Seconds
When a batch job is first submitted by a user, it goesto the JES scheduler. If both queues are empty, the JES
scheduler assigns the job to CPU1. This is because CPU1 has
the lowest average service time. If one of the queues for
CPU1 or CPU2 is not empty, the JES scheduler assigns the job
to the shortest queue.
After being serviced by a CPU, all jobs either use the
printer (PRT) with probability of 0.2, or leave the system
with probability of 0.8.
All jobs are assumed to have equal priority and all
queues are handled using the first—come—first—served
scheduling discipline. -
A GPVSS model of the system was constructed using the
facilities described in Chapter 3 (see Figure 4.4). Figure
4.5 shows the running animation of the CPUl_System. A 1200
baud job can be seen leaving the printer, while a 9600 baud
job is on its way from the printer queue to the printer.
4.2.1 The Experimental Model and Results
Statistics were gathered using the "Run" mode of the
animation tool (see Figure 4.6). The system model wasassumed to enter steady state after 3000 completed jobs.
I
II
1 1 0
II
H ug II- L Iä G Ill I
· ‘
| .
E ’ VV ' ·· ‘· · V · V
VFigure4.4 MVS Model
I
lll
Ü Ü Ü „E I
IÜ II
’ @I@U II “
I III IIII III
l.TII LNI I-L-I I. *1 II — IIäI @ II
E gs ms wä Z¤OOOITIFigure
4,5 MVS Dynamic Display
112
G
I1E Ü I
E II.DÜF
I1
-- I¥I Ü Ü1I1 {jl} I1 Li-,
IIcn m‘ §U'} G G eE G G N
Eua g I2 E6 ä Ü
111; gg E @1 1éäs ~= 11 6, 3r. n: c12 3 g1ÜQ Ü E Z gää ää :1:%gg 6 E 6 E _1°’
Q C g lv GlS ::2 z 1: Ö
Figure 4.6 MVS Experimental Model
n
113
After reaching steady state, the model was allowed to
process 15000 jobs. The method of replications was used to
gather 20 values for the average time a DO spent in the
system and the average number of DOs in the system.
The results of the simulation are listed in Table 4.2.
The average time a job spent in the system was between
2370.111 and 2508.026 seconds at the 95% confidence
interval. The average number of jobs in the system was
between 14.801 and 15.750 at the 95% confidence interval.
4.3 Capacity System
The operating system of a computer installation
controls the processing of jobs sent by three independent
terminals [Balci 1988].
When a job arrives from a terminal, it enters a queue
in front of the Input—Output unit 1 (IO1) and waits forl
processing. All of the queues in the system are handled in
arrival order (First—Come First—Served). After the job is
processed at IO1, it enters the queue in front of the
Central Processing Unit (CPU). Then, after the job is
executed at the CPU, it joins the queue in front of theInput—Output unit 2 (IO2). No limit is placed on the number
of jobs waiting in the queue in front of IO1 and CPU, but
only ten jobs are allowed at IO2 (including the one in
processing). If ten jobs are at IO2 (9 in queue and 1 in
processing), then any subsequent arrivals to IO2 are
I I
114
Table 4.2 MVS System Experimental ResultsAverage Waiting TimeVALUES GIVEN:
2371.152 2296.923 2716.885 2487.397 2303.1392441.727 2371.648 2681.721 2441.719 2294.8782372.147 2961.429 2533.762 2381.045 2180.7452382.213 2344.331 2296.519 2522.246 2399.740
CONFIDENCE INTERVALS FOR THE DATANumber of data points Z 20Sample Mean Z Z439.068359Sample Variance Z 31812.566406Confidenoe Intervals:
Level 0.100 0.050 0.025 0.010 0.005Lower limit 2386.104 2370.111 2355.594 2337.806 2324.964Upper limit 2492.032 2508.026 2522.543 2540.331 2553.173
Average Number of Jobs in the SystemVALUES GIVEN:
14.733 14.319 17.175 15.677 14.30815.390 14.902 17.006 15.216 14.22814.764 18.831 15.732 14.888 13.54814.784 14.705 14.256 16.026 15.029
CONFIDENCE INTERVALS FOR THE DATA 'Number of data points Z 20Sample Mean Z 15.275742Sample Varianoe Z 1.507309
Confidenoe IntervalsrLevel 0.100 0.050 0.025 0.010 0.005
Lower limit 14.911 14.801 14.701 14.579 14.490Upper limit 15.640 15.750 15.850 15.973 16.061
115
diverted to another I/O unit that is not included in ourstudy.
ÄStatistics of the distributions of interarrival times
between jobs and the processing times at each service centerare tabulated below. All values are stated in milliseconds.Terminal Interarrival Times Mean _
1 Exponential 20002 Exponential 40003 Exponential 1250
Facility Processing Times Mean
IO1 Exponential 450CPU Exponential 500IO2 Exponential 580
A GPVSS model of the system was constructed using the
facilities described in Chapter 3 (see Figure 4.7). Figure
4.8 shows the running animation of the CPU2_System. A
terminal 1 job can be seen leaving the IO1 device, while aterminal 3 job is on its way from the IO1 queue to IO1.
4.3.1 The Experimental Hodel and Results
Statistics were gathered using the "Run" mode of the
animation tool (see Figure 4.9). The system model was
assumed to enter steady state after 3000 completed jobs.
After reaching steady state, the model was allowed to
process 15000 jobs. The method of replications was used to
gather 20 values for the average time a DO spent in thesystem and the average number of DOs in the system.
1 1 6‘ " ’ " ’ ’ · -— —· —~« —~——— ——--IW ‘— 1~----,--,-,-, -,,
F;1EätF
1*1.1¤'
*14
Iggg; I
·“F— I FII 11
I ||I1!°1
F?F1
6 ä Ü m Ü Üg ä U U U
Figure 4.7 Capacity Model
ll'7 IYYYYVYYYY Y YYYY YYYYYYYY YYYYY Y
Ü "—
I I1'Y' {I IQ] II
¤ IQ III
auäI Iä „I — M Ü IÜ ·; I*— I- I-3 0 0 0 I
Figure 4.8 Capacity Dynamic Display
1
116
Ü iE 1*·· 11E 1
11 Q
=1
m J
Q 11
6 mag 1Emääf~äaägg
E mß mWP-0 0 0 1
Figure 4.9 Capacity Experimental Model
119
The results of the simulation are listed in Table 4.3.The average time a job spent in the system was between6175.095 and 6352.312 seconds at the 95% confidence
interval. The average number of jobs in the system was
between 9.546 and 9.855 at the 95% confidence interval.
4.4 Testing
A simulation model is only useful it produces
sufficiently credible results. The internal logic of GPVSS
and the logic of the model must be shown to be sufficiently
accurate. Testing refers to both Verification and
Validation. Model Verification refers to building the model
right. Model Validation refers to building the right model.
Model Verification and Validation are therefore required if
the user is to have confidence in the statistical results.
4.4.1 Verification
Both d@Sk Ch@CkI¤§ and tracinq techniques were used to
achieve model Verification. Desk checking consists of
carefully and thoroughly examining the GPVSS code for
errors. Debugging the code was an incremental process. As
each new feature was added, as many bugs as posrible were
eliminated. Additions to the code incorporated as much
previously debugged code as possible, thereby minimizing the
number of errors.
Tracing was accomplished by following all DOs as they
120
Table 4.3 Capacity System Experimental Results
Average Waiting Time
VALUES GIVEN:
6391.875 6225.573 6215.359 6033.398 6324.7335928.592 5964.760 6224.833 6168.832 6198.975~ 6384.520 6423.599 6275.756 6630.325 6633.7416708.255 6113.443 6406.245 6121.348 5899.883CONFIDENCE INTERVALS FOR THE DATANumber of data points = 20Sample Mean = 6263.703125Sample Variance = 52527.960938
Confidence lntervalsrLevel 0.100 0.050 0.025 0.010 0.005Lower limit 6195.645 6175.095 6156.440 6133.583 6117.082Upper limit 6331.761 6352.312 6370.966 6393.823 6410.325
Average Number of Jobs in the System ‘
VALUES GIVEN:
9.871 9.730 9.663 9.365 9.9039.094 9.152 9.602 9.529 9.6269.918 9.918 9.602 10.422 10.268
10.490 9.386 9.923 9.428 9.120CONFIDENCE INTERVALS FOR THE DATANumber of data points = 20Sample Mean = 9.700429Sample Variance = 0.159356
Confidence Intervals:Level 0.100 0.050 0.025 0.010 0.005Lower limit 9.582 9.546 9.514 9.474 9.445Upper limit 9.819 9.855 9.887 9.927 9.956
I
121
moved from one submodel to another. The "DEBUG“ variable isused to toggle the GPVSS verification facilities on and off.These remain in the code, but are currently inactive. lfthe "DEBUG" constant is defined as true, informationregarding the DO type, from submodel, to submodel, starttime, and DO tag is printed to standard output each time aDO movement occurs. The standard output can be re—directed
to a file so that careful analysis of relatively long tracesmay be performed.
4.4.2 Validation
Validation was performed by comparing the results
obtained from the three case studies discussed above with
known analytical model results.
Actual values for the M/M/1 computer system described
in Section 4.1 are 800 seconds for the average waiting time
and 4.0 for the average number of jobs in the system.
Comparison of these analytical results obtained from the
GPVSS implementation shows that these values fall within all
confidence intervals listed in Table 4.1.
Actual values for the MVS batch computer system
described in section 4.2 are 2400 seconds for the average
waiting time and 15 for the average number of jobs in the
system. Comparison of these analytical results obtained
from the GPVSS implementation shows that these values fall
within all confidence intervals listed in Table 4.2.
l122
Actual values for the capacity computer system
described in Section 4.3 are 6264.047 milliseconds for the
average waiting time and 9.709 for the average number of
jobs in the system. Comparison of these analytical results
obtained from the GPVSS implementation shows that these
values fall within all confidence intervals listed in table
4.3.
Thus the statistics produced by the GPVSS models of
each of the three previously discussed systems compare
favorably with the analytical results substantiating
sufficient model validity.
¤n
CHAPTER 5
USER’S MANUAL
This chapter illustrates the usage of GPVSS. For a
case study problem described in the next section, it showshow to develop and execute a visual simulation model step by
step. ‘
5.1 Round Robin System
The operating system of a computer installation with a
single CPU controls the processing of jobs sent by three
independent terminals in a round-robin manner.
The user of each terminal "thinks" for an amount of
time and sends a job to the computer system for execution.
Think times are exponentially distributed with mean 250.00
milliseconds. The user is inactive until the computer’s
response starts appearing on the terminal. Thereupon, the
user goes through a "thinking" process again and sends the
next job. The arriving jobs join a single queue, with first
come first served (FCFS) discipline on CPU access. Repeated
usage of the CPU is accomplished in a round-robin manner.
The CPU allocates to each job a maximum service quantum of
length QUANTUM (100.00) milliseconds (not including
overhead). lf the job is finished within this service time
period, it spends a fixed overhead time OVERHEAD (15.00)
123
I124
milliseconds at the CPU after which a response is sent tothe originating terminal. If the job is not finished withinQUANTUM, its remaining service time is decremented by
QUANTUM and it is placed at the end of the queue afteri
spending a fixed overhead time of OVERHEAD. Job servicetimes are exponentially distributed with mean 500.00
milliseconds. All transmission times between the terminals
and the host are assumed to be negligible.
5.2 Starting GPVSS
Before starting GPVSS, it is a good idea to have adirectory already created in which the various files
associated with the model are stored. In this case, the
directory used is "/usr/bishop/test3dir“.
To activate GPVSS, make sure that
"/usr/bishop/work/top_level" is the current directory andtype "GPVSS<CR>". This brings up the GPVSS main menu (see
Figure 5.1). ‘
5.3 Drawing Images
The first step in constructing the model is to draw theimages that are used in the dynamic display. Two types of
images must be created: the system background image and the
Dynamic Object (DO) images.
To create the system background image, enter the model
editor by first selecting the "Image Editor/Model Editor"
I
1 2 5„ 4.;
2:2:2:2:2:2:;::;;;:;:5;;:3:;:2:§:2:2:2:2:i=2:i;i5E;E5;;;:;:5:;:;:2:2:2:2:i:i¢E:E;£;E;E555E;:;:;:;:§:3:§:2:2:2:2¤E:E=E;E;Egégé;E;E;:2:2:§:2:§:§:2:Eri:E:E=Sri=E=E=E5E;E;E§:2:2:2:2:2:2r2:E=2:E=E¤E¤€¤E=E=€;E;E§E;E;:§$:2:2:2:2:E:E:ErE:E=E=E¤E;E=€¢E¤EQ:5E;E;:§:§:§:E:2:2:3Eriräri¢E¢€¢E=E;€;E2E{Biz;3:2:2:2:5:5:E:E¤E¤ESESS!EQS;E;E§€2E2?2E§€2:2:2:E:E¤E=ESE¤£=E=E¤E;E;E;€2EEEE?2€2:i:E:E¢E=S¤E=E=E;E=i;E2E2E2E2E2E2?2€£€2=E=EI:,2.—.ä ;é;§séäiääzääääääéäääääsäääsäsé22ésé2%;§;äää5ä;E;éää;iiE$2;2ä2ä2äs§2é6ä;ééé;é;§;§;§äääääääää6äsäs§s§s;2äs§2§;ä;é;ä;§;ä;§;ääääääääéäeäzäeäsäsäsäsisi;ä;é;ä;§;ä;ä;§;ä§ä;e;s;2;säsäzäzéeisEsi;ä2%5E2;ig?;§;§;ääs;sieäaä2;6;sE2;eésäsägägägigégégégääé;§;§;säéääzäsäsäsézäzäsäääeégägégégä;§;i;§;s;§§§;a;z;2§2ä2äsäzäs§aäs§;§2ä5§;ä;ä;ä;§;§;;;2;e;s;s;zä:;:2äeäeäsäigégägégi;ä;ä;s;e;z;s§2;säsäeäsägägägägägägäg§;§;ä;e;s;s;s;sIUI
: EI5E09+-*
E$2EEEEEEÜEEE25ÜEFEFE?EEEESEE§E§£§EÄE§E§€§Ei€§?i€E? §2§2§2;2;3;ä292ä2%2E2ä2%2523%;§2§sE2§2§2§2§2§2;2;2;vaVJ=O··-<
;22:;$::;;:3;;:;:;:5:Q:§:§:§:§:§:§:E:i:E:E¢2:;:;;; :§:Z:§:§:£:E:;:;¤;¤;=;5;;:5:;:§:§:§:§:§:§:§:§:E:i:§:+*
2E2§§§E§EiigE;E;§2E;€;S22;S25;E2?2§2€2§2§2§2§2§2§&;£ $2;;2?2$$2;§2§2Eéäägäg2;E;E;E;E;§;£;E;S252§2§;§2§=¤g
·—-3
2 .Z'*"E U E 2äzäääzä;E2E25;S2§;§2$2;2§2§2§2§z§2§2;2;2;%§&;Ezäzä; Eéäääää2Eäsäzä2ä2ä2E2ä2§2§2§2§2§2§2§2§2§s§a§2§2§z;2
’E :2¤J•*
2 22Eéäääéäéäéäääääéiääéäääéäääääzäääöäaääääééääääiäää ° äéééiéiääääääääiäiäiääääääiésäää2§2§2§2§2§é§2§S§;ä;ä2 E s20.. - ; ä2?Ä?2§Ä§Ä§§§§§§§Ä§E2E2E§?2E2€2E2?2?2?2€2?§?2§Ä§€§§§ 2 äääsäéäéäéééääéäääääsäääääsäsäsäaäzäsésäeééäeééäääéi
S- gv Q ·¤i;§2§2;2;2;252;2;;52;;;ggg;g;;;§;§;§;§;§;§2§2;2;2;2; „ 2§2§2§2§2§2§£;2;2;£;é;E553;;;;§;§2§2§2§s§2§2§2§2§2
= ¤ ; 2 2äääää2§2§é§;ä;§;2;s;aäaäaisäi2§2ä2§2§s§2§S§§§;§é§; ,_ äzäääääéäéäEäéää䧧;§ä§ä2§2éeézäééääsäääéäéééäääéäL ’“g——· =·»¤"°E Eäsig;äaégägigä5§;§;§;ä;;§zäaäzäzäsäzäsésägägääägäg 2¤>
é2§2§2§2§é;€s;;;;§2;2§2§2§2§2§2§2§2§2ä2§2;2§%§2;¥;Ss V- 2iéäéééäé22%;S23;Es;2§2§2§2ä2§2§2§2§2§2ä2§S§éäSsS;éQ, -
"‘aäSäséääéäéäéaézéaésäaäaäs;z;2§s§sä2§2§2§2äaéééäääié ·—
·· ézäsä%ä2§éäéäé§é§é§32é2¥s;2ieäéääsäzäaäsäééééääéäéäU
2:2:2:E=E=E=E=ErE¤E¤:5z2:5:2:2:2:2:2:2:2=2:E¤2=i:Erf 3 "I :2=2:2:E¤2¤E=E¤ErE;E=E¤E2:2:2:2E2:2:2:2:i¤€=E¤E¤E¤E¤>ä¤-2S25;525252€2=2=2:2¤i=&=£=é=E=ä=E=i=é=é=E=E=E=E=E=:=
Figure 5.1 GPVSS Main Menu
w
|
126 Y
Icon on the main menu. This brings up a blocking requesterasking the user to input the name of the system
model (see Figure 5.2). In this case, type "CPU3_System“and then select the “Construct Model" button. This startsthe Image Editor/Model Editor as a separate process (seeFigure 5.3).
Resize the window as desired (see Figure 5.4). If help
with the SunView interface is needed, see the SunView
Programmers Guide [Sun 1988a].
The background is now drawn using the pen, line,
rectangle, and select modes as described in Chapter 3. Thequality of the background is limited only by the patience
and artistic capability of the modeler. Be sure to read
carefully Section 3.3.1.4 as it describes uses of the selectmode that come in extremely handy when creating/erasing
images. Once the background is completed, it should looksomething like Figure 5.5.
Since we now have a completed background that we wishto associate with this model, select the "Save" button onthe image editor panel. This brings up a blocking requester
for the filename (see Figure 5.6). Enter a path
name at the “File " item and Select the “Save/Attach
Background“ button. This saves the background in the
specified file and place an entry in the "model_dat"
relation in the INGRES database (see Table 3.1 in Section
3.3.1.5) associating this file with the background image of
N
127__ -C $:7:::::::::7:Yt7:7:7:7:7:Y:¥:::::7:7;::7:7:7:75:!:7:¢:¥:€;€:€:¥:T:¢:€:7:?:7;Z:!:!:Z;7:C:Z33:2Z:€;Z;!:$;Z;Z;¢:Z;E32;!·I~I·!-Z-Z·I-C-Z—I·€~Z·I-Z·Z·Z-Z-Z-1-1-E·Z~2-:-9-2-7>I·Z-1-Z·:·:~:·'-:-:·:»:·:~:·:·:·'·‘·*-:·‘·‘-'-‘-'—*-'····:-·-·-·-···•·-·~·:-·-·.·.·.·.~.·.·.-.-.-.·.·.~.·.·.·.-.-.-.~·.~.·.·.~.--~~·~·--~—------~.....................,......· · 4 W:§:§:§:§:§:§:Q:§:§:f1}:Q:§:Q:Q:Q:{:§:Q:Qzi:Q;5:Z:Z:Z;¥;¥;Z;Zgf;Z;2;I;?;Z3I:3;133;I;I3I;Z;2;Z;I;I;Z;t;Z;Z;:;:;:;:;:;C;Z;:;:fcf:{rf:}:§:§:§:§:Qzf:Q:{:Q:Q:Q;}:§:Q:}:Q:§:1;Z:C11;f;Z:2;Z;1;I;Z;1;€§!;I;Z;I;I;C;I;If!}:}I;:§:§:§:§:Q:§:§:§:§:§:§:§:§:§:§:§:§;§:§:Q;§:§:Q;Q;Q:§;Q;F;I;2:C;7;!;Z;Z;I;I;Z;Igift;I;I;Z;:;I{Zftftfi§:§:§:§:§:§:§:§:Q:Q:§:f:§:§:§:§:{:§:§:Q:Q;Q;Qgf;?:f;I;Z;¥;I;I;I;I;I;¢;I;I;1;:5;:;rf:§:§:f:§t§:§:§:§:§
· E éiéééäéééE2ééäéE2äEäzäézizäzäééézéséééä2ésä2äzäsé2ä%ä2§2§2;EéäääääääéääääääääääääéäääääE;äääääääääää;§;§;§;§ää;§;§;ä;E;äägE;ägäéäééääééä2ézäsäää2EzééäEeésäzäsäsää2E2éäää;ääääääääääääääääääääé;äiäääää;§;§;§;§;§;ä;§;ä;§;ä;é;§;§;§;ä2§;ä2§2§2ä6éE5éE22;EeäaéeE2éeäääääEäääéäääääii;ääääéääséää;§;§;ä;ä;é;é;§;§;§;§;§;ä;§;ä2ä2ä2222äeää6izisäeäsäaäaäsäsäsää;ääéääääää;§;ä;é;§;E;E;§;ä;§;§;§;§;§;§;ä;ä;§;§gägägägégä“_uääéäääsääiéääiääsäsisäéäéäéäéäéésäsésäsäsäsS2äaäääzäéésäsäaäsäzä2§2§2§22s§aäsäsäsäeäsäaäzisäsäsäaäzäsässeäs§2äzä2ä;;säs§s;s%s;s%s%2%säséäääéäéééäéääéääéäéé%§é§Sé&äé§éä6§2§é§éä2§2äéäzésäzäsäsäsäsä2§2§2§sésäsésä2;:;;äséaäsäzä652%%1éäaßséäéééééééäéäääéäéääééäéäääéééäéäéééé2äéiéäääéäSäéäéS2ääsäsE2ääéä2é2ää2äsäs§sésä2%zäsésäsS2E?éäéäéäéääééäéäéäéäSES?SEéééäéäSiEäéiEäéäéééäSESééiSESéäéé2ä&é2ä2é2é6ä2§2äsäéésäsäzé
' ‘ 3äsäsäsäaä;E;E2E2F2P;5zE;E;E2€2€;E;E;S;E;E;E;?;ä;?;E;E;ä;E;555;;E;E;E;E;E;9;2;£;i;E;5;&;E;ä;&;E;S5S;E;E;ä;2;&;égägégégägéiägäääiäisäsi2§2§2§a§&§z§sisäsäsiäisöääsäsäzäsäsSai;3;i;Esé;S;E;E;5;E;é;E;€;Ssäsäsägé;é;é;E;S;S;ägägigéiääEäéiséEééääéääsééiiéaäsäaäzizäzisä2§;§25;5z52?2ä2é2€2EsR25;E;%;E;EsE;E;£2S;%;ä;ä;S;E;ä;E;ä;&§E;5äéeääääééäiEääéääzäéäéääääisäzi;§2§2€Ei2ääfsfzäz€25sf2€;E2E;E;E;€aäzéséaieE;€;€;E;E;E;S;S;E;E§I'
E69W>~· zEgägsgsgagagsgsgzgägsgzgz;2;2;z;;;s;2§2§2§2§s§;§z§; E§€;E;E§i§EgE5E5E;E§E§E§E§E§E§E§EÄEÄEÄEEEEEEEEESESV9 E Qäéäéäääéäéäääéääiääää;;;ä§ää§ä§%§éä2ä2§2é2ä2éé§äeé ä;§ääää2é2§;§;§é§%§eäsäééséaésäsésäsäsäéäääaääääéäää:10; ;2;;;gagagsg2;32;;;2;2;;;§;;s§;§s§2§2§s§2§s§z§;§2 E{E5E;E5SEEÄEÄEEESEESESESESEäiäiäiäiääääéiäiääéiäii
···* ' ri:ErE=£¢E¤E¤?=E=E=E¢E=E=E¢ErE:5:3:E=£:§:£rE:E:E:E:£ E¢E¤E¤E=ErE¤E¤S¤E=E¢E¢§¤E¢E=E¤E¢E=ErE:E¢E:E:E:E:£:E€+-> = Qs§;§2§;iz§;;2§a§2§e§s§25;EsE§2%2%2E25;äsEa52?2ä2€; 2E2E;EaäääzE2E2$52525;ä2ä;52E2Es€2E;€;E2%;Esfsféza=¤ i :22:2:2:2:5:2:2:2:2:$25säzäsäaäeézäsäääaEsäsäsäeäe sE2EaéeäzfsEzäzfzäéäéaE252EsEzEz¥25;5a¥2€2äs?sEsE;2·-—ä:¤= §2§2§s§zäsizis;2;;§2§2§;§;§;§;§;§;§;§;§s§s§s$6;;;2 25;;;2§;§;§s§;§2§;§;§2§e§;§;§;§;§;§2§z§2§2§6é2E;Ea5
Em··:,_.S N E?§?§€§?§€§?§?§?䀧€§€§?€?ääääiää?€?§?§?§?ä?§?§€§?§? EääéäiääiäiääääéäiäiäéäääääiäääääéääééäéäéäéäéEéääééW :-:·:—;·:~:-:·:—:-:·:·:·:-:-:-:·:¢:¥:7:¥:¢:7:?:?:?:?¢¤ ä E EEääääääääääEäééiéääSizfaäääzEzäaäsäzäaäzfeäsäsäzäz SääfääéäzE2E2S;E;%2€;Ezäeäääz?;52ä2Ea€2E;5s%&%;5;5;E5 * E FEääääääéääéifäääE§?§E§?E€EE?§?䀧?§?§?§€§?é?§?§ EE§€§E䥧?§?§€é?§€§?ä?ä?§?§?§€§?§€§?§?§?§€§€ääé?§?€?§ S
S”T SZZq;_1
‘-" ai;§2§2§2§&§s§z§2§2§§§§§§§z§§§§§§§§§§§§§§§§§§§§5§éä; is;2§§§2§§§§§§§§§§;䧧;ägägéééééääéäéääéääséééääääéä
W ¤= i S S ?EäéäsfEfääsäiisäääzäzäzäzäaääfzSs5;2sE;E;5;ä;5§E§E; säaäzäaäz?;5;E;EeiségE;E;€;E§E§E§Eiéäiäääiiiäääi§2§£O E ä S ä äéäéäéäéééäéäéäéééäéäéééééäééeésäéäsäsäzäzäaäaäsäsée 2äeääézéääéäsiaäéää2ézésäsia§2§2§2§aä2äe§2§2ä2;2;2;E- - „- EiiEääääiiéääéääääääääiääääääéäääääääéääääääéääiäää E?§?§?§€§?§?§?§?äääääääääEäiäiääéäääääääääääääääääé¤ g gä°‘g N * = EEiSäääEäääEééäfiääääääääääéäéäääéiäääééäéééäéäéäééä • ?ĀĀ§E§E§?SEE}?EE?FEEÄEEEÄEEEEEEEEEEEEEEEEÄÄEÄQS< .„ :
1; S ? S ;z§2§2§;§2$2;;;2§a§s;;§§§äiäääéiääéäféäääääääéäääi zi2§2§2§ä§§§2§2§§§§§ääEEEääääääääääääääääéäéääääääää;„, >, U i Q :5:5;;:;:;:3;;:;:;;;:5;;;5:51;;;E;E;E;E;E;E;E;§;§;i; ¤ 3:;:;:5:;:;:5:;:5:3:55;E;E5E;E;E;S;E;E;E;E;EgE;E;i:5~_-_-_~_._„_„_._._._._._._. ._„_._._.„...... U) _._._._._._._._._.............,. . .~,
2"’„ ? ® E Ü %2%2$2%;¥sfzäsäaäääaä2E252S§E2S2E;E;S§E§ä§?ä䧀äääéä äE2äeézääfzE2FzääääEéäfäääféEäééääääääääääéäääéäääEM ¤> §:{cf:§:§:fx}:fz}:{1}:;}:}:}:§:{:Q:§:§:§:§:§:§;§:§: :{:§:§:§:§:§:Q:§:§:§:§:§:§:§:§:§:§:§:§:§:§:}:§:§:§:§2 ä °° EE?€€€?€i€?€€€?€?§€€?€5€E€EE?€?Ä€€€€€€€€€€€€€€EE5€€E U- €€€€§?€€§€€€§E€€€€€€€€€€€€ÄEÄEEEÄ?€€€?€€€€€?€€€iEä€i
<~ U Q g äää;§;§;ä;§;§;ä;§;€;é;§;ä;ägägägägägägägägägägägég$5 ·- „« gi;§;i;§;ä;i5é;§;§;§;§;§;é;i;ägägégägägägägägigägägi«> .. ; ääéäéäéäéäSäéäéäéäéäéiääéiéäsäséäsé2§2§2§2§2ä&ä2§2 S '7 Säéäéäääéäééääéäéäéäéäéésäzééä2ä%ä2ä2§2ä2ésä2é2é2ä2§« g.·I-I-PI-I-I-Z-Z·Z-Z-i·I~2~I·T·Z·I·Z·I-Z-Z·Z·I·$·Z *" C I—I—Z·Z·Z—I—I·Z·l-I-I·I·I-1+2·Z·Z-Z-I-I—Z·Z—Z-I-}>'E¤.‘g* EE§2§2§2§2§2§2§2§2§;§2§;§;§2§2§e§;§;§;§;§;§;§;§s§;§; 'E ä 2§2äzizizéää2§2§2§2§2§2§2§;§;§2§;§2§2§;§;§s§;§;§;§;§Q I E °___F
1 re 5.SU 2 System Model Name Requester
1I
·*~.•{äsäsäzäaäaäsäsäzäeäsäsäs§;§2§z;2;s§s§2§säsäséeäsésäzäésäz%sS2Sz%2%sézS2Szésä;és&sé;%aS;é;é2e2é2;2z2§2§2äéäéäéäééééäézäzäääzéääsäääéésäzäzääiääaäzésäzäsäieäsäaäeäsäaäzäsäzäsäaäsäsisäzéaésézäsäzäa%2%2%e%zS2éaSeésééääääéiääéäéääééäéäéäéäéäéäéiéäéääééäéäééääsééééäéäsä2E2äzäsäsésäsäséésäaäsäsééäséséa52%zäeéésäsäézéäéééäéäéäéäéäéäéäéäéééäéäéäéääiéäääéäéääiéäééääSiéé2ä2äääéäéäéäééééäééäéäSi2äéäsééézéääsäzäéééäzäsäé_ ’Ziäääz5säsä;ä2€2%s%sS25;ézS;E;EaE;S;E;S;5;&;ä;€zE§E;E;ä§é§é§E§%§ääääéäääääääéääéäääiéäiäéäéiäiiääää§&§2§&§E§&§2§2§2§2§£§2§2§ais§2§säääsésiäisäsäsäääsäzäsäaäaäaäzäsäaä;EsS;S;E;E;E;E;EaE;ä;E;€§ä§%§EäE§E§E§EäS§&éEääiéééäéiäiäääizääääääiää2§2§2äs§2äzizizä2é2§2§2§;5;§2€z§sE2ä;E;ä;E;E;Ee5;€;E;E;Eeä§EEEäéiääääEäéääEEEE?EEEEEEääääEäääiéäEiääääääääéäéiääaäaäzäzisiaiziääziääs52EafzäzEzE;E;ä;€;ä;E;E;%2S;E;E;E;E;E;&;E;äzésézis'
‘ 3aiaä2;;s§2§s§s§s§s§;§;§2§;§;§;§s§;§;§;ä;5;E2E;i;E;E;S;€;i;€;E;5;5;E;E;S;E;S;E;E;E;E;é;E;E;S;€;E;ä;2gägägägägägägigägä;£;ä;&;£;s;2;&;s;2;ä;z;égäiääzgägääaisisizi;§2§a§z§;§;§2§;§s§säz3;525s€s&;€;ä2§;é;€;E;E;E;€;E;ä;é;E;£;S;ägégE;E;2;Egägägägägägégsgzgzgsgäg2;;isgsiégsieis§z§2§2§s§2§;E;§;%;E;é;?;€;é;€;i;S;E;E5E;§;EzE;E;E;E;é;&;§;E5E;€;é;&;E;E;égägä;égägä32;2;2;2;2;2;2i2§2§2E2äsizisäsäaiziäiziaiaiz§;€2§2E;E2E;E2E2E;%s
I: ¤" ¤:¤:¢:¢:¢:¤:Z:¢:¤:¤:¤:¤:¤;Z:¤5:1:Z;21:5:5:¢:=;¤;=;Z:¤;¤;:;¤;:;:;¢;S;SE:§:§:S15zi:E12:}zi:§:§:§:§:§:§:§:Q:Q:{2;:{zi:E:§:{:§:§:§:§:§:Qzgzgzg:5:3:;:5:5:5;;:;;;;g;Q;;;=;¤;=;2:;:;:5;:;:;:;:§:§:§:$:§:§:i:§:§:§:§:§:§:Q:}:5:;:;:;:}:3;;:Q:Q:3;§;;;g:5;3;:;;;:g;ggggg;g;;;g;g;g;g;gg}cizi:Q:}:§:§:§:§:§:§:§:§:§:§:§:§:;:;;3:;:;;;:5;gg;gz;;g;;;;;g;ggg;g;g;g;g;g;g;g;g;g;;;g;g;g;g;g;g;g;g;gig;igiziz$:;;:}:}:;:}:}:;:;:3:
q-;-;-;-;-;-;-;-;-:2;-;-;~;Z;:;:;I;:;I;I;I;:;:;:;:;r;t;:;:;:;:;2;2;:;:;:;:;:5;1;1;:5;:;:;2;:;:;:;:5;:;:;:;:;:;:;:Q:{:}:§:§:{cg:{:;:;:;;;:;:;;;:}:3:3;g;};Q;S;¤;3;;;::I;I;¤;Z;¢;¤;:;:;:;:;:;:;:;:;:;:;:;:;:;:5;:;:;2;2;:;:5;:;:;:;:;:;:;:;:§:§:§:§:§:§:§:§:§:Q:§:Q1};§:§:§;Qxg:§;§;Q3};Q;Q3;;;Q;g;;;;;g;Z;:;:;:;:;¢;:;:;1;:;:5;:;:;2;:;:;:E:§:§:§:§:§:§:§:§:§:§:§;§;{:}:3Q:§;§;;;;;Q:;:5;;;;g;g;g;g;g;g;:;2;:5;:;:;:;:;:;:;2;:;:;:;:;:;:;:;:;:;:;:§:§:ääifääääiäiäiäéfifäEEEéäiääääiäiäääEäääE§E§E§Séäiiää?Ef?EFE?i¥E%i?EFE€£¥2?£fEEEFääääéfs52%%2F2?zäzäääs5éfzääES2Eääsäeä2Esäzää2E;SieEsi;é5ä;E;%;E;%;Egi;§§E§S§£;&§&iiiEääE2EEäiääEzäziäiäiäiäääéaiääsE2;si;F2525252F;5aE;ä;5;E;E;ä;E;§;E;E5E;E;i;E5555;3;%;Egägäg2;EgägägEgi;E;E;ägägégzgägsg2g252;;;;252;;$6$2;%;§;§;§;§;§;;;§;E;E35;E;€;E;£;S;£;QgégägägEgégägs5252;;;ga;22;;;25;;;;;;;;;;;;;;;;;;;;;;§;§;ggg;gggg;gggggggggE;i;£;2;2;£;2;;;ägsgsgsg;
§s§s§s§2§2§;§2§2§2§s§ais5;%;5;és¥;€;E2€;ä;3;é;225;E;i;é;E;E;5;&;S§?;S§E;&§5EEä&§E§é§&§E§5§E§2§äääääiääéésäääzizésE2äaisis§2§2§s§2§s§;§2§2§2§2§2§2ä2§2§2§s§2§&§2ä2EzEsE25;E2E;E25;E2E;SzE;5;E;S;é;S;S;ä§EäS§§;ä§EäéäääEiäiäääEE?éäääéäéiéäéäéééäääéiäiéääiääziääsäéäsäääsäéäzieäzisäsizisäsäsfsfsäääéä6EzäaäésEsääaézE2€;€;ä;EEE5éEEEäéäéääääééääääääéäiäiäääééiäéäiéiäiäiäääiEE2§2§2§E2éääaäsE2äaääfzäz5252525252i2Ezf25;éz?;E;äéEEäééäääiäääéééääéSéééäääééä
äägégéäégääéäégääéäägägä;igägägE§äääää3ägégégägägägégägägégégägégé;ääägégégägigégäéäéäéäéäääääääéäéäéäéäéäSäääéääiéäéäääääääääzääiéääääääiiää;§§§;§§ä;ä§ä;§;Egégääägägigigägägägäg§;é;§§§;§;䧧;äääääää2§5§&§S§2§ä§Säéäéäéäsäsisgaäsäzgsgsgz;;§s;;;z§;;;§;§§;§;§§§;§;§;§;§;§;ä;ägägégägéäägäg§;ä;§;ägéäääääää§;§;§;ä;§;ägégE5äéäéäéäéä2äéäzäsésésäsäésizäeizä22;;;2;äz;s§2§E§§§äääägä;é;§;§;§;ä;ägägägégägägägégégägägägägEgiaézéääeäeiz§2és§2§2§2§z;2§2§säz§*:::¢:¥:¢5:7:¢:¥:¢:¥:¢:¥:¥:¥:¤:¢:¤:¤:Zci:F:¤:Z:¢:¥:¢:¤:¤:¤:¤;¤;1;Z;1;I:¢:¤;¤;1;¤;¢i¤EIZIEZEIEIE:§:§r§ZZEric}:Et{zit?:Z:E:ZS5:*:¢:¢:¤:¤:Z5:¤:¢:¤:¤:¤:¢:Z;1:¤:1:1:1:1:1:1:1;3:21:1:1:1:5;I;:;:;:E:§:§:§:Z:§:§:§:§:§:§:§:§:§:§:§:§:§:§:{2}:}:;§:¤:Z:§:1:25:Z:1:Z;22:9:1:1;2:1;1;S;I;¤;I;1;I;I;t;:;:;Z5;:;2;:;:;:;2;:;:§:§:§:{:§:§:{2{:§:Q:}:Q:§:§:{;Q:3;;;:;:Zgg;§;¥;ls;¤;I;r;:;:;25;:;I;:;r;:;:;:;:;:;:5;:;:;:;:;:;:;:}:}:3;}:;:g:Q;;:;:;;;;};g;g;g;g;$@55;;;2;égägägz;2;2;2;2;;;55;;;2;z;s;2;2;2;2;2;2;s;2;2;;;2;;;s;;;2;;gsgagzge;52;;;2;ag25;;;2;;;;;s;;;2;;;z;;;2;;§;;;§;§;§;§;§;§;§;§55;;;;;;§;§;§5§5ä;E;E;€5€;£;i;E;£;E5EgägS;E5£;S;E;EgégägigägägägägägägEgägégägägégägägEgägigägsgägägzgägäiää$;2§ä§2§2§;§2§;§&§s§2E2;;2§2§2§2§;?;EaäsääE;ä;ä;E2E;5;E;E2?;E;i;EzEzEzfeé;%;€;E;E;E;S;E;E;E;E;€;i;E;€;S;€;E;E§€;&;&EEiäääiiiääääääéäi$2iäiäééääfäfäääféääfääifääääääsäéääaäääaäaääsäafaääf;E2EsE2E;E;E;EI “ —"‘“ °—-0Ü
I·I-I·I·Z·Z-Z·t-:+2-:-:-:·:-:·:~:-:·:~:·:-:-:?:¢;Z:Z:Z:1zi:Z:Zgigf;Z;I:Z;Z;I;Z;Z;1;i;Z;C;1;Z;C;I;I;1;I-2;:-Z-:-1-:-:·:-:·:-:-:-:-:-:-:-:~:-:-:·:Z;€:¥;C;C;Z;I;Z;Z;C;°
:Qzi:§:§:§:§:§:§:§:§zi:}:§:§:§;§:§:§:§:Q:§:Q;Q:§:g;;;Q;};I;¤;I;1;¤;S;S;:;r;1;:;:;:;:;:;:;:;:;:;:;:;:;:5fz;:§:§:{1;z}:;;;:;:}:;:;:;;;:;:5;g:;;g;g3;:;;;:;;;:;:;:;:;:;
ä Ei’:3;5:gigigigE555535;;E;E;E;E;E5Egigigägägigigigägig 5;gE;E;EgägägigigigigigigégE;E;E5E;E;E5§;E3E3E;E55;Eg §;E;E5EgigE;E;§;53E;E5E;5525E5E;E;E;E5E;E;E;E:E;§;E; gigigE;i;?;E;E;E;E;E5E;E5E;EgE;E;E;E;£:E;E:i:§:§:§;;
¤ I4 $292%;%E2E2E2525;E2?2E;§2%z€2E;é25;5;%2%z52Eääaäzäz 2E2E2$25;%;5;%252äaE252Ezääfzäzäafsäääsääääfäéääää3 gägägägégägägäzééäéäzäéééäzäéäéésééäéäéäsäéääääéé éäéäéäéäääaäéäéäéäääéäéäéäéäéäéäéééäääääaäéésiéäéäéä.125555;E;E;E;E;E;E;EgE;EgigigigE;E;i;E;E;E;§;E;E;E;i; 5E;E;E;E;E3i;E;E;E5§E;E;E;E;E;E5i;E5E;E;€;E;E;E;E¤E§2§2§;§2;s§2§z§2$$2;;;iz;s§2§;§;§a§;§;§2§z;;§;§;§§ aäa§s§2§2§2§2§a§s§s§2§2§;§s§s§;§2§z§2§s§;§;§zäsésäää¤ä
Efi2;:•·· IgZ;Z;I;Z;Z;Z;:;i;Z;2;:;:;Z::;:;:5:2:1;:;:;:;:;:;;; ,\ gi;I;2;Z;2;Z;Z;Z;2gZ;I;Z;I;I;Z;I;Z;2;Z;Z;Z;Z;2::;::1
C 1„ zE2EsE;EsEz?;¥;5;5;ä;52Eaäzäääsäsäsäzäsäääsäaäääzäsfg ;:;1 §2§2§s§2§2§s§z§;§;§s§2§s§z§;§s§2§;§2§2§;§;§2;;§;§;§; E; z§;§;§z$2i2§;§2§;§2;;$2;;;§;§2§2§a§2§;§s§s§2§;§;§;§
1 ¤ äääéäääääéäiääEEäääääääääääéäääääääääääéäéäääéäéääääK"L0"J éi, 1}:§:{:§:§:§:§:§:§:§:§:§:?:¢:Z:¢:¢:¥:¥:¢:¢Ö?Ä¢EZÄ¢ÖZVK Q:§:§:§:§:§:§:{3:}:}:§:§:?:¢:¢:¢:?:¢:Z:¥:¥:¢:¥:?:?:jf 22.3;5;;:3;;;:;;;:::;:;:;:;:5rE¤€rE:E¤€=£¤E=E:E:E=E=Er?,. ;5;55:3;;;3:;;;5;5:5;5;:5:E:E¤E:E:E¤E=i¤E¤E:E:E¢E¢
~¤ gzgsgsgs;2§2;;§2§sizisäzäsS23;%;E;E;E;E;S;é;E;¥;§;¥; o 5 zgägsgs;2;;2gsgzg2;g2;;;§;§s52§;E;E;E;€;ä2€;E2€;E3 é ägégä;2;2;2;2;&;z;2;&;2;2;zgäzaäsgsäafsösfaä;EsE2E;€•» E2. ga;2g32;;;;6gagzgs:2:äafsäsEsä2äaE;é;€;ä2%2€;f2ä2 ; 2;2;6;6;2;z;2;2;5;;:;;:;;s:2?sés:sE2EsE2E;E252325;%5; H gz;2:;:2:2:2:2:;:;:22525s%;E;E2E;EsE;E2E;E;E;S;S23; W 2:2:2:2:2:2:2=2:2:2:2:2€;=;E2E2E2E;E2E;E;E;€;€2€;E;E
E .. 4: ä 2äs§E§2§2$2;§2§2§2§2§sE25252%;Eafafääsäaäsäzäzäzfää•-« III} z i~- ·; e i zWFi
5 3 ·sure . Image Editor/Model Editor
I129
! I II
I
FV I„ZE
I" |€‘I
{_I· I
ä? IZQ
;,,~·‘ If;
m¤ID ;·.
g av5**L ·•· I',.9 .1 ?·•·•ff**6 ‘
w IE a__ ·;:£¤;A‘;„: •.¢>„:z=—<„$&:t?¤$;&a«ax€A*a.LAm12ix§s¥sJ—?•;«.x.$:2.%aä¤;«;;:;«»·.xL;. Ak:. r·:».» . „:.; .. ;=e.¤¤‘ . ;„.u„„,¢. .::.:.:u„i. ...;.52:-»sr$:¤.*?;iĀ߄a?!Ar=d•..*:Figure
5.4 Re—sized Image Editor
|
1 30
*sg iääiiE;
·— M M .1- 1- I- EV E;." U U U [UU
'; !‘¤ *‘ 21.2O U SE:=22
·.€__(‘
0 -4 «i'E2 2•—•__ ·- wm"' .‘ 2*** ’“ ”’ " ’ ‘*#«""2H _]
Flgure 5.5 Completed Background Image
1
1
131
2!_’
15 11
{Q 1
1gi!
ETEl
: 1ä {2°
Ü> 12 12U,2.
2 E 1:¤:1:E O o täg E E2 2 T5 1_62:2: 3 2 · — VL! VT}. x IU__
P_„ S 2 2 1-
2 TZ ‘° I3 EI 1] Q.1 >~ zu •-•1Z1 Ä Ü 12 ä ” E 1E S " „
0 49·¤
4-• 07 {Ä E Ä E 1 1g- •-•.¤¤.fn ä c äL E Ä 2 E 10 .1 ä •-• ,
S :1 ÄÜ EE·¤ \ m \
'·• !"“
ZFigure 5.6 Saving the Background Image
I
132
this model.
Now design the DO images. To clear the screen, selectthe "Quit" button and re—enter the image editor. Once theDO images are completed they should look like something
resembling the images in Figure 5.7. The images must nowbe saved as objects. Select the image of a DO originatingfrom Terminal 1 using procedures discussed in section
3.3.1.4 (see Figure 5.8). Select the "Save" button againand fill in the appropriate file name and object name (see
Figure 5.9). Select the "Save/Attach Object" button to
store the DO image in the specified file and to place an
entry in the database (see Table 3.1 in Section 3.3.1.5) so
that the DO image may be referenced by name. Repeat this
process for the DOs originating from Terminal 2 and Terminal
3 using "job2" and "job3" for the DO names.
5.4 Defining the Model
Once these tasks have been accomplished, resize the
window and enter the model editor. To enter the model
editor, first erase the DO images and re—load the background
image. Select "Load" button from the menu, then select the"Load Attached Background" button (see Figure 5.10). This
results in the restoration of the previously saved
background image. Note that the editor is still in select
mode, but any previously selected image has been destroyed
by the image loading process (see Figure 5.11). Now select
I
Il33¤¤3
mE·=
3 ;gägi5ägägägägägägägägägägägägägägägägégägégégägägg‘°z,,·»g,3==3"’
QEQEQEQÖQÖQE{EQZÄQÄQÄ}EQÄQEQÄQEQÄQEQEQEQEQÄQEQÄQEQE Q E3E5E;:5E5Egä3E;553gE5E;E;E5E;E;i;ä;E;E;E;&;E;£;E;§;•¤>LEB"" {F 2§2§2§2§s§2§2§2§2§2;;;zi2§2;;;;§2§2§;§2§;§;§;§;§;§;§"’* E2äzä2ääiäiää2iaizäsä2i2§2§2§;§;§;§;§;§6§;§2§;§;§;§;
" 33 éääéäéäéééäéiaéääéäéäéäéäsäéäéEeäsésäéésääésäeäzäaä : gä;ä;§;§;§;§;§;§;ä3ä;égégägägägägégég§;ä;é2é6é2és§2äE a 3
rF1Sure5.7 Dynamic Object Images
I
1 3 4_ -C :*:75:::¥:¢:*I¢I¥r:$t¥!$Z?:7$:*:75:?:?:7I*I:I:?Z:¥:I*!:¥:f:¤:¥::¤¢:¤7;Z:1:?:¥:¥:¢:k?:¥:!:¥:¢:¤:?:?:!:¥:¥:¢:¥:¤:Z:¥:¢:¥:¤:3:2:f;1:Y:I;I:¢:3:¤:¢~1·!·¤-I-I-Z~I·¥-I·:-:·¢·r-r-:-:-:-2-::·:-:·:·¤¤:-:•:·:·x~:·>:·:-:—:·:·:·:-:·:-:-:-:-:-:·:-:-:·:~:·:·:-:-:-:-:-:-:-:·:~:—:-:-·-·-·----—-·--—-·—·------·:-3----—----·-·--·---·.--·.-·.-.-.-.-.—.·.-.—.~.·.-.-.-.·.—.-.-.—.-.·.·.-.-.-.-.· — -«.~.-.·' ‘'
I = gägégägäségégégégägégägsgägägégäzäeäe;2äs2e2ääs2äséäääääEs?2äääsääéäéäääéääääséääääääsääääéäéääaääéséäéääääsäsääé;%;%;§;ä3§;%;é2§;é;é2é;ä;é;é;ä;éääséääsä;égäsäägägää22;%;é522äeäéääääääéäéäääéäéäéééääääääääé2éééäééééééäE2ääésää§&é;é;§;é;ä;ä;E;äsäää2ésääääéséäää2ä;E;ä;E2ésää;ä;é3§2ä;ääéäéäéäéäéäéäéäääéäéäéäääääéäééääéäääääéäääééäéäääéäééééäEéäséäääé3ä3%;E;ä2Eääääääéäéaésäééé2éäé2%2ä2ä;é;ä;§;ä;é;%2é2%;é;é;%3
I•EI¤.J-¤
·_a;: :Q:Z:{cf:}:§:§:§:§:§:§;§:Q:Q:Q:Q:}:Q:§;§:Q:{;Q:Q:Z;3;1;Z;Z;Z;3;I;3;1;I;Z;Z;I;E;I;C§I;:§I§:§:{:§:§:{:§:{tf:Q:§:§:§:§:§:§:§:§:§:§:§:§:§:§:§:§z}:§:§;§:€:Z;!:¥;Z:Z:Z:Z;I;'¤ }Zg: Z;:;:5;:;1;:;:;:;;;:;:;:;:;:;:;:;:6-:;:;:;:;;;:Q:j:Z;Z3!;Z;Z;I;I;};2;2;Z;I;I;Z;I;Z;i;I;Zgi;:5;:gz;:;:5;:;:5;:;:;:;:::;:5;:5;:;:;:;:;;;:;:;:;:§:Q:f;Q;Z;i:Z;Z;i;0 ‘;i·:
ä2§2§s§e§s§s§2§2§a§äaääääEaéääééäéääéäiäéääääéääéäi efzäzäaEzäéääsfääääéäééäéEéäééääéääääéäääääééäiääéé;i§E§E{E§E§E§E;E;EQEQEQEEEéigiéiäiäiäiäfäE§E§{§E§E§E 2ä2Esiaizäaiä§2§2§z§s§;§2$2;;;§a§;§a§;§;§;§;§;§;§;§I ‘:}:§.Q:§;§:§:§:§:§:§:§:§:§:§:§:§:§:§:§:{:§:§:Q:§:§:§:§:§ §:§:§:§:§:§:§:§:§:§:§:§:§:};§:{:§:§:§:§:§:§:§:§:f:§:I 36;; E;§;§ä§ä§;ä;§;§;ä;§;ä;§;§;§;§;ägägégégégégégägégégig äéäégäg§g§;§;§;§;§;§;§;§;égéäégégi;§;§;§;§;ä;§;§;ä;§
VC gé- ·6%62;%ä%§Sé&§2äéä%§2é%§%§2äéäéäsééäeäsäääéäéäzäaééä2 35Säéäääääéäéäéääééäéiéäéä2äéésézäééäééäéäeésäaäsäsäI1!9;I-:·Z·;-Z-Z-Z~Z-Z-Z·Z-I-Z-l·Z·Z-Z-Z»Z·2~Z-Z·1·I-li ~Z-Z·Z-Z-Z-Z«1-Z-Z·Z·I—Z·Z—Z·Z·Z-I·$·I·Z·Z·Z·:·Z—Z«Z
-· 3*IIIE;§;ä;§;§;䧧é§Eäsiääéäéäääéäéäéäéäääéäéäéäééééäääéé ééääéäESSéäEéäSäééséääsäsis?äééäééääéäéäääéäääéésäag
¢~2gsgzgsgagzgsiääsäaäsääiai2§2§a§s§s§s§2§s§2§s§;§;§;§ -•= §2§2§2§2äsäsizi;§2§;§a§s§2§;§;§;§;§;§;§s§;§;§;§;;;§;
ä'(ä
EI•-'6ä Ex; 2äeääää;ääéäääääääéäääääääésäääsé;§;é;ä;ä;ä;é;é;é;ä; ' äääiääéäääiäääääiiääéäiäiiiääääääääiäiääiiäiääägäiE
°* ‘CEQEQE;E;E3E;Egi5igfgE;S33;255gägigigigigigigägigégig^ ;E5i;i;E;E;E;E;E;E;E;E;E5£gigégägigägigigägägigigigiE hä Ezé2ä2%2ä2?2ä;52%sE;5s€sEséeäeisäaä2Es€2Es52E;%;€;%2 E 2§2E;E;Es5;é;5252SsE2%s?;ä;5;E;EaE;EeäzäésäséeäaésaWWIC
'6 3 Sg ;2;;;2;2;;ge;g3;;s§s§a§z§;§;§2§;§;§;§2§2§s§s§2§;§;·* éß2ésäsäää§%§2§2§s§%§2§2§säsé6§2§6é2§2ä2ä6äsizäsäsäz FEE?€EÄ?Ä?€?€?€?€€€?€EE?IEEE?€$€€E€€€?E¥€?€?€?E?E**7II,:3;*. L" C %;ä2E2%zEzäsäsäé25;E;%éaäsä;€2ä;i;E;&;2;&52;£;2;22[3)g H2;2;2e2;2;seééze;äeéäzäéäaäzäéééäzäaäziéééäééääsäéé ¤· ¤> ;2;é;2;2;2géäéäééséiäéäéäéäéäéééää§2;s;;;;;;;g;;e;z3’ 3 3·¢ 3··_
Figure 5.8 Selecting the DO Image
I
_51I
1Y.
E3
L Y:Y2Z:Z:=:¤:¢:¤:¤:Z;=:2=:=;=:¤E¤i=E¤E¤E¤E¤E:§=¢¤E:Z ;S:P;2;=;SEE:Eii:irESEE:¢:¥r*2*:Y:*:*:¢:Y:¢:¤:¢:- U 1 é;2;s:2=s:2:;=2:;:;:s=s¤s=z:6:2:;:;:2:2:2:;:;::32:;: =2:2:2:2:2:2:22:;za:2:s¤2:;%;€;5;E;?sE;€2E2€sE2E;5se 1U
ä I E2€;E2§;E;ésE;Eäésésä2EaFsfésE;E;€s%25säsE2%sE2¥2%s 236522522525;S2ééaäzéaä;EsS2ä;ä2%2SséeäsäsäsäaäéEgg:ä E I
1: ’VNxÄ ;§:{:§:§:§:§:§;§:§:§:§:§:§:§:§:§:§:§:§:§:§:§:§:§:§:¥ {:Q:Q:§:§:§;§:§:§:{:§:§:§:§:§:¢:?:T:¢:¢:¢:€:¥:¢:!:?:U .c :;:5;:;:-:-:—:·:—:-:·:·:·:—:-;·:~:-:-:~:—:—:-:-:-:¤ -:«:-:—:-:-:-:-:—:·:-:—:—:-:-:¥:¢:¥:¥:¢:?:¢:¢:¥:¢:¥:U tuUg„, •=
ff ? S5;:2:2:2:;;:;:2:;:;=2:2:;:z:s¤;:;5;E;S;E;E;E;E;E 22=222=2:2:;:s¤2:2:225252E;5s?;E2E;Eeiaäséaäsäsäzä;U E 2 2 I $22é2%sésésä2äééäéäééeääéäéäääéääéäiääääääéääääää sé2ä2ä6äé€äääsääiäääääääääääääéäiäääéäääääéäéäééaäs_„ g 3 5 I VUo „ § ;§;i;E;E5E;S55;EQ3;Egi;Egigi3E;i;E;E;E;i;i;E;§;E;£;§ _c E;S;E5EgigigE5E5EgigigEgigigigägigigägigigägigigigig
EQggg ä
gg I E §2?2EsE;PsE;€2%s5zE;€säsääääzäz%s52€2äsEzé;€;52€s520 I 1;1;:;:;:;:;:;:5;:;:;:;:{:§:§:§;§:Q:§:§:§:Q:Q:§;}:} _¤ ;:§:{:{:{:§2}:{:fz}:Q:fz{:§:§:§:§:§:§:}:§;j:};§:Q:Q:E „.•7333 23mrz \ 6: g iirE=E2E¢i2E2i2E=E¤E¤E2?riri=i=E2E2E2E2E¢E¤E=E=€¤Er ¤E=E=3=E=€¢E¤§=E¢E2E2E:E2ErE=i=€¤E=E=E2E¢E=E=E?i=E€E•- Ü- 5 2{:§:§:§:§:§:§:§:§:§:§:¥:¥:¥:¥:¥:Z:¢:¢;¤;1;Z;¢:Z:Z:Z gg ft§:§:?:§:¢:¥:¢:?:?:¢:¢:¢:¢:¥:¥:¥:?:¤:¥:$:¢:?:f;Z:¤;w E
•·-¤V70U„_Ü g ‘ 5;:;:;:;:;:5;:;:5;:;:}:§:§:{:f:§;§:§:Q:§:j:!:Z:Z: VJ :;:§:;:;1;:§:§:;:§:§:§:§:§:§:§:¥:§:Z:?:Z:?:Z:f:!:1;Z| Ü Q Ü ; ;1;:;2;2;:5;:;:;:;:;:;:;:;:;1;:-:-:·:—;~:-:-;¥:€:!: Z Z;:;1;:;:;:;:;:;:;:-:-:~:·:-:-:¥:-:Z:l:?;?:¢:€:Z:Z;ZÜ Ü U
..6 ° jf I €;E5i5E;€5E;E;E;Eg55555;E=55£=3¤E¢E:E¢E:E2E=E=E:i:§1 gE5E¤E5€;E;E¤E=E=E=E=§2£=i2E2E¤E=E¤E¤E:E:E:E:E:E:i:E..» g g ¤•1•E\ —— 3 $ ä S éäääééäéäéääéääääéäéääézäääéäéäéäsäéééézééäéäeäsäsNJ W Ü Ä -:-:—:-:-:·:-:·:·:-:Z:27:?;!:T;¢;!:1:1:Z:Z;?;Z:Z;f; O · :-:?:¥:?:¥:?:?:¢:¥:?:?:¢:?;€:¥:!:!:!:!:7:€:?:¢:!:Z:Z
0 .. .. Z I Y;EgigigigägigigEgigägigigigigEgägigägägigigigägigig : 53555555;555Egigigägägigi;E;E;E5§5£;E5€;€5E=E;E¤E=E¤¤ 2 g-
’Eiääéäééääääéäéäéäéäääaäéééäééäéäsäzäaisäsäsäaésäs 3 éäéäääéäéäSäsäéäéäääéäzäääéä&ä2ä2é2ä2é2äe§6éää2ä2§s§
E I —- <¤Q U Z 2-1 1 1··32i 3 z 3 31-; 1~3·.~·.-3
wF1gure5.9 Sav1mg a DO Image
I
I
1 36
E II2
E;I; Iät2;
IL I
ä ä32ä
%¤— 2E 2ä S IZ I m.2+ ¤ ¤= I2 E %. 9 N 5E Z I .3:;:;: 3 :
I-UI0-* N ’3 3 2 jE §
Q W» 2 EI§ •· IGU
ID Uv) cu ·¤ INL E < gä3—· .. fg 3 I*6 g 2 < I0 G 93° : " . I
!
"Figure 5.10 Loading the Background Image
1 371 lg 1 11 1 11 1 1122
121
‘
2 U U U
'
"lS 12 Q; 1lÖ2 *2 - l0[Z 12 l2 FE !
Ig2:.9MG
B Q}2 22 H 1 1 1 1 1
Figure 5.11 Image Editor After Background Load
|
138
the "Model“ button to enter the model editor (see figure
5.12).
5.4.1 Defining Submodel;
It is now time to define all submodels in the model.
To define the "Terminal1" submodel select the "SubMod"
button on the model editor panel. This brings up a blocking
requester for the input of the submodel name (see Figure
5.13). Enter "Terminal1“ at the prompt and select "Define
Sub—Model“. The editor is now ready to draw a rectangle
that describes the boundaries of the "Terminal1" submodel
for logic specification and path definition purposes. This
process is identical to drawing a rectangle (see Section
3.3.1.3).
lt should also be noted that if the results of the lastlsubmodel definition were not as desired, it is possible to
delete the last submodel defined by depressing the middle
mouse button. This feature becomes inactive if another „
editor mode is entered.
Repeat the above process for the "Terminal2",
"Terminal3", "CPU_QUEUE“, and "CPU" submodels. The model
should then look like Figure 5.14.
5,4.2 Defining Path;
The paths connecting the submodels should now be
defined. Paths are uni—directional. If a DO moves both
I I
1 3 9
\_,
S; IIIIII III
gplk.
Ü-
IS;
‘ IÜ VI-I III1: {Q I- }_-5 U 0 0
n:=·;IIS
.: I.:•• I;'6 Sl ·** S}? ‘E I?
ä ää2
ll}Figure 5.12 The Model Editor
1 1I
140ÜFFiä
Ir [
F;S;E
F
if}
1ä
za[
[Q II— III VNIU III Ej I- }— [.
N a U U Uz 1
ID · ¤ xB 2§E
é [§ —«· Ü I ‘2 E 2 Iä — *6 =tn E c F
· 2 „L' Iä 2 __ ääEE¥135:;
'
D 2
EFigure 5.13 Submodel Definition Name Requester
1I
1 4 1
€?· 1I
1
Ä?1*%
@ 1.„ IE gv-
- 1}I:
2 Ü 0 0
äf
kiL mc?3 ä I3 B
EFigure 5.14 Completed Submodel Definition
n142
ways between two submodels, two paths must be specified.Not all submodels must be interconnected, but there must bea path between any two submodels in the same direction a DOcould possibly travel. If a DO tries to move to and from
submodels that are not connected by a path, an error occurs.
To define a path, first select the "Path" button on the
model editor panel. This brings up a blocking requester for
the path name (see Figure 5.15). Currently this information
is not used. Therefore anything maybe entered here. Select
the "Define Path" button to start the path definition.
Locate the mouse cursor at that point the path is to
begin. This point must begin within a submodel boundary
(see Figure 5.16). Press the left mouse button to select
the first point on the path. If the mouse cursor is outside
a submodel, this has no effect. Subsequent intermediate
points may be specified irregardless of submodel boundaries
by depressing the left mouse button (see Section 3.3.2.2).
The path termination point must be in a submodel and is
selected with the middle mouse button (see Figure 5.17).
Repeat the above process until all paths are defined. The
model should then resemble Figure 5.16.
5.4.3 Saving a Model
Since the model is now completely defined, it is a good
idea to save it. Select the "Save M" button on the model
editor panel. Enter the desired file name and Select
I
II I143
IIIII?
am “II-I
II,.I_ I I III IT I
Ig I IIII I —m Im ImI- I- I-2 I Ü Ü Ü |·‘
II IQ I5 Iä I I·¤ S
E ä Z I I6 B ä Ig ·:¢:¥: gg•W6
3 I_: 4:;:;: R {‘¤ Q {‘“ Iä |
Q cf*· E ·i <•
F1gure 5.15 Path Name Requegtey
1 4 4IE I
I;I; . I@1* I
III'; IQ IPII
suI2 II giII: I
II; i—@ ME mEE I- I- I-2 2 0 0 0 I•J gz, _ I1 IIIaa IVE I? I6 ISIIns If¤L'IL · I3 Q2·¤z
1* ·~ 1 1* 1 1% 1····1r 1*-»§ä ä
Figure 5.16 Path Starting Point
I
II146 I
IIÄ =‘—I II II
IIIfi; I:=’
II
Q I2 Ü U U I-I
IIIIua I.?U xjO
I51*6”¤
H I2 ’I *"
"‘Figure5.17 Path Termihatioh
1 4 6‘ Y " ’ ’ " · —· —·-— —— - — — V -- «zu 1 1
11
ulE ml
E 1- 1- 1-§ 13 0 0
11
J
_Figure 5.18 Completed Path Definitions
I147
"Save/Attach Model" (see Figure 5.19). This stores
the model and make an appropriate entry in the "model_dat"table of the database (see Table 3.1 in Section 3.3.1.5).When future model saves are desired, the file name defaults
to this value if nothing is typed at the prompt, includingblanks. Saved models may be loaded by selecting the "Load"
button (see Section 3.3.1.5).
5.5 Submodel Specification
The next step is submodel specification. Select the
"Spec" button on the model editor panel to enter
specification mode. A pop—up menu is activated by
depressing the right mouse button while within a submodel
boundary (see Figure 5.20). Depressing the right mouse
button outside of a submodel boundary has no effect.
5.5.1 Submodel Logic
Select the "Sub—Model Logic" menu item while within
"Terminal1" to specify the internal logic of this submodel.
This brings up a blocking requester for the path name of the
directory all created files are stored in (see Figure 5.21).This path should only be entered once for all submodels.
Subsequent specifications should merely select the
"Specification Path" button without typing anything at the
prompt, including blanks. This is similar to the process
described previously for saving a model definition. In any
I
I
I
148 1
Q MI11
Ä
“"ii
SP ILu Il 1 I
11@7IE äi
EI 4:>I 1 Ü III [Ü 1' I , 1E 1- 1- 1— 1N •-• 13 12* 5 I U U U 1MI §’
S 11'D 11 1Q E 1
·•-*S 1zu
S " 5 1'O¤¤ ..Figure
5.19 Save Model Requester
II1 4 9
Ig IIIII
IlHP II
ii? IIIIi H E IZ 3 Iä Z E .*5 '¤ ·.L', G G { E E IE 2 .2 I- I-E · 0 0 0
0 „
§ I·· . I
3¤-l.„
‘6äE.-
ii?fä' ä H>: · ·‘ ·~•-M — · ·· I :¤l¤
Figure 5.20 Specification Menu
N
N1 so
IH; P ‘i‘i ' " ' " ‘iii 222‘ N
N5 2¤¤2;;
IN2g NI Nä 2
2Q 2Z ä I t- N- I »—E § § U 0 212; E 5 i I0 ·C ru :Z in m 2 ,éä ä E i ’
rn E va Ä
g äIEI V} ·' ;i:1;:>.é:;:·.,;::.- .;£. ‘ ? ·
Figure 5.21 Specification Path Requester
151 A
event, selection of the "Specification Path" brings up the
Submodel Specification tool.
The Specification of the "Terminall" Submodel is shownin Figure 5.22. The Entrance Condition (EC) for "Terminal1"
is true. This means DOS can always get into this Submodel._ Once the DO has entered the Submodel, its origin is Set to
1, and rservice_time (remaining service time) is sampled
from an exponential distribution with mean 500.00. "Origin"
and "rservice_time" DO attributes are not pre—defined and
must be defined and specified along with the DOS. For now
it is best to keep a list of attributes used and define them
all at once later. "Seed" is a pre—defined integer Seed
for a random number generator. The two SET_DO statements
constitute the Logical Operations (LO) if the EC holds true.
Since the Activity Start Condition (ASC) is true, the
DO may engage in the activity right away. The activity
duration is sampled from an exponential distribution with
mean 250.00. ·This is the user "think" time. The DO remains
engaged in the Activity until this time has passed.
After the activity is completed, the "SYS_ENTRY" macro
records the DO entering the model.
Since the eXit Condition (XC) is true, the DO leaves
the Submodel and moves to the CPU_QUEUE Submodel. Note the
"_MODEL" extension to the CPU_QUEUE Submodel name.
Finally, when the Specification is complete, Select the
"Save" button located at the bottom left hand side of the
N
l 5 2! NH ! _ ”—*!”! ! 2 ! ' ———”———_—’°—— NNä
f{-F 1éja ‘
E?.Q2.1=is— 4r
?2
X; Ä
:2 g N1 w 1 _ A _AAA A A _ A AA A i
L‘DQ·•»In0•¢
D.C
Q\LIn3\ rxxx„ 1:.C ID4-» 0ev InQ. •5
I5vl Q; QC Q"‘ ÜE Q2 UID X 0I- ¤> 0
2 10„ Q Ä _J«- E —
Luua ··· Q Q'G 4-* Q QO •'* I • ZZ 0 Q [I ~ U In QQ C ·•· N Q3 ·•' > xx [UV) U! L ¤ Q—•· 0 X CYL UI 0 >- [O L xx 3E EIS 5 E EE 2 Ö Ü 2 ä “* 2 ¤VJ! Z Lu u.: Z ä ä(J I- K/J •—-
< VJ L- IE ID E. III ID :-2.IIlI'.)
I4 W,2 :2 g I-S, °.Z·-g I « S¤· 2 „ ·- „=>T•' „<-· ·-
A 1
Figure 5.22 Terminall Internal Logic Specification
1
153
Specification tool to exit the tool and save the
Specification.
Figures 5.23 and 5.24 Show Similar specifications for
the "Terminal2" and “Terminal3" submodels respectively.
The Specification of the "CPU_QUEUE" Submodel is shown
in Figure 5.25. Since the Entrance Condition is TRUE, a DO
can always enter the "CPU_QUEUE" Submodel. When it does,
the q_sm_et (queue Submodel entry time) is set to the ·
simulation clock. This attribute is a standard DO attribute
(See Table 3.2 in Section 3.3.2.3).
The activity (waiting for the CPU) is started if there
is a DO in the CPU, or if there are DOS already waiting in
the queue. The "nicpu_Sm" and "nicpu_queue_sm“ attributes
must be defined using the Submodel attribute definition
tool. AS before, make a list of attributes to be specified
so that they may be done all at once later.
If there is no need to wait (LO if ASC is FALSE), the
EXIT_SUBMODEL macro takes the DO to the CPU_QUEUE XC.
Otherwise, the number of DOS waiting in the CPU_QUEUE is
incremented by one using the INCREMENT macro.
Activity duration for a DO in the CPU_QUEUE is until
the CPU is free and the DO has the earliest q_Sm_et for this
Submodel. The least() function is provided for the
evaluation of the q_sm_et. Again, notice the "_MODEL"
extension to the Submodel name to be checked.
On completion of the activity, the number in the queue
I
I
- IH I I TI I —* ——”—“""'——"‘ III‘"'—~—Z”“—"—"“_‘°““°’Z°—“‘EIinI
t.‘21V,*
Ii?r.-
$.7·!'Q1FiE·'1ä? I_.§:
if;I$2.1IÜ iI';.T1,{..·I5II57I
,.ffEQI
A AA A“' ___ A ä
L'B(V)·•>I,0Ill+9\Q.OLUIQ\LIII3\ rs
rx•• '¤L (D+9 G)III U)
CL •5
(\I SIII SC S-•- IBE Ti GG! X GJ•- 0 0
‘ g•• Q —J•- E „ LUGJ ·•G Q'G +9 ® 3O Ol I •
ZZ W G II •~ U LD InD E *· CN 33 '•‘ > V LuVJ C7 L ¤_3«- QXLID m >. IO L V gg 3E "‘-’
LIJ I- Q_ID CJ O LJ Z Q+9 C) Q Z uJ VUI UJ I | IJJ €
I LIJ Lu>~. D I- I- D > co D >(/J CZ UJ LU Z D )· I C3(J I- t/7 I- < co I- ZIl Ill III ;-14 EL)
N N.. Z.! g I'.- 2 Z-gä uv: ¤° "Jil}-zg _, V
•-Aid •-A<l-•« —<
Figure 5.23 Term1nal2 Internal LOglC Spec1f1cat1on
I
I
i II1
f'1
?ra.7E5$221II?I1
E?—
222 22 -22 “· 22 2 2 22 22 2 2222 22 2_22 2___ Ä
L'GI")•#UIID-•-•\D.OLU)
\LU)3\ rs•• ‘¤L G+* IDeu U:
CL •U
(0 ®Q ®E äxx rx§ % 2I- G G
* 3„ 0 __;
T2 r'? ä äD ('7 I • IZ W G II ·~ U LD ug.¤ C ·•·N D3 ·*· > ~/ LUW U) L Q 3·•·· LD X D'L U'!
O3:KI I- EEI G Q C.) Z (.74-* Q Q Z LU xxUI I-IJ I I LU < I Lu Lu>„ 2 I- I- 2 > m 2 >fl) Z Lu LL.) IZ Q Z; IZ GG; I- W I- < I-IIIEtamzsswß(J
•- an U •-E 0 •-_fU o•• an-•¤ uu (Q uu | < pgE au3„as•z"‘ -12:- •-If" aw .a
F1gure 5.24 Term1nal3 Internal Log1c Spec1ficat1on
II
” ' ' C " -——-— 7* .-.7.77 ,. 7._,.._., _,____3_____Y „____ ______*_A _ _____ ______1
.
I,lgIII
.‘~I
i2I1=-'„I
iéé3$7*1I
; Ig
Iäé:
Eät*iI7 77 _“’ _ _ _ _ V__ __ _' __ I
IL‘¤(V)·•->Ih0(¤7 Ü0 QL QW I" I-¤ u.I\ DL LUI-0 :13 C7\ IZi"‘
50- Q4-»
LuI3S 22 0 rxä_ A •a A2 | — .5 •,& ä 5 5
X 2 ml Q wi•• U C 3 II DE B S " SE ° °{ 5 C'S ,: ·* a „· ä.¤ ID ll .1 U Q. U Ö3, ' " S E E 2 Qg D CxxC1ä *· ·—
·I Z z 3E, E ä 3 **1 ~ 5+> . Q U 1..1IhI-IJ I ·· I- Z •·-• Z u.1 I1;5* ää ti C 2 2 E 3 E >(T; 1- t/J V 1.1..1 •—• 3 Q 1- g
=¤ 1:.*~·Q•- ¤¤ •-
'·° 0 s- °°unung un- Q nn-= I 4 :m .0 •« .o: .0 •« °= ‘•-41-¤°" -IQ:-•„ ,-1_„“”" _;
F1gure 5 25 - .- CPU_QUEUE Internal LOglC Speglficatiou
157
is decremented by one using the DECREMENT macro.
Once jobs get to the XC submodel section, they are imoved to the "CPU" using the MOVE macro. Figures 5.26 and5.27 show the CPU submodel specification. The EntranceConditions enforce the fact that a DO may only enter thissubmodel if the CPU is empty. Upon entrance, the number ofDOs in the CPU is incremented by 1 using the INCREMENT
macro.
If there is one DO in the CPU, the activity may start.The “LO
if ASC is TRUE" section introduoes the "QUANTUM“,
"execution_time“, and "OVERHEAD" attributes. Make a note of
these submodel attributes so that they are specified later.
These attributes are used to determine how much processing
time a CPU spends on a given DO. If the remaining service
time is greater than the maximum quantum size, the CPU
processes the DO for the execution time equal to the quantum
plus scheduling overhead time. Otherwise, the execution
time is set to the remaining service time plus scheduling
overhead time. The DO then remains in the Activity until
the execution time has elapsed.
Upon completion of the Activity, the remaining servicetime of the DO is decremented as much as the execution time
excluding the overhead time.
Since the eXit Condition is true, all DOs may always
exit the CPU submodel.
When leaving, the number of DOs in the CPU is
I
I
I
gfI
Sil1I?Y“ÄI
.XIÄäII¢;‘.
Ii·.
Ei2§'··’I*~6;;_;
I1I?r· rÄIf?Ä
Ä?I
Ä I
L'DC')49U)3 2UJ0 I·° EEI
>Q QE I; +3 < U‘ S E 5•J
~· El I IZQ > ID <
+ > *-•-*I- L ·~Z E Q Q 1x¢ V7 E QQ D E L ·•· •Q_ Q' A 0 Q 1xLJ € | I .JD G Q Q A Lu-I 0* Q E u -I QW. Q -«- «- Q QW- •~E II II •J
> «ES5 U W III cI S E I3 IJ0 I | E E O U) I I Dz S Q 3- \ ~·· ·•· L. S ID uJ \| Q U ·•-*• 43 •-•
Q. U 3 •Q Q U •·* ‘•' I I D | U ·•· Q'3 ••—
> C ‘•- C U G —· > I *0-:/) II C II L O-
O Q Q C L D —·II L1 II Q •·~·· X xr Q Q.I- In ·•-> 1: •» an •——
I-- ux L1 13Z L S C S Z Z L ~/ CE ““I S ° U 3 5 ä *23 ’?
S°’
USI SIQ X • X Z Lu Lu G D •
m Q. IZ Q Q Q \ Q Q < Z UJ Z Q I \ Q>„ U Q U VI > Q II (.3 L1 UIm ·•- Z ·-— ••- «— Q nu 0: 1.;.: ·~•- I-| C I-•C ~•· I-*-I ID < Q I- Q — 1-M Q
E. Izbatääi-uzm m xa}; ‘*m"Q
•-I°°
•-I “°o.. :2 0 II-I"" -I-"" 3 I 4 pq zuE E o" o In °= ' Ääh) E R E -4},.] BE ¤lI•·I•- W-zfn .4:** I.: "Z _Q_______Q___Q_____*_________ Q__________Q____Ql_
• • • IFigure 5.26 CPU Internal LOglC Spec1f1cat1on
I
I
I
2.II
gg;.I5
s„‘
IÜ.‘äf.I II I? II..
2 II?I{I?2
2II? I sfwL
I2;II
L'U:0-•·01
4-* Q
E E-.'i’ ‘$‘.¤ Q
g E 2„ E *1 E ä ä5 ä 8 E E Eä E 2 : ¤ .2 .22p• g__ L I- I-Z us 0 au nu. < W E c c3 2 E L -•— «- ~•-Q CY A •-I E E(,1 < I I sx L/\ D D 0 0 ID O"‘I, ° ° E 2 ’E5
.225•— ~ E II II 4*l E *57uJ td LL.!g ä 4-* U GJ C (D *' g g0 I I E E 0 ua L 1 .¤ 1Z 3 0 ·•· \ ·•··•• L O| Q. U 4- •
·•-> v A.¤ Q U •-•··- I I 3 I cn I ··
•-3 -•-
> C ‘•- C U Q L1 Q •-1 N(/) II C II L O ·•· O GI Q >-1 QII xr II GJ-
·~— X x/ y- xx m 0E E *5 E *5 ‘° E 2 *5 2 2E 3 LLJ ä U ID U LJJ LU I- 4-* U UID I Z I I G} *--* GI LI Z < ·•'+» 3 Lu 3 O X • X Z I.LI I- äm Q Z Q Q m \ 0 m <;! Z Lu c/JU L1 U xx w > L1 DU) ·•· Z -•~ ¤•- ·— Q LLJ ZF} C »—-« I: -•- rä az < Q I-ll} ll III III! III! · EEL'! •-• w •-I
°° 0 •- ‘°0•- an-- Q
:0 "" =°-I: ¤° " EI: 0E ¤-Ihi,-I Ufa- I-I‘_Q"' -1
• •Figure 5.27 CPU Internal Log1c Spec1fication
A____
160
decremented by one using the DECREMENT macro. If the
remaining service time is greater than zero, the DO is moved
back to the CPU_QUEUE. Otherwise, the "STATISTlCS" macro is
called to record a system departure and the D0 is moved to
its terminal of origin. This information is stored in the D0
"origin" attribute (see Figure 5.27).
When finished, select the "Save" button on the lower
left panel to exit the program and save the specification.
5.5.2 Submodel Attribute;
Now that the submodel specifications are complete, it
is necessary to define and specify the submodel attributes
that are used in those specifications. To accomplish this,
select the "Sub—Model Attribute" item from the pop—up
menu in the specification mode shown previously in Figure
5.20. The submodel in which this is done in unimportant
since all submodel attributes are global and are therefore
accessible by all. This brings up a blocking requester for
the input of the attribute name (see Figure 5.28). Select
the "Name Attribute" button to enter the attribute
specification tool.
As can be seen in Figure 5.29, "nicpu_sm" is an integer
constant initialized to zero that describes the number of
jobs in the CPU. Select the "Save" button to save the
attribute information in the "attr_dat" table of the
database (see Table 3.1 in Section 3.3.1.5).
I
1 6 1
IEII
IL III I
IIIE 0 0 0I P I- I- Ig I I 0 0 0 Is· E I I IE
IFigure 5.28 Attribute Name Requester
162
1g
Y!1 I 1H1! 1" °“" " Ü' " ' Ü' ’ ”—— ' 1 1
11 111
ä 1. 1 11 12 I 1E Ü 1“ fä 1 1Ä 2 2 1E E 2 „ ¤ 12 ä 2 2 1 12 E E E 1*: $2 $7 Q1 'g E B 3y, Z E E·¤ E Z Z2 2 :: 2‘; uu < <ä 8 2 : 1 1‘§ E S. E 1 1g é 1Z‘ 15 1 1fg 1 1L')
WWW W __ W W W W W W W
WFigure5.29 Nicpu_sm Attribute Specification
ÄÄ
163
A similar process is performed for the “nicpu_queue_sm"
(see Figure 5.30), "QUANTUM" (see Figure 5.31), "OVERHEAD“
(see Figure 5.32), and "execution_time" (see Figure 5.33)
attributes.
5.6 Dynamic Object Definition and Specification
Once this has been accomplished, we define the DOs.
Select the "Dynamic" button on the model editor panel. This
brings up a requester for the Dynamic Object name (see
Figure 5.34). To enter the DO specification tool, select
the "Name Dynamic Object" button.
The DO specification tool for jobl then appears on the
screen (see Figure 5.35). Jobl is described as a job
originating from Terminal 1. The name of the first submodel
the DO tries to enter is "Terminall". The DO image created
earlier for a job originating from Terminal 1 is listed as
the Object Image file. The interarrival time is constant
and equal to zero. Lastly, the maximum number of generated
DOs of this type is one.
The DO attributes "origin" and "rservice_time" used
previously in the submodel specification should now be
defined and specified. DO attributes are global to all DOs.
Thus a given attribute need only be defined once. Select
the "Specify DO Attribute" button to bring up a blocking
requester for the DO attribute name (see Figure 5.36).
Select the "Name Attribute" button to enter
I1 6 4
IEI
FQIaiI
I¥I
_ _ _______Y _,_ _ if, i I
I IIä I II I. I I ZI I Iä I II I III I II Z II,.¤Eä ävr I.-I é äz; I I.. ’ ’I I2 2 I I3 ·· .2 .2 I I§ E : : I§ . Z E I IZ; E ä E I
gv-Mf V Y UW V 7* vv. UA A faw -7 i A Ü Y V V > ·M— _. 4%;:;,;
,Figure5.30 Nicpu_queue_sm Attribute Specification
I
~‘“—11
-—2---_Il
1
2
·——-I
ä
55‘5 *-6. M
J
2
16
1
2
ä1
¢*31
E1
';!
E-,s1
ä E
1
I . 2
3
S S 2 2*
1
41-*
'_
1
1
6
~|
1
vl
I
2., v. g zs
·
1
6 : $*1;;
|
‘
Ö"°
°‘ o
E··E' Ä §
1
1
2s -
1
TZä = 6
1= 11
1
S
••.••- <
‘
2.6 ¤ -
1
1
E·‘¤ ä E
‘
1
2·-
—·
1
3
-_ 1
.6
1
11
.
1
1
V V.Li“£;·&¤A•z§e¢a¤«x
F'lg-ur65 NTUM
,
1··lbut
-
6 S €C •P
_
lf ·
_
atiOn
N
166QB " *’ 6666666666666r-66 6. .6
N
l 6 66 N6 N N°·’ N=< ä N NN6 g N NEÜ. N N6 N| N
6 N Nu NW EE m +é•Nä E 6 ä 2* N, N1 NE E N NQ Q
NN
g E 2 2 N N6 6 6 6 N ,S E E E N NE § f I N N
Q E N N*3 E : E N NE N·— 6 6 66 66 6 66
6Figure5.32 OVERHEAD Attribute Specification
I
I
167
IBüI
. I
I2
Il Igg. I I
I77 U iv") zimi I W I I
IIä I II3 IZ; 3 I·¤ ' I2 I-«- I I2 Ä I2 I= IE 2 l IQ.. Iä 2* E I I° 2. 1; 1; - Ü ·o c cf I— I2 : 2 2; IU .. .. .. I I§ S S52E E 3 I
g ä 2 2 5 IZ E Ä Ä I I2 zi 2 I II 1: < I3 ä *2 *; I3 1; : I I2 E ä 2 I IE I I
Figure 5.33 Execution_time Attribute Specification
1 68Ä 111 I1I1Ü1 Ä I1:
I—¤1 1E 1I;Ill II 1III 1
1; 1
2 1ä 1 11
1 111 1 1 1 1: 1 1— 1-1-g1 11 1111ä
,1 128 Q i 1F E13 „ § IÄ § g I1; 16 ä 11 . 1:: S 1 1
E 3 j IZ ä ä I3 I 5 1Z
ÄFigure5,34 DO Name Requester for Jobl
Tg,Ä" I
I|
Ü
I
I
2
I
g
__-_Q_
E
J:
B
I
Ä I?I2
22
22
QI
g EJ;
2?
I
„ 2 2
I
I
I?ä, Z ;· Ü
I2
=· 52 2
_„
I
Eä
Eé„2
I
‘
I
,_
I
·· =· E § °‘Ä“I
0
"'
,_ ¤ nä
=
I
·L";» E E 2* §°§,g|
I
ca
g.2
EI- E
I
I
“_V}
”-r-•
2 2 2 *2} E ÄI
E,ä
38
I
_Ö E é
“‘
I!1 "' ‘ I1
“ 2 E
I
'——2
I
I
Y1
I
__—~Ü
I
—_I
·—_I
-2*I
—-_
'35—
Job
:¤
-5
1 DO Sp1fi0
ät.lo Tool
170
IQ? I1
IIlfl 1I2, I1i ä 17 U,
— „1 3 1ä ä 1ä
r i $2 Iä I: I1 E2 2(. 1 § =° 1 Ä-” IfI 3 L2 |Q i O 1 I' I 2 *2 I3 ’ I1. 2 .2 =· E ~ 12 ,, I 2 :.1; *2 2 1g ' *; 1 "' 8 Z " TZ 1
T: - E · äQ § Q 1¤< : „ 12 QS 2 2 2 1an O E _§ g gQ N _YZ BS I fc +I I 13 E Ä I _ 2 2”°‘ Z - m E -·- Iw r- •e xL, E E §
E E 1
Fi 1* ·gu e 5.36 DO Attribute Name Requester for Origin
w
171
the attribute Specification tool (see Figure 5.37). DO
attribute Specification is identical to Submodel attribute
Specification from this point forward.
A similar process is used to define the DO attribute
rservice_time (see Figure 5.38).
When all DO attributes have been defined, exit the DO
Specification ”tool by Selecting the "Save“ button. This
exits the program and put appropriate entries in the
“dynamic_dat" table of the database (see Table 3.1 in
Section 3.3.1.5).
A similar process is used to define the DOS job2 (see
Figure 5.39) and job3 (see Figure 5.40).
The image editing/model editing process is now
complete. Quit the Image Editor/Model Editor by Selecting
the "Quit" button on the main panel.
5.7 The Model Generator
The model generator is used to convert the model
definition and Specification into an executable simulation.
Select the "Model Generator" icon on the top level menu (see
Figure 5.1) to bring up a blocking requester that should
already have the system model name entered (see Figure
5.41). Select the "Generate Code" button to create an
executable visual simulation model (see Figure 5.42). The
blocking requester clears after the completion of the
generation process.
172"OIH O O O OO OO OO IIE
I
IS6 IIIi
II
I IIY YAY Y——Y —— Y ~—· ·— 1 I· II IIIS IS IS ä IE I I«¤I IIS: I IE | I]2 Sua C •-‘E E I= Ü
6:*SS SS I Ij 2 2 SI
I IS S S Ig -5* OK TI I I___ g +-• •·•
I „
ä. ,, I6
If/J *4 Iig E 2
Ié
*Figure 5.37 Origin DO Attribute Specification Tool
I
1 7 3IQ
II
IIILL II? II2 Ig I
g _ v_______„,__ __g_ __>_______,_,_,_„__, MI: 1 . IIäI I5 ä IE I
2 ;_j 22 II I2 2E °° 2 IE I=IIgZ 8¤•22 2 2 I
j S S ° I I2 E ·‘-I ·2 I IQ Z .5 .5 I·¤ 2- 'Z 'C I_:-_’g •-• -•-•
I: 8 2 2 Iä 2 :.-2 IV) O Qig 2 é22I
ä V W H VA YW A U W i N — H Ü W _V__II;‘;2.;¢,·..1¤;L;iäz=¤I:-¤22k2$;;é§;„;„‘::,-.i.¢»2«.·£;¢«£a»Figure
5.38 Rservice_time DO Attr. Spec. Tool
I
174
I
I III I
,2 iI22g2 2 I- IC L
—II I' I2 I3 2 Iä § 3 I Ü I2 .. 2 2 2 __ I= Ig Ig § E E TE ..IEÄ Ä E E ääéä I ILI E : 8 E E I I
E Ta ‘§ E IZ 'Ä I I2 1: =r g 2 Ä I Iw 8 -•-· Z I
ITé E IE ä Ä g I§ E E 2 E 2 I IE 2 2 z 2 2 I I5 IS" I I‘ ·· I — I2 II I III-'IIFigure
5.39 Job2 DO Specification Tool
I
I1 7 5
ag?¥
I-. IInII
I
nu I--;II IIIII I II I III I- I. —‘D
I•• I2 I IE ·•-I I
2 ä IE ·· I-8 B ä II I-•- V?I'; E I2 u I Ié ä I I2 E i I” 2 E IJJ S E I IS E E I Ig 6 I. III I- U II: cw gz E I-J
__Iu 0 ·— zu av es : •-0 IGi [ +-V ·•·•
I_8 E "I 8 :I; ‘* I6 I ig ’” E Q 8 TJ " TG ' E„- < w I: § I: I I_•J
-.}— *'§ ••
ILI S I! 8 E E I I‘°' I'- I5 E- Ä Ä : ° I IÄ 8 1; 2 I; I I,. g Ä · _; I I"‘ : r§ I I II' _¤ ll E O -•-I
ID -•- -•- I- •• x I„ äs 2 z 2 2 I IE III IIIYLIIIIII ___ _ _, __
___Figure5.40 Job3 DO Specification Tool
I
I
1 7 6_
.C :Z:?:fz?5:7:?:7:¥:Z:Z:¥:¢:¢:¥:?:¥:!:?:?:!:¥;7;¢:¢:¥:7:7:27;?:¥:¥:¥:7:T:T:7:!:!;t:¢;r;Z;t;:;:;:5;:;:;:5;:;:;:;:;:;:;::1;:;:;:;:;:-:-:~:·:·:-:-:-:-:·:-:-:-:-:-:·:-:~:-:-:-:-:-:-:-:-:-:·:-;.:-:~;.;.;.;.;.;.;.;.;.3.;.;.;.;.;.;.;.;.·.;.;.;.:.;.;.:5.;,;,;,;,·_-_•_~_~_-,-,-_-,-_-,-_-,-,-_-_-_•_-_._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._.....,.„,,„„________· · - “*=5=E¤ErirärE¤E¢E¢E=E=E¤é=E=E¤£=E=E=E=Sri:Eri:E:E:£:&:E:E:£=S¤E:2:i:s:£:E:E¤E:E:E:2:2:E:2:2:2:Z:2:2:2z2:2:2:;:;:;:2:;:;:;:2:;:;:;:;:zE;E;S;E;E;E;5;E;E;E;E;E:E¤€¤E:£¤£:E=E:ErE:E=E:%:餣¤E:2:E:E:2:2:E:2:2:2:E:2:2:2:$:2:;:;:2:2:E:2:2:6:;E2ze:2:2:1zz:2z;:;:;:5:;:eä5E;§;Esi5E;E;E5E;E;E;E5EgigägigägE5EgE5EgE5E;E;E;£:&¤$¤E:E:£:£:£¤$:E:E:£¤2:2:£:2rz:2:E:2:;:2:;:;:;:;:2:;:;:;:;:;:;:;F;z;:5EE;E;E;£;E;?;E;€;€;E;E;§;§;E;E;E;E;
IIII §§§§§§§§§§§§§§§§§§§§§§§§ä§§§§§§§ä§§§ä;%§§§ä§§§äié;EäEE;é§EääZ;E§ä§äiiiii駧§§;ä2§§§2§s§2§s§2ää§2§;§;§;§2§;§;§2§;§s§;§s§;§2§s§s§s§2§2§2§2§;§2§2§2§2§z§;§;;§§§§§§§§§§ääiiiäääääiii§E§Eiäiiiääääiäiéääéigääiaiäiäézäéäsäsääisääääsäsäsäsi2§2§2§s§2§2§s§s§;§;§2§2§2§;§2§;§;§;§z§;;;§;§z§;§;§;§;§;g;§;§;gggg53§;§;g;Q3EEgääE2Eéäéä2EEäéiéizisäsäsizääääääiai2§2§é§2§2§2§2§;§siaäsizisis§&§;§2§s§2§2§2§6§z§;§s;s§;§s§s§;§;§;§;§;;;§;
L>
EOJ+-J· · - v{5Sg};E5E55=E;E2E:i:E:E:Eri:E:E:E:$1E:{:§:§:§:§:§:§:§:§:§:§:§:§:§:¢:;:5:;:§;§:;:;:;:;:;:gE§Egi;E5E5igägé3E5ägägE5E;EgigEgEgägägägägägigägägiräzäzi:§:§:§:§:§:§:§:;:;:vzI>~
I¥§ä§ä§§§§§§§§§§§äääii§§§§E§E§§§§§ä§§§ä§§§§;§§§§ä§¥V}I ·
äI‘°I::E
IEääääéäääéäiääiääääääääéäääéägääääEäégégägégägägägäg äeäääsäaäsäéééäéésäéäéäaäéE2ääiäéäääéääääääääääägégä···‘ ;rE=E¤E¤§=E¤E¤E=E=EirE2:5:3¤E¤E¤E¢E=ErE¤E¢E¢§:Eri: .„ rE:E:€¢ErE¢E¤E¤E¢E¤E¤E¤€¤E¤E¤E¤E=E=E¤E¢E¢E¢E¢E¢E=E¤EVJ Z .„L.sI‘S § EI"J
I_I"3 L a äiääfsääääääfääééääiäéSEEäääfiääääääääääfäfäääsäéäzä ääafaäsäääaäääääsfiääfiääfääEäääiäifäfääiäifääääääié’i T6 3 ?äääääääääääää?ääääéiEEEäääääääääääéäääéäéäääääääää ä?ä?i?§?ä?§?§€§?ä?E?§€€?§€§?§?§€§?ä?§?§¥§?§?§?§?§?§§Q ’ ä F LgIQ-8 I .. .. iäääääääääääéäääääääääääéäääääääääääääääääääéääiäégä S;ägégägégägäägägääääääiäéäégääägägägägägägägägigäg‘5 .„ 3 SS°·
E § ä•ÄJ"
V? * 2¥EEESEEäEéääEEEäEäéESEEäéäEäéäéäéééééäéäéäéäéézäääé w 2äzä2§2§2§2ä2ä2§s§s§a§2;s§6;2é2;2§2;2;z;z;z;;;s;s§z5°’· „éES§S¤2§ 2ääi2ä2ä2Sieäéäeä6ä2ä2E22Eéäéäéäsäéäéäeäsieäeäzäsä ä ä2ä2é2§2és§sä2§2;2§2§2§6;2ä2äeäzäaäeäsieäsäsgsäsäaäzC- F7 ;?;I;Z;—;«;—;—;1;?;I;"‘i; i;I;Z;Z;:;Z;Z;Z5;:;:;2;:;C5;:;:~:·:-1;:-:;:-:·:·:· Q :Z:Z:Z;1;Z:Z:Z;Z;Z:f;I;Z;C;I;Z;Z;Z;I;f;Z;Z;?;Z;1;C;ZQ ä‘“"‘ Egi5ä;ägägi;ägi5E3E;äSägE5E2äsäsäääääääsääéééäääääéä "- äääääääääéiääääääääääääääääéäääéääiéääääääääääääääää"* "°
“ . *6 z 2%2é3é;ä2ésé2é2ésä2é2é2é;é;é;é;ä;é;ä;é;é;é;é;é;é;é;é"° -- · ¥ääiEäEEäääiiäääääE5iEESäéäéäéääééééééäéäéäéäéäéäääé 5 äääääääEäääEäEäEi?äääääääiäääääéäéäééäéäééäéääääéäää> ·- I 3 :¢:¤:¢:¤;¤:¢::;¤;::r;¤ss;=;¢;¤:¢;¢E¢E:E:?:;:3:§¤§:°’ irE¤E¤§¤E¤E¤ErE=E¢E:E¢ErE¤E¤E¤E:E¤E¤E¤E¤E¤E¤E:£:i:E: ua ririrE¤E¤E:E¢E=E¢E¤E¢E:i=ErErE=ErE¤E=E¢E=E¢E=E¢ErE¢E0-CU¤= ä
EFigure5.41 Model Generator Requester
I
I
II1 7 7
— C:¥r¥:Y:¥:*:¢:*:*:Y:*:*:?:¥:?:¢:¥:VII:::*:7:It?:Ix?I7:?:*:*:¢:?:?:Y:?:?:Y:¥:*:*r?:¢:¢:¢5:¢:Y:S:Y;¢::;:;?::;:;¢;I;:;:;:;:5;:;:;:;:;:;:;2;:-:—:-:~:;:~:-z-:-:-:·:-:-:-:·:~:—:—:·:—:—:-:-:~:-:~:·:-:~:-:-:-:-:·:—:-:-:-:~:·:-:·:—:·:-1-;-;-;.3,;.;.;.;.;.;.;.-.-.-.-.·.-.~.-.-.—.-.-.·.-.-.·.-.-.-.-.-.·.—.~.·.-.-.-.-.—.—.-.~.·.·.-.-.—.—.-.-.~.~.~.-.-.-.-.-.-.-.-_._.,Ir~ U!:§:§:§:Q:}:§:Q:§:§:§:§:{:f:§:{:§:f:Q:}:Q:}:§;}:};§;Q;Q:Q;};Q;Q;gggg;};};g;I;l;I;Iglgl;ggfgg;S;I;I;I;S;I;2;:;I;Z;I;I;t;:;:5;:5;:;:;:;:;:ft}:§:§:;:§:f:§:§:§:§:§:§:j:§;§:Q1}:§;}:§:Q:3};}:}:}:}3;;;Q;};Q;};};};Q;};g;Z:I;I;I;I;I;I;I;I;¢;:;:;:;:;:;:;:;:;:§:§:§:§:§:§:§:§:fz}:Q1}:{rf:§:§:§:§:§:§:§:§:§;§:§:§:§:§:§:§:§:§;§:{:Q;}:3};{5:;;}:Q;};I;f;¤;I;I_1;Z;I;Z;r;:EI;:;I;:§t§:{:§:§:§:§:§:§:§:§:§:§:§:§:§:§:§:§:§:§:§:[:§:
EéäSE2äéäéäéiéääéäääéséääéiii2isäéäé$2Esäzäää2§aisäsi2izisé2§2isäsä2ä2E2§2€ä€§%§ä§5§S§ä2%§ä;Si;ESéääéääääääääéiéäääééäääéééEéäääEäéäiii?aäääääéiEi;isäsäizi2izäaizä2iz§2§2§2§;§2;;§;§z;s§e§2§;S2;;s;;EzäzésésE;S;22;ES32SäääSEE2äääéääé2§2ä2§2Eéisisäääsieäs§2§2§2§zäzisäsä2§2§s§zä2§;§;§;§;§2§;;;§:52§2;;2;s§2;;;;g;;;&;g;;;S;égäg&;2;é;2;2;2§2§2§s§s§2§2izizäsi6§aisia;$2is$2;;;z$2;;;;§;;;§;§;;;§;;;;;;;;;§;;;§;;gS;äE Ei;I;égégégägégégägägägégégägägägi;§;ä;ä2ä;ä;äsäsé2ä2ä2§s2eäsäzääiéääääääääääääääääääI;Ii;si;ää;ääääääääää;§;§;§;§;§;§IIgi;ä;é;§;§;ägägégäg§;§;ä;ägäsägigä;ä;äe%2äsä2ézä2äe26226äzäsäääsäéäaäääääääääääéäääEI;ääääéäää§;§;€;§;ä;§;ä;§;é;§;§;é;E;é;%;ä;§;䧧;§;§;§;é5Iä;§;ä;é;§5%;;égäI2ägägäeéeééeääézézII2äääzäéäääääääIi;E;2%;äääéI2§;§;§;§;EI;§;§;§;§;Ii;ä;§;ä;äI;ägägégägägäsäsä;ä;22ä2ä2§2é2;2䧧§-— 6;äéäéäSEéäéäääääääéäääéäéääiééääéääééäéééäéééäéäéäaäéiz¥%§ä§2%ä%ä%ä%§%§¥i¥§%§¥IE5äEEäéääZE5%ääääE2EäéééE5äEäääEäéééäääEäéäéESEééääéäéäéäéäéäääääéiéééEéäéäzEzäéäääs§s§6§2ä2ä2é2§2§2§2§2ä6EI2;äs$2%ifaäs¥§¥§%§%§%§%§5§Eä%§%§éäéäEEééääéääééééäéäääéäéäéäéééäéä2é2i2ä%§é§2§2ä2§2§s§2§2Esiääaézäsésiaäeä2§2ä2äzi2äs§2§s§s§;§;;;;2;s;2ä2é2éäääéäéäéäéäéäéäsééäéééäzééäsäéäzäääéäaäeäsäsäsä2äaäzi2ä2E2äsäz§2i2§2§2§2§s;z;2;z;2;;;;;;é
o 2;;§5§;E;E5E5SE;E;EzägäsE;E;E;E;E;§;E5i;E;E;E;Z55;E3S§5525E§EiEäéäSiE§E§£§£§E§E§£§2§E§EiEiäää$2};;QE§ä§;$2§a§2§&§;§;§;§2Q2§;§;§;I;§2g3Q;§5;;;S5Q;EgizägigS5555;S55;EgE55;;Egi;E325E;$;£;£;E;E52§E§ägäi2§Ei;{s§2§si2§s§z§2§;§;§;§;§;§;§;§;Q2§5g5g;I5;gg;{;§;§;;;§;§;§3;;§;E;E5E;E;E;E5EgigE5E5Egägägägägä525E52;E52gE;5;;;;2g{g$2§s§2§;§;§;§;§;§;§;§;;;;;§;§5§;§;§;§;g5;;ggggggggggggggggE;g25E;2g2;;;2;2;2;;;;;2;;;;;;;;§I I \ :-:~:I;§:§:{:?:¥:¢:¥:¥:¥:¢:?:?:¢:?:Zz?zi:Z:Z:Z:Z:¥:Z:!:?:?:¥:¥:¥:¢:?:?:¢:?:¢:¢:¥:¥:?:¥:?:¥:Z:I:?;I;:;:IS;:I:5;:;:I:5;:;:5;:;:;:;:I:I1I:;:;:I:{1;:§:{:Q:§;§:?:§:§:§:Z:¥:Z:¢:¥:¢;Z:¥:Z:¢:¢:¢:¢:¢:¢:¥;?:?:¥:¢:¥:¥:?:?:¢:¢:Y:Z:T1Y:Y:Z;2;I;:;;;:;:;:;:;:;:;;;:;:I:I:I:;:;:I1;:}c§:§:§;§;{:§:{:§;§:§:§:§:Q:¥;§;?:¥:¢:¢:¢:?:¢:?:¢:¢:¥:¢:Z:?:¥:¢:?:¢:¥:¥:?:¥:¢:?:?:¢;1;l;:;:;:;:5I:I;;;;:;:;:;;;:;;§;§:§:{:{;§:§:§:§:¥;¥:¥:?;¥:Z;¢:¥:I EE Eäääiz§;§a§;§§§E;E;ääääääääääiäéäéäiEéääääééfäéääääääiäiääEifä2§&§?§EääiääääääfääääääiéäSäääéäéääää§s§2§E§s§2§2ääé2§s§2§s§;§2;2§;§;§;§s§2§2§;gz;$2;;;2;;;sä;§§§2§2;§§§§§éäégäääääääiäääääääéäéizäääääääS22?zääiéäSäääéééäääéäééäääääésäéäzäääzäääsäzä2§2§s§2§2äääsäa§&äzés§2§2§2§2§2§sis;2§2§2§2§2§s§z§§§z§§§§§ä§E;ä;§§E5ägääéééääEEEäääääääéäääéääéäéääiiäéäääéäiéiäisiéääE2§2§2§2äsäai;§$§2§eäs$2;;;§2§;§s§2§§§ä;§§§§§§§;§E§é
ECUVII>~— E¤E¤i¤E¢E¢E=E=3¤ErE=Bri¤ESE=i¢Eriliririräziririräf? EIEIE¤E=E¤EIE=Eri=E=E=E¢i¢E¢E=E:ErE¤E¤E¥ESEEIEEEFIEVI I €é?§äääEäEäääéEEäEäéäE?ääääääéäääääiäääääääääääéääää äääääéääéééäääääääää2ä2%;äséééääääääääsääéäéäéäéääää¤O I ;EEE;E;E;E;E;E5E5E5E5E;E;EgägägigEgigigägigégigigigE E;€3E55;;E5E5E5E3i;EgE;E;EgEgE;E;£5§;E;E;€;E;E;E;E;~—· 1 E§€§§§€§€§€§€§€§€§€§€§€?€?€€€?€?€?€€€?€€€?€€€FES?E ggEgä;äéäääééééäéääéäééééääzizéaäzäééäééééäsééäzäsäa+-> I ¤222;S;2;2;2;2;;;2;ääzésäs§s§2§2§2§2§2ä2ä2§s§2§s 3;%sézéääaéééééäéäääéäéäéäEEéä2§2§2§2§2§2ä2ä2§s§2i2ä=¤ I 2§:§;§2§;§2§;§2§2§z§s§;§2§2§s§;§;§;§;§a?s%;ä2E;ä2S2€ §s§s§a§;§s§s§s§2§2;2;;§;§z§;%2%;EsPsE2EsE;Esägfsäaäs"‘ I E¤E¢E¤E¤E=E=E=§=E¢E¤E:E:Z¢E¢E¢E=E¤E=E¤3?E?E?E€E€E€E? ¤ErErEérärE:E¤Ei:ErE=Erirä?§?E?E?E€E?E€E?E?E?E?E$E5 IQ:§:f:§:§:§:§:§:§:{:§:{:Q;}:§:§:§:Q:§:§:§;§:§:§:§:§ fi§:§:{:§:§:§:§:§:§:§:§:§:§:§:}:§:§:§:§:§:§:§:§:§:§:E s2äääéäzäéäéäéäéäéäääééäééäéééäéäéäéäéééäéäéééééäéäé éäaäéIäééääéäéäéäsieäéäéäéäääeäsäéäéééiéäéäéäzäsäeé
-•-1 I ‘?:?:T:7*¥:?:¢:Z:Zz?Z?:¥:Z:7:i:?:?:?:¢:7:¢:¢:¥:¢:I:? ?:¥:Y:!:¢:?:¢:i:?:Z:?:¥:?:¥:$:¢:7:¢:7:¢:?:¥:¥:7:¢:!:*/I :‘·——ä
1E.2. „I B E 2§;§2§2§;$2;;§2§s§s§;§s§s§;§;ä;§;%2§2€;€;E;Ez€;¥2ä;% i;§s§s§2§2§s§2§2§2§2§z§;§;§;E;§;§2€z€sE;EzE2ä;E§5;ä§I E TG .€€S§2§;;ääEä2§2§2§2§a§;§säéääaäääääiäääääääääéääää 2§s§s§2§2§2§2§2§2§;§;§;§;§säéizfsääEäääääääääiäääää· 3 i I 2 263I II=-
Z Z35E Q .5§;E;E;E;E;E;E5E;E5E5E;E3E5E;€;E;E§i§£§E§i§E§E§§§§§ \ ;E;§;E5§;E;E5E;i;E;E;E;E;E;E;E;E;E§E§E§£§E§E§E§E§E§EL 2 I * * ;lg: 1;;;=1;:;I;:;=;;;:¤»I; EseäääéääääääääääääääääII2ä;ä;é;é;%ä§;é;§;ääé;é;é; ·¤ éä2EIIéäääääääääääéääéääsääääääésääéséäéääääääséääI. Q Q I Ii iääéääääiiäääääEääiä?ääéää?äääiiäääääéääääääääääääää éääääääääéäääéääääéääééääI;äääääääséääääääsäääääGJ **1pr;w
vu ¥2%;%2¥2?sE2€2ä2faäsäsäääefzäzäaääääääääääéäääääääääm U Ü ‘ EIFIEÄEIEÄEEISIEIEIEEEEEIEÄEÄEIEIEIEÄEIEEEÄEQEEEI .- „ i2§ai2izäääz§z§s§2§s§z§s§2§2§z§;§;§;§;§;§;§s§;§;§;§;„, I ÄEiEääääiääfäääfääéäääääääEEäéääiäääääiääääääfiäääää 8 *1 éäéääéäéäééäeäéäsäääääaäéäéééäéäéäääéiääSäääséäéäé;; I 2;;§2$2232;2EzäzäääaEsäsézéääääésäsäeäaäzäsäsäsä;E 1: 52§a§;§;§2§2§2§s§2%:225;äzäaääsä;ä2€;ä2ä252?2Sz5;> m 3 :2:2:2:;:2:;:2:;:zésfzäaä;E;5;S;52E2%2€2%;52€2fsEs520. Q I jEZ;E5§3E5E;E;E;§5E;E;§;E;E;i3E;E5E3E;E;E5E5E;E;E5E o m ?;E;E;E;E;E3E;E;E5E;E;E;E;S55;E;S5E;E3E;E;E;E;E5E;E;¤ = I E
EFigure5.42 Generatimg the Model
I
2178
5.8 The Model Animation Tool
To run the Visual Simulation, select the “Model
Animation Tool“ icon and wait for the dynamic display screento come up (see Figure 5.43). Select the "Load“ button to
load the background image and initialize variables (seeFigure 5.44). Select the "Animate" button to toggle the VS
on and off (see Figure 5.45). Selecting the “Run“button °
brings up the statistics panel (see Figure 5.46). The "Run
Simulation“ button runs the model without the dynamic
display (see Section 3.5.2) and is used for the gathering of
statistical information. Results obtained from this run are
listed in Table 5.1.
Finally, exit the top_level menu by selecting the
“Quit" button. This quits GPVSS entirely.
I
1 7 9
I
· IIIIII IIII
IIIIII
III
I
III
Figure 5.43 Model Animation Tool Screen
I 166
IIIII I
II
I II @1I I
II
I II]II- I- I-U U ll
Figure 5.44 Animation Tool After Load Operation
[1 E5 1
111
[1 EÜ
[ [0 0 0
Figure 5.45 The Dynamic Display
II162
§iQQi§IiIQ §
$2 [Q QM;* I- I-I U U U§1
E 2 2 22 2 2 ä I E2 2 :·°i’ 2 *2 2 2 2
2Figure 5.46 The Experimental Model
163
Table 5.1 Round Robin System Experimental Results
Average Waiting TimeVALUES GIVEN:
1507.162 1515.372 1463.607 1509.916 1496.0391526.664 1513.152 1516.152 1496.656 1516.4151510.644 1517.421 1516.233 1512.524 1496.3271476.913 1517.460 1502.654 1496.661 1466.792
CONFIDENCE INTERVALS FOR THE DATANumber of data points = 20Sample Mean = 1506.161377Sample Variance : 169.530167Confidence lntervalstLevel 0.100 0.050 0.025 0.010 0.005Lower limit 1502.295 1501.127 1500.066 1496.769 1497.632Upper limit 1510.026 1511.195 1512.255 1513.554 1514.491
Average Number of Jobs in the System
VALUES GIVEN:
2.572 2.575 2.560 2.575 2.5662.564 2.569 2.574 2.572 2.5752.575 2.579 2.575 2.575 2.5692.571 2.577 2.567 2.574 2.567
CONFIDENCE INTERVALS FOR THE DATANumber of data points : 20Sample Mean : 2.572650Sample Variance I 0.000023
Confidence lntervalslLevel 0.100 0.050 0.025 0.010 0.005Lower limit 2.571 2.571 2.570 2.570 2.570Upper limit 2.574 2.575 2.575 2.575 2.576
u
CHAPTER 6SUMMARY AND FUTURE RESEARCH
6.1 SummaryA The literature review presented in Chapter 2 clearly
indicates the need for an integrated visual simulationsystem that provides for the graphical definition andinteractive specification of the model while maintaining
application independence. GPVSS is an interactive graphicsoriented general purpose simulation system designed to
produce a running visual simulation from a graphical modeldesign. GPVSS provides facilities to: (1) graphicallydesign the model and its visualization, (2) interactively
specify the model’s logic, and (3) automatically generate
the executable version of the model, while maintaining
domain independence.E Chapter 3 provides an extensive detailed description of
the internal logic of GPVSS. GPVSS is prototyped on a Sun3/16OC computer workstation using the SunView graphicalinterface. The Image Editor/Model Editor provides thefacilities for the graphical design of the model and itsvisualization as well as interactive specification of themodel logic. The Generator automatically ·creates theAnimation Tool which is the executable version of the model.
Chapter 4 presents three case studies and shows that
184
g____i
I
135
the internal logic of GPVSS and the logic of the models are
sufficiently accurate. Verification of GPVSS is achieved
through the use of desk checkinq and fracinq techniques.
Validation is achieved by modeling three systems, each
admitting a closed—form analytical solution, and comparingthe experimental and analytical results. In every case the
analytical estimate of the mean falls within the 90%I confidence interval.
Chapter 5 illustrates the usage of GPVS3. Using a case
study of a round robin system, the user is shown step by
step how to develop and execute a visual simulation.
The case studies presented clearly show that GPVSS is
an adequate visual simulation system for a wide variety of
problems. Thus, the goal of prototyping a software system
that aids a simulationist in developing a general purpose
discrete event visual simulation model has been achieved.
6.2 Recommendations for Future Research
GPVSS has been prototyped by using the evolutionary
software development approach. Because of this, a variety
of characteristics of GPVSS could stand improvement.
During GPVSS development, database tables were created
as the needs for them arose. Subsequent development often
rendered attributes of these tables obsolete, or duplicated
information unnecessarily. While there are no unused
attributes in the GPVSS databases currently, there remains
136I
considerable duplication of information. A useful
modification would be to consolidate the database as much as
possible to maximize the sharing of information between the
various GPVSS components. For instance, although a DO image
may be stored with its name as a key, the DO specification
tool requires the user to know the name of the file
containing this image.
S The drawing environment of GPVSS is relatively crude.
A circle primitive would be helpful. Improved erase modes
are also desirable. Also, provision for the incorporation
of color images would increase the communicative
capabilities of the dynamic display. Many commercial
“paint“ programs could provide this capability.
Currently, limited macro, function and image libraries
assist the modeler in the creation of the system model. In
addition, only the exponential distribution on the
distribution selection panel is implemented. Code
implementing a variety of statistical distributions would be
both easy and useful.
Finally, the animation facilities of GPVSS are basic.
Code exists to animate “concurrent” animation events but is
not currently used. A very useful addition to GPVSS would Sbe the introduction of VIS capabilities. S
Future improvements to GPVSS are needed. GPVSS is an Searly prototype; however, GPVSS has proved to be a useful Svisual modeling system for a significant class of systems.
SI
187
Future impI‘OV€m€n1;S and implementations can gain €V€I‘ IT1OI‘€
of the potential for computer assisted modeling offered by
VS and VIS.
188BIBLIOGRAPHY
Alemparte, M., D. Cheda, D. Seely, and W. Walker (1975),"Interacting With Discrete Simulation Using On LineGraphic Animation," Comput. ä Graphics 1, 3Q9—3l3_
Baeker, R.M. (1974), "Genesys Interactive Computer-MediatedAnimation", In Computer Animation, J. Halas, Ed.New York, N.Y., pp. 97-115.
Balci, O. (1986), "A Conceptual Framework for SimulationModeling," MDE Project Working Paper, Department of
VComputer Science, Virginia Tech, Blacksburg, Va.
Balci, O. (1988), "CS 4214 Simulation & Modeling LectureNotes," Department of Computer Science, Virginia Tech,Blacksburg, Va.
Bell, P.C. (1985a), "Visual Interactive Modeling as anOperations Research Technique," Interfaces 15, 4(July—Aug ), 26-33.
Bell, P.C. (1985b), "Visual Interactive Modeling inOperational Research: Successes and Opportunities,"Journal of the Operational Research Society 36, 11(Nov.), 975-982.
Bell, P.C. (1986), "Visual Interactive Modelling in 1986,"School of Business Administration, The University ofWestern Ontario, London, Canada.
Bell, P.C. and P.F. Kirkpatrick (1986), "Questionnaire onthe Practice of Visual Interactive Modeling," School ofBusiness Administration, The University of WesternOntario, London, Canada.
Bell, P.C. and R.M. O’Keefe (1987), "Visual InteractiveSimulation - History, Recent Developments, and MajorISsues," Simulation 49, 3 (Sept.), lO9·115.
Biles, W.E. and S.T. Wilsor (1987), "Animated Graphics andComputer Simql3tiOn," In Proceedings of the I9S7 HinterSimulation Conference (Atlanta, Ga., Dec. 14-16). IEEE,Piscataway, N.J., pp. 472-476.
Birtwistle, G., J. Joyce, and B. Wyvill (1984), "ANDES - AnEnvironment for Animated Discrete Event Simulation," InProceedings of the U.ä- Simulation Conference (Bath,U.K.), Sept.
169Cox,S. (1967), “Interactive Graphics in GPSS/PC,“ [
Simulation 49, 3 (Sept,), 117-122,
Gordon, R.E. and E.A. MacNair (1967), “A Visual ProgrammingApproach to Manufacturing Modeling," In Proceedings ofthe 1937 Hinter Simulation Conference (Atlanta, Ga_,Dec. 14-16). IEEE, Piscataway, N.J., pp. 465-470.
Gordon, R.F., E.A. MacNair, K.J. Gordon, and J.E. Kurose(1966), “The RESearch Queuing Package ModelingEnvironment (RESQME),“ Research Report RC 13426(#60092), Research Division, IBM, Yorktown Heights,N.Y., Jan.
Grant, J.W. and S.A. Weiner (1966), “Factors To Consider InChoosing A Graphically Animated Simulation System,“Industrial Engineering, (Aug_), 37-68,
Grant, M.E. and D. W. Starks (1966), “A tutorial on TESS:The Extended Simulation Support System,“ In Proceedingsof the ISSS Hinter Simulation Conference (San Diego,Ca., Dec. 12-14). IEEE, Piscataway, N J., pp. 136-240.
Hollocks, B.W. (1967), “Practical Benefits of AnimatedGraphics in Simulation,“ In Proceedings of the 1937Hinter Simulation Conference (Atlanta, Ga_, Deo_14-16). IEEE, Piscataway, N.J., pp. 323-326.
Hurrion, R.D. (1960), “An Interactive Visual SimulationSystem for Industrial Management,“ European Journal ofthe Üperational Research Society 5, 2 (Ang_), 86-93,
Hurrion, R.D. (1966), “Visual Interactive Modeling,“European Journal of the Operational Research Society
· F3, 3 (Mar.), 261-267.
Hurrion, R.D. and R.J. Secker (1976), “Visual InteractiveSimulation: An Aid to Decision Making,“ Omega S, 5,419-426.
Johnson, M.E. and J.P. Poorte (1966), “AHierarchical
Approach to Computer Animation in SimulationModeling," Simulation SO, 2 (Jan ), 30-36.
Kurose, J.F., K.J. Gordon, R.E. Gordon, E.A. MacNair andP.D. Welch (1966), "A Graphics-Oriented Modeler’sWorkstation Environment for the RESearch QueuingPackage (RESQ),” In ISSS Proceedings of Fall JointC(,%?Z'?,7EE·E‘f' CiZ¥TiT-EVETICE (Nov, ) , NewYork,pp.
719-726.
190
Macintosh, J.B., R. W. Hawkins, and C. J. Shepard (1984),"Simulation on Microcomputersl The Development of aVisual Interactive Modelling Philosophy," InProceedings of the 1954 Hinter Simulation Conference(Dallas, Tex., Nov. 28-30). IEEE, Piscataway, N.J.,pp. 531-537.
Mathewson, S.C. (1985), "Simulation Program Generators: Codeand Animation on a P.C.," Journal of the SperationalResearch Society 35, 7 (June), 583-589.
Melamed, B. and R.J.T. Morris (1985), "Visual SimulationlvThe Performance Analysis Workstation,“ IEEETransactions on Computers 15, 2 (Ang,), 87-94,
Miles, T., R.P. Sadowski, and B.W. Werner (1988), "Animationwith CINEMA," In Proceedings of the 1955 HinterSimulation Conference (San Diggg, 03,, Dec, 12-14),IEEE, Piscataway, N.J., pp. 138-240.
Nance, R.E. (1989), Personal Communication, Department ofComputer Science, Virginia Tech, Blacksburg, Va.
0’Keefe, R.M. (1987), "What is Visual InteractiveSimulation? (And is There a Methodology for Doing itRight?)," In Proceedings of the 1957 Hinter SimulationConference (Atlanta, Ga., Dec. 14-18). IEEE,Piscataway, N.J., pp. 481-484.
Palme. J. (1977), "Moving Pictures Show Simulation toUser," Simulation E9, 8 (Dec.), 204-209.
Sauer, C.H., E.A. MacNair, and J.F. Kurose (1982), "TheResearch Queuing Package Version 2l Introduction andExamples." Research Report RA 138 (#41128), ResearchDivision, IBM, Yorktown Heights, N.Y., Apr.
Smith, R.L. and L. Platt (1987), "Benefits of Animation inthe Simulation of a Machining and Assembly Line,"Simulation 45, 1 (Jan,), 28-30,
Standridge. C. R. (1988), "Animating Simulations UsingTESS," Computers and Industrial Engineering io, 2,121-134.
Sun Microsystems (1988), SunIH5RES, Volumes I, II, and III,Sun Microsystems, Inc., Mountain View, CA, May.
Sun Microsystems (1988a), SunViem Programmer s Guide,Sun Microsystems, Inc., Mountain View, CA, May.
II
191Sun Microsystems (1988b). SunView 1 Beginner’s Guide,Sun Microsystems, Inc., Mountain View, CA, May.White, R.A. (1988), "TRAVISZ A General Purpose TrafficIntersection Visual Interactive Simulator,“ M.S.Thesis, Department of Computer Science, Virginia Tech,Blacksburg, Va., Sept.Wyvill, B. and B. MacDonald (1987), “State of uthe Art inComputer Graphics and Animation," In Frwcaedinqä of theConference on Hethodology and Validation (1987 EagteynSimulation Conferences, Orlando, Fla., Apr. 8-9). SCS,San Diego, Calif., pp. 1-8.
I
I
I
I( I
I I IIl I