A compressed PostScript version of this thesis is also available: thesis.ps.gz (345KB) or thesis.zip (344KB)
A thesis submitted to the
School of Graduate Studies
in partial fulfillment of the
requirements for the degree of
Master of Science
St. John's Newfoundland
Simulators provide an economical means of understanding and evaluating the performance of both abstract and real world systems. In addition to being efficient and easy to use, modern day simulators must be able to cope with the demands of increasing complexity within systems. Simulators must also be easily extensible so that the behaviour and performance of a wide variety of systems may be studied.
This report will outline the design and implementation of a utility which integrates an interactive, graphical design tool with a discrete event simulation engine that employs the object-oriented paradigm as a means of combating complexity. Central to the simulation technique is the concept of local time, in which each entity being simulated maintains its own notion of time throughout the simulation. This concept promotes component encapsulation and self-containment thereby facilitating the implementation of distributed event-driven simulators. Although the simulation domain described in this report will consist primarily of digital logic circuits, the simulation techniques should also be amenable to the simulation of any discrete event system.
The graphical user interface front-end to the simulator engine is designed to be easy to use, hence making the underlying simulator engine accessible to a wide audience. The implementation of the interface is loosely integrated with the simulator engine, thereby providing a high degree flexibility between the interface and the simulator itself. The interface and the simulator can each operate as distinct, self-contained applications. As a result, the simulator engine could be configured to employ a different graphical interface and the graphical interface can be adapted for a variety of existing text-based simulator engines.
Once again, I would like to thank my supervisor, Dr. Paul Gillard, for his patience and support over the past three years and for continuing as my supervisor during his sabbatical. His enlightening discussions and flexible style made my graduate program both educational and enjoyable.
I am indebted to the Natural Sciences and Engineering Research Council (NSERC) for their generous financial support during the first two years of my graduate program.
I would also like to thank both Mrs. Jane Foltz and Dr. Wlodek Zuberek for formally approving my admission to Graduate School. In addition, I'd like to thank Dr. Zuberek for gently (but firmly) reminding me of my academic responsibilities after I had resumed full-time employment outside the University prior to the completion of my thesis. His encouragement contributed to the timely completion of this report.
Thanks also go to several other members of the Department of Computer Science, including Dr. Rodrigue Byrne who made several suggestions for improving an earlier version of the implementation and Miss Elaine Boone, whose proofreading skills helped eliminate several typographical and grammatical errors in an earlier draft of this thesis. Of course, I take full responsibility for any mistakes or oversights remaining in this report.
Finally, I would like to express my gratitude to the thousands of individuals responsible for the development and distribution of robust and inexpensive software tools. Freely available operating systems and software packages such as Linux, XFree86, Tcl/Tk, LaTeX, the GNU C++ compiler and related tools contributed significantly to the successful completion of this project.
To my parents