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

RM和EDF——硬实时环境下多线程的调度算法 毕业论文.doc

RM和EDF——硬实时环境下多线程的调度算法 毕业论文.doc

  1. 1、本文档共18页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
RM和EDF——硬实时环境下多线程的调度算法 摘要:单处理器的多线程调度问题的研究范围已经从它本身的特征拓展到程序运行的可靠性。研究表明最佳固定优先级调度在大型任务序列集的情况下的最大调度利用率仅为70%。此外,根据当前任务序列截止期动态分配优先级可以使调度率利用率等于1。本文还讨论了将两种调度方法结合起来的算法。 1 引言 近年来,运用计算机来控制和监测工业生产过程已得到广泛应用和不断扩展,并且在未来很可能得到更大的拓展。此类应用的多数情况下,计算机由一定数目的时限监控程序和一批非时限任务流所共用。然而,在其他的应用中,非时限作业不存在且计算机的有效利用只能通过谨慎调度时限监测程序来达到。后者被称为“纯过程控制”且为本文呈现的组合调度分析提供了理论背景。本文研究了此类程序设计中的两种调度算法,这两种均为可抢断优先级驱动算法,这意味着正在处理的任务可被任何高优先级任务中断。第一个算法用一个固定优先级分配能使处理器利用率到达约70%甚至更大。第二个算法通过动态分配优先级可以达到处理器的全利用。此外,本文还讨论了两个算法的结合。 2 背景 一个程序控制计算机执行一个或更多的监控程序。追踪航天器运行轨迹的天线尖端就是此类监控程序的一个例子。每个程序与一系列任务序列集相联且共同被执行。此类任务中的一些任务是为了响应计算机监控的设备所发生的事件。这些任务不能先于事件执行。每个任务都必须在事件按要求释放后的固定时间内执行完毕。在此时间段内的服务都需确保稳定性。将运行环境分类为“硬实时”[1]是为了在可接受的响应时间统计分布上与“软实时”相对应。 多数现有多程序设计文献是针对商业分时系统的统计数据分析(文献[2]包含了详细的参考书目)。也有文献针对更有意思的方面,比如调度批量处理设备或是混合批量分时设备,这些调度通常是在如文献[3]-[8]中多处理器配置环境下。仅有少数论文直接讨论如何攻克“硬实时”程序设计的难关。Manacher[1]提出了硬实时环境下的任务的调度的算法,但它的结果受到一个不现实情况的限制,比如对所有任务只有一个请求时间,即便将多截止时间考虑在内。Lampson[9]概括性的讨论了软件调度问题并且提出了一套ALGOL多程序设计步骤,这些步骤可以通过软件执行或是设计成用于特殊目的的调度器。对于资源的配置、优先级分配及时序,他提出了一个计算估计的响应时间的程序,此程序是基于针对需要可靠性保证的程序所提供的时间信息。然而,它并没有描述这个程序所必须使用的算法。 Martin[10]的文章描述了“实时”系统的范围且有条理的讨论了编程过程中遇到的难题。Martin提出在实时软件研发期间必须保持严格的工程管理控制,他的这一论述得到了Jarauch[11]的自动结账软件系统论文的强烈回应。这些研讨旨在强调软件设计中运用更为系统的方法的重要性。 3 环境 为了得到硬实时环境下程序运行的分析结果,必须对运行环境作出一些假设。并不是所有的这些假设都是绝对必要的,在后面的章节中会讨论放宽假设条件后的影响。 (A1) 存在硬截止期的所有任务的请求是周期性的,且请求可被经常的中断。 (A2) 截止期仅由运行能力的限制组成,也就是说,每个任务必须在下一个请求发生前完成。 (A3) 请求中的任务是互相独立的,某个任务不依赖于这个请求中其他任务是否初始化或已经完成。 (A4) 每个任务的运行时间不变且不随时间变化。运行时间是指处理器无中断地执行任务所需要的时间。 (A5) 系统中的所有非周期任务都是特殊的,它们是初始和故障恢复程序,它们可以在自身运行时取代周期性任务,并且没有硬、关键截止期。 假设(A1)与Martin[12]形成对比,但显得对纯过程控制更加有效。假设(A2)消除了单个任务的排队问题。对于假设(A2)而言,每个外设功能必须拥有少量但可能至关重要的缓冲硬件。任何计算机内部结束的控制跳转都必须允许至少一个单元的采样延迟。注意到假设(A3)并不排除任务的出现只能遵循任务的出现次数,此数为固定的,即为。这种情况可以通过选择任务和的周期来建模,以便使的周期是的倍,并且次请求会与1次请求一致等等。假设(A4)的运行时间作为最大任务处理时间且可以被中断。通过这种方法,请求继承者所需的时间和抢占代价也能被考虑在内。因为有大容量的主存,而且主存和辅助存储设备之间的数据传输相互重叠,程序在现代计算机系统环境下运行,因此假设(A4)是一个很好的近似,即使它并不确切。这些假设使得一个任务的完成特征有以下两个指标:它的请求周期和它的运行时间。除非另有说明,在本文中我们用来表示个周期任务,且它们的请求周期是,运行时间各为。任务的请求速率是其请求时间的倒数。 一个调度算法是一套决定在特定时刻所执行的任务的规则。本文研究的调度算法是优先级驱动的可抢断算法。也就是说,任何

您可能关注的文档

文档评论(0)

chemcary + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档