基于优先数的时间片轮转调度算法调度处理器.docx

基于优先数的时间片轮转调度算法调度处理器.docx

ID:52686763

大小:63.38 KB

页数:10页

时间:2020-03-29

基于优先数的时间片轮转调度算法调度处理器.docx_第1页
基于优先数的时间片轮转调度算法调度处理器.docx_第2页
基于优先数的时间片轮转调度算法调度处理器.docx_第3页
基于优先数的时间片轮转调度算法调度处理器.docx_第4页
基于优先数的时间片轮转调度算法调度处理器.docx_第5页
资源描述:

《基于优先数的时间片轮转调度算法调度处理器.docx》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、题目4基于优先数的时间片轮转调度算法调度处理器一、实验目的在采用多道程序设计的系统中,同时处于就绪态的进程往往有多个,当就绪态的进程数大于处理器的个数时,就需按照某种策略进行分配处理器。本次设计模拟在单处理器情况下采用基于优先数的时间片轮转调度算法进行处理器调度,加深了解处理器调度工作过程。二、实验内容及要求1、设计一个程序实现基于优先数的时间片轮转调度算法调度处理器。2、假定系统有5个进程,每个进程用一个进程控制块PCB开代表,进程控制块的结构如下图1.2所示:进程名指针到达时间要求运行时间已运行时间优先数进程状态图1其中:进程

2、名:作为进程的标识。指针:进程按顺序排成循环链表,用指针指出下一个进程的进程控制块首地址,最后一个进程中的指针指出第一个进程的进程控制块首地址。要求运行时间:假设进程需要运行的单位时间数。已运行时间:假设进程已经运行的单位时间数,初值为0。状态:可假设有两种状态,就绪状态和结束状态。进程的初始状态都为就绪状态。3、每次运行所设计的处理器调度程序调度进程之前,为每个进程任意确定它的要求运行时间。4、此程序是模拟处理器调度,因此,被选中的进程并不实际启动运行,而是执行已运行时间+1来模拟进程的一次运行,表示进程已经运行过一个单位时间。

3、.5、在所设计的程序中应有显示或打印语句,能显示或打印每次被选中的进程名以及运行一次后进程队列的变化。6、为进程任意确定要求运行时间,运行所设计的处理器调度程序,显示或打印逐次被选中进程的进程名以及进程控制块的动态变化过程。7、设有一个就绪队列,就绪进程按优先数(优先数范围0-100)由小到大排列(优先数越小,级别越高)。当某一进程运行完一个时间片后,其优先级应下调(如优先数加2或3)。8、例如一组进程如下表:进程名ABCDEFGHJKLM到达时间012368121212182525服务时间641051251043158三、实验报

4、告1、程序中使用的数据结构及符号说明。2、给出主要算法的流程图3、给出程序清单并附上注释4、打印程序运行时的初值和运行结果。(运行一个进程输出一次结果)三、实验代码#include#include#include#definegetpch(type)(type*)malloc(sizeof(type))//为进程创建一个空间structworktime{floatTb;//作业运行时刻floatTc;//作业完成时刻floatTi;//周转时间floatWi;//带权周转时间

5、};structjcb{charname[10];//作业名floatsubtime;//作业到达时间floatruntime;//作业所需的运行时间charresource;//所需资源floatRp;//后备作业响应比charstate;//作业状态intworked_time;//已运行时间structworktimewt;intneed_time;//要求运行时间intflag;//进程结束标志structjcb*link;//链指针}*ready=NULL,*p;typedefstructjcbJCB;floatT=0;

6、intN;JCB*front,*rear;//时间轮转法变量voidsort(){JCB*first,*second;intinsert=0;//插入数if((ready==NULL)

7、

8、((p->subtime)<(ready->subtime))){p->link=ready;ready=p;T=p->subtime;p->Rp=1;}else{first=ready;second=first->link;while(second!=NULL){if((p->subtime)<(second->subtime)){p->lin

9、k=second;first->link=p;second=NULL;insert=1;}else{first=first->link;second=second->link;}}if(insert==0)first->link=p;}}voidSJFget(){JCB*front,*mintime,*rear;intipmove=0;mintime=ready;rear=mintime->link;while(rear!=NULL){if((rear!=NULL)&&(T>=rear->subtime)&&(mintime->r

10、untime)>(rear->runtime)){front=mintime;mintime=rear;rear=rear->link;ipmove=1;}elserear=rear->link;}if(ipmove==1){front->link

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

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

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