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

« back to all changes in this revision

Viewing changes to queuing/MM1Step4.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
 
 
3
# openwns contains the Simulator class, which is needed for every
 
4
# simulation
 
5
import openwns
 
6
 
 
7
# openws.queuingsystem contains the simulation model called
 
8
# "SimpleMM1" which is used in this example
 
9
import openwns.queuingsystem
 
10
 
 
11
# openwns.evaluation contains the classes requiered to set up
 
12
# measurement probing
 
13
import openwns.evaluation
 
14
 
 
15
### Simulation setup
 
16
#
 
17
# Q: queue with unlimited size
 
18
#
 
19
# W: worker, the job processing time is negative-exponentially
 
20
#    distributed
 
21
#
 
22
# The jobs arrive at the system with an inter arrival time that is
 
23
# negative-exponentially distributed.
 
24
#
 
25
#             ----
 
26
# new jobs --> Q |-->(W)-->
 
27
#             ----
 
28
#
 
29
 
 
30
# create the M/M/1 (step4) simulation model configuration (time in seconds)
 
31
# we reuse step3 and only change the configuration!
 
32
mm1 = openwns.queuingsystem.SimpleMM1Step3(meanJobInterArrivalTime = 0.100,
 
33
                                           meanJobProcessingTime   = 0.099)
 
34
 
 
35
# create simulator configuration
 
36
sim = openwns.Simulator(simulationModel = mm1,
 
37
                        maxSimTime      = 100.0)
 
38
 
 
39
sim.eventSchedulerMonitor = None
 
40
 
 
41
# If an output directory is already present it will be deleted 
 
42
# if you change this to MOVE a present output directory will
 
43
# be ranamed 
 
44
sim.outputStrategy = openwns.simulator.OutputStrategy.DELETE
 
45
 
 
46
# set the configuration for this simulation
 
47
openwns.setSimulator(sim)
 
48
 
 
49
# The name of the measurement source we want to configure
 
50
sourceName = 'SojournTime'
 
51
# Get the root of the SojournTime Probe Bus
 
52
node = openwns.evaluation.createSourceNode(sim, sourceName)
 
53
# We create a Probe Bus that looks like this:
 
54
# MeasurmentSource=>SettlingTimeGuard=>Moments=>PDF
 
55
 
 
56
# The SettlingTimeGuard does not let measurements pass before the simulation time given
 
57
# as a parameter is passed. It is used to assure probing starts when stationary phase
 
58
# is reached
 
59
node.getLeafs().appendChildren(openwns.evaluation.generators.SettlingTimeGuard(5.0))
 
60
# The Moments probe bus does some basic statistical evaluation
 
61
node.getLeafs().appendChildren(openwns.evaluation.generators.Moments())
 
62
# The PDF Probe Bus collects the probability density function 
 
63
# The parameters are the minimum, the maximum and the number of bins in
 
64
# between.
 
65
node.getLeafs().appendChildren(
 
66
    openwns.evaluation.generators.PDF(minXValue = 0.0, maxXValue = 1000.0, resolution = 1000))