//========================================================== file = gen.c ===== //= A simulation of multiple traffic generators using pointers to functions = //============================================================================= //= Notes: This program is an example for Simulation (Spring 2005). = //=---------------------------------------------------------------------------= //= Build: Standard CSIM build = //=---------------------------------------------------------------------------= //= History: KJC (03/20/05) - Genesis = //============================================================================= //----- Includes -------------------------------------------------------------- #include // Needed for printf() #include "csim.h" // Needed for CSIM18 stuff //----- Constants ------------------------------------------------------------- #define SIM_TIME 4.0e4 // Simulation time #define MAX_N 1000 // Maximum number of generators //----- Globals --------------------------------------------------------------- FACILITY Server; // CSIM facility for server //----- Prototypes ------------------------------------------------------------ void generate(double lambda, double mu); // Generate process void queue1(double service_time); // Queue process void (* gen[MAX_N])(double lambda, double mu); // Pointer to a generate process //============================================================================= //== Main program == //============================================================================= void sim(void) { double lambda; // Mean arrival rate (jobs/sec) double mu; // Mean service rate (jobs/sec int n; // Number of generators int i; // Loop couner // Increase the maximum processes max_processes(1000000); // Iterate for increasing number of generators for (n=25; n<501; n=n+25) { // Create the simulation create("sim"); // Initializations Server = facility("Server for queue"); mu = 100; lambda = (0.90 * mu) / n; for (i=0; i>> Simulation is running (SIM_TIME = %f sec) \n", SIM_TIME); // Initiate generate functions and hold for SIM_TIME for (i=0; i