网站大量收购闲置独家精品文档,联系QQ:2885784924

静态优先权优先算法的进程调度程序.docVIP

静态优先权优先算法的进程调度程序.doc

  1. 1、本文档共20页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 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

文档评论(0)

liuzhouzhong + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档