/* Simulation for One-Node System */ /* Note that the variables declared below are sufficient for the 2-node system */ #include #include #include #include float et[3]; float t; float min_et,ast; int x1,x2; int arrive,gone; int e; int i; float ia[40]={1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,}; float s1[30]={2.1,2.0,2.0,2.0,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51, 0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51,0.51, 0.51,0.51,0.51,0.51,0.51,0.51}; float s2[25]={1.0,2.1,3.0,3.0,3.5,3.5,0.1,0.2,0.3,0.43,0.43,0.43,0.43,0.43, 0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43,0.43}; int cta, ct1, ct2; float ar_t[40]; float de_t[15]; void initialization(),triggering_event(); void new_arrival(),departure1(),departure2(); main() { initialization(); while ( gone < 15 ) { triggering_event(); t = et[e]; if(e==0) new_arrival(); else departure1(); printf("\n%6.2f ",t); if(e==0) printf(" a "); else printf(" d1 "); printf(" %4d %3d ",x1,gone); printf(" (a,%5.2f)",et[0]); if(x1>0) printf(" (d1,%5.2f)",et[1]); } ast=0; for(i=0;i<15;i++) ast+=(de_t[i]-ar_t[i]); ast/=15; printf("\n------------------------------------------------------------"); printf("\n AST = %6.3f",ast); printf("\n TP = %6.3f\n",15/t); } void initialization() { t=0.0; x1=0; cta=ct1=0; arrive=gone=0; et[0]=t+ia[cta]; cta++; et[1]=0; printf("\n t e' x1 gone Event List"); printf("\n------------------------------------------------------------"); printf("\n%6.2f ",t); printf(" INIT "); printf(" %4d %3d ",x1,gone); printf(" (a,%5.2f)",et[0]); } void triggering_event() { e=0; min_et = et[0]; if(x1>0 && et[1]0) { et[1]=t+s1[ct1]; ct1++; } de_t[gone] = t; gone = gone+1; }