~thomas-philipp/openwns-systemtest-library/queueing-experimental

« back to all changes in this revision

Viewing changes to queuing/MM1Step1.py

  • Committer: Maciej Muehleisen
  • Date: 2008-11-01 22:21:03 UTC
  • Revision ID: mue@comnets.rwth-aachen.de-20081101222103-nrdh43je18ta98tt
Initial commit. Steps 5 and 6 still need work.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
# import the necessary modules
 
2
# begin example "wns.queuingsystem.mm1step1.py.example"
 
3
 
 
4
# openwns contains the Simulator class, which is needed for every
 
5
# simulation
 
6
import openwns
 
7
# ^ this import reads the file __init__.py in
 
8
#   ./sandbox/*/lib/PyConfig/openwns/__init__.py
 
9
# There the class definition for Simulator is set,
 
10
# which is a class OpenWNS defined in simulator.py
 
11
 
 
12
# openws.queuingsystem contains the simulation model called
 
13
# "SimpleMM1" which is used in this example
 
14
import openwns.queuingsystem
 
15
# ^ this import reads the file in
 
16
#   ./sandbox/*/lib/PyConfig/openwns/queuingsystem.py
 
17
# which has been copied into the sandbox by "./playground install" from
 
18
#   ${OPENWNSBASE}/framework/library/PyConfig/openwns/queuingsystem.py
 
19
#   ${COMNETSWNSBASE}/framework/libwns--main--1.0/PyConfig/openwns/queuingsystem.py
 
20
# It is interesting and good for your learning of openwns
 
21
# to have a look into that file and understand Python classes
 
22
# and constructors (__init__)
 
23
 
 
24
### Simulation setup
 
25
#
 
26
# Q: queue with unlimited size
 
27
#
 
28
# W: worker, the job processing time is negative-exponentially
 
29
#    distributed
 
30
#
 
31
# The jobs arrive at the system with an inter arrival time that is
 
32
# negative-exponentially distributed.
 
33
#
 
34
#             ----
 
35
# new jobs --> Q |-->(W)-->
 
36
#             ----
 
37
#
 
38
 
 
39
 
 
40
# create the M/M/1 simulation model configuration (time in seconds)
 
41
mm1 = openwns.queuingsystem.SimpleMM1Step1(meanJobInterArrivalTime = 0.100,
 
42
                                           meanJobProcessingTime   = 0.099)
 
43
# ^ here a Python object is created and stored in the "mm1" variable
 
44
# The class definition is in queuingsystem.py (see location above)
 
45
# By this syntax the constructor (__init__) is called with two parameters.
 
46
# The constructor sets the parameters into member variables
 
47
 
 
48
# create simulator configuration
 
49
sim = openwns.Simulator(simulationModel = mm1,
 
50
                        maxSimTime      = 10.0)
 
51
# ^ This object is created from a class Simulator defined in
 
52
# ./framework/library/PyConfig/openwns/__init__.py
 
53
 
 
54
sim.eventSchedulerMonitor = None
 
55
 
 
56
# set the configuration for this simulation
 
57
openwns.setSimulator(sim)
 
58
# ^ function defined in
 
59
# ./framework/library/PyConfig/openwns/simulator.py
 
60
 
 
61
# after reading all this, the Python interpreter,
 
62
# which is embedded inside the compiled openwns core,
 
63
# has all variables in memory.
 
64
# The contents are now available in "PyConfig Views"
 
65
# The simulation core then starts to setup the C++ class objects
 
66
# and hands over a PyConfig subview to each object,
 
67
# each specific for this particular object.