- 1、本文档共20页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
静态优先权优先算法的进程调度程序
学院
专业
学生姓名
学号
指导教师姓名
21014年3月19日
目录
TOC\o1-3\h\z\u1.系统需求分析 1
1.1问题描述 1
1.2功能要求 1
2.总体设计 1
2.1总体设计图 1
2.2各模块功能 2
2.3相关数据结构设计 3
3.详细设计 3
3.1采用C语言定义的相关数据类型 3
3.2调度算法的主要实现 4
4.运行结果 4
4.1系统调试 4
4.2功能实现界面 5
5.使用说明 7
6.心得体会 8
7.附录 8
7.1源代码 8
7.2参考文献 17
1.系统需求分析
1.1问题描述
1)设计并实现一个采用静态优先权算法的进程调度演示程序。并且求出每个进程的周转时间以及带权周转时间。
2)静态优先权是在创立进程时确定的,且在进程的整个运行期间保持不变.
一般地,优先权是利用某一范围内的一个整数来表示的,例如,0~7或0~255中的某一整数,又把该整数称为优先数.只是具体用法各异:有的系统用0表示最高优先权,当数值愈大时,其优先权愈低;而有的系统恰恰相反.
确定进程优先权的依据有如下三个方面:
a.进程类型.(系统进程/用户进程)
b.进程对资源的需求.(需求量的大小)
c.用户要求.(用户进程紧迫程度)
3)本程序采用优先级数字大的优先权大。
1.2功能要求
1〕每一个进程有一个PCB,其内容可以根据具体情况设定。
2〕进程数、进入内存时间、要求效劳时间、优先级等均可以在界面上设定。
3〕可读取样例数据〔要求存放在外部文件中〕进行进程数、进入内存时间、进程优先级的初始化。
4〕可以在运行中显示各进程的状态:就绪、执行〔由于不要求设置互斥资源与进程间的同步关系,故只有两种状态〕。
5〕具有一定的数据容错性。
2.总体设计
2.1总体设计图
系统总体设计如图2.1所示。
0、
0、结束
1、进程的创立及模拟
输入进程数
输入优先级
输入进入内存时间
输入效劳时间
输出运行结果
静态优先权优先算法
2、读取文件数据及模拟
输出运行结果
图2.1系统总体设计
2.2各模块功能
1)voidbuildProcess():手动创立进程。
2)structPCB*callMemory():将符合条件的进程调入内存。
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():标识要执行的进程。
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*readyHead; //动态存储就绪队列
采用结构体数组,创立一个进程,包含进程相关信息:进程名称、进程优先级、进程到达时间、进程效劳时间。
3.2调度算法的主要实现
structPCB*callMemo
您可能关注的文档
最近下载
- 2025新人音版音乐一年级下册(赵季平主编)《第四单元 游戏》大单元整体教学设计[2022课标].pdf
- 医院检验科生物安全实验室人员培训和考核制度.docx VIP
- 劳动防护用品使用安全培训.pptx VIP
- 2024年06月国家税务总局广东省税务局系统公开招聘事业单位工作人员50人笔试近年[2018-2023]典型考题及考点剖析附答案带详解.docx VIP
- 【学习教程】小梅哥Xilinx FPGA自学教程V1.2.pdf
- 宁夏银川一中2020-2021学年高一上学期期末考试语文试题 Word版含答案.doc VIP
- 《刑事诉讼法》 课件 (高教-马工程) 第0--16章 绪论、马克思恩格斯的刑事诉讼观--死刑复核程序.pptx
- 《1-12月绿化养护计划》.doc
- 机电施工组织设计(施工方案).docx
- 1.新高一开学第一节班会课《如何适应高中生活》主题班会-(共23张PPT)(2)省公开课获奖课件市赛.pptx
文档评论(0)