基于多队列反馈的进程调度

基于多队列反馈的进程调度

ID:47508287

大小:271.34 KB

页数:36页

时间:2020-01-12

基于多队列反馈的进程调度_第1页
基于多队列反馈的进程调度_第2页
基于多队列反馈的进程调度_第3页
基于多队列反馈的进程调度_第4页
基于多队列反馈的进程调度_第5页
资源描述:

《基于多队列反馈的进程调度》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、.《操作系统》综合实训项目设计文档【大纲】(不用打印,提交电子稿即可!)一、基本信息项目名称:成人姓名、学号、完成日期项目名称:基于时间片的多队列反馈的进程管理系统完成日期:2017.5.24二、实验内容与目的实验内容:编写程序完成单处理器系统的进程调度,要求采用基于时间片多队列反馈式调度策略调度策略。具体内容:1.确定PCB内容及其组织方式。2.要求模拟进程空闲(新)、就绪、运行、阻塞和完成5个状态。3.实现进程创建、进程调度、进程阻塞、进程唤醒和进程撤销5个原语。4.能够模拟进程从生到灭的完整过程。实验目的:1.加深进程概

2、念理解,明确进程与程序区别。2.理解操作系统中进程的组织、创建和调度等方法。word教育资料.一、主要设计思路和流程图设计思路:1定义数据结构2.设置队列3.创建进程4.创建的进程进入就绪队列5.多级反馈调度1.)在第一就绪队列里的进程被调度运行,进程状态由等待变为运行,设置时间片计数器,每次运行加1,时间片满后,该进程出队列,进入下一级别的就绪队列。若是在最后一级别的队列,则在该队列中进行时间片轮转调度2.)运行进程若是被阻塞的话,该进程出就绪队列,进入阻塞队列,状态变为阻塞态3.)若是唤醒被阻塞进程,则阻塞进程根据其时间片

3、计数器计入相应的就绪队列4.)撤销进程,该进程直接出就绪队列二、主要数据结构及其说明typedefstructNode{charname[20];charstate;//进程所处的状态,N新建,W等待,B阻塞,R运行,F结束word教育资料.intround;//时间片计数器inttime;//运行时间structNode*next;}LinkQueueNode,*PCB;//定义PCBtypedefstruct{LinkQueueNode*front;LinkQueueNode*rear;}LinkQueue;//定义队列v

4、oidinitQueue(LinkQueue*Q)//队列的初始化函数voidInitializa()//初始化所有队列voidRunPrintf()//打印运行队列voidBlockPrintf()//打印阻塞队列voidReadyPrintf(LinkQueueq)//打印就绪队列voidputout()//输出函数voidEnterQueue(LinkQueue*Q,PCB*p)//进程插入队列函数intDeleteQueue(LinkQueue*Q,PCB*p)//进程出队列voidTransferRun(LinkQu

5、eue*q1,LinkQueue*q2,PCBq)//进程出就绪队列,入运行队列voidTransfer(LinkQueue*q1,LinkQueue*q2,PCBq)//进程唤醒或阻塞时队列转换的函数intMultiDiapatch()word教育资料.//调度函数,若此队列运行的进程时间片满,则进入下一级队列intrun()//模拟运行voidblock()//模拟阻塞voidwake()//模拟唤醒intCreateprocess(LinkQueue*Q)//进程的创建voidmeanu()//菜单函数一、程序运行时的初

6、值和运行结果word教育资料.word教育资料.word教育资料.word教育资料.word教育资料.word教育资料.word教育资料.一、源程序并附上注释【可是另一个源程序文件,在此应说明该文件名】#include#include#include#includetypedefstructNodeword教育资料.{charname[20];charstate;//进程所处的状态,N新建,W等待,B阻塞,R运行,F结束intround;//时间片计数器i

7、nttime;//运行时间structNode*next;}LinkQueueNode,*PCB;//定义PCBtypedefstruct{LinkQueueNode*front;LinkQueueNode*rear;}LinkQueue;intcount=0;LinkQueueqRun,qBlock,qReady1,qReady2,qReady3,qReady4;//定义四个就绪队列voidinitQueue(LinkQueue*Q)//队列的初始化函数{Q->front=(LinkQueueNode*)malloc(siz

8、eof(LinkQueueNode));if(Q->front!=NULL){word教育资料.Q->rear=Q->front;Q->front->next=NULL;}}voidInitializa()//初始化所有队列{initQueue(&qRun);initQueu

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

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

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