亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來(lái)到蟲(chóng)蟲(chóng)下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲(chóng)蟲(chóng)下載站

?? smpl.cpp

?? smpl仿真函數(shù)庫(kù)
?? CPP
?? 第 1 頁(yè) / 共 2 頁(yè)
字號(hào):
        else
          { /* facility busy - find server with lowest-priority user  */
	    k=f+2; j=L1[f]+f+1;  /* indices of server elements 1 & n  */
	    for (i=f+2; i<=j; i++) if (L2[i]<L2[k]) then k=i;
            if (pri<=L2[k])
              then
                { /* requesting token's priority is not higher than   */
                  /* that of any user: enqueue requestor & return r=1 */
                  enqueue(f,tkn,pri,event,0.0); r=1;
		  if (tr) then msg(7,tkn,fname(f),1,L3[f]);
		}
              else
                { /* preempt user of server k.  suspend event, save   */
                  /* event number & remaining event time, & enqueue   */
                  /* preempted token.  If remaining event time is 0   */
                  /* (preemption occurred at the instant release was  */
                  /* to occur, set 'te' > 0 for proper enqueueing     */
                  /* (see 'enlist').  Update facility & server stati- */
                  /* stics for the preempted token, and set r = 0 to  */
                  /* reserve the facility for the preempting token.   */
                  if (tr) then msg(8,tkn,fname(f),2,0);
		  j=L1[k]; i=suspend(j); ev=L3[i]; te=L5[i]-clock;
                  if (te==0.0) then te=1.0e-99; put_elm(i);
		  enqueue(f,j,L2[k],ev,te);
                  if (tr) then
                    {msg(10,-1,"",j,L3[f]); msg(12,-1,fname(f),tkn,0);}
                  L3[k]++; L4[k]+=clock-L5[k];
                  L2[f]--; L4[f+1]++; r=0;
                }
	  }
      if (r==0) then
        { /* reserve server k of facility */
          L1[k]=tkn; L2[k]=pri; L5[k]=clock; L2[f]++;
        }
      return(r);
    }

/*------------------------  RELEASE FACILITY  ------------------------*/
void release( int f, int tkn )
    {
      int i,j=0,k,m; real te;
      /* locate server (j) reserved by releasing token */
      k=f+1+L1[f];     /* index of last server element */
      for (i=f+2; i<=k; i++) if (L1[i]==tkn) then {j=i; break;}
      if (j==0) then error(7,NULL); /* no server reserved */
      L1[j]=0; L3[j]++; L4[j]+=clock-L5[j]; L2[f]--;
      if (tr) then msg(9,tkn,fname(f),0,0);
      if (L3[f]>0) then
	{ /* queue not empty:  dequeue request ('k' =  */
          /* index of element) & update queue measures */
          k=L1[f+1]; L1[f+1]=L1[k]; te=L4[k];
          L5[f+1]+=L3[f]*(clock-L5[f]); L3[f]--; L4[f]++; L5[f]=clock;
          if (tr) then msg(11,-1,"",L2[k],L3[f]);
          if (te==0.0) then
            then
              { /* blocked request:  place request at head of event   */
                /* list (so its facility request can be re-initiated  */
                /* before any other requests scheduled for this time) */
		L5[k]=clock; L1[k]=evl; evl=k; m=4;
              }
            else
              { /* return after preemption:  reserve facility for de- */
		/* queued request & reschedule remaining event time   */
                L1[j]=L2[k]; L2[j]=(int)L5[k]; L5[j]=clock; L2[f]++;
                if (tr) then msg(12,-1,fname(f),L2[k],0);
                L5[k]=clock+te; enlist(&evl,k); m=5;
              }
          if (tr) then msg(m,-1,"",L3[k],0);
	}
    }

/*-----------------------  GET FACILITY STATUS  ----------------------*/
status( int f )
    {
      return(L1[f]==L2[f]? 1:0);
    }

/*--------------------  GET CURRENT QUEUE LENGTH  --------------------*/
inq( int f )
    {
      return(L3[f]);
    }

/*--------------------  GET FACILITY UTILIZATION  --------------------*/
real U( int f )
    {
      int i; real b=0.0,t=clock-start;
      if (t>0.0) then
        {
          for (i=f+2; i<=f+L1[f]+1; i++) b+=L4[i];
          b/=t;
        }
      return(b);
    }

/*----------------------  GET MEAN BUSY PERIOD  ----------------------*/
real B( int f )
    {
      int i,n=0; real b=0.0;
      for (i=f+2; i<=f+L1[f]+1; i++) {b+=L4[i]; n+=L3[i];}
		return((n>0)? b/n:b);
    }

/*--------------------  GET AVERAGE QUEUE LENGTH  --------------------*/
real Lq( int f )
    {
      real t=clock-start;
      return((t>0.0)? (L5[f+1]/t):0.0);
    }

/*-----------------------  TURN TRACE ON/OFF  ------------------------*/
void trace( int n ) {
   switch(n) {
	  case 0: tr=0; break;
	  case 1:
	  case 2:
	  case 3: tr=n; tl=-1.0; break;
	 default: break;
	}
}

/*--------------------  GENERATE TRACE MESSAGE  ----------------------*/
void msg(int n,int i,char *s,int q1,int q2)
	 {
		static char *m[14] = {"",  "SCHEDULE", "CAUSE", "CANCEL",
		  "   RESCHEDULE","   RESUME", "   SUSPEND", "REQUEST", "PREEMPT",
		  "RELEASE", "   QUEUE", "   DEQUEUE", "   RESERVE", "FACILITY" };
		if (clock>tl)     /* print time stamp (if time has advanced) */
		  then {tl=clock; fprintf(opf,"  time %-12.3f  ",clock);}
		  else fprintf(opf,"%21s",m[0]);
		if (i>=0)         /* print token number if specified */
		  then fprintf(opf,"--  token %-4d  -- ",i);
		  else fprintf(opf,"--              -- ");
		fprintf(opf,"%s %s",m[n],s);  /* print basic message */
		switch(n)
		  { /* append qualifier */
			 case 1:
			 case 2:
			 case 3:
          case 4:
          case 5:
          case 6:  fprintf(opf," EVENT %d",q1); break;
          case 7:
          case 8:  switch(q1)
                     {
                       case 0: fprintf(opf,":  RESERVED"); break;
                       case 1: fprintf(opf,":  QUEUED  (inq = %d)",q2);
                               break;
                       case 2: fprintf(opf,":  INTERRUPT"); break;
                       default: break;
                     }
                   break;
          case 9:  break;
          case 10:
          case 11: fprintf(opf," token %d  (inq = %d)",q1,q2); break;
          case 12: fprintf(opf," for token %d",q1); break;
          case 13: fprintf(opf,":  f = %d",q1); break;
          default: break;
        }
      fprintf(opf,"\n"); end_line();
	 }


/*-------------------------  TRACE LINE END  -------------------------*/
void end_line()
  {
	 if ((--lft)==0) then
		{ /* end of page/screen.  for trace 1, advance page if print- */
		  /* er output;  screen output is free-running.  for trace 2, */
		  /* pause on full screen;  for trace 3, pause after line.    */
		  switch(tr)
			 {
				case 1: if (opf==display)
							 then lft=sl;
							 else endpage();
						  break;
				case 2: if (mtr)
							 then {putchar('\n'); lft=sl; pause();}
							 else endpage();
						  break;
				case 3: lft=sl; break;
			 }
		}
	 if (tr==3) then pause();
  }



/*-----------------------------  PAUSE  ------------------------------*/
void pause(void)
  { /* pause execution via 'mtr' call (if active) */
 /* if (mtr) then mtr(tr,1); else */ getch();
  }

/*------------------  DISPLAY ERROR MESSAGE & EXIT  ------------------*/
void error( int n, char *s ) {
  FILE *dest;
  static char
  *m[8]= { "Simulation Error at Time %.3f \n",
			  "Empty Element Pool \n",
			  "Empty Name Space \n",
			  "Facility Defined After Queue/Schedule \n",
			  "Negative Event Time \n",
			  "Empty Event List \n",
			  "Preempted Token Not in Event List \n",
			  "Release of Idle/Unowned Facility \n" };

  dest=opf;
  while (1)
  {
	  fprintf(dest,"\n*** %s%.3f\n",m[0],clock);
	  if (n) then fprintf(dest,"    %s\n",m[n]);
	  if (s!=NULL) then fprintf(dest,"     %s\n",s);
	  if (dest==display) then break; else dest=display;
  }
  if (opf!=display) then report();
  exit(0);
  //sprintf ( ss, m [ 0 ], clock );
  //if ( n ) strcat ( ss, m [ n ] );
  //strcat ( ss, s );
  //MessageBox ( 0, ss, "ERRO", MB_ICONHAND | MB_OK );
} // error

/*----------------------  RETURN CLOCK POINTER  ----------------------*/
real *p_time(void)
  { /* This function is used by 'dis' to con- */
	 /* trol updating of time-based displays   */
	 return(&clock);
  }

/*-----------------  GET LAST QUEUE ENTRY/EXIT TIME  -----------------*/
real qext( int f )
    { /* This function is used by the time series display module. */
      return(L5[f]);
    }


/*------------------------  GENERATE REPORT  -------------------------*/
void report( void )
  {
	 newpage();
	 reportf();
	 endpage();
  }


/*--------------------  GENERATE FACILITY REPORT  --------------------*/
void reportf( void )
  {
	 int f;
	 if ((f=fchn)==0)
		then fprintf(opf,"\nno facilities defined:  report abandoned\n");
		else
		  { /* f = 0 at end of facility chain */
			 while(f) {f=rept_page(f); if (f>0) then endpage();}
		  }
  }

/*----------------------  GENERATE REPORT PAGE  ----------------------*/
int rept_page(int fnxt)
	 {
		int f,i,n; char fn[19];
		static char *s[7]= {
		  "smpl SIMULATION REPORT", " MODEL: ", "TIME: ", "INTERVAL: ",
		  "MEAN BUSY     MEAN QUEUE        OPERATION COUNTS",
		  " FACILITY          UTIL.    ",
		  " PERIOD        LENGTH     RELEASE   PREEMPT   QUEUE" };
		fprintf(opf,"\n%51s\n\n\n",s[0]);
		fprintf(opf,"%-s%-54s%-s%11.3f\n",s[1],mname(),s[2],clock);
      fprintf(opf,"%68s%11.3f\n\n",s[3],clock-start);
      fprintf(opf,"%75s\n",s[4]);
      fprintf(opf,"%s%s\n",s[5],s[6]);
      f=fnxt; lft-=8;
      while(f && lft--)
        {
			 n=0; for (i=f+2; i<=f+L1[f]+1; i++) n+=L3[i];
          if (L1[f]==1)
            then sprintf(fn,"%s",fname(f));
				else sprintf(fn,"%s[%d]",fname(f),L1[f]);
          fprintf(opf," %-17s%6.4f %10.3f %13.3f %11d %9d %7d\n",
            fn,U(f),B(f),Lq(f),n,(int)L4[f+1],(int)L4[f]);
			 f=L2[f+1];
		  }
      return(f);
    }

/*---------------------------  COUNT LINES  --------------------------*/
int lns( int i)
	 {
		lft-=i;  if (lft<=0) then endpage();
		return(lft);
	 }

/*----------------------------  END PAGE  ----------------------------*/
void endpage()
  {
	 int c;
	 if (opf==display)
		then
		  { /* screen output: push to top of screen & pause */
			 while(lft>0) {putc('\n',opf); lft--;}
			 printf("\n[ENTER] to continue:");  getchar();
		 /* if (mtr) then clr_scr(); else */ printf("\n\n");
		  }
		else if (lft<pl) then putc(FF,opf);
	 newpage();
  }

/*----------------------------  NEW PAGE  ----------------------------*/
void newpage( void )
  { /* set line count to top of page/screen after page change/screen  */
	 /* clear by 'smpl', another SMPL module, or simulation program    */
	 lft=(opf==display)? sl:pl;
  }

/*------------------------  REDIRECT OUTPUT  -------------------------*/
FILE *sendto(FILE *dest)
	 {
      if (dest!=NULL) then opf=dest;
      return(opf);
	 }



// end smpl.c

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
中文字幕av免费专区久久| 欧美日韩一区 二区 三区 久久精品| 国产99精品视频| 91国产福利在线| 日韩午夜激情视频| 日本一区二区三区四区| 一个色妞综合视频在线观看| 麻豆91精品91久久久的内涵| 国产精品白丝jk黑袜喷水| 在线观看不卡一区| 日韩免费在线观看| 亚洲欧美日韩系列| 免费观看成人av| 97精品久久久久中文字幕| 欧美日韩成人高清| 国产女人aaa级久久久级| 亚洲国产毛片aaaaa无费看 | 91女神在线视频| 欧美日本国产视频| 中文字幕乱码一区二区免费| 丝袜美腿成人在线| 成人性生交大片免费看视频在线 | 亚洲国产成人91porn| 国产一区二区不卡在线| 欧美日韩一二区| 国产精品久久久一本精品 | 91精品国产高清一区二区三区蜜臀 | 中文字幕一区二区5566日韩| 日韩成人av影视| 91视频在线观看免费| 精品国产精品网麻豆系列| 夜夜嗨av一区二区三区四季av| 久久不见久久见免费视频1| 色综合天天综合在线视频| 国产欧美一区二区精品久导航 | 在线观看av一区| 国产日韩欧美综合在线| 青娱乐精品在线视频| 在线免费观看不卡av| 国产精品无人区| 精品一区二区综合| 69堂成人精品免费视频| 一区二区三区中文字幕精品精品 | 国产三级久久久| 蜜臀久久久久久久| 欧美性xxxxxxxx| 亚洲图片激情小说| 国产精品91一区二区| 欧美一级欧美一级在线播放| 亚洲综合男人的天堂| 99久久99久久精品免费观看| 国产亚洲视频系列| 久久精品国产99久久6| 51精品国自产在线| 天堂一区二区在线免费观看| 久久综合九色综合欧美就去吻 | 丝袜a∨在线一区二区三区不卡| 91原创在线视频| 中文字幕二三区不卡| 国产美女娇喘av呻吟久久| 国产拍揄自揄精品视频麻豆| 国产91高潮流白浆在线麻豆| 国产精品久久夜| 欧美无人高清视频在线观看| 国产一区二区久久| 日韩一区二区在线观看视频播放| 亚洲线精品一区二区三区八戒| 91国偷自产一区二区开放时间| 国产精品全国免费观看高清| 国产成人午夜片在线观看高清观看| 精品国产一区二区三区av性色| 久久er精品视频| 26uuu亚洲| 国产成人精品一区二区三区四区| 久久久久久综合| 国产999精品久久久久久绿帽| 国产亚洲制服色| 高清成人免费视频| 日韩一区在线免费观看| 99国产精品99久久久久久| 日韩理论片在线| 91久久久免费一区二区| 亚洲高清免费视频| 欧美久久久久久久久| 日本欧美一区二区三区| 精品电影一区二区| 国产不卡视频在线播放| 国产精品视频一二三区| 99久久精品国产精品久久| 亚洲欧美日韩国产中文在线| 精品污污网站免费看| 美日韩一区二区| 国产亚洲欧美一级| av爱爱亚洲一区| 亚洲不卡在线观看| 欧美一区二区三区免费观看视频 | 欧美老肥妇做.爰bbww视频| 日韩激情在线观看| 久久老女人爱爱| 91视频国产观看| 图片区小说区区亚洲影院| 亚洲精品在线电影| 成人av电影免费在线播放| 亚洲影院免费观看| 欧美sm美女调教| aaa国产一区| 视频精品一区二区| 久久久久久影视| 欧洲一区二区三区免费视频| 青青草国产成人99久久| 国产三级精品视频| 欧美日韩极品在线观看一区| 国产一区二区看久久| 亚洲精品久久7777| 欧美成人一区二区三区| 91亚洲永久精品| 免费一区二区视频| 亚洲人成网站精品片在线观看| 成人在线综合网| 国产suv精品一区二区三区| 制服丝袜中文字幕一区| 欧美大片日本大片免费观看| 日韩欧美一级精品久久| 久久精品一区二区三区不卡牛牛| 欧美r级在线观看| 久久丝袜美腿综合| 亚洲日本一区二区| 丝袜脚交一区二区| 国产69精品久久久久毛片| 91久久精品一区二区二区| 91毛片在线观看| 精品久久久久久久久久久久包黑料 | 国产精品一区二区三区网站| 亚洲精品成人悠悠色影视| 欧美精品一区二区三区蜜臀| 欧美在线一二三四区| 国产99久久久精品| 婷婷丁香久久五月婷婷| 国产精品白丝在线| 久久香蕉国产线看观看99| 欧美肥妇free| 色综合天天综合网国产成人综合天| 久久国产综合精品| 一级中文字幕一区二区| 国产欧美一区二区在线观看| 欧美一级精品大片| 日本高清不卡aⅴ免费网站| 国产河南妇女毛片精品久久久 | 精品福利av导航| 欧美日韩精品欧美日韩精品| 99久久精品国产网站| 国产在线不卡一区| 日本欧美一区二区三区乱码| 亚洲最大成人综合| 国产精品美女久久久久aⅴ| 久久众筹精品私拍模特| 日韩欧美在线不卡| 欧美日韩一区高清| 91啪在线观看| 99久久伊人精品| 成人性生交大合| 国产精品一卡二| 国产永久精品大片wwwapp| 蜜臀av亚洲一区中文字幕| 亚洲电影一级黄| 亚洲国产精品麻豆| 亚洲国产综合人成综合网站| 亚洲精品日韩综合观看成人91| 国产精品福利一区| 国产精品久久久久影院色老大| 国产视频一区在线观看| 久久这里只有精品首页| 欧美精品一区二区三区蜜桃视频| 欧美一区午夜精品| 欧美一级免费观看| 日韩欧美在线123| 91精品国产91久久久久久一区二区| 欧美丝袜第三区| 欧美日韩免费观看一区二区三区| 欧美午夜一区二区| 欧美午夜一区二区三区| 欧美视频一区二区三区| 欧美色爱综合网| 欧美精品免费视频| 欧美丰满少妇xxxxx高潮对白| 欧美一级在线观看| 欧美xxxx在线观看| 国产成人免费视频精品含羞草妖精| 2021国产精品久久精品| 色婷婷国产精品| 欧美精品在线观看一区二区| 男女激情视频一区| 国产精品久久久一本精品| 91国内精品野花午夜精品| 免费国产亚洲视频| 国产精品污污网站在线观看| 懂色av一区二区三区免费看| 亚洲私人黄色宅男| 欧美一区二区三区精品| 91免费国产在线|