操作系统之优先数法
#include
using namespace std;
const int maxn = 1000;
/* 短进程优先法 */
struct P{
string s;/// 进程名字
string status; /// 进程当前的状态
int prority;/// 优先数
int need_time; /// 进程处理所需要的时间
int time_remain;/// 还剩余多长时间需要处理
}pcb[maxn];
int n;///总共进程运行的数目
bool cmp(P a,P b)///按照优先数从大到小
{
return a.prority>b.prority;
}
void put()
{
for (int i=1;i<=n;++i)
{
cout<>n;
for (int i=1;i<=n;++i)/// 进程一般从1开始
{
pcb[i].status = "Ready";/// 开始都处于就绪状态
cout<<"请输入第"<>pcb[i].s;
cout<<"请输入第"<>pcb[i].need_time;
cout<<"请输入第"<>pcb[i].prority;
pcb[i].time_remain = pcb[i].need_time;/// 剩余时间,当前没有运行就
}
sort(pcb+1,pcb+1+n,cmp);/// 优先数大优先,进行排序
run();
return 0;
}