2% comparison of product-form scheduling policies
4psmodel = Network(
'PS scheduling model');
6node{1} = Delay(psmodel,
'Delay');
7node{2} = Queue(psmodel,
'Queue1', SchedStrategy.PS);
8node{2}.setNumberOfServers(c);
10jobclass{1} = ClosedClass(psmodel,
'Class1', 2, node{1}, 0);
11jobclass{2} = ClosedClass(psmodel,
'Class2', 2, node{1}, 0);
13node{1}.setService(
jobclass{1}, Erlang(3,2));
14node{1}.setService(
jobclass{2}, HyperExp(0.5,3.0,10.0));
16node{2}.setService(
jobclass{1}, Exp(1));
17node{2}.setService(
jobclass{2}, Exp(1));
19P = psmodel.initRoutingMatrix;
20P{1} = Network.serialRouting(node);
21P{2} = Network.serialRouting(node);
24fcfsmodel = Network(
'FCFS scheduling model');
26node{1} = Delay(fcfsmodel,
'Delay');
27node{2} = Queue(fcfsmodel,
'Queue1', SchedStrategy.FCFS);
28node{2}.setNumberOfServers(c);
30jobclass{1} = ClosedClass(fcfsmodel,
'Class1', 2, node{1}, 0);
31jobclass{2} = ClosedClass(fcfsmodel,
'Class2', 2, node{1}, 0);
33node{1}.setService(
jobclass{1}, Erlang(3,2));
34node{1}.setService(
jobclass{2}, HyperExp(0.5,3.0,10.0));
36node{2}.setService(
jobclass{1}, Exp(1));
37node{2}.setService(
jobclass{2}, Exp(1));
39P = fcfsmodel.initRoutingMatrix;
40P{1} = Network.serialRouting(node);
41P{2} = Network.serialRouting(node);
44lcfsprmodel = Network(
'LCFS-PR scheduling model');
46node{1} = Delay(lcfsprmodel,
'Delay');
47node{2} = Queue(lcfsprmodel,
'Queue1', SchedStrategy.LCFSPR);
48node{2}.setNumberOfServers(c);
50jobclass{1} = ClosedClass(lcfsprmodel,
'Class1', 2, node{1}, 0);
51jobclass{2} = ClosedClass(lcfsprmodel,
'Class2', 2, node{1}, 0);
53node{1}.setService(
jobclass{1}, Erlang(3,2));
54node{1}.setService(
jobclass{2}, HyperExp(0.5,3.0,10.0));
56node{2}.setService(
jobclass{1}, Exp(1));
57node{2}.setService(
jobclass{2}, Exp(1));
59P = lcfsprmodel.initRoutingMatrix;
60P{1} = Network.serialRouting(node);
61P{2} = Network.serialRouting(node);
64% This part illustrates the execution of different solvers
66solver{end+1} = CTMC(psmodel);
67solver{end+1} = CTMC(fcfsmodel);
68solver{end+1} = CTMC(lcfsprmodel);
70 fprintf(1,
'MODEL: %s\n',solver{s}.model.getName());
71 AvgTable{s} = solver{s}.getAvgTable();