Semplice esempio di un sistema a coda singola con tempi di inter-arrivo esponenziali negativi e tempi di servizio esponenziali negativi. Il simulatore è realizzato utilizzando il linguaggio Simula; Il programma richiede di inserire la durata della simulazione. Il risultato fornito al termine del run di simulazione è una stima puntuale del tempo di residenza nel sistema. La stima è ottenuta utilizzando tutti i dati raccolti durante la simulazione. Si suggerisce di modificare il simulatore per studiare il comportamneto del sistema al variare del numero di serventi. SIMULATION begin Integer seedg; Integer seeds; Integer usciti; Real a1, S1; Long Real riferimento; Long Real tempo, temporesidenza; Ref(Head) Queue; Ref(server) servente; Process class Generator; begin while true do begin Activate new utente(Time); Hold(negexp(a1,seedg)); end; end; Process class utente(Arrival); Real Arrival; begin if servente.idle then Activate servente after Current; Wait(Queue); usciti:= usciti+1; tempo:= tempo + Time -Arrival; end; Process class server; begin Ref(utente) servito; While true do if not Queue.Empty then begin servito:- Queue.first; servito.Out; Hold(Negexp(S1, seeds)); Activate servito after Current end Else Passivate; end; seedg := 7; seeds := 23; S1 := 4.0; a1 := 2.0; usciti :=0; tempo := 0.0; temporesidenza := 0.0; Outtext("definisci il tempo di simulazione"); OutImage; riferimento := InReal; Queue:- New Head; servente:- New server; Activate servente; Activate new Generator; Hold (riferimento); temporesidenza := tempo/usciti; OutText("tempo medio nel sistema"); OutFix(temporesidenza, 3, 10); OutImage; OutText("numero totale di utenti serviti"); OutInt(usciti, 6); OutImage; end;