leeke@cascade.UUCP (02/27/87)
Does anyone know of a PD discrete-event simulation software package based on a standard programming language that is available? Preferebly event-oriented and not process or activity oriented. Pascal or C prefered, but I'll be happy with most anything. Thanks for your help, Steve Leeke -- Steven D. Leeke, Center for Integrated Systems, Stanford University {ucbvax,decvax}!decwrl!glacier!leeke, leeke@cascade.stanford.edu "I suppose they don't use money in the 23rd century?"
brachman@ubc-cs.UUCP (Barry Brachman) (03/08/87)
In article <284@cascade.STANFORD.EDU> leeke@cascade.UUCP (Steven D. Leeke) writes: >Does anyone know of a PD discrete-event simulation software package based on >a standard programming language that is available? Preferebly event-oriented >and not process or activity oriented. Pascal or C prefered, but I'll be happy >with most anything. > >Thanks for your help, > >Steven D. Leeke, Center for Integrated Systems, Stanford University > {ucbvax,decvax}!decwrl!glacier!leeke, leeke@cascade.stanford.edu Over the past year or two I've been working intermittently on a discrete event simulator that is based on the Xinu operating system ("Operating System Design, the Xinu Approach", Douglas Comer, Prentice-Hall, 1984). It runs on top of Unix 4.2/4.3BSD on a Vax or Sun and consists of a library of functions that manage processes and queues, record statistics, and generate variates from several different distributions. The simulator is written in C as is the user's code. All I/O is done using Unix routines (no Xinu I/O stuff is used). (BTW, since almost everything is in C it should be straightforward to port to non-Unix machines.) A simulation program consists of one or more Xinu processes. These processes normally represent servers but they need not. A server usually has one or more queues associated with it. A single server simulation might have a 'producer' process simply put items on a queue while a 'consumer' process removes items from the queue. When the consumer tries to remove an item from an empty queue the process blocks. Eventually the producer should enqueue an item after which the consumer will unblock and continue. Arbitrary data items are put on the queue; the queue management routines simply copy the data. In the producer/consumer example, items placed on the queue might include the value of the simulation clock at the time the item was enqueued and the amount of service time the item requires (i.e., how long the consumer process should wait once the item has been dequeued). Anyhow, there are two problems: 1) I'd have to get Doug Comer's permission. The simulator does not use any code derived from Unix sources so I don't think there would be a problem. 2) The simulator has not been tested extensively. You'd pretty much be on your own, although I'd be very interested in suggestions, bug reports, etc. Also: I'd like to know if there is sufficient interest out there before I go to the trouble of making up a distribution. Any interest? ----- Barry Brachman | {ihnp4!alberta,uw-beaver}!ubc-vision!ubc-cs!brachman Dept. of Computer Science| brachman@cs.ubc.cdn Univ. of British Columbia| brachman%ubc.csnet@csnet-relay.arpa Vancouver, B.C. V6T 1W5 | brachman@ubc.csnet (604) 228-4327
mgb@macs.UUCP (03/11/87)
In article <893@ubc-cs.UUCP>, brachman@ubc-cs.UUCP (Barry Brachman) writes: > Over the past year or two I've been working intermittently on a discrete event > simulator that is based on the Xinu operating system ("Operating System Design, > the Xinu Approach", Douglas Comer, Prentice-Hall, 1984). It runs on top of Unix > 4.2/4.3BSD on a Vax or Sun and consists of a library of functions that manage > processes and queues, record statistics, and generate variates from several > different distributions. The simulator is written in C as is the user's code. > > > Also: I'd like to know if there is sufficient interest out there before I go > to the trouble of making up a distribution. > > Any interest? I'd be interested in seeing this posted.... Michel Branton ...ihnp4!codas!ki4pv!macs!mgb