3model = Network(
'model');
5node1 = Delay(model,
'Delay');
6node2 = Queue(model,
'Queue1', SchedStrategy.PS);
7node3 = Queue(model,
'Queue2', SchedStrategy.DPS);
9jobclass1 = ClosedClass(model,
'Class1', 2, node1, 0);
10jobclass2 = ClosedClass(model,
'Class2', 1, node1, 0);
12node1.setService(jobclass1, Exp(3));
13node1.setService(jobclass2, Exp(0.5));
15%
this weight assigment
is ignored since the node
is PS
16w1 = 5; node2.setService(jobclass1, Exp(0.1), w1);
17w2 = 1; node2.setService(jobclass2, Exp(1), w2);
19%
this is not ignored since the node
is DPS
20w1 = 1; node3.setService(jobclass1, Exp(0.1), w1);
21w2 = 5; node3.setService(jobclass2, Exp(1), w2);
23P = model.initRoutingMatrix();
25P.set(jobclass1, jobclass1, node1, node2, 0.300000); % (Delay,Class1) -> (Queue1,Class1)
26P.set(jobclass1, jobclass1, node1, node3, 0.700000); % (Delay,Class1) -> (Queue2,Class1)
27P.set(jobclass1, jobclass1, node2, node1, 1.000000); % (Queue1,Class1) -> (Delay,Class1)
28P.set(jobclass1, jobclass1, node3, node1, 1.000000); % (Queue2,Class1) -> (Delay,Class1)
30P.set(jobclass2, jobclass2, node1, node2, 0.700000); % (Delay,Class2) -> (Queue1,Class2)
31P.set(jobclass2, jobclass2, node1, node3, 0.300000); % (Delay,Class2) -> (Queue2,Class2)
32P.set(jobclass2, jobclass2, node2, node1, 1.000000); % (Queue1,Class2) -> (Delay,Class2)
33P.set(jobclass2, jobclass2, node3, node1, 1.000000); % (Queue2,Class2) -> (Delay,Class2)
37% This part illustrates the execution of different solvers
40options = Solver.defaultOptions;
44solver{end+1} = CTMC(model,options);
45solver{end+1} = JMT(model,options);
46solver{end+1} = FLD(model,options);
47solver{end+1} = MVA(model,options);
48solver{end+1} = DES(model,options);
50 fprintf(1,
'SOLVER: %s\n',solver{s}.getName());
51 AvgTable{s} = solver{s}.getAvgTable();