CSIM17 USERS’ GUIDE

CSIM is copyrighted by Microelectronics and Computer Technology, 1985-1994. Its use is covered by the CSIM17 Software License Agreement included with the software. This manual is copyrighted by Mesquite Software, Inc. It may not be copied in any manner without written permission from Mesquite Software, Inc.

INTRODUCTION

CSIM is a process-oriented discrete-event simulation package for use with C or C++ programs. It is implemented as a library of routines which implement all of the necessary operations. The end result is a convenient tool which programmers can use to create simulation programs. A CSIM program models a system as a collection of CSIM processes which interact with each other by using the CSIM structures. The purpose of modeling a system is to produce estimates of time and performance. The model maintains simulated time, so that the model can yield insight into the dynamic behavior of the modeled system.

This document provides a description of:

  • CSIM structures (objects) and the statements that manipulate them
  • Reports available from CSIM
  • Information on compiling, executing and debugging CSIM programs.

    CSIM Objects

    Every CSIM object is implemented in the same manner. For each CSIM structure, the program must have a declaration, which is a pointer to an object (an instance of structure). Before an object can be used, it must be initialized by the initialize function for that kind of object. These serve the same functions as object declarations and constructors in an object-oriented language such as C++.

    The structures provided in CSIM are as follows:

  • Processes - the active entities that request service at facilities, wait for events, etc. (i.e. processes deal with all of the other structures in this list)
  • Facilities - queues and servers reserved or used by processes
  • Storage blocks- resources which can be partially allocated to processes
  • Events - used to synchronize process activities
  • Mailboxes - used for inter-process communications
  • Table structures - used to collect data during the execution of a model
  • Process classes - used to segregate statistics for reporting purposes
  • Streams - streams of random numbers

    It is the processes which mimic the behavior of active entities in the simulated system.

    A list of statements and data structures and constants is also included as an Appendix.

    Syntax Notes

  • All parameters are required.
  • Whenever a parameter is included within double quotes (e.g. “name”), it can also be passed as a pointer to a character array which contains the string.
  • Constants, which are represented by names that are entirely in capital letters, are defined in the header file, “csim.h”.