第三,创建进程函数 第四,进程调度函数 2.2.3 主要算法描述
时间片轮转调度算法,给每个进程分配固定大小的时间片,依次执行。
优先数调度算法,给每个进程分配一个优先级,按照优先级的大小来决定进程执行次序。
create(int x)创建进程,如果空闲队列的控制进程块为空,无法创建,否者将其取下,填写控制块内容,挂入就绪队列,队列为空,首位指针指向当前送来进程,否则挂入队尾。
sheduling ()检查是否有进程,如果有回复现场信息并执行,同时ready.head后移。
2.3 编码实现
/****************课内:时间片轮转调度算法***************/ #include \#include
#define running 1 //用 running表示进程处于运行态 #define aready 2 //用 aready 表示进程处于就绪态 #define blocking 3 //用 blocking表示进程处于等待态 #define sometime 5 //用 sometime表示时间片大小 #define n 10 //假定系统允许进程个数为 n using namespace std;
21 页 第
int count = 0;//表示当前进程的数目 int num_fin = 0;//表示结束的进程数目
struct {
int name;//进程标志符 int status; //进程状态
int ax,bx,cx,dx;//进程现场信息,通用寄存器内容 int pc; //进程现场信息,程序计数器内容 int psw;//进程现场信息,程序状态寄存器内容 int next;//下一个进程控制块的位置 int time;//所需运行时间 int finished;
}pcbarea[n];//模拟进程控制块区域的数组 int PSW,AX,BX,CX,DX,PC,TIME; //模拟寄存器 int run;//定义指向正在运行进程的进程控制块的指针 struct {
int head; int tail;
}ready;//定义就绪队列的头指针 head和尾指针 tail int pfree; //定义指向空闲进程控制块队列的指针
22 页 第
void print() {
cout<<\进程标志符:\ cout<<\进程状态:\
cout<<\寄存器内容:ax bx cx dx pc psw:\<<\
\
<<\
\
<<\
\
< cout<<\该进程已经运行完毕。\ pcbarea[run].finished = 1; num_fin++;//结束进程数加一 run=run+1;//如果已经结束就从队列中删除 } else cout<<\还需要运行\个时间\} int sheduling()//进程调度函数 { 23 页 第 int i ; //用于记录就绪队列头指针的位置 if(ready.head==-1)//空闲进程控制块队列为空,退出 { cout<<\无就绪进程\ return 0; } i=ready.head;//就绪队列头指针赋给 i //cout< ready.head=pcbarea[ready.head].next;//就绪队列头指针后移 if(ready.head==-1) ready.tail=-1; //就绪队列为空,修正尾指针 ready.tail pcbarea[i].status=running;//修改进程控制块状态 TIME=TIME-sometime;//设置相对时钟寄存器 //恢复该进程现场信息 AX=pcbarea[run].ax; BX=pcbarea[run].bx; CX=pcbarea[run].cx; DX=pcbarea[run].dx; PC=pcbarea[run].pc; 24 页 第 PSW=pcbarea[run].psw; run=i;//修改指向运行进程的指针 pcbarea[run].time=pcbarea[run].time-5; print(); }//进程调度函数结束 int create(int x,int time) //创建进程 { int i; //TIME = 0;//进程刚开始创建的时候默认已经运行的时间片为0 if(pfree==-1)//空闲进程控制块队列为空 { cout <<\无空闲进程控制块,进程创建失败\ return 0; } i=pfree;//取空闲进程控制块队列的第一个 pfree=pcbarea[pfree].next;//pfree后移 //填写该进程控制块内容: pcbarea[i].name=x; pcbarea[i].status=aready; pcbarea[i].ax=x; 25 页 第 百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库操作系统结课实验报告(5)在线全文阅读。
相关推荐: