资源简介
一个最基本的实现..很多内容没有考虑,大家可以在这个基础上再添加自己需要的操作
代码片段和文件信息
#include
using namespace std;
int i; //循环数
int pNUM=5; //进程数
struct PCB //声明结构体PCB
{
int id;
int p; //priority
int cputime; //进程占用CPU时间
int alltime; //进程还需要占用CPU的时间
int state; //0=就绪 1=完成
}process[5]={{19030}{218030}{330030}{413030}{524030}};
//定义结构体数组变量process[]并初始化
int maxp() //求出优先权最高的ID
{
int maxpID=process[0].id;
int pValue=process[0].p;
for(i=1;i if(process[i].p>pValue)
{
maxpID=process[i].id;
pValue=process[i].p;
}
return maxpID;
}
void next() //下一次调度的状态
{
int m=maxp();
for(i=0;i if(process[i].id==m) //判断是否为优先权最高ID
{
process[i].p=process[i].p-3; //优先权最高ID的优先权-3
process[i].cputime++; //cuptime+1
process[i].alltime--; //alltime-1
if(process[i].alltime==0) //判断是否还需要占用CPU
{
process[i].state=1; //如果已完成,state=1——完成状态
process[i].p=0; //优先权清零
}
}
else
if(process[i].
- 上一篇:如何在keil中查看程序执行时间
- 下一篇:员工管理系统源程序MFC+报告
评论
共有 条评论