• 大小: 2KB
    文件类型: .cpp
    金币: 1
    下载: 0 次
    发布日期: 2021-05-22
  • 语言: C/C++
  • 标签: 模拟  

资源简介

一个最基本的实现..很多内容没有考虑,大家可以在这个基础上再添加自己需要的操作

资源截图

代码片段和文件信息

#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].

评论

共有 条评论