处理机调度算法的实现.doc

处理机调度算法的实现.doc

ID:50090774

大小:101.00 KB

页数:7页

时间:2020-03-04

处理机调度算法的实现.doc_第1页
处理机调度算法的实现.doc_第2页
处理机调度算法的实现.doc_第3页
处理机调度算法的实现.doc_第4页
处理机调度算法的实现.doc_第5页
资源描述:

《处理机调度算法的实现.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、处理机调度算法的实现程序设计思路:自定义结构体PCB表(进程名name,进程优先数priority,进程执行时间time)以及进程就绪队列Queue_Process(data[MAXSIZE]数组存放PCB,front,rear队首队尾指针),通过每次对进程就绪队列进行进程优先数从大到小排序来确定进程执行的选择,并且是采用动态优先数调度算法(每次优先数减1,执行时间减1),每次输出进程执行情况时只需要将队首PCB调出执行,其他进程都处于动态就绪状态,等进程执行结束后重新对进程就绪队列排序。程序中,采用结构体、队列等数据结构,其中对队

2、列每次排序是采用冒泡排序算法实现。源代码:#include#includeusingnamespacestd;#defineMAXSIZE10structPCB{intname;//进程名intpriority;//进程优先数inttime;//进程执行时间};structQueue_Process{PCBdata[MAXSIZE];//PCB队列intfront;//队首intrear;//队尾};voidInitQueue(Queue_Process*Q){Q->front=Q->rear=0

3、;}boolIsQueueEmpty(Queue_ProcessQ)//队空判断函数{return(Q.front==Q.rear)?true:false;}boolIsQueueFull(Queue_ProcessQ)//队满判断函数{return(Q.front==(Q.rear+1)%MAXSIZE)?true:false;}voidEnQueue(Queue_Process*Q,PCBx)//入队函数{if(IsQueueFull(*Q))//判断队列是否为满{cout<<"队满,入队操作失败!"<

4、;}//队列非满,将PCB入队,将其中信息填入Q->data[Q->rear].name=x.name;Q->data[Q->rear].priority=x.priority;Q->data[Q->rear].time=x.time;Q->rear=(Q->rear+1)%MAXSIZE;//队列队尾指针后移}voidDeleQueue(Queue_Process*Q){if(IsQueueEmpty(*Q))//判断队列是否为空{cout<<"队空,出队操作失败!"<front=(Q->fro

5、nt+1)%MAXSIZE;//将队列首指针后移}voidSortPCB(PCB*pcb,intn)//PCB优先数大小从大到小排列函数{PCBtemp;boolexchange=true;//交换标志for(inti=n-1;i>0&&exchange;i--)//冒泡排序算法排序{exchange=false;for(intj=0;j

6、.priority;temp.time=pcb[j].time;pcb[j].name=pcb[j+1].name;pcb[j].priority=pcb[j+1].priority;pcb[j].time=pcb[j+1].time;pcb[j+1].name=temp.name;pcb[j+1].priority=temp.priority;pcb[j+1].time=temp.time;exchange=true;}}}}voidInput(PCB*pcb,intn)//进程信息输入函数{cout<<"请输入每个进程的优先数和

7、执行时间:"<>p>>t;pcb[i].name=i;pcb[i].priority=p;pcb[i].time=t;}}voidDisplay(Queue_Process*queue)//输出每个时刻的进程运行情况函数{cout<<"进程名t"<<"优先数t"<<"执行时间t"<<"进程状态"<data[queue->front].time>1){cout<<""<

8、data[queue->front].name<<"t"<<""<data[queue->front].priority<<"tt"<<""<data[queue->front].time<<"

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。