




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
实时调度中EDF算法的优化改进:从理论到实践的探索摘要 摘要:好的调度算法对实时系统性能的提升具有关键性作用。本文通过对实时调度算法的研究,设计并实现了一种EDF算法。针对该算法不能适应硬实时环境,辨别不了任务的重要程度以及无法承担大任务量的调度开销,影响算法在实际中的应用问题,本文从辨别区分任务的重要性和减小系统的调度开销两方面着手,对算法进行改进。改进后的算法具有很好的优先级调度和高负荷使用,达到更好的实时性,完全适应硬实时环境。关键词:实时调度;实时性;EDF算法;调度开销;硬实时环境 引言实时系统有响应及时、准确性高、专用性强和实时调度机制等一些特征,因此被广泛运用在工业、军事、通信、航天等领域。实时系统的应用给我们的生活带来很大的便利,例如现在有些公交软件可以实时看到公交运行的位置,通过实时位置我们可以为自己的出行做一个比较好的规划给我们的出行带来了很大便利。在实时公交的背后是实时系统的支撑,实时系统时刻在运行着(孙晓明,周丽敏,2022)。在实时系统的设计和实现中最重要的一个步骤就是选择一个合适的实时调度算法,目前已经存在的实时调度算法种类繁多,据此可知事情真相不同的实时系统需要选取不同的实时调度算法,因为实时调度算法应用的系统不同其性能的发挥也会有所不同。在现有的一些实时调度算法中,根据优先级来确认任务是否进行调度的EDF算法是这些调度算法中比较重要的一类调度算法(刘阳辉,陈思涵,2023)。通过优先级赋值机制的不同,可以把这些调度算法分为静态优先级调度和动态优先级调度。在这种局面下在通常情况下,那些具有动态优先级调度的算法资源利用率一般要高于静态优先级调度算法,所以具有动态调度功能的EDF实时调度算法更适合实时系统中的任务调度(傅彦博,华君浩,2021)。1.课题研究的目的和意义1.1研究目的实时系统被广泛应用于生活和生产中,实时系统的正常运作是实时调度算法为其在后台做支撑才能保证系统正确性与实时性。实时调度算法种类众多,选择一个好的实时调度算法对实时系统性能的提升是关键的一步。判断一个实时调度算法是否优秀需要我们从不同的维度去考虑算法的适用性、算法的效率以及算法的可调度性等。为了使实时系统能够发挥出更好的性能,就要对实时系统所使用的实时调度算法进行优化和改进使得实时调度算法能够在实时系统中更优秀。由于EDF算法被广泛使用在很多实时系统之中,并且与人们的生活密切相关,因此对EDF调度算法的研究也成为了当下的热点研究方向。1.2研究意义实时系统与人们的日常生活和社会生产之间的联系愈发紧密,比如购票系统、银行系统、导弹发射系统等。实时系统以其突出的实时性和准确性,发挥着不可替代的作用。然而实时系统的应用离不开实时调度算法的支持,在现有研究中动态调度算法不存在最优的。如果仅把任务能否在截止日期前完成,那么EDF算法是这些算法中比较优秀的。这在一定程度上体现实时调度算法的研究与实现为实时系统的发展提供了可靠的保障,也为我们的生活带来了便利。2.EDF实时调度算法分析与设计实时调度算法本质是把CPU当作一种资源根据一定的规则和机制分配给已经准备就绪的作业。实时调度算法与普通的调度算法不同,一般的调度算法更多的关注系统的整体性和资源的利用,这在一定程度上暗示如任务重要程度以及任务的资源占用率等(樊俊豪,安泽楷,2021)。但是实时调度算法确定任务的优先级是根据任务的截止日期来赋予任务相应优先级的,它会尽量满足所有任务的要求(封天宇,王静怡,2019)。2.1算法分析EDF算法是一种动态优先级调度算法。它通过当前作业的截止日期来分配优先级,作业的截止日期越短,优先级越高(林泽楷,徐浩淼,2018)。相反,作业的截止日期越长,那么它的优先级也就越低。在EDF调度算法中,优先级最高的作业始终优先执行。如果当前有其他低优先级的作业执行,依据这些表现可以推测出结论则优先级较低的作业将被抢占,而让优先级最高的作业执行,直到任务就绪队列中没有更高优先级的作业为止(章泽霖,许睿哲,2019)。EDF调度算法的主要步骤是(廖一鸣,虞美,2023):(1)检查当前任务队列中已经准备就绪的任务;(2)取得所有现成任务的(绝对)运行期限;(3)选择最早的截止时间任务赋予最高优先级。2.2算法调度过程为了更好的理解EDF实时调度算法的思想,下面用例1来解释算法的调度。例1.EDF实时调度算法调度过程示例:任务集设置,D1(3,1),D2(6,3)。现在系统中有两个需要被执行的任务D1和D2。其中D2的周期为6,在D2的每个周期内需要被执行3个时间片。在这样的背景下并且在t=0时刻该任务就已经到达系统,即在t=0时刻D2就可以参与调度运行(蔡奇朝,赵睿璇,2019)。本研究框架模型的重要特点是其灵活变通与扩展潜力。鉴于不同研究背景和需求的多样性,本文在设计模型时,尽力保持各组件的模块化特性,从而可以根据实际情况灵活调整或替换特定部分,而不影响整体架构的稳定性和有效性。这种设计思路不仅提升了模型的实际应用价值,还为后续研究者提供了一个开放平台,激励他们在现有基础上进行二次开发或改进。任务D1的周期为3,D1在每个周期内需要执行1个时间片。并且在t=0时刻该任务就已经到达系统,即在t=0时刻时D1就可以参与调度运行。在系统调度开始时(t=0)就应该按照EDF实时调度算法来决定每个任务的优先级,并且根据优先级来确定调度优先级最高的任务,于此特定场合不难观察到使得高优先级的任务首先获得CPU资源并执行(林晓东,赵瑶慧,2021)[2]。在t=0时刻:D2的截至日期为此周期的截至时间减去当前时间,即d2=T2-t=6-0=6。D1的截至日期为d1=T1-t=3-0=3。此时D1的截至日期要小于D2的截至日期,所以D1的优先级要高于D2的优先级,此时应该先调度D1。在t=1时刻:D2的截至日期为此周期的结束时间减去当前时间,即d2=T2-t=6-1=5。D1的截至日期为d1=T1-t=3-1=2。此时D1的截至日期仍然要小于D2的截至日期,但是由于在上一个时间片D1已经执行了一个时间片,而D1在它的一个周期中仅需要执行一个时间片即可,D1在本周期内已经执行完毕,不需要再参与调度。基于以上研究因此在此时间片应该调度D2。依次类推我们可以得到例1的调度流程图(梁昊忠,周泽琪,2018)。图1例1调度模拟图图中下方为时间刻度,单位为1个时间片,针对这种状况黑竖直线对应该任务的在当前周期的截至日期,黑色矩形代表该任务在当前周期得到资源并执行(唐浩然,袁语,2019)。通过调度模拟图我们可以发现在t=3时刻D2的截止期为6-3=3,D1在t=3时刻开始一个新的周期截止周期同样为3,D2剩余执行量也为1。在t=3时两个任务的优先级相同,在现实状况下由于EDF算法没有规定该情况如何处理所以在t=3时可以调度两个任务中的其中一个(魏心怡,张凯琪,2021)。本文也是在已有的理论基础上构建了此次的框架模型,在信息流和数据分析方法上,都体现了对前人研究成果的尊重与继承,并在此基础上进行了创新与发展。首先,在信息流的设计方面,本文借鉴了经典的信息处理理论,确保信息从采集、传输到分析的每一个环节都能够高效且准确地进行。通过对数据来源的严格筛选和标准化处理流程,使得信息的质量得到了有效保障,从而也能够更好地注重信息流的透明度与可追溯性。2.3EDF算法优缺点EDF算法的优点是:(1)运行成本小。任务调度的优先级是EDF算法通过当前队列中任务的截止时间来确定的[4]。在保证时间限制的情况下,尽量避免任务为调度而抢占CPU资源和任务调度的来回转换,系统操作开销相对较小。(2)资源利用率高。EDF算法在确保系统性能的同时,充分利用了CPU且最高可以使利用率为1。EDF算法的缺点是(成芸萱,何凯瑞,2022):(1)系统调度开销很大。EDF调度算法是通过每个任务的绝对截止日期非静态地确定每个任务的优先级,关于此见内情那么在动态确定任务优先级的过程中就需要系统分配一定的空间去存储任务的相关信息。另外,EDF算法的任务队列管理也更加复杂,与特定任务的数量有关系,据此可知事情真相并且随着任务数量的增加而增加。因此EDF算法在任务调度过程中对资源的需求要比静态的多。(2)确定优先级的策略不够完善[5]。EDF算法仅仅考虑任务的期限,却不考虑任务本身具有的价值。在现实中当系统发生过载时,某些高价值的任务并没有在低价值任务之前得到调度,EDF算法对这些任务仍然根据截止时间来进行调度并没有优先调度具有高价值的任务(林昊忠,陈梦琪,2021)。(3)EDF实时调度算法无法解决系统超出能力范围的情况。在这种局面下当需要解决的实时任务数量超过CPU的调度能力时,EDF算法无法选择一些重要任务来保证其实时性。相反,它依旧根据原先设定的机制进行调度,从而导致“多米诺效应”,使得大多数实时任务超时[6]。3.EDF实时调度算法的实现3.1算法实现概要说明EDF实时调度算法的实现主要分为三个模块。第一个模块是任务判断模块用来判断当前用户输入的模拟任务数据是否合法,这在一定程度上体现主要判断任务的周期、运行时间、截止时间,任务在周期内的调度时间是否合法(夏启超,王立嘉,2024)。第二个模块是用来对任务进行优先级排序,根据任务的周期、运行时间、截至时间等进行计算从而对任务进行排序并且将排好序的任务存放在工作栈中。这在一定程度上暗示第三个模块是对任务进行调度,分配资源使任务得到资源然后进行调度并在终端打印展示给用户模拟调度结果。3.2算法实现流程图图2算法运行流程图3.3算法需要的数据结构#definePeriod120//任务1的周期#definePeriod250//任务2的周期#defineTime110//任务1需要的CPU时间#defineTime215//任务2需要的CPU时间#defineclosetime200//模拟运行时间typedefstructTCB{intremain;//CPU余剩时间intZQ;//周期intCT;//需要的cpu时间intpnum;//所处周期数}TCB;TCBtcb[10];3.4算法实现的软件和实验平台EDF算法是在如下开发环境中实现的:苹果笔记本电脑;IOS操作系统;C语言;DEV-C++5.0.4.9.9.2开发工具;3.5主要模块代码说明voidinit(void){//判断是否合法 inti;floatf; curtime=0; tcb[0].ZQ=ZQ1;tcb[0].CT=CPUTIME1; tcb[1].ZQ=ZQ2;tcb[1].CT=CPUTIME2; f=(float)tcb[0].CT/tcb[0].ZQ+(float)tcb[1].CT/tcb[1].ZQ; if(f>1){ printf("周期不合法!");return; } for(i=0;i<2;++i){tcb[i].pnum=1;tcb[i].remain=tcb[i].CT; }}//init函数用来判断任务的合法性如果任务非法则在终端窗口提示用户。voiddispath(void){/*调度程序*/ inti,p,duration; i=tcb[0].ZQ*tcb[0].pnum<=tcb[1].ZQ*tcb[1].pnum?0:1; if(CT<tcb[i].ZQ*(tcb[i].pnum-1)){ p=tcb[i].ZQ*(tcb[i].pnum-1); i=(i+1)%2; if(CT<tcb[i].ZQ*(tcb[i].pnum-1)) CT=p; elseif(tcb[i].remain<=p-CT) duration=tcb[i].remain; else duration=p-curtime;tcb[i].remain-=duration; printf("任务序号=调度所处周期=调度开始时刻=运行长度=\n",i,tcb[i].pnum,CT,duration); CT+=duration; if(tcb[i].remain==0){ tcb[i].pnum++;tcb[i].remain=tcb[i].CT;} } else{ p=tcb[i].ZQ*tcb[i].pnum; if(tcb[i].remain<=p-CT) duration=tcb[i].remain; else duration=p-CT; tcb[i].remain-=duration; printf("任务序号=调度所处周期=调度开始时刻=运行长度=\n",i,tcb[i].pnum,CT,duration); CT+=duration; if(tcb[i].remain==0){ tcb[i].pnum++;tcb[i].remain=tcb[i].CT;} }}dispath函数是整个模拟调度程序的核心函数,依据这些表现可以推测出结论通过dispath函数对输入的任务集合进行模拟调度并在终端把调度过程显示给用户(胡泽楷,钱梦洁,2018)。在数据解析阶段,本文采用了多种统计技术来验证数据的可靠性,并探测可能的异常数据。通过细致地研究数据的分布特性,本文能够有效地排除那些显著偏离常态的数据点,同时保留那些能够代表整体情况的样本数据。此外,本文还采用了敏感性分析来考察不同参数变动对研究结果的影响,从而保证了研究结论的稳定性和广泛适用性。3.6程序运行结果和说明解释根据提示输入如下数据:任务1的周期为10运行时间为5。任务2的周期为30运行时间为15。模拟CPU运行时间为120。运行结果如图3所示:图3调度运行结果图4.EDF算法的改进4.1算法的改进思路思路1:为任务添加优先级以表明任务的重要性[7]。在实际应用中,任务有软实时需求和硬实时需求之分。其中对任务的截止时间要求比较严格的叫做硬实时需求,相反那些对时间要求不严格的叫软实时需求可以暂缓调度。EDF实时调度算法确定任务优先级的策略太少,仅依赖于任务的截止日期,而没有思考任务的重要程度,并且不能很好地反映实际需求(王晓宇,邱瑞婷,2022)[8]。可能会发生当任务的截止日期相同时,在这样的背景下那些对时间要求不严格的任务被执行而那些对时间要求严格的任务没有得到执行(钟睿哲,李明和,2020)。在选择数据分析方法时,本文不仅运用了传统的统计分析手段,如描述性统计、回归分析等,还引入了近年来快速发展的数据挖掘技术和算法。比如,通过使用聚类分析来识别数据中的潜在模式,或者借助决策树算法来预测未来趋势。这些先进方法为深入理解复杂现象提供了强大助力,并有助于揭示海量数据背后隐藏的深层次关系。此外,本文还特别重视混合方法的应用,即将定量研究与定性研究相结合,以获取更全面的研究视角。为了解决这个问题,我们可在系统中分配一定的空间去存储任务的重要程度,并且根据任务的重要程度和任务的最早截止日期来确定任务在调度期间的优先级。于此特定场合不难观察到如此以来当有多个任务具有一样的截止日期时,EDF算法会根据任务的重要程度来判断应该调度哪一个任务,就能够解决因截止时间相同而无法调度重要任务的问题。思路2:当系统超载时,挑选部分比较重要的任务在CPU能力内进行调度,来确保硬实时任务的需求。并将“多米诺效应”对任务的影响限制在一些软实时任务之中。EDF算法的最大的不足之处是当系统超出能力范围时,它不能满足大多数任务的实时要求(冯宇和,马欣怡,2022)[9]。基于以上研究既然系统不能够满足所有任务的实时要求,那么我们可以在所有需要调度的任务中挑选出最重要的一些任务进行执行。针对这种状况只在CPU有多余的能力时才对剩余的任务进行调度,这种处理方法不仅利用了EDF调度算法系统资源利用率高的特征,而且保证了系统在过载时重要的任务能够获取资源进行调度,适用于有硬实时要求的环境(何佳琪,张晨怡,2022)[10]。与前文综述中的成果相对比,本阶段的研究成果和计算结果大体一致。首先,这表明本研究在方法论上是有效且可靠的。这种一致性既为先前研究的结论提供了佐证,也为现有理论框架注入了新的支撑力量。通过严密的研究架构、数据采集以及分析手段,本文能够复刻出前辈研究的关键成果,并顺着这基础往深了探究。这不仅让研究假设更令人信服,也证明了选用研究法子的科学味儿。另外,这种一致给跨研究比较铺了路,有助于拼凑出更全面、更系统的理论拼图。4.2算法的改进实现首先对当前用户在终端输入的任务集合进行合法性判断。在现实状况下然后为硬实时要求的任务增加较高的优先级。然后根据任务的优先级和任务的截止时间对任务进行排序,使那些截止时间早且重要程度高的任务优先得到调度。关于此见内情最后通过模拟调度程序对任务进行调度并在终端把调度结果展示给用户(任涛涛,柳菲菲,2022)。调度过程如图4所示。图4改进调度流程图改进部分代码:for(inti=1;i<=3;i++){ for(intj=i+1;j<=4;j++){ if(tcb[i].Period>tcb[j].Period){ tcb[0]=tcb[i];tcb[i]=tcb[j];tcb[j]=tcb[0];} if(tcb[i].Period==tcb[j].Period){ if(tcb[i].Priority<tcb[j].Priority){ tcb[0]=tcb[i];tcb[i]=tcb[j];tcb[j]=tcb[0];} } } }改进后的代码增加了任务排序功能,对输入的任务集合先根据最早截止时间进行排序优先满足截止时间比较早的任务(孙俊杰,赵慧敏,2022)。当截止时间相同时把截止时间相同的任务集根据任务优先级也就是任务重要程度进行排序,据此可知事情真相然后选择出在系统能力范围内可调度的任务。根据提示输入如下数据:任务0的周期为20运行时间为10优先级为2。任务1的周期为30运行时间为5优先级为4。任务2的周期为40运行时间为10优先级为3。任务3的周期为20运行时间为5优先级为4。任务4的周期为35运行时间为5优先级为8。任务5的周期为45运行时间为20优先级为7。任务6的周期为20运行时间为15优先级为3。任务7的周期为20运行时间为15优先级为5。调度运行结果如图5所示:图5改进后运行结果总结本文通过对EDF实时调度算法的分析与研究,模拟了EDF调度算法的调度过程,并通过一些分析与仿真对算法进行详细讨论,找出算法的优点和不足。针对EDF算法的缺点提出了一些改进的方法,通过为任务增加一个表示重要程度的变量
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025房地产预告抵押合同(绿色生态农业示范区)
- 疫情宣传课件
- 投资合作协议说明和细则
- 2026届山东省聊城市重点达标名校中考冲刺卷英语试题含答案
- 海底资源开发投资协议
- 疫情健康主题班会课件
- 疫情上网课的课件
- 智慧城市交通管理系统开发合作合同
- 全新供气合作合同
- 广西贺州初一数学试卷
- 管理学原理(南大马工程)
- 律师事务所招投标书
- 苏州天马医药集团天吉生物制药有限公司搬迁建设项目环评报告书(全本公示本)
- 绿化项目设备配置方案
- 安徽硅宝有机硅新材料有限公司年产8500吨偶联剂项目环境影响报告书
- 水利部2002建筑工程预算定额(上、下)
- 国际技术转让合同(中英文对照)
- FBCDZ系列通风机使用说明书
- 疑似预防接种异常反应报表
- 中国内部审计准则及具体准则(全)
- 数科OFD版式软件系列产品白皮书【整体】
评论
0/150
提交评论