Commit 981392a0 authored by rosemaryng's avatar rosemaryng
Browse files

[Retry Full] Added modification on Ding's version for simulating closed class...

[Retry Full] Added modification on Ding's version for simulating closed class queues and relevant jsimgs
parent 9084f434
......@@ -100,10 +100,12 @@ public class Queue extends InputSection {
public static final String FINITE_WAITING = "waiting queue";
public static final String FINITE_RETRIAL = "retry full";
public int retrialCount = 0;
private String[] dropStrategies;
private int size;
private int size; // queue + service
private int maxRunning;
//coolStart is true if there are no waiting jobs when the queue is started
......@@ -126,7 +128,7 @@ public class Queue extends InputSection {
private JobInfoList FJList;
// Backup buffer when the main jobsList is full
private JobInfoList waitingRequests;
// Retrial group when the main jobsLis (primary queue) is full
// Retrial group when the main jobsList (primary queue) is full
private Map<Integer, Double> retrialFullGroup = new HashMap<>() ;
......@@ -502,14 +504,18 @@ public class Queue extends InputSection {
System.out.println("queue size: " + nodeJobsList.getJobsInPrimaryQueue().size() +
" jobsList size: " + jobsList.size()
+ " nodeJobsList size: " + nodeJobsList.size()
+ " globalJobsList total visit: " + netJobsList.getTotalVisitCount());
+ " globalJobsList total visit: " + netJobsList.getTotalVisitCount()
+" retrialFullGroup: " + retrialFullGroup + " total retrials: " + retrialCount);
retrialCount++;
} else {
System.out.println(job.getId() + " current queue size: " + nodeJobsList.getJobsInPrimaryQueue().size());
System.out.println("queue size: " + nodeJobsList.getJobsInPrimaryQueue().size() +
" jobsList size: " + jobsList.size()
+ " nodeJobsList size: " + nodeJobsList.size()
+ " globalJobsList total visit: " + netJobsList.getTotalVisitCount());
+ " globalJobsList total visit: " + netJobsList.getTotalVisitCount()
+ " retrialFullGroup: " + retrialFullGroup + " total retrials: " + retrialCount);
}
......@@ -561,12 +567,13 @@ public class Queue extends InputSection {
// <= size because the arriving job has not been inserted in Queue
// job list but has been inserted in NetNode job list !!
if (infinite || !retrial && nodeJobsList.size() <= size ||
retrial && jobsList.size() <= size) {
retrial && nodeJobsList.getJobsInPrimaryQueue().size() <= size) {
// Queue is not full. Okay.
// System.out.println("current nodeJobsList size: " + nodeJobsList.size());
// if (retrialFullGroup.containsKey(job.getId())) {
// System.out.println(job.getId() + " proceeds.");
// }
if (retrialFullGroup.containsKey(job.getId())) {
System.out.println(job.getId() + " proceeds.");
retrialFullGroup.remove(job.getId());
}
// If parent node is a fork node adds job to FJ info list
......@@ -884,7 +891,7 @@ public class Queue extends InputSection {
* @return
*/
private boolean jobClassHasRequiredImpatience(int jobClassId, ImpatienceType requiredImpatience) {
return impatienceStrategyPerStationClass[jobClassId] != null
return impatienceStrategyPerStationClass != null && impatienceStrategyPerStationClass[jobClassId] != null
&& impatienceStrategyPerStationClass[jobClassId].isImpatienceType(requiredImpatience);
}
......
......@@ -108,6 +108,8 @@ public class LinkedJobInfoList implements JobInfoList {
protected InverseMeasure dropRatePerClass[];
// add rates for retrial
protected InverseMeasure renegingRate;
protected InverseMeasure renegingRatePerClass[];
......
......@@ -633,22 +633,27 @@ public class XMLWriter implements CommonConstants, XMLConstantNames {
// Get the current class and use it to retrieve its impatience type
Object classKey = classes.get(i);
ImpatienceType impatienceType = model.getImpatienceType(stationKey, classKey);
// Based on the ImpatienceStrategy, retrieve the object from the model and write it to XML
switch (impatienceType) {
case RENEGING:
impatienceParams[i] = createRenegingParameter(model, stationKey, classKey);
break;
case BALKING:
impatienceParams[i] = createBalkingParameter(model, stationKey, classKey, classes.size(), i);
break;
default:
// Write a null parameter when no impatience strategy was selected
impatienceParams[i] = new XMLParameter(impatienceClassName, impatiencePath,
model.getClassName(classKey), "null", true);
break;
if (impatienceType != null) { // handling null pointer
// Based on the ImpatienceStrategy, retrieve the object from the model and write it to XML
switch (impatienceType) {
case RENEGING:
impatienceParams[i] = createRenegingParameter(model, stationKey, classKey);
break;
case BALKING:
impatienceParams[i] = createBalkingParameter(model, stationKey, classKey, classes.size(), i);
break;
default:
// Write a null parameter when no impatience strategy was selected
impatienceParams[i] = new XMLParameter(impatienceClassName, impatiencePath,
model.getClassName(classKey), "null", true);
break;
}
} else {
// Write a null parameter when no impatience strategy was selected
impatienceParams[i] = new XMLParameter(impatienceClassName, impatiencePath,
model.getClassName(classKey), "null", true);
}
}
// finally, create node from parameters and append it to the section element
......
This diff is collapsed.
This diff is collapsed.
<?xml version="1.0" encoding="ISO-8859-1" standalone="no"?>
<archive xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" name="Test_QN_191017.jsimg" timestamp="Thu Oct 17 18:50:38 GMT+01:00 2019" xsi:noNamespaceSchemaLocation="Archive.xsd">
<sim disableStatisticStop="false" logDecimalSeparator="," logDelimiter=";" logPath="C:\Users\Giuseppe Serazzi\JMT\" logReplaceMode="0" maxEvents="-1" maxSamples="2000000" name="Test_QN_191017.jsimg" polling="1.0" seed="23000" xsi:noNamespaceSchemaLocation="SIMmodeldefinition.xsd">
<userClass name="Class1" priority="0" referenceSource="Source 1" type="open"/>
<node name="Source 1">
<section className="RandomSource">
<parameter array="true" classPath="jmt.engine.NetStrategies.ServiceStrategy" name="ServiceStrategy">
<refClass>Class1</refClass>
<subParameter classPath="jmt.engine.NetStrategies.ServiceStrategies.ServiceTimeStrategy" name="ServiceTimeStrategy">
<subParameter classPath="jmt.engine.random.Exponential" name="Exponential"/>
<subParameter classPath="jmt.engine.random.ExponentialPar" name="distrPar">
<subParameter classPath="java.lang.Double" name="lambda">
<value>0.2</value>
</subParameter>
</subParameter>
</subParameter>
</parameter>
</section>
<section className="ServiceTunnel"/>
<section className="Router">
<parameter array="true" classPath="jmt.engine.NetStrategies.RoutingStrategy" name="RoutingStrategy">
<refClass>Class1</refClass>
<subParameter classPath="jmt.engine.NetStrategies.RoutingStrategies.RandomStrategy" name="Random"/>
</parameter>
</section>
</node>
<node name="Queue 1">
<section className="Queue">
<parameter classPath="java.lang.Integer" name="size">
<value>-1</value>
</parameter>
<parameter array="true" classPath="java.lang.String" name="dropStrategies">
<refClass>Class1</refClass>
<subParameter classPath="java.lang.String" name="dropStrategy">
<value>drop</value>
</subParameter>
</parameter>
<parameter classPath="jmt.engine.NetStrategies.QueueGetStrategies.FCFSstrategy" name="FCFSstrategy"/>
<parameter array="true" classPath="jmt.engine.NetStrategies.QueuePutStrategy" name="QueuePutStrategy">
<refClass>Class1</refClass>
<subParameter classPath="jmt.engine.NetStrategies.QueuePutStrategies.TailStrategy" name="TailStrategy"/>
</parameter>
<parameter array="true" classPath="jmt.engine.NetStrategies.ImpatienceStrategies.Impatience" name="Impatience">
<refClass>Class1</refClass>
<subParameter classPath="jmt.engine.NetStrategies.ImpatienceStrategies.Reneging" name="Reneging">
<subParameter classPath="jmt.engine.random.DeterministicDistr" name="Deterministic"/>
<subParameter classPath="jmt.engine.random.DeterministicDistrPar" name="distrPar">
<subParameter classPath="java.lang.Double" name="t">
<value>2.0</value>
</subParameter>
</subParameter>
</subParameter>
</parameter>
</section>
<section className="Server">
<parameter classPath="java.lang.Integer" name="maxJobs">
<value>1</value>
</parameter>
<parameter array="true" classPath="java.lang.Integer" name="numberOfVisits">
<refClass>Class1</refClass>
<subParameter classPath="java.lang.Integer" name="numberOfVisits">
<value>1</value>
</subParameter>
</parameter>
<parameter array="true" classPath="jmt.engine.NetStrategies.ServiceStrategy" name="ServiceStrategy">
<refClass>Class1</refClass>
<subParameter classPath="jmt.engine.NetStrategies.ServiceStrategies.ServiceTimeStrategy" name="ServiceTimeStrategy">
<subParameter classPath="jmt.engine.random.Exponential" name="Exponential"/>
<subParameter classPath="jmt.engine.random.ExponentialPar" name="distrPar">
<subParameter classPath="java.lang.Double" name="lambda">
<value>1.0</value>
</subParameter>
</subParameter>
</subParameter>
</parameter>
</section>
<section className="Router">
<parameter array="true" classPath="jmt.engine.NetStrategies.RoutingStrategy" name="RoutingStrategy">
<refClass>Class1</refClass>
<subParameter classPath="jmt.engine.NetStrategies.RoutingStrategies.RandomStrategy" name="Random"/>
</parameter>
</section>
</node>
<node name="Sink 1">
<section className="JobSink"/>
</node>
<measure alpha="0.01" name="Sink 1_Throughput per Sink" nodeType="station" precision="0.03" referenceNode="Sink 1" referenceUserClass="" type="Throughput per Sink" verbose="false"/>
<measure alpha="0.01" name="Queue 1_Reneging Rate" nodeType="station" precision="0.03" referenceNode="Queue 1" referenceUserClass="" type="Reneging Rate" verbose="false"/>
<measure alpha="0.01" name="System Number of Customers" nodeType="" precision="0.03" referenceNode="" referenceUserClass="" type="System Number of Customers" verbose="false"/>
<measure alpha="0.01" name="System Response Time" nodeType="" precision="0.03" referenceNode="" referenceUserClass="" type="System Response Time" verbose="false"/>
<measure alpha="0.01" name="Sink 1_Response Time per Sink" nodeType="station" precision="0.03" referenceNode="Sink 1" referenceUserClass="" type="Response Time per Sink" verbose="false"/>
<connection source="Source 1" target="Queue 1"/>
<connection source="Queue 1" target="Sink 1"/>
</sim>
<jmodel xsi:noNamespaceSchemaLocation="JModelGUI.xsd">
<userClass color="#FF0000FF" name="Class1"/>
<station name="Source 1">
<position rotate="false" x="58.0" y="146.0"/>
</station>
<station name="Queue 1">
<position rotate="false" x="171.0" y="155.0"/>
</station>
<station name="Sink 1">
<position rotate="false" x="337.0" y="137.0"/>
</station>
<parametric classPath="jmt.gui.common.definitions.parametric.ArrivalRateParametricAnalysis" enabled="true">
<field name="Class" value="Class1"/>
<field name="Is single class" value="true"/>
<field name="Steps" value="4"/>
<field name="To" value="2.0"/>
<field name="Type" value="Arrival rates"/>
</parametric>
</jmodel>
<results elapsedTime="0" logDecimalSeparator="," logDelimiter=";" pollingInterval="0.0" xsi:noNamespaceSchemaLocation="Results.xsd">
<measure alpha="0.99" analyzedSamples="4" name="Sink 1_All classes_Throughput per Sink" nodeType="station" precision="0.03" referenceClass="All classes" referenceStation="Sink 1" type="13">
<sample lowerBound="0.19138972976392946" meanValue="0.19448683420885382" upperBound="0.19768582321698416" validity="true"/>
<sample lowerBound="0.641904297118972" meanValue="0.6543842699111562" upperBound="0.6673591384830998" validity="true"/>
<sample lowerBound="0.870454102080119" meanValue="0.8833292310830594" upperBound="0.8965909575937432" validity="true"/>
<sample lowerBound="0.9544856523425828" meanValue="0.9705713492596221" upperBound="0.9872085160351388" validity="true"/>
</measure>
<measure alpha="0.99" analyzedSamples="4" name="Queue 1_All classes_Reneging Rate" nodeType="station" precision="0.03" referenceClass="All classes" referenceStation="Queue 1" type="20">
<sample lowerBound="0.006412787566753246" meanValue="0.00654835142178165" upperBound="0.006689770591080863" validity="true"/>
<sample lowerBound="0.14665809979359695" meanValue="0.150508524538141" upperBound="0.15456658197061035" validity="true"/>
<sample lowerBound="0.5112644600446302" meanValue="0.5220586210595807" upperBound="0.5333183997635033" validity="true"/>
<sample lowerBound="1.0051135797045851" meanValue="1.033045214416444" upperBound="1.0625736371608172" validity="true"/>
</measure>
<measure alpha="0.99" analyzedSamples="4" name="Network_All classes_System Number of Customers" nodeType="" precision="0.03" referenceClass="All classes" referenceStation="Network" type="7">
<sample lowerBound="0.22541140174383362" meanValue="0.2307702608457245" upperBound="0.23612911994761537" validity="true"/>
<sample lowerBound="1.2790901668094736" meanValue="1.3171528445100167" upperBound="1.3552155222105597" validity="true"/>
<sample lowerBound="2.702556434109051" meanValue="2.7843777704726986" upperBound="2.8661991068363464" validity="true"/>
<sample lowerBound="4.099539848330086" meanValue="4.204054096755704" upperBound="4.308568345181322" validity="true"/>
</measure>
<measure alpha="0.99" analyzedSamples="4" name="Network_All classes_System Response Time" nodeType="" precision="0.03" referenceClass="All classes" referenceStation="Network" type="8">
<sample lowerBound="1.0910867410930205" meanValue="1.1137061684576581" upperBound="1.1363255958222958" validity="true"/>
<sample lowerBound="1.4970127207301895" meanValue="1.5287886730957925" upperBound="1.5605646254613954" validity="true"/>
<sample lowerBound="1.906283563354566" meanValue="1.9332240415887652" upperBound="1.9601645198229642" validity="true"/>
<sample lowerBound="2.1314391483634862" meanValue="2.1970178435027585" upperBound="2.262596538642031" validity="true"/>
</measure>
<measure alpha="0.99" analyzedSamples="4" name="Sink 1_All classes_Response Time per Sink" nodeType="station" precision="0.03" referenceClass="All classes" referenceStation="Sink 1" type="12">
<sample lowerBound="1.0910867410930205" meanValue="1.1137061684576581" upperBound="1.1363255958222958" validity="true"/>
<sample lowerBound="1.4970127207301895" meanValue="1.5287886730957925" upperBound="1.5605646254613954" validity="true"/>
<sample lowerBound="1.906283563354566" meanValue="1.9332240415887652" upperBound="1.9601645198229642" validity="true"/>
<sample lowerBound="2.1314391483634862" meanValue="2.1970178435027585" upperBound="2.262596538642031" validity="true"/>
</measure>
</results>
</archive>
<?xml version="1.0" encoding="ISO-8859-1" standalone="no"?>
<archive xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" name="baiscOpenQueueRetryFull-Testing.jsimg" timestamp="Fri May 14 16:08:23 BST 2021" xsi:noNamespaceSchemaLocation="Archive.xsd">
<sim disableStatisticStop="true" logDecimalSeparator="." logDelimiter="," logPath="/Users/rose/JMT" logReplaceMode="0" maxEvents="-1" maxSamples="100000" name="baiscOpenQueueRetryFull-Testing.jsimg" polling="1.0" seed="23000" xsi:noNamespaceSchemaLocation="SIMmodeldefinition.xsd">
<userClass name="Class1" priority="0" referenceSource="Source 1" type="open"/>
<node name="Source 1">
<section className="RandomSource">
<parameter array="true" classPath="jmt.engine.NetStrategies.ServiceStrategy" name="ServiceStrategy">
<refClass>Class1</refClass>
<subParameter classPath="jmt.engine.NetStrategies.ServiceStrategies.ServiceTimeStrategy" name="ServiceTimeStrategy">
<subParameter classPath="jmt.engine.random.Exponential" name="Exponential"/>
<subParameter classPath="jmt.engine.random.ExponentialPar" name="distrPar">
<subParameter classPath="java.lang.Double" name="lambda">
<value>0.5</value>
</subParameter>
</subParameter>
</subParameter>
</parameter>
</section>
<section className="ServiceTunnel"/>
<section className="Router">
<parameter array="true" classPath="jmt.engine.NetStrategies.RoutingStrategy" name="RoutingStrategy">
<refClass>Class1</refClass>
<subParameter classPath="jmt.engine.NetStrategies.RoutingStrategies.RandomStrategy" name="Random"/>
</parameter>
</section>
</node>
<node name="Sink 1">
<section className="JobSink"/>
</node>
<node name="Queue 14">
<section className="Queue">
<parameter classPath="java.lang.Integer" name="size">
<value>4</value>
</parameter>
<parameter array="true" classPath="java.lang.String" name="dropStrategies">
<refClass>Class1</refClass>
<subParameter classPath="java.lang.String" name="dropStrategy">
<value>retry full</value>
</subParameter>
</parameter>
<parameter classPath="jmt.engine.NetStrategies.QueueGetStrategies.FCFSstrategy" name="FCFSstrategy"/>
<parameter array="true" classPath="jmt.engine.NetStrategies.QueuePutStrategy" name="QueuePutStrategy">
<refClass>Class1</refClass>
<subParameter classPath="jmt.engine.NetStrategies.QueuePutStrategies.TailStrategy" name="TailStrategy"/>
</parameter>
<parameter array="true" classPath="jmt.engine.NetStrategies.ImpatienceStrategies.Impatience" name="Impatience">
<refClass>Class1</refClass>
<subParameter classPath="jmt.engine.NetStrategies.ImpatienceStrategies.Impatience" name="Impatience">
<value>null</value>
</subParameter>
</parameter>
</section>
<section className="Server">
<parameter classPath="java.lang.Integer" name="maxJobs">
<value>1</value>
</parameter>
<parameter array="true" classPath="java.lang.Integer" name="numberOfVisits">
<refClass>Class1</refClass>
<subParameter classPath="java.lang.Integer" name="numberOfVisits">
<value>1</value>
</subParameter>
</parameter>
<parameter array="true" classPath="jmt.engine.NetStrategies.ServiceStrategy" name="ServiceStrategy">
<refClass>Class1</refClass>
<subParameter classPath="jmt.engine.NetStrategies.ServiceStrategies.ServiceTimeStrategy" name="ServiceTimeStrategy">
<subParameter classPath="jmt.engine.random.Exponential" name="Exponential"/>
<subParameter classPath="jmt.engine.random.ExponentialPar" name="distrPar">
<subParameter classPath="java.lang.Double" name="lambda">
<value>1.0</value>
</subParameter>
</subParameter>
</subParameter>
</parameter>
</section>
<section className="Router">
<parameter array="true" classPath="jmt.engine.NetStrategies.RoutingStrategy" name="RoutingStrategy">
<refClass>Class1</refClass>
<subParameter classPath="jmt.engine.NetStrategies.RoutingStrategies.RandomStrategy" name="Random"/>
</parameter>
</section>
</node>
<measure alpha="0.01" name="Queue 14_Class1_Queue Time" nodeType="station" precision="0.03" referenceNode="Queue 14" referenceUserClass="Class1" type="Queue Time" verbose="false"/>
<connection source="Source 1" target="Queue 14"/>
<connection source="Queue 14" target="Sink 1"/>
</sim>
<jmodel xsi:noNamespaceSchemaLocation="JModelGUI.xsd">
<userClass color="#FF0000FF" name="Class1"/>
<station name="Source 1">
<position angle="0.0" rotate="false" x="25.0" y="94.0"/>
</station>
<station name="Sink 1">
<position angle="0.0" rotate="false" x="313.0" y="94.0"/>
</station>
<station name="Queue 14">
<position angle="0.0" rotate="false" x="150.0" y="91.0"/>
</station>
</jmodel>
<results elapsedTime="2363" logDecimalSeparator="." logDelimiter="," pollingInterval="1.0" xsi:noNamespaceSchemaLocation="Results.xsd">
<measure alpha="0.99" analyzedSamples="71" discardedSamples="0" finalValue="1.6909103576048825" name="Queue 1_Class1_Queue Time" nodeType="station" precision="0.03" referenceClass="Class1" referenceStation="Queue 1" state="2" type="1">
<sample lastIntervalAvgValue="1.6909103576048825" meanValue="1.6909103576048825" simulationTime="125.08347291636885"/>
<sample lastIntervalAvgValue="0.0" meanValue="1.6909103576048825" simulationTime="125.08347291636885"/>
<sample lastIntervalAvgValue="0.0" meanValue="1.6909103576048825" simulationTime="125.08347291636885"/>
</measure>
</results>
</archive>
<?xml version="1.0" encoding="ISO-8859-1" standalone="no"?>
<archive xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" name="baiscOpenQueueRetryFull.jsimg" timestamp="Sat May 08 20:37:16 BST 2021" xsi:noNamespaceSchemaLocation="Archive.xsd">
<sim disableStatisticStop="false" logDecimalSeparator="." logDelimiter="," logPath="/Users/rose/JMT" logReplaceMode="0" maxEvents="-1" maxSamples="1000000" name="baiscOpenQueueRetryFull.jsimg" polling="1.0" xsi:noNamespaceSchemaLocation="SIMmodeldefinition.xsd">
<userClass name="Class1" priority="0" referenceSource="Source 1" type="open"/>
<node name="Source 1">
<section className="RandomSource">
<parameter array="true" classPath="jmt.engine.NetStrategies.ServiceStrategy" name="ServiceStrategy">
<refClass>Class1</refClass>
<subParameter classPath="jmt.engine.NetStrategies.ServiceStrategies.ServiceTimeStrategy" name="ServiceTimeStrategy">
<subParameter classPath="jmt.engine.random.Exponential" name="Exponential"/>
<subParameter classPath="jmt.engine.random.ExponentialPar" name="distrPar">
<subParameter classPath="java.lang.Double" name="lambda">
<value>0.5</value>
</subParameter>
</subParameter>
</subParameter>
</parameter>
</section>
<section className="ServiceTunnel"/>
<section className="Router">
<parameter array="true" classPath="jmt.engine.NetStrategies.RoutingStrategy" name="RoutingStrategy">
<refClass>Class1</refClass>
<subParameter classPath="jmt.engine.NetStrategies.RoutingStrategies.RandomStrategy" name="Random"/>
</parameter>
</section>
</node>
<node name="Sink 1">
<section className="JobSink"/>
</node>
<node name="Queue 1">
<section className="Queue">
<parameter classPath="java.lang.Integer" name="size">
<value>1</value>
</parameter>
<parameter array="true" classPath="java.lang.String" name="dropStrategies">
<refClass>Class1</refClass>
<subParameter classPath="java.lang.String" name="dropStrategy">
<value>retry full</value>
</subParameter>
</parameter>
<parameter classPath="jmt.engine.NetStrategies.QueueGetStrategies.FCFSstrategy" name="FCFSstrategy"/>
<parameter array="true" classPath="jmt.engine.NetStrategies.QueuePutStrategy" name="QueuePutStrategy">
<refClass>Class1</refClass>
<subParameter classPath="jmt.engine.NetStrategies.QueuePutStrategies.TailStrategy" name="TailStrategy"/>
</parameter>
<parameter array="true" classPath="jmt.engine.NetStrategies.ImpatienceStrategies.Impatience" name="Impatience">
<refClass>Class1</refClass>
<subParameter classPath="jmt.engine.NetStrategies.ImpatienceStrategies.Impatience" name="Impatience">
<value>null</value>
</subParameter>
</parameter>
</section>
<section className="Server">
<parameter classPath="java.lang.Integer" name="maxJobs">
<value>1</value>
</parameter>
<parameter array="true" classPath="java.lang.Integer" name="numberOfVisits">
<refClass>Class1</refClass>
<subParameter classPath="java.lang.Integer" name="numberOfVisits">
<value>1</value>
</subParameter>
</parameter>
<parameter array="true" classPath="jmt.engine.NetStrategies.ServiceStrategy" name="ServiceStrategy">
<refClass>Class1</refClass>
<subParameter classPath="jmt.engine.NetStrategies.ServiceStrategies.ServiceTimeStrategy" name="ServiceTimeStrategy">
<subParameter classPath="jmt.engine.random.Exponential" name="Exponential"/>
<subParameter classPath="jmt.engine.random.ExponentialPar" name="distrPar">
<subParameter classPath="java.lang.Double" name="lambda">
<value>1.0</value>
</subParameter>
</subParameter>
</subParameter>
</parameter>
</section>
<section className="Router">
<parameter array="true" classPath="jmt.engine.NetStrategies.RoutingStrategy" name="RoutingStrategy">
<refClass>Class1</refClass>
<subParameter classPath="jmt.engine.NetStrategies.RoutingStrategies.RandomStrategy" name="Random"/>
</parameter>
</section>
</node>
<measure alpha="0.01" name="Queue 1_Class1_Queue Time" nodeType="station" precision="0.03" referenceNode="Queue 1" referenceUserClass="Class1" type="Queue Time" verbose="false"/>
<connection source="Source 1" target="Queue 1"/>
<connection source="Queue 1" target="Sink 1"/>
</sim>
<jmodel xsi:noNamespaceSchemaLocation="JModelGUI.xsd">
<userClass color="#FF0000FF" name="Class1"/>
<station name="Source 1">
<position angle="0.0" rotate="false" x="25.0" y="94.0"/>
</station>
<station name="Sink 1">
<position angle="0.0" rotate="false" x="313.0" y="94.0"/>
</station>
<station name="Queue 1">
<position angle="0.0" rotate="false" x="150.0" y="91.0"/>
</station>
</jmodel>
<results elapsedTime="585" logDecimalSeparator="." logDelimiter="," pollingInterval="1.0" xsi:noNamespaceSchemaLocation="Results.xsd">
<measure alpha="0.99" analyzedSamples="10000" discardedSamples="0" finalValue="0.0" name="Queue 1_Class1_Queue Time" nodeType="station" precision="0.03" referenceClass="Class1" referenceStation="Queue 1" state="1" type="1">
<sample lastIntervalAvgValue="0.0" meanValue="0.0" simulationTime="29991.02563546379"/>
<sample lastIntervalAvgValue="0.0" meanValue="0.0" simulationTime="29991.02563546379"/>
</measure>
</results>
</archive>
<?xml version="1.0" encoding="ISO-8859-1" standalone="no"?>
<archive xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" name="basicOpenQueue.jsimg" timestamp="Fri Apr 30 11:56:48 BST 2021" xsi:noNamespaceSchemaLocation="Archive.xsd">
<sim disableStatisticStop="false" logDecimalSeparator="." logDelimiter="," logPath="/Users/rose/JMT" logReplaceMode="0" maxEvents="-1" maxSamples="1000000" name="basicOpenQueue.jsimg" polling="1.0" xsi:noNamespaceSchemaLocation="SIMmodeldefinition.xsd">
<userClass name="Class1" priority="0" referenceSource="Source 1" type="open"/>
<node name="Source 1">
<section className="RandomSource">
<parameter array="true" classPath="jmt.engine.NetStrategies.ServiceStrategy" name="ServiceStrategy">
<refClass>Class1</refClass>
<subParameter classPath="jmt.engine.NetStrategies.ServiceStrategies.ServiceTimeStrategy" name="ServiceTimeStrategy">
<subParameter classPath="jmt.engine.random.Exponential" name="Exponential"/>
<subParameter classPath="jmt.engine.random.ExponentialPar" name="distrPar">
<subParameter classPath="java.lang.Double" name="lambda">
<value>0.5</value>
</subParameter>
</subParameter>
</subParameter>
</parameter>
</section>
<section className="ServiceTunnel"/>
<section className="Router">
<parameter array="true" classPath="jmt.engine.NetStrategies.RoutingStrategy" name="RoutingStrategy">
<refClass>Class1</refClass>
<subParameter classPath="jmt.engine.NetStrategies.RoutingStrategies.RandomStrategy" name="Random"/>
</parameter>
</section>
</node>
<node name="Sink 1">
<section className="JobSink"/>
</node>
<node name="Queue 1">
<section className="Queue">
<parameter classPath="java.lang.Integer" name="size">
<value>-1</value>
</parameter>
<parameter array="true" classPath="java.lang.String" name="dropStrategies">
<refClass>Class1</refClass>
<subParameter classPath="java.lang.String" name="dropStrategy">
<value>drop</value>
</subParameter>
</parameter>
<parameter classPath="jmt.engine.NetStrategies.QueueGetStrategies.FCFSstrategy" name="FCFSstrategy"/>
<parameter array="true" classPath="jmt.engine.NetStrategies.QueuePutStrategy" name="QueuePutStrategy">
<refClass>Class1</refClass>
<subParameter classPath="jmt.engine.NetStrategies.QueuePutStrategies.TailStrategy" name="TailStrategy"/>
</parameter>
<parameter array="true" classPath="jmt.engine.NetStrategies.ImpatienceStrategies.Impatience" name="Impatience">
<refClass>Class1</refClass>
<subParameter classPath="jmt.engine.NetStrategies.ImpatienceStrategies.Balking" name="Balking">
<subParameter classPath="jmt.engine.NetStrategies.ServiceStrategies.LoadDependentStrategy" name="LoadDependentStrategy">
<subParameter array="true" classPath="jmt.engine.NetStrategies.ServiceStrategies.LDParameter" name="LDParameter">
<subParameter classPath="jmt.engine.NetStrategies.ServiceStrategies.LDParameter" name="LDParameter">
<subParameter classPath="java.lang.Integer" name="from">
<value>1</value>
</subParameter>
<subParameter classPath="jmt.engine.random.Exponential" name="Exponential"/>
<subParameter classPath="jmt.engine.random.ExponentialPar" name="distrPar">
<subParameter classPath="java.lang.Double" name="lambda">
<value>1.0</value>
</subParameter>
</subParameter>
<subParameter classPath="java.lang.String" name="function">
<value>1</value>
</subParameter>
</subParameter>
</subParameter>
</subParameter>
<subParameter classPath="java.lang.Boolean" name="priorityActivated">
<value>false</value>
</subParameter>
</subParameter>
</parameter>
</section>
<section className="Server">
<parameter classPath="java.lang.Integer" name="maxJobs">
<value>1</value>
</parameter>
<parameter array="true" classPath="java.lang.Integer" name="numberOfVisits">
<refClass>Class1</refClass>
<subParameter classPath="java.lang.Integer" name="numberOfVisits">
<value>1</value>
</subParameter>
</parameter>
<parameter array="true" classPath="jmt.engine.NetStrategies.ServiceStrategy" name="ServiceStrategy">
<refClass>Class1</refClass>
<subParameter classPath="jmt.engine.NetStrategies.ServiceStrategies.ServiceTimeStrategy" name="ServiceTimeStrategy">
<subParameter classPath="jmt.engine.random.Exponential" name="Exponential"/>
<subParameter classPath="jmt.engine.random.ExponentialPar" name="distrPar">
<subParameter classPath="java.lang.Double" name="lambda">
<value>1.0</value>
</subParameter>
</subParameter>
</subParameter>
</parameter>
</section>
<section className="Router">
<parameter array="true" classPath="jmt.engine.NetStrategies.RoutingStrategy" name="RoutingStrategy">
<refClass>Class1</refClass>
<subParameter classPath="jmt.engine.NetStrategies.RoutingStrategies.RandomStrategy" name="Random"/>
</parameter>
</section>
</node>