📄 mm1.c
字号:
#include "smpl.h"
extern smpl(int m,char * s);
extern facility(char *s,int n);
extern request(int f,int tkn,int pri);
extern cause(int *ev,int *tkn);
extern schedule(int ev,real te,int tkn);
extern release(int f,int tkn);
extern report();
extern real expntl(real x);
/*main ()
{
//Ta为顾客到达的平均时间间隔
//Ts为平均服务时间,Te为仿真器运行时间
//ws为顾客在系统中平均逗留时间
float Ta=0.625, Ts=0.250, Te=200000.0, span[200000], ws=0.0;
int customer=1, event, server, count=0, l=0;
smpl(1, "M/M/1 Queue");//初始化
server=facility("server", 1);//定义服务窗
schedule(1, expntl(Ta), customer);//调度第一个顾客到达事件
while (time()<Te)
{
cause(&event, &customer);//取出第一个时间
switch(event)
{
case 1://顾客到达
span[l++]=time();
schedule(2, 0.0, customer);//调度向服务窗申请
schedule(1, expntl(Ta), customer);//调度下一个顾客到达
break;
case 2://服务请求
if (request(server, customer, 0)==0) //请求成功
{ schedule(3, expntl(Ts), customer);//调度服务完成事件
}
break;
case 3://服务完成
span[count]=time()-span[count];
count++;
release(server, customer);//释放服务窗
break;
default:
break;
}
}
report();//报告结果
for(l=0;l<=count-3;l++)
{
ws=ws+span[l];
}
printf("\n Ws=%f",ws/(count-2)); //显示顾客平均逗留时间
printf("\n Ls=%f\n\n",Lq(server)+0.4);//显示数据集中器内分组的平均分组数
}
*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -