最低松弛度优先

上传人:ni****g 文档编号:483649983 上传时间:2023-06-07 格式:DOC 页数:26 大小:268KB
返回 下载 相关 举报
最低松弛度优先_第1页
第1页 / 共26页
最低松弛度优先_第2页
第2页 / 共26页
最低松弛度优先_第3页
第3页 / 共26页
最低松弛度优先_第4页
第4页 / 共26页
最低松弛度优先_第5页
第5页 / 共26页
点击查看更多>>
资源描述

《最低松弛度优先》由会员分享,可在线阅读,更多相关《最低松弛度优先(26页珍藏版)》请在金锄头文库上搜索。

1、青岛理工大学操作系统课程设计报告院(系): 计算机工程学院 专业: 软件工程专业 学生姓名: 班级:软件1班_学号: 题目:采用最低松弛度优先调度的实时系统调度程序 起迄日期: _ .7.8.4 _ 设计地点: 计算机学院机房 指 导教师: 第 2 学期完毕日期: 年 7 月4 日一、课程设计目的二、课程设计内容与规定31、设计内容2、设计规定3三、系统分析与设计41、系统分析2、系统设计:2.、模块设计:42.、数据构造阐明:4.3、算法流程图:四、系统测试与调试分析91、系统测试9、调试分析:11五、顾客手册115.使用平台12安装环节15.3使用环节11六、程序清单13七、体会与自我评价

2、1八、参照文献1九、课程设计评价9一、课程设计目的在学习操作系统课程的基本上,在完毕操作系统各部分实验的基本上,对操作系统的整体进行一种模拟,通过实践加深对各个部分的管理功能的结识,还能进一步分析各个部分之间的联系,最后达到对完整系统的理解。同步,可以提高运用操作系统知识解决实际问题的能力;锻炼实际的编程能力、创新能力及团队组织、协作开发软件的能力;还能提高调查研究、查阅技术文献、资料以及编写软件设计文档的能力。二、课程设计内容与规定 1、设计内容在实时系统中,要保证在指定的时间完毕指定的任务,一般会采用抢占式的调度方式。规定采用指定的调度算法,使系统中的任务可以准时完毕,通过观测中系统中的抢

3、占点,以巩固和加深对实时系统调度算法的理解。2、设计规定1) 每一种周期性实时任务必须指定周期长度与执行时间2) 可以在界面安排周期性实时任务的个数与有关的指标值,又及规定仿真的时间长度3) 系统可又对设定的任务条件进行检查,如果无法满足公式 的规定,则弹出相应的错误提示,并重新进入任务安排界面4) 可读取样例数据(规定寄存在外部文献中)进行周期性实时任务数、周期长度、执行时间的初始化5) 采用可视化界面,数据载入后按最低松弛度算法进行调度,可以在运营中动态显示各进程的状态:就绪、执行、完毕6) 系统上下文切换时,会暂停调度,显示就绪队列中各任务的松弛度,按任意键后自动运营7) 具有一定的数据

4、容错性三、系统分析与设计、系统分析(1)该算法根据实时任务的松弛度来拟定任务的优先级,任务的松弛度愈低,其优先级愈高,以使之优先执行。(2)松弛度=必须完毕的时间-其自身的运营时间目前时间(3)规定系统中有一种按松弛度排序的实时任务就绪队列。(4)该算法重要用于可抢占调度方式中,当一任务的最低松弛度减为0时,它便立即抢占U,以保证按截止时间的规定完毕任务。2、系统设计:2.、模块设计:主程序所需数据的初始化运营中动态显示各进程的状态,画出调度图.、数据构造阐明: pic class processrivat sti pnam;/进程名priat it erd;/周期长度rivate nt cp

5、uti;/需要的cp时间piate int rmainme;/剩余需执行的时间private nt aiveime;/每个周期的达到时间priate int pnum;/所处周期数privte nt lity;/松弛度privint pririty;/优先级()进程名用来标记一种进程(2)周期长度周期性实时任务必须有周期长度(3)需要的cu时间周期性实时任务必须有每个周期需要的执行时间(4)剩余需执行的时间用来判断与否发生抢占,假设在按松弛度排序的就绪队列中,任务a松弛度最小,任务b次之,若任务a需要的pu时间不小于任务b的松弛度,则在任务的这次调度中会发生抢占,则任务a该周期的剩余需执行的时

6、间不小于0,反之,剩余需执行的时间等于0时,则这次调度过程中不会发生抢占。(5)每个周期的达到时间用来进行排序,系统规定有一种按松弛度排序的实时任务就绪队列,若松弛度相似,则按达到时间排序。(6)所处周期数对于周期性实时任务,应当有所处的周期数,另一方面,计算松弛度时算任务必须完毕的时间可以用所处周期数和周期长度相乘得到。(7)松弛度最低松弛度优先调度算法肯定规定计算松弛度。()优先级同样也是为了排序使用,在松弛度和达到时间都相似的时候,按固定的优先级进行排序,优先级在添加实时任务时动态生成。2.3、算法流程图:、数据初始化.界面直接添加周期性实时任务数与否为空输出:请输入周期性实时任务的个数

7、所添加任务数与否不不小于周期性实时任务数输出:超过个数限制new一种process实例,添加到实时任务数组pro中,然后将该任务在两个listview中显示所添加任务数与否等于周期性实时任务数判断系统与否可调度清空实时任务名,周期长度和执行时间三个输入框是否否是是12 从文献中读取数据找到需要的文献,点击打开读取文献内容,new出process实例,添加到数组,同步在两个listview中显示判断系统与否可调度2、动态显示各进程的状态和画出调度图把listview2的备注一栏清空初始化某些变量,实例化sortpro,然后对sortpro进行排序找到已达到的松弛度最小的任务,如果因此任务都没达到

8、,flag=falseflag与否为true找到松弛度最小和次小的任务,计算duration,并对其加以限制,修改本次被调度进程的remaintime画出本次调度的图形,修改curtime的值根据remaintime的值修改本次被调度进程在listview2中的显示信息,更改本次被调度进程的有关信息重新计算所有任务的松弛度,更新未被调度的进程在listview2中显示的信息目前时间不小于或等于规定仿真的时间长度停止计时,显示调度完毕四、系统测试与调试分析、系统测试l 测试措施:黑盒测试l 测试技术:功能测试它是从使用者的角度来编写的,它关注系统提供的功能特性及其不同的解决条件;测试功能的不同解

9、决流程(涉及正常解决的和异常解决);一种功能测试用例仅用于测试一种功能,一种功能也许需要多种功能测试用例来覆盖。l 测试数据: (1) 课本例子(存在抢占的状况)输入:周期性实时任务的个数:2第一种实时任务(实时任务名,周期长度,执行时间):,20,1第二个实时任务(实时任务名,周期长度,执行时间):B,0,25输出成果:(2) 不存在抢占输入:周期性实时任务的个数:第一种实时任务(实时任务名,周期长度,执行时间):A,20,1第二个实时任务(实时任务名,周期长度,执行时间):B,0,10第三个实时任务(实时任务名,周期长度,执行时间):C,50,输出成果:(3) 系统不可调度输入:周期性实时

10、任务的个数:第一种实时任务(实时任务名,周期长度,执行时间):A,0,10第二个实时任务(实时任务名,周期长度,执行时间):,0,20 输出成果:提示:系统不可调度l 测试报告:(1) 课本例子(存在抢占的状况)测试成果:(2) 不存在抢占的例子测试成果:(3) 系统不可调度测试成果:测试阐明测试名称采用最低松弛度优先调度的实时系统调度程序测试目的验证采用最低松弛度优先调度的实时系统调度程序调度的对的性测试技术功能测试测试措施黑盒测试法测试用例测试内容系统所实现的最低松弛度优先算法的对的性测试环节输入周期性实时任务的个数,每个任务的实时任务名,周期长度和执行时间(存在抢占)输入周期性实时任务的

11、个数,每个任务的实时任务名,周期长度和执行时间(不存在抢占)输入周期性实时任务的个数,每个任务的实时任务名,周期长度和执行时间(系统不可调度)测试数据,2,0;b,50,253a,20,10;b,0,10;c,50,52a,2,10;b,30,预期成果得出对的的调度图得出对的的调度图给出相应的提示信息测试成果与预期相符与预期相符与预期相符、调试分析:开始调试算法,在排序的时候始终有一种空引用异常,提示未将对象引用设立到对象的实例。是由于没有实例化按松弛度排序的那个数组,主线上还是自己编程比较少的因素,平时学习语言的时候应当注意要多练习。尚有就是排序互换数据的时候出了点儿问题,还是由于编程不纯熟

12、的问题。尚有一种费了好长时间的问题就是暂停调度时,按任意键继续的问题,解决这个问题的时候在网上找了好长时间,网上没有现成的答案,有的也是控制台下按任意键继续的问题。自己添加了一种窗体的键盘事件,可是始终没有成功触发这个事件,后来懂得是焦点的问题,先得让窗体获得焦点,按任意键才干触发那个事件。最后调试的比较多的就是最后动态显示的部分,为了显示的更合理。开始觉得还行,后来换了个例子还发现了比较多的问题,看来,自己编程序还是要更仔细。五、顾客手册.1使用平台本系统使用操作系统为i7,需要安装ial stuti 5.2安装环节本系统无需安装,只需把exe文献拷贝到电脑上5.3使用环节图1:开始运营界面图2:输入数据图3:数据可从文献中读取图4:点击开始,开始动态显示图5:动态运营中各进程状态图:调度结束六、程序清单最低松弛度优先算法:ivate oi timer1_ck(obec nd, EvetArs e) 清空备注中的信息 f (t i= 0; i pro.Lent; +) listiew2.ItesiSubIems4.Text = ; bool flg=true; int duration;/本次调度执行的时间 t frt=0; int son0; rdfist=0; sortpro= rocespo.Leh; fo(n i = 0; i prLengt; i+)

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 解决方案

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号