静态优先权优先算法地进程调度程序

静态优先权优先算法地进程调度程序

ID:44945249

大小:414.11 KB

页数:22页

时间:2019-11-05

静态优先权优先算法地进程调度程序_第1页
静态优先权优先算法地进程调度程序_第2页
静态优先权优先算法地进程调度程序_第3页
静态优先权优先算法地进程调度程序_第4页
静态优先权优先算法地进程调度程序_第5页
资源描述:

《静态优先权优先算法地进程调度程序》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、标准文案静态优先权优先算法的进程调度程序学院专业学生姓名学号指导教师姓名大全标准文案21014年3月19日目录1.系统需求分析11.1问题描述11.2功能要求12.总体设计12.1总体设计图12.2各模块功能22.3相关数据结构设计33.详细设计33.1采用C语言定义的相关数据类型3大全标准文案3.2调度算法的主要实现44.运行结果44.1系统调试44.2功能实现界面55.使用说明76.心得体会87.附录87.1源代码87.2参考文献17大全标准文案1.系统需求分析1.1问题描述1)设计并实现一个采用静态优先权算法的进程调度演示程序。并且求出每个进程的周转时间以及带权周转时间。2

2、)静态优先权是在创建进程时确定的,且在进程的整个运行期间保持不变.一般地,优先权是利用某一范围内的一个整数来表示的,例如,0~7或0~255中的某一整数,又把该整数称为优先数.只是具体用法各异:有的系统用"0"表示最高优先权,当数值愈大时,其优先权愈低;而有的系统恰恰相反.确定进程优先权的依据有如下三个方面:a.进程类型.(系统进程/用户进程)b.进程对资源的需求.(需求量的大小)c.用户要求.(用户进程紧迫程度)3)本程序采用优先级数字大的优先权大。1.2功能要求1)每一个进程有一个PCB,其内容可以根据具体情况设定。2)进程数、进入内存时间、要求服务时间、优先级等均可以在界面

3、上设定。3)可读取样例数据(要求存放在外部文件中)进行进程数、进入内存时间、进程优先级的初始化。4)可以在运行中显示各进程的状态:就绪、执行(由于不要求设置互斥资源与进程间的同步关系,故只有两种状态)。大全标准文案5)具有一定的数据容错性。2.总体设计2.1总体设计图系统总体设计如图2.1所示。0、结束1、进程的创建及模拟输入进程数输入优先级输入进入内存时间输入服务时间输出运行结果静态优先权优先算法2、读取文件数据及模拟输出运行结果图2.1系统总体设计大全标准文案2.2各模块功能1)voidbuildProcess():手动创建进程。2)structPCB*callMemory(

4、):将符合条件的进程调入内存。3)voidListAllPCB(structPCB*h):打印所有进程到屏幕上。4)voidMenu():菜单以及执行。5)voidnewPCB():创建进程。在1)中被调用。6)voidreadFromFile():从文件中读取数据。7)voidreadyList(structPCB*pcb):就绪列表。8)voidrelease(structPCB*pcb),voidreleaseR(structPCB*pcb):释放进程。9)voidrun():执行静态优先级进程调度算法。10)structPCB*runTheProcess():标识要执行的

5、进程。11)voidsetNewPCB(char*name,intpri,intentime,intsertime):创建进程。在6)中被调用。12)inttimeOfData(FILE*f):计算文件中进程数量。在6)中被调用。2.3相关数据结构设计结构体:structPCB{}*head,*readyHead;3.详细设计3.1采用C语言定义的相关数据类型structPCB{intArrivalTime;intServiceTime;charnumber[10];};structPCB*head,*thisP,*newP;//动态接收进程及详细大全标准文案structPCB*

6、readyHead;//动态存储就绪队列采用结构体数组,创建一个进程,包含进程相关信息:进程名称、进程优先级、进程到达时间、进程服务时间。3.2调度算法的主要实现structPCB*callMemory()//调入内存,返回调入内存的链表节点。将达到进程进入内存时间的所有进程调入内存。voidreadyList(structPCB*pcb)//单链表的形式创建就绪队列。将进入内存的进程调入就绪列表。structPCB*runTheProcess()//执行的进程,返回要执行进程的节点。将就绪列表中满足运行条件的进程标识下来并返回节点。voidrun()//静态优先权算法。将执行的

7、程序释放。调入新的满足执行条件的进程。就绪列表释放。4.运行结果4.1系统调试在程序设计初期。本想采用冒泡排序将进入内存的进程进行优先级排序,不过最后总是排序失败。最后想到我进行的是进程调度模拟,应该就有进程调入内存以及调入CPU,因此之后设计其他函数进行调入内存、CPU的模拟。而且最后选择新建就绪列表,进行选择插入就绪列表中。以及随时使用屏幕打印语句printf来测试程序各个阶段执行状态。4.2功能实现界面(1)主菜单:如图4.1所示。大全标准文案图4.1主菜单(2)进程调度模

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

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

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