# model execution # execution control..... lqns file.*** (complete with extension) # automatically puts output into file.out, or specified file (-o outfile) # invoke: lqns (analytic) OR parasrvn (simulation) OR petrisrvn # (petri-net, needs GreatSPN2.0 tool from Genoa) # options for simulation: # parasrvn -A time/block, %-accuracy-at-95%-confidence, # transient-time-to-skip # e.g. parasrvn -A 1000.,1.,50. # G "This first section id called the General section. This field in quotes is a comment or name for the model... This model is a restricted template for lqns, without activities and parallelism. --- Comments beginning with # define the meaning of the records. --- Example values are given that define an example model. They excercise most but not all of the syntax; you can infer the rest from what is here. --- You can load and run this model with the statement 'lqns template.lqn', the output goes into template.out. --- for explanation of all run-time options of lqns, enter lqns -h --- To use the template, edit the records to represent the information that you want. Delete records that do not apply to your model." #Convergence criterion, iteration limit, print interval, under-relax #Under-relaxation coefficient stabilizes the algorithm if less than 1 0.00001 100 1 0.9 # End of General Information, -1 is the terminator -1 # Processor Information: No of processors or 0 (0 is better) P 0 #p ProcessorName SchedDiscipline [multiplicity, default = 1] # [replication, default = 1] # Discipline = f fifo|r random|p premptive| # h hol or non-pre-empt|s proc-sharing # multiplicity = m value (multiprocessor)|i (infinite) # replication = r value p UserP f i p ReservP f p DBP f p DBDiskP f p ReservDiskP f p CCReqP f i # End of Processor Information -1 # Task Information: No of Tasks or 0 T 0 #t TaskName RefFlag EntryList -1 Processor [multiplicity, default = 1] # [replication, default = 1] # RefFlag = r (reference or user)|n (other) # r type accepts no requests, is a pure client task # optional multiplicity = m value (multiprocessor)|i (infinite) # optional replication count = r value t Users r users -1 UserP m 100 t Reserv n connect interact disconnect -1 ReservP t DB n dbupdate -1 DBP t Netware n netware -1 ReservP t DBDisk n dbDisk -1 DBDiskP t ReservDisk n reservDisk -1 ReservDiskP t CCReq n ccreq -1 CCReqP i # End of Task Information -1 #Entry Information: No. of Entries or 0 E 0 # Entry parameters in three possible formats: # (1) ParameterToken EntryName value # a entry open-arrival-rate # A entry initial-activity-name # (2) ParameterToken EntryName Phase1value Phase2 Phase3 -1 # Tokens and Value Definitions are: # s for HostServiceRequests for EntryName # c for HostServiceCoefficientofVariation # f for PhaseTypeFlag (0 for stochastic requests, 1 for deterministic) # (3) Entry-to-entry parameters in the format # ParameterToken FromEntry ToEntry Phase1Value Phase2 Phase3 -1 # Tokens and Value definitions are: # y for mean SynchronousCalls (no. of rendezvous) # F for ProbForwarding (forward to this entry rather than replying) # z for mean AsynchronousCalls (or no. of sned-no-reply messages) # o for Fanout of calls (to replicated tasks) # i for FanIn of calls (from replicated tasks) s users 0 56 0 -1 y users connect 0 1 0 -1 y users interact 0 6 0 -1 y users disconnect 0 6 0 -1 s connect 0.001 0 0 -1 y connect netware 1 0 0 -1 s interact 0.0014 0 0 -1 y interact netware 1 0 0 -1 y interact ccreq 0.1 0 0 -1 y interact dbupdate 1.15 0 0 -1 s disconnect 0.0001 0.0007 0 -1 y disconnect netware 1 0 0 -1 y disconnect dbupdate 1 0 0 -1 s netware 0.0012 0 0 -1 y netware reservDisk 1.5 0 0 -1 s dbupdate 0.0085 0 0 -1 y dbupdate dbDisk 2 0 0 -1 s ccreq 3 0 0 -1 s reservDisk 0.011 0 0 -1 s dbDisk 0.011 0 0 -1 #End of Entry Information -1 #Optional section for definition of activities # One section for each task that has activities # T taskname # Section for activity parameters # each activity is defined like a one-phase entry, with no -1 at end # : # Section for precedence among activities # a1 -> a2 for sequence # a1 -> a2 & a3 ... AND-fork # a1 & a2 ... -> a3 AND join # a1 & a2 ... -> a3 & a4 ... AND join followed by AND fork # a1 -> a2 + a3