(C) 2009 J. M. Garrido1 Object Oriented Simulation with Java.
-
Upload
josephine-newton -
Category
Documents
-
view
224 -
download
4
Transcript of (C) 2009 J. M. Garrido1 Object Oriented Simulation with Java.
![Page 1: (C) 2009 J. M. Garrido1 Object Oriented Simulation with Java.](https://reader033.fdocuments.us/reader033/viewer/2022042822/56649e415503460f94b339d8/html5/thumbnails/1.jpg)
(C) 2009 J. M. Garrido 1
Object Oriented Simulation with Java
![Page 2: (C) 2009 J. M. Garrido1 Object Oriented Simulation with Java.](https://reader033.fdocuments.us/reader033/viewer/2022042822/56649e415503460f94b339d8/html5/thumbnails/2.jpg)
(C) 2009 J. M. Garrido 2
Entities and Objects
The major components in a model are entities or objects, entity types are implemented as Java classes
The active objects have a life of their own, and are called processes
The passive objects are the other objects in a model: user-defined objects, resources and queues, etc.
![Page 3: (C) 2009 J. M. Garrido1 Object Oriented Simulation with Java.](https://reader033.fdocuments.us/reader033/viewer/2022042822/56649e415503460f94b339d8/html5/thumbnails/3.jpg)
(C) 2009 J. M. Garrido 3
Objects in a Simulation Model
There are several objects in a simulation model
The activate objects are instances of the classes that inherit the library class Process
The passive objects are instances of any other class, including some of the library classes (e.g., queue classes)
![Page 4: (C) 2009 J. M. Garrido1 Object Oriented Simulation with Java.](https://reader033.fdocuments.us/reader033/viewer/2022042822/56649e415503460f94b339d8/html5/thumbnails/4.jpg)
(C) 2009 J. M. Garrido 4
Single-Server Models
There is only one server object that provides service to customer objects
Arriving customer objects join a queue to wait for service
The random events are customer arrivals and service completions
![Page 5: (C) 2009 J. M. Garrido1 Object Oriented Simulation with Java.](https://reader033.fdocuments.us/reader033/viewer/2022042822/56649e415503460f94b339d8/html5/thumbnails/5.jpg)
(C) 2009 J. M. Garrido 5
Simple Queue A waiting line for arriving customers (or
other objects). It is a passive entity in the model, used as ‘global’ shared resource.
An arriving customer can only enter the queue at the tail
A customer can only leave if it is at the head of the queue
The usual order of customers is FCFS.
![Page 6: (C) 2009 J. M. Garrido1 Object Oriented Simulation with Java.](https://reader033.fdocuments.us/reader033/viewer/2022042822/56649e415503460f94b339d8/html5/thumbnails/6.jpg)
(C) 2009 J. M. Garrido 6
A Simple Queue
![Page 7: (C) 2009 J. M. Garrido1 Object Oriented Simulation with Java.](https://reader033.fdocuments.us/reader033/viewer/2022042822/56649e415503460f94b339d8/html5/thumbnails/7.jpg)
(C) 2009 J. M. Garrido 7
The Car-Wash Model
Cars arrive for complete wash (service) Arriving cars join a line (queue) to wait for
service There is only one car-wash machine that can
service one car at a time After the service is complete for a car, it
leaves the system
![Page 8: (C) 2009 J. M. Garrido1 Object Oriented Simulation with Java.](https://reader033.fdocuments.us/reader033/viewer/2022042822/56649e415503460f94b339d8/html5/thumbnails/8.jpg)
(C) 2009 J. M. Garrido 8
The Carwash Model Components A set of customer processes, the cars One server process, the wash-machine One conceptual process that models
arrivals (this represents the environment) One global shared resource, the queue. Events:
customer arrival start of service end of service and departure of a customer
![Page 9: (C) 2009 J. M. Garrido1 Object Oriented Simulation with Java.](https://reader033.fdocuments.us/reader033/viewer/2022042822/56649e415503460f94b339d8/html5/thumbnails/9.jpg)
(C) 2009 J. M. Garrido 9
Single Server System Model
![Page 10: (C) 2009 J. M. Garrido1 Object Oriented Simulation with Java.](https://reader033.fdocuments.us/reader033/viewer/2022042822/56649e415503460f94b339d8/html5/thumbnails/10.jpg)
(C) 2009 J. M. Garrido 10
The Conceptual Model
The model of the simple carwash system consists of the following processes:
The Car process, which define the customer objects
The Arrivals process, which represent the environment
The Wash-machine process, which represents the server.
![Page 11: (C) 2009 J. M. Garrido1 Object Oriented Simulation with Java.](https://reader033.fdocuments.us/reader033/viewer/2022042822/56649e415503460f94b339d8/html5/thumbnails/11.jpg)
(C) 2009 J. M. Garrido 11
Modeling Diagrams
The UML diagram shows the main entities in the model
The UML static modeling diagrams show the basic structure of the classes and their relationships
The dynamic modeling diagrams show all the process interactions and the use of resources for every model.
![Page 12: (C) 2009 J. M. Garrido1 Object Oriented Simulation with Java.](https://reader033.fdocuments.us/reader033/viewer/2022042822/56649e415503460f94b339d8/html5/thumbnails/12.jpg)
(C) 2009 J. M. Garrido 12
UML class diagrams for Car and Wash-machine
![Page 13: (C) 2009 J. M. Garrido1 Object Oriented Simulation with Java.](https://reader033.fdocuments.us/reader033/viewer/2022042822/56649e415503460f94b339d8/html5/thumbnails/13.jpg)
(C) 2009 J. M. Garrido 13
UML Class Diagram for the Carwash Model
![Page 14: (C) 2009 J. M. Garrido1 Object Oriented Simulation with Java.](https://reader033.fdocuments.us/reader033/viewer/2022042822/56649e415503460f94b339d8/html5/thumbnails/14.jpg)
(C) 2009 J. M. Garrido 14
UML Collaboration Diagram for the Carwash Model
![Page 15: (C) 2009 J. M. Garrido1 Object Oriented Simulation with Java.](https://reader033.fdocuments.us/reader033/viewer/2022042822/56649e415503460f94b339d8/html5/thumbnails/15.jpg)
(C) 2009 J. M. Garrido 15
UML Sequence Diagram for the Carwash Model
![Page 16: (C) 2009 J. M. Garrido1 Object Oriented Simulation with Java.](https://reader033.fdocuments.us/reader033/viewer/2022042822/56649e415503460f94b339d8/html5/thumbnails/16.jpg)
(C) 2009 J. M. Garrido 16
UML State Diagram for a Car Object
![Page 17: (C) 2009 J. M. Garrido1 Object Oriented Simulation with Java.](https://reader033.fdocuments.us/reader033/viewer/2022042822/56649e415503460f94b339d8/html5/thumbnails/17.jpg)
(C) 2009 J. M. Garrido 17
Results of a Simulation Run
The trace, which is a sequence of all relevant events with time of occurrence
The summary statistics with the values of the performance metrics of the model for the current run
![Page 18: (C) 2009 J. M. Garrido1 Object Oriented Simulation with Java.](https://reader033.fdocuments.us/reader033/viewer/2022042822/56649e415503460f94b339d8/html5/thumbnails/18.jpg)
(C) 2009 J. M. Garrido 18
Performance Measures in the Carwash System
The average number of customer in the system The average number of customers in the queue(s)
(i.e., that are waiting) The average time that a customer spends in the
system The average time that a customer spends in the
queue(s) The server (wash-machine) utilization.
![Page 19: (C) 2009 J. M. Garrido1 Object Oriented Simulation with Java.](https://reader033.fdocuments.us/reader033/viewer/2022042822/56649e415503460f94b339d8/html5/thumbnails/19.jpg)
(C) 2009 J. M. Garrido 19
Performance and Workload Characterization
The usual objective for determining the performance measures in a queuing system is to achieve the following criteria:
Reduce the customer waiting periods Improve the server utilization Maximize throughput (the number of
customers served) for a given workload.
![Page 20: (C) 2009 J. M. Garrido1 Object Oriented Simulation with Java.](https://reader033.fdocuments.us/reader033/viewer/2022042822/56649e415503460f94b339d8/html5/thumbnails/20.jpg)
(C) 2009 J. M. Garrido 20
Workload Parameters
The performance of the system depends on the workload submitted, and for this queuing model it consists of the following parameters: The average customer arrival rate, The average customer service rate, The resource demand for the customers
![Page 21: (C) 2009 J. M. Garrido1 Object Oriented Simulation with Java.](https://reader033.fdocuments.us/reader033/viewer/2022042822/56649e415503460f94b339d8/html5/thumbnails/21.jpg)
(C) 2009 J. M. Garrido 21
System Parameters
The queue sizeThe resource capacity of the system.
![Page 22: (C) 2009 J. M. Garrido1 Object Oriented Simulation with Java.](https://reader033.fdocuments.us/reader033/viewer/2022042822/56649e415503460f94b339d8/html5/thumbnails/22.jpg)
(C) 2009 J. M. Garrido 22
Performance Measures Depend on Workload
The performance metrics computed in the single-server model, depend on the workload submitted, and on the system parameters.
Modifying the workload on a model and/or the system parameters changes the behavior of the model.
![Page 23: (C) 2009 J. M. Garrido1 Object Oriented Simulation with Java.](https://reader033.fdocuments.us/reader033/viewer/2022042822/56649e415503460f94b339d8/html5/thumbnails/23.jpg)
(C) 2009 J. M. Garrido 23
Examples of Performance and Workload
To compare two models with different servers, is equivalent to changing the workload by providing two different values for the average service time demands of the customers.
If the system workload increases, the server utilization will also increase
![Page 24: (C) 2009 J. M. Garrido1 Object Oriented Simulation with Java.](https://reader033.fdocuments.us/reader033/viewer/2022042822/56649e415503460f94b339d8/html5/thumbnails/24.jpg)
(C) 2009 J. M. Garrido 24
Bottleneck
The bottleneck of the system at capacity will be localized in the server or resource with a utilization of 1, while the other servers or resources each have utilization significantly below 1.
The bottleneck can be localized at the server, the queue, or at the resources.
![Page 25: (C) 2009 J. M. Garrido1 Object Oriented Simulation with Java.](https://reader033.fdocuments.us/reader033/viewer/2022042822/56649e415503460f94b339d8/html5/thumbnails/25.jpg)
(C) 2009 J. M. Garrido 25
Studying System Behavior
All the changes that occur in the system are analyzed
In the model of the simple car-wash system, the system changes state when a customer arrives, when a customer starts service, when a customer completes service, etc.
These changes are instantaneous occurrences and are called events.
![Page 26: (C) 2009 J. M. Garrido1 Object Oriented Simulation with Java.](https://reader033.fdocuments.us/reader033/viewer/2022042822/56649e415503460f94b339d8/html5/thumbnails/26.jpg)
(C) 2009 J. M. Garrido 26
The Car-wash Stochastic Model
These models include entities with attributes that change value in a non-deterministic manner
The occurrence of the random events follow a probabilistic distribution
![Page 27: (C) 2009 J. M. Garrido1 Object Oriented Simulation with Java.](https://reader033.fdocuments.us/reader033/viewer/2022042822/56649e415503460f94b339d8/html5/thumbnails/27.jpg)
(C) 2009 J. M. Garrido 27
Random Variables in the Model
In the Car-wash model, the following random variables are defined:
The inter-arrival period for the car objects The service period for each car object.
![Page 28: (C) 2009 J. M. Garrido1 Object Oriented Simulation with Java.](https://reader033.fdocuments.us/reader033/viewer/2022042822/56649e415503460f94b339d8/html5/thumbnails/28.jpg)
(C) 2009 J. M. Garrido 28
Generation of Random Variables
To facilitate the simulation of random events, PsimJ provides random number generators using several probability distributions
Some of the distributions return an integer (long) value, others return a real (double) value
![Page 29: (C) 2009 J. M. Garrido1 Object Oriented Simulation with Java.](https://reader033.fdocuments.us/reader033/viewer/2022042822/56649e415503460f94b339d8/html5/thumbnails/29.jpg)
(C) 2009 J. M. Garrido 29
Probability Distributions in PsimJ
Uniform Exponential Poisson Normal Erlang Geometric Hyper-exponential
![Page 30: (C) 2009 J. M. Garrido1 Object Oriented Simulation with Java.](https://reader033.fdocuments.us/reader033/viewer/2022042822/56649e415503460f94b339d8/html5/thumbnails/30.jpg)
(C) 2009 J. M. Garrido 30
Random Events in the Carwash Model
Two random events: customer arrivals end of a customer service
Two random variables are modeled: inter-arrival periods service periods
Both random variables follow an exponential distribution.
![Page 31: (C) 2009 J. M. Garrido1 Object Oriented Simulation with Java.](https://reader033.fdocuments.us/reader033/viewer/2022042822/56649e415503460f94b339d8/html5/thumbnails/31.jpg)
(C) 2009 J. M. Garrido 31
Documentation of PsimJ2
The sample models Reference manual Using PsimJ2 with Eclipse
The Psim Web page
http://science.kennesaw.edu/~jgarrido/psim.html
![Page 32: (C) 2009 J. M. Garrido1 Object Oriented Simulation with Java.](https://reader033.fdocuments.us/reader033/viewer/2022042822/56649e415503460f94b339d8/html5/thumbnails/32.jpg)
(C) 2009 J. M. Garrido 32
Using Psim with Java
All processes (active objects) are created from a user-defined class that inherits the library class Process.
All non-process objects (passive objects) are created directly from the corresponding library class (e.g., class Squeue), or other classes.
![Page 33: (C) 2009 J. M. Garrido1 Object Oriented Simulation with Java.](https://reader033.fdocuments.us/reader033/viewer/2022042822/56649e415503460f94b339d8/html5/thumbnails/33.jpg)
(C) 2009 J. M. Garrido 33
The Structure of a Model in Java
Define all classes for the model’s processes, and inherit from the library class Process.
Define one class (main class) that includes method main.
In method Main_body of the main class, start the simulation by invoking method start_sim, then calculate summary statistics.
![Page 34: (C) 2009 J. M. Garrido1 Object Oriented Simulation with Java.](https://reader033.fdocuments.us/reader033/viewer/2022042822/56649e415503460f94b339d8/html5/thumbnails/34.jpg)
(C) 2009 J. M. Garrido 34
Method main
In method main: Define a simulation object of the library class Simulation; give a name to the model.
Create all the objects used in the model. Start the active objects.
![Page 35: (C) 2009 J. M. Garrido1 Object Oriented Simulation with Java.](https://reader033.fdocuments.us/reader033/viewer/2022042822/56649e415503460f94b339d8/html5/thumbnails/35.jpg)
(C) 2009 J. M. Garrido 35
Using GUI with Models
Java facilitates the implementation of graphical interfaces for simulation models
A general GUI framework is included with PsimJ2. The package name is gui.
To run the carwash model with GUI, run the CarwashGUI class, instead of the Carwash class.
![Page 36: (C) 2009 J. M. Garrido1 Object Oriented Simulation with Java.](https://reader033.fdocuments.us/reader033/viewer/2022042822/56649e415503460f94b339d8/html5/thumbnails/36.jpg)
(C) 2009 J. M. Garrido 36
Carwash Simulation Run
![Page 37: (C) 2009 J. M. Garrido1 Object Oriented Simulation with Java.](https://reader033.fdocuments.us/reader033/viewer/2022042822/56649e415503460f94b339d8/html5/thumbnails/37.jpg)
(C) 2009 J. M. Garrido 37
Carwash Simulation Run (2)
![Page 38: (C) 2009 J. M. Garrido1 Object Oriented Simulation with Java.](https://reader033.fdocuments.us/reader033/viewer/2022042822/56649e415503460f94b339d8/html5/thumbnails/38.jpg)
Discrete-Event Simulation
Event approach Activity approach Process interaction approach
Psim3, and PsimJ2 use the full power of process interaction simulation.
Other simulation packages/languages have limited OO support
38(C) 2009 J. M. Garrido
![Page 39: (C) 2009 J. M. Garrido1 Object Oriented Simulation with Java.](https://reader033.fdocuments.us/reader033/viewer/2022042822/56649e415503460f94b339d8/html5/thumbnails/39.jpg)
The Process Interaction Approach
A simulation model using this approach consists of: A definition of the active and passive
entities in the model. A description of how different active
entities are going to interact among themselves, as time passes.
A simulation run consists of creating and starting the passive and active objects.
39(C) 2009 J. M. Garrido
![Page 40: (C) 2009 J. M. Garrido1 Object Oriented Simulation with Java.](https://reader033.fdocuments.us/reader033/viewer/2022042822/56649e415503460f94b339d8/html5/thumbnails/40.jpg)
Advantages of the Process Style of Simulation
Compatible with the Object-Oriented approach to modeling and programming, every process is an active object.
Suitable for modeling large and complex systems.
Java threads are used to implement the active objects in the simulation models.
40(C) 2009 J. M. Garrido
![Page 41: (C) 2009 J. M. Garrido1 Object Oriented Simulation with Java.](https://reader033.fdocuments.us/reader033/viewer/2022042822/56649e415503460f94b339d8/html5/thumbnails/41.jpg)
Process Interaction Approach to Simulation with PsimJ2
A portable library package of Java classes Object-oriented Supports the process interaction approach A good tool for courses, such as:
Object-oriented Simulation Object-oriented design and programming Operating systems Introduction to real-time systems
41(C) 2009 J. M. Garrido
![Page 42: (C) 2009 J. M. Garrido1 Object Oriented Simulation with Java.](https://reader033.fdocuments.us/reader033/viewer/2022042822/56649e415503460f94b339d8/html5/thumbnails/42.jpg)
Applying the Process Interaction Approach to Simulation
The major components in a model are entities, these are modeled as active objects
The active entities have a life of their own, and are called processes
The passive entities are resources and queues The UML Collaboration/Communication
diagram shows the process interactions
42(C) 2009 J. M. Garrido
![Page 43: (C) 2009 J. M. Garrido1 Object Oriented Simulation with Java.](https://reader033.fdocuments.us/reader033/viewer/2022042822/56649e415503460f94b339d8/html5/thumbnails/43.jpg)
Developing Simulation Models of Real-Time Systems
The simulation models are more complex because they need to satisfy the requirements of real-time systems.
A set of tasks are identified in developing such systems.
Identifying these tasks will simplify the
analysis and design phases of building a simulation model of real-time systems.
43(C) 2009 J. M. Garrido
![Page 44: (C) 2009 J. M. Garrido1 Object Oriented Simulation with Java.](https://reader033.fdocuments.us/reader033/viewer/2022042822/56649e415503460f94b339d8/html5/thumbnails/44.jpg)
Developing Models of RTS
The following tasks are defined: Concurrency – Multiple simultaneous activities. Synchronous Communication – Two or more
communicate, where the sender will wait until the receiver gets the message.
Timing Constraints – Describe the time windows during which activities must occur or respond.
Communications Deadlines – Timers are used to place deadlines on how long a process can wait to communicate with another process.
44(C) 2009 J. M. Garrido
![Page 45: (C) 2009 J. M. Garrido1 Object Oriented Simulation with Java.](https://reader033.fdocuments.us/reader033/viewer/2022042822/56649e415503460f94b339d8/html5/thumbnails/45.jpg)
Train-Gate System Example
Train-Gate System consists of a one-directional railway track crossing a road.
The gate at the crossing must be lowered or raised by a Controller system.
Sensors are used to detect entering trains and leaving trains.
The signals from the sensors are sent to a Monitor, which keeps track of the number of trains in the area.
45(C) 2009 J. M. Garrido
![Page 46: (C) 2009 J. M. Garrido1 Object Oriented Simulation with Java.](https://reader033.fdocuments.us/reader033/viewer/2022042822/56649e415503460f94b339d8/html5/thumbnails/46.jpg)
Case Study:Train-Gate System
Train Entry Sensor Train Exit Sensor
MonitorController Gate
Open
CloseOpen/Close Signals
Gate Opened / Closed
Discrete Interarrival Times of Trains
This simulation model is available at:http:cience.kennesaw.edu/~jgarrido/train
46(C) 2009 J. M. Garrido
![Page 47: (C) 2009 J. M. Garrido1 Object Oriented Simulation with Java.](https://reader033.fdocuments.us/reader033/viewer/2022042822/56649e415503460f94b339d8/html5/thumbnails/47.jpg)
Train-Gate System Design and Implementation
The real-time behavior of the Train-Gate System is modeled using Communicating Real-Time State Machines (CRSM). The timing constraints in CRSM are specified in the transitions between states, as shown in the diagram. The system design includes the common set of tasks identified in previous slides. Simulation of the Train-Gate system has been implemented using Psim-J, a Java based discrete-event simulation package. The implementation of the system defines the processes: Controller, Gate, Train, Monitor, and Sensors.
47(C) 2009 J. M. Garrido
![Page 48: (C) 2009 J. M. Garrido1 Object Oriented Simulation with Java.](https://reader033.fdocuments.us/reader033/viewer/2022042822/56649e415503460f94b339d8/html5/thumbnails/48.jpg)
Developing Simulation Models
Two IDEs are currently used to edit, compile and execute programs that implement simulation models:
Eclipse jGRASP Any other you choose
The main requirement is that you have to set Psimj2 (psimj2.jar) as an external library
(C) 2009 J. M. Garrido 48
![Page 49: (C) 2009 J. M. Garrido1 Object Oriented Simulation with Java.](https://reader033.fdocuments.us/reader033/viewer/2022042822/56649e415503460f94b339d8/html5/thumbnails/49.jpg)
Summary
Real-time systems are complex; modeling with CRSM and constructing an OO simulation model enhances the understanding of these systems
Concurrency and synchronization can be analyzed more completely by studying the dynamic behavior of a RTS using simulation
Performance of a RTS can be analyzed using a simulation model
49(C) 2009 J. M. Garrido