MODULE Queue; IMPORT SIM, EVENT, PROCS, RES, GENEP; FROM RES IMPORT Resource, Request, Release, Report, ServicePolicy; FROM PROCS IMPORT Delay, Terminate; FROM RAND1 IMPORT Uniform; VAR Serveur : Resource; Client : PROCS.ProcessType; FinSim : EVENT.EventType; Gener : GENEP.ArrivalProcess; PROCEDURE ProcClient; BEGIN Request (1, Serveur); Delay (Uniform (12.0, 16.0, 2)); Release (1, Serveur); Terminate; END ProcClient; PROCEDURE ProcFinSim; BEGIN Report (Serveur); SIM.Stop; END ProcFinSim; BEGIN EVENT.Create (FinSim, ProcFinSim, 'Fin de la simulation'); PROCS.Create (Client, ProcClient, 2048, 'Un client'); RES.Create (Serveur, Fifo, 3, 'Poste de service'); RES.CollectStat (Serveur); RES.InitStat (Serveur); GENEP.Create (Gener, "Processus d'arrivee"); SIM.Init; EVENT.Schedule (FinSim, 1000.0, NIL); GENEP.StartPoissonArrivalsP (Gener, Client, NIL, 10.0, 1, 0); SIM.Start END Queue.