//////////////////////////////////////////////////////////////////////////// // Model procesor SIMLIB/C++ // // Testovací model (viz. skripta) // #include "simlib.h" #define minut * (60 * 1.0e3) #define minuty minut #define sekund * 1.0e3 #define sekundy sekund #define milisekund * 1.0 // doba simulace const double TSIM = 30 minut ; // počty objektů const int N_CPU = 3; const int N_DISK = 2; const int N_CHANNEL = 1; const double ARRTM = 9 sekund ; const double PROCTM = 6 sekund ; const double T_SEARCH = 80 milisekund ; const double T_TR = 30 milisekund ; // pomocná funkce: int Uniform(int min, int max) { // bez max return int( Uniform(double(min), double(max/*+1*/)) ); } // deklarace globálních objektů Facility cpu[N_CPU]; Queue q_cpu("q_cpu"); Facility disk[N_DISK]; Facility channel[N_CHANNEL]; Queue q_channel("q_channel"); Store memory("Paměť",128); Histogram table("Doba zpracování", 0, 2 sekundy, 25); class Job : public Process { // třída požadavků double t0; double tcpu; double tio; double deltaT; int mem; int recs; int d; void Behavior() { t0 = Time; Enter(memory,mem); while(tcpu>0) { int i,j; //do { for(i=0; i