操作系统+课程设计报告.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
操作系统 课程设计报告 [上] 2007-01-09 23:55 一.课程设计的目的: 通过课程设计更清楚地理解下列基本概念: 1.实时调度:指在实时系统下的调用,而实时系统是指系统能够在限定的响应时间内提供所需水平的服务。同时一个实时系统也是指计算的正确性不仅取决于程序的逻辑正确性,也取决于结果产生的时间,如果系统的时间约束条件得不到满足,将会发生系统出错。实时调度算法又可分为:非抢占式调度算法和抢占式调度算法。非抢占式调度算法分为:(1)非抢占式轮转调度算法。?(2)?非抢占式优先调度算法。抢占式调度算法分为:?(1)基于时钟中断的抢占式优先权调度算法。(2)?立即抢占(Immediate?Preemption)的优先权调度算法我们此次课程设计只用到了抢占式调度算法。 2.最低松弛度优先算法:该算法是根据任务紧急(或松弛)的程度,来确定任务的优先级。任务的紧急程度愈高,为该任务所赋予的优先级就愈高,?以使之优先执行。 ? 二.课程设计的内容:????????????????????????????????????????????????????????????????????????????????????? 设有3个周期性的实时任务A、B、C,任务A要求每20ms执行一次,执行时间为5ms;任务B要求每30ms执行一次,执行时间为15ms;?任务C要求每50ms执行一次,执行时间为10ms。试编一调度程序按最小松弛度优先算法对这3个任务进行调度并输出每次调度时被调入运行任务的状态:?(任务名,所处周期数,调度时刻,运行持续时间)。 ???????注:①程序中设置一个closetime(建议定为200)控制调度程序的终止。 ???????????②变化A,B,C的周期和执行时间,再运行你的程序。 注意:设定实时任务的处理时间和周期时应满条件: ?????????????????????????????????????????????????? ?????????????????????????????????????????????????? 三.三个周期性实时任务的最短松弛度优先调度算法程序: #includestdio.h #define?closetime?200?? #define?PERIOD1?20???/*任务1的周期*/?? #define?PERIOD2?30???/*任务2的周期*/ #define?PERIOD3?50???/*任务3的周期*/ #define?CPUTIME1?5???/*任务1需要的CPU时间*/? #define?CPUTIME2?15??/*任务2需要的CPU时间*/ #define?CPUTIME3?10??/*任务3需要的CPU时间*/ typedef?struct?TCB?{?int?period;?????/*周期*/? ?????????????????????int?cputime;????/*需要的cpu时间*/? ?????????????????????int?remain;?????/*剩余的cpu时间*/ ?????????????????????int?pnum;???????/*所处周期数*/? ?????????????????????int?laxity;?????/*松弛度*/?? ???????????????????}?TCB;?? ? TCB?tcb[3];?/*任务控制块,容易扩充为多个*/?? int?curtime;?/*当前时间,初始为0*/? ? void?init(void)?? {int?i;float?f;?? curtime=0;/*当前时间为0*/??? tcb[0].period=PERIOD1;tcb[0].cputime=CPUTIME1;/*周期与*/?? tcb[1].period=PERIOD2;tcb[1].cputime=CPUTIME2;/*CPU时间*/?? tcb[2].period=PERIOD3;tcb[2].cputime=CPUTIME3; f=(float)tcb[0].cputime/tcb[0].period+(float)tcb[1].cputime/tcb[1].period+(float)tcb[2].cputime/tcb[2].period;/*数据合法性检查*/?? if(f1){?printf(非法周期!);return;?? ???????}? for(i=0;i3;++i){?tcb[i].pnum=1;/*初始周期号*/? tcb[i].remain=tcb[i].cputime;/*初始剩余时间*/? tcb[i].laxity=tcb[i].period-tc

文档评论(0)

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

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

1亿VIP精品文档

相关文档