A simulation model to implement multiple client class server-client ...
A simulation model to implement multiple client class server-client ...
A simulation model to implement multiple client class server-client ...
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
Workloads of N <strong>client</strong> <strong>class</strong><br />
Classifier<br />
Performance<br />
measurements<br />
Queue - 1<br />
Queue – 2<br />
...<br />
Scheduler<br />
Queue – N<br />
Resource allocation<br />
decisions<br />
Shared computing<br />
resources<br />
Shared resource environment<br />
Figure 1: Conceptual structure of multi-<strong>client</strong> <strong>class</strong> system<br />
3. Ability <strong>to</strong> validate the correctness of the <strong>simulation</strong> <strong>model</strong>.<br />
4. Accurate measurements of the system outputs (e.g. response times) of each <strong>client</strong> <strong>class</strong>.<br />
5. Valid <strong>implement</strong>ation of the resource allocation decisions.<br />
6. Accurate average statistics of the required system parameters.<br />
7. Ability <strong>to</strong> simulate variable workload rates over the period of <strong>simulation</strong>.<br />
8. Modifiability, extendibility and scalability.<br />
9. Fast and efficient execution.<br />
3. Simulation environment<br />
One of the main <strong>to</strong>ols available <strong>to</strong> us <strong>to</strong> build a <strong>simulation</strong> environments is discrete event <strong>simulation</strong><br />
[1]. Discrete event <strong>simulation</strong> is widely used <strong>to</strong> test and analyze new systems, policies<br />
before they are been <strong>implement</strong>ed as a production system. Discrete event <strong>simulation</strong> environments<br />
can be <strong>implement</strong>ed by general purpose programming languages (e.g., Java, C#.Net) or<br />
commercial <strong>simulation</strong> <strong>to</strong>ols. As a consequence, in this work we build a Discrete event <strong>simulation</strong><br />
<strong>model</strong> <strong>to</strong> simulate a multi-<strong>client</strong> <strong>class</strong> environment, while achieving the requirements<br />
mentioned in Section 2.<br />
3.1. Brief introduction <strong>to</strong> discrete event <strong>simulation</strong><br />
A discrete event <strong>simulation</strong> (DES) is defined as<br />
”Modeling of systems in which the state variables change only at a discrete set of points in time”<br />
in [1]. A DES <strong>model</strong> consists of entities (e.g., <strong>client</strong>s, queues, and resources), attributes, events<br />
(e.g., <strong>client</strong> arrival and departure), and activities (operation invocations, statistic collection). For<br />
a given time instance, DES <strong>model</strong> has a snapshot of the system, which is updated based on the<br />
events that is scheduled <strong>to</strong> happen in that time instance. Hence, a time advance algorithm is there<br />
<strong>to</strong> keep track of the events that suppose <strong>to</strong> take place in a given time instance chronologically.<br />
These events trigger activities in the system that may in turn produce new events that needs <strong>to</strong><br />
be executed in a future time instance or update the state variables of the system. After, these<br />
events have taken place, the clock is advanced <strong>to</strong> the next time instance and the same process<br />
2