21.01.2014 Views

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 ...

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!