Categories: MSDN / DotNet / Java / Scripts / Linux / PHP Ask - La ask - La Answer

M/M/c queue with C++

Hi everyone:

The following program simulates a M/M/1 queue system. i have some difficulties in changing the program to simulate a M/M/C queue with 3 servers. Can anyone help me to solve this problem?

Thanks in advance for your help

#include <stdio.h>
#include "smpl.h"

void main(void)
{
real Ta = 200; // Mean interarrival time (seconds)
real Ts = 100; // Mean service time
real te = 1.0e6; // Total simulation time
int customer = 1; // Customer id (always '1' for this simulation)
int event; // Event (1 = arrival, 2 = request, 3 = completion)
int server; // Handle for server facility

// Initialize SMPL subsystem
smpl(0, "M/M/1 Queue");

// Initialize server facility (single server)
server=facility("server", 3);

// Schedule arrival event at time 0 to kick-off simulation
schedule(1, 0.0, customer);

// Loop while simulation time is less than te
while (time() < te)
{
// "Cause" the next event on the event list
cause(&event,&customer);

// Process the event
switch(event)
{
case 1: // *** Arrival
schedule(2, 0.0, customer);
schedule(1, expntl(Ta), customer);
break;

case 2: // *** Request Server
if (request(server, customer, 0) == 0)
schedule(3, expntl(Ts), customer);
break;

case 3: // *** Release server
release(server, customer);
break;
}
}

// Output standard SMPL report
report();
}
[1737 byte] By [martial] at [2007-11-11 10:11:54]