📄 multifeedback.cpp
字号:
#include<iostream>
//#include<conio.h>
#include<algorithm>
#include<stdlib.h>
#include<iomanip>
using namespace std;
struct process
{
int bt,at,pr,no,wt,att;
};bool func3(process a ,process b)
{
if(a.pr!=b.pr)
return a.pr<=b.pr;
else if(a.pr==b.pr)
return a.at<=b.at;
}bool func(process a ,process b)
{
return a.at<b.at;
}
int front=-1,rear=-1;
//enqueue
void enqueue(process q[],process v)
{
rear=rear+1;
q[rear]=v;
if(front==-1)
front=0;
}
//dequeue
process dequeue(process q[])
{
process v=q[front];
if(front==rear)
front=rear=-1;
else
front=front+1;
return v;
}
//isempty
int isempty_queue(process q[])
{
if(front==-1)
return 1;
else
return 0;
}int main(){int n,i,j,loop=0;process p[100],process s[100];process q1[100],q2[100],q3[100];for(i=0;i<n;i++)
{
p[i].bt=rand()%15;
p[i].at=i;
p[i].pr=rand()%(n);
p[i].no=i+1;
}
//process descriptionfor(i=0;i<n;i++)
s[i]=p[i];for(i=0;i<n;i++)
ex[i]=0;
sort(p,p+n,func3);
time=0;
cout<<"order of execution "<<" ";
while(isempty_queue(process q[]))
{
j=0;
while(p[j].at>time || ex[j]==1)
j++;
//cout<<p[j].no<<" ";
p[j].wt=time-p[j].at;
ex[j]=1;
awt=awt+p[j].wt;
time=time+p[j].bt; cout<<p[j].no<<"("<<time<<")"<<" ";
att=att+time-p[j].at;
p[j].att=time-p[j].at;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -