任务管理和调度.ppt





《任务管理和调度.ppt》由会员分享,可在线阅读,更多相关《任务管理和调度.ppt(79页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、嵌入式系统设计嵌入式系统设计嵌入式系统设计嵌入式系统设计第9讲(2)任务管理和调度授课教师:电邮地址:嵌入式系统设计嵌入式系统设计嵌入式系统设计嵌入式系统设计主要内容任务调度优先级反转2023/1/嵌入式系统设计嵌入式系统设计嵌入式系统设计嵌入式系统设计3.任务调度基于优先级的可抢占调度时间片轮转调度静态调度动态调度静态调度与动态调度之间的比较2023/1/嵌入式系统设计嵌入式系统设计嵌入式系统设计嵌入式系统设计任务调度要解决的问题WHAT:按什么原则分配CPUw 任务调度算法WHEN:何时分配CPUw任务调度的时机HOW:如何分配CPUw任务调度过程(任务的上下文切换)2023/1/嵌入式系
2、统设计嵌入式系统设计嵌入式系统设计嵌入式系统设计计算机发展初期通常都要集中在计算机所在的地方,人为地以作业(job)的方式把工作内容一件一件地提交给计算机进行处理,也就不存在调度的概念随后,出现了计算机的批处理方式计算机把作业按照先来先服务的方式进行处理,体现了一种非常简单的调度概念后来出现多道程序处理方式,调度才变得复杂和重要起来2023/1/嵌入式系统设计嵌入式系统设计嵌入式系统设计嵌入式系统设计调度用来确定多任务环境下任务执行的顺序和在获得CPU资源后能够执行的时间长度。操作系统通过一个调度程序来实现调度功能。调度程序以函数的形式存在,用来实现操作系统的调度算法。w调度程序本身并不是一个
3、任务,是一个函数调用,可在内核的各个部分进行调用。调用调度程序的具体位置又被称为是一个调度点(scheduling point),调度点通常处于以下位置:w中断服务程序的结束位置;w任务因等待资源而处于等待状态;w任务处于就绪状态时等。2023/1/嵌入式系统设计嵌入式系统设计嵌入式系统设计嵌入式系统设计调度本身需要一定的系统开销,需要花费时间来计算下一个可被执行的任务。竭力使用最优调度方案往往并不是一个明智的办法w高级的调度程序通常具有不可预见性,需要花费更多的时间和资源,并且,其复杂性也增加了应用编程人员的使用难度。简单是实时内核所强调的主要特点w实用的实时内核在实现时大都采用了简单的调度
4、算法,以确保任务的实时约束特性和可预见性是可以管理的。复杂的、高级的调度算法则通常用于研究领域 2023/1/嵌入式系统设计嵌入式系统设计嵌入式系统设计嵌入式系统设计内核的主要职责就是要确保所有的任务都能够满足任务的时间约束特性要求时间约束特性来源于任务的不同需求(如截止时间、QoS等),且同一个任务在不同时候也可能具有不同的时间约束特性。w比如,机器人中用来控制行动的任务在障碍环境下行走所需要考虑的约束特性就比行走在开放环境下要多得多。能够同时适应所有情况的调度算法是不存在的。2023/1/嵌入式系统设计嵌入式系统设计嵌入式系统设计嵌入式系统设计调度算法研究从理论上来说,最优调度只有在能够完
5、全获知所有任务在处理、同步和通信方面的需求,以及硬件的处理和时间特性的基础上才能实现。w实际的应用很难实现,特别是需要获知的信息处于动态变化的情况下。w即使在这些需要的信息都是可以预见的情况下,常用的调度问题仍然是一个NP难题。w调度的复杂性将随调度需要考虑的任务和约束特性的数量呈现出指数增长。调度算法不能很好地适应系统负载和硬件资源不断增长的系统。当然,这并不意味着调度算法不能解决只有少量、定义好的任务的应用的需求。2023/1/嵌入式系统设计嵌入式系统设计嵌入式系统设计嵌入式系统设计设计调度程序时,通常需要综合考虑如下因素:CPU的使用率(CPU utilization)输入/输出设备的吞
6、吐率响应时间(responsive time)公平性截止时间这些因素之间具有一定的冲突性。比如可通过让更多的任务处于就绪状态来提高CPU的使用率,但这显然会降低系统的响应时间。调度程序的设计需要优先考虑最重要的需求,然后在各种因素之间进行折中处理。2023/1/嵌入式系统设计嵌入式系统设计嵌入式系统设计嵌入式系统设计调度算法是在一个特定时刻用来确定将要运行的任务的一组规则。从1973年Liu和Layland开始关于实时调度算法的研究工作以来(1973年,Liu和Layland发表了一篇名为“Scheduling Algorithms for Multiprogramming in a Hard
7、 Real-Time Environment”的论文),相继出现了很多调度算法和方法。对于调度方法,可以划分为以下三个主要的行为:脱机配置运行时调度先验性分析2023/1/嵌入式系统设计嵌入式系统设计嵌入式系统设计嵌入式系统设计脱机配置产生运行时调度所需要的静态信息;运行时调度在系统运行的时候根据不同的事件在各个计算之间进行切换处理;先验性分析根据静态配置信息和调度算法在运行时的行为分析确定所有的时间需求是否得到满足。各种调度算法之间的差异在于它们在上述三种行为之间的侧重点。先验性分析通过测试来确定调度方法的可行性,比如所有任务在运行时的时间约束特性是否都能得到满足。2023/1/嵌入式系统设
8、计嵌入式系统设计嵌入式系统设计嵌入式系统设计对于大量的实时调度方法而言,存在着以下几类主要的划分方法:离线(off-line)和在线(on-line)调度抢占(preemptive)和非抢占(non-preemptive)调度静态(static)和动态(dynamic)调度最佳(optimal)和试探性(heuristic)调度2023/1/嵌入式系统设计嵌入式系统设计嵌入式系统设计嵌入式系统设计离线调度和在线调度:根据获得调度信息的时机。离线调度:w运行过程中使用的调度信息在系统运行之前就确定了,如时间驱动的调度。w离线调度算法具有确定性,但缺乏灵活性,适用于那些特性能够预先确定,且不容易发
9、生变化的应用。在线调度:w调度信息在系统运行过程中动态获得,如优先级驱动的调度(如EDF,RMS等)。w在线调度算法在形成最佳调度决策上具有较大的灵活性。2023/1/嵌入式系统设计嵌入式系统设计嵌入式系统设计嵌入式系统设计抢占式调度和非抢占式调度:任务在运行过程中能否被打断的处理情况。抢占式调度:w正在运行的任务可能被其他任务所打断。非抢占式调度:w一旦任务开始运行,该任务只有在运行完成而主动放弃CPU资源,或是因为等待其他资源被阻塞的情况下才会停止运行。实时内核大都采用了抢占式调度算法,使关键任务能够打断非关键任务的执行,确保关键任务的截止时间能够得到满足。抢占式调度算法要更复杂些,且需要
10、更多的资源,并可能在使用不当的情况下会造成低优先级任务出现长时间得不到执行的情况。非抢占式调度算法常用于那些任务需要按照预先确定的顺序进行执行,且只有当任务主动放弃CPU资源后,其他任务才能得到执行的情况。2023/1/嵌入式系统设计嵌入式系统设计嵌入式系统设计嵌入式系统设计ISRLow Priority TaskHigh Priority TaskISRISR make High Priority Task ReadyISRCompletes(Return to Task)Low Priority TaskCompletes(Switch to HP Task)Interrupt Occur
11、sVector to ISRNon-PreemptiveNon-Preemptive 2023/1/嵌入式系统设计嵌入式系统设计嵌入式系统设计嵌入式系统设计ISRLow Priority Task(LPT)High Priority Task(HPT)ISRISR make High Priority Task ReadyInterrupt OccursVector to ISRISRCompletes(Switch to HP Task)HP Task Completes(Switch back to LP Task)PreemptivePreemptive 2023/1/嵌入式系统设计嵌入
12、式系统设计嵌入式系统设计嵌入式系统设计内核的可抢占性内核可抢占与不可抢占:执行内核提供的系统调用的过程中,是否可以被中断打断。可抢占内核:即使正在执行的是内核服务函数,也能响应中断,并且中断服务程序退出时能进行任务重新调度:如果有优先级更高的任务就绪,就立即让高优先级任务运行,不要求回到被中断的任务,将未完成的系统调用执行完。2023/1/嵌入式系统设计嵌入式系统设计嵌入式系统设计嵌入式系统设计内核的可抢占性不可抢占内核:不可抢占内核有两种情况内核服务函数不能被中断。系统在执行内核服务函数时处于关中断状态,不能响应外部可屏蔽中断,这样就会在一定程度上延迟中断响应时间。能被中断但是不能进行任务重
13、新调度。w系统在执行内核服务函数时可以响应中断,不会延迟中断响应时间;w但是在中断退出时不进行任务重新调度,即使在中断服务程序执行过程中有更高优先级的任务就绪,也必须回到被中断的任务将未完成的内核函数执行完后,才能让高优先级任务执行。2023/1/嵌入式系统设计嵌入式系统设计嵌入式系统设计嵌入式系统设计低优先级任务低优先级任务内核服务内核服务ISRISR高优先级任务高优先级任务时时间间(1)(1)(2)(2)(3)(3)(4)(4)(5)(5)不可抢占内核(允许中断)不可抢占内核(允许中断)2023/1/嵌入式系统设计嵌入式系统设计嵌入式系统设计嵌入式系统设计低优先级任务低优先级任务内核服务内
14、核服务ISRISR高优先级任务高优先级任务时时间间(1)(1)(2)(2)(3)(3)(4)(4)(5)(5)可抢占内核可抢占内核2023/1/嵌入式系统设计嵌入式系统设计嵌入式系统设计嵌入式系统设计静态调度和动态调度:根据任务优先级的确定时机静态调度:w所有任务的优先级在设计时就确定下来了,且在运行过程中不会发生变化(如RMS)。动态调度:w任务的优先级则在运行过程中确定,并可能不断地发生变化(如EDF)。静态调度算法适用于能够完全把握系统中所有任务及其时间约束(如截止时间、运行时间、优先顺序和运行过程中的到达时间)特性的情况。静态调度比较简单,但缺乏灵活性,不利于系统扩展;动态调度有足够的
15、灵活性来处理变化的系统情况,但需要消耗更多的系统资源。2023/1/嵌入式系统设计嵌入式系统设计嵌入式系统设计嵌入式系统设计CPU的使用率(utilization)对于给定的一组任务,这些任务所使用的整个CPU资源的比率。对于一个给定的调度算法,其CPU使用率存在着一个理论上的上限,如EDF算法的最大CPU使用率为1。可调度性(schedulability)对于给定的一组任务,如果所有任务都能满足截止时间的要求,这些任务就是可调度的。对于在线调度算法,当一个新的任务需要加入到系统中时,应进行可调度性分析w如果加入任务后会导致某些任务不能满足调度性,则该任务就不能添加到系统中去可调度性的程度可以
16、通过所有任务截止时间都能得到满足的情况下的最大CPU使用率来进行衡量。2023/1/嵌入式系统设计嵌入式系统设计嵌入式系统设计嵌入式系统设计基于优先级的可抢占调度 基于优先级的可抢占调度方式如果出现具有更高优先级的任务处于就绪状态时,当前任务将停止运行,把CPU的控制权交给具有更高优先级的任务,使更高优先级的任务得到执行。实时内核需要确保CPU总是被具有最高优先级的就绪任务所控制。当一个具有比当前正在运行任务的优先级更高的任务处于就绪状态的时候,实时内核应及时进行任务切换,保存当前正在运行任务的上下文,切换到具有更高优先级的任务的上下文。2023/1/嵌入式系统设计嵌入式系统设计嵌入式系统设计
17、嵌入式系统设计任务任务1 1任务任务2 2任务任务3 3优先级优先级高高低低时间时间任务任务2 2就绪就绪任务任务3 3就绪就绪任务任务2 2任务任务1 1抢占抢占抢占抢占任务任务3 3运行结束运行结束任务任务2 2运行结束运行结束在可抢占调度方式下的任务运行情况在可抢占调度方式下的任务运行情况在可抢占调度方式下的任务运行情况在可抢占调度方式下的任务运行情况 任务任务1 1被具有更高优先级的任务被具有更高优先级的任务2 2所抢占,然后任务所抢占,然后任务2 2又被任务又被任务3 3抢占。当抢占。当任务任务3 3完成运行后,任务完成运行后,任务2 2继续执行。当任务继续执行。当任务2 2完成运行
18、后,任务完成运行后,任务1 1才又得才又得以继续执行。以继续执行。2023/1/嵌入式系统设计嵌入式系统设计嵌入式系统设计嵌入式系统设计时间片轮转调度 时间片轮转调度(round-robin scheduling)算法当有两个或多个就绪任务具有相同的优先级,且它们是就绪任务中优先级最高的任务时,任务调度程序按照这组任务就绪的先后次序调度第一个任务,让第一个任务运行一段时间,然后又调度第二个任务,让第二个任务又运行一段时间,依次类推,到该组最后一个任务也得以运行一段时间后,接下来又让第一个任务运行。任务运行的这段时间称为时间片(time slicing)。2023/1/嵌入式系统设计嵌入式系统设
19、计嵌入式系统设计嵌入式系统设计时间片轮转调度在时间片轮转调度方式中当任务运行完一个时间片后,该任务即使还没有停止运行,也必须释放处理器让下一个与它相同优先级的任务运行,使实时系统中优先级相同的任务具有平等的运行权利。释放处理器的任务被排到同优先级就绪任务链的链尾,等待再次运行。2023/1/嵌入式系统设计嵌入式系统设计嵌入式系统设计嵌入式系统设计时间片轮转调度采用时间片轮转调度算法时,任务的时间片大小要适当选择。时间片大小的选择会影响系统的性能和效率:w时间片太大,时间片轮转调度就没有意义;w时间片太小,任务切换过于频繁,处理器开销大,真正用于运行应用程序的时间将会减小。不同的实时内核在实现时
20、间片轮转调度算法上可能有一些差异:有的内核允许同优先级的各个任务有不一致的时间片;有的内核要求相同优先级的任务具有一致的时间片。2023/1/嵌入式系统设计嵌入式系统设计嵌入式系统设计嵌入式系统设计任务任务1 1任务任务2 2任务任务3 3优先级优先级高高低低时间时间任务任务3 3就绪就绪任务任务3 3运行结束运行结束任务任务1 1任务任务2 2任务任务1 1任务任务2 2在时间片轮转调度方式下的任务运行情况在时间片轮转调度方式下的任务运行情况在时间片轮转调度方式下的任务运行情况在时间片轮转调度方式下的任务运行情况任务任务1 1和任务和任务2 2具有相同的优先级,按照时间片轮转的方式轮流执行。
21、当具有相同的优先级,按照时间片轮转的方式轮流执行。当高优先级任务高优先级任务3 3就绪后,正在执行的任务就绪后,正在执行的任务2 2被抢占,高优先级任务被抢占,高优先级任务3 3得到得到执行。当任务执行。当任务3 3完成运行后,任务完成运行后,任务2 2才重新在未完成的时间片内继续执行。才重新在未完成的时间片内继续执行。随后任务随后任务1 1和任务和任务2 2又按照时间片轮转的方式执行。又按照时间片轮转的方式执行。2023/1/嵌入式系统设计嵌入式系统设计嵌入式系统设计嵌入式系统设计静态调度静态调度算法任务的优先级需要在系统运行前进行确定。确立任务优先级的主要依据为:w执行时间。以执行时间为依
22、据的调度算法为:n最短执行时间优先(smallest execution time first);n最长执行时间优先(largest execution time first)。w周期。以周期为依据的调度算法为:n短周期任务优先(smallest period first);n长周期任务优先(largest period first)。2023/1/嵌入式系统设计嵌入式系统设计嵌入式系统设计嵌入式系统设计静态调度w任务的CPU使用率。任务的CPU使用率为任务计算时间与任务周期的比值。以任务的CPU使用率为依据的调度算法为:n最小CPU使用率优先(smallest task utilizatio
23、n first);n最大CPU使用率优先(largest task utilization first)。w紧急程度。根据任务的紧急程度,以人为的方式进行优先级的静态安排。人为安排优先级比率单调调度算法2023/1/嵌入式系统设计嵌入式系统设计嵌入式系统设计嵌入式系统设计 人为安排优先级 人为安排优先级是嵌入式实时软件开发中使用得非常多的一种方法。以系统分析、设计人员对系统需求的理解为基础,确定出系统中各个任务之间的相对优先情况,并据此确定出各个任务的优先级。2023/1/嵌入式系统设计嵌入式系统设计嵌入式系统设计嵌入式系统设计webDisplaydataHandlingdataRecv1 请
24、求请求Web页面页面2 请求请求Web页面页面3 请求请求Web页面页面4 Web数据数据5 Web数据数据6 解析后的解析后的Web数据数据在一个用来实现网页浏览的应用中,可把整个应用划分为网络数据接收在一个用来实现网页浏览的应用中,可把整个应用划分为网络数据接收dataRecvdataRecv、网页数据处理、网页数据处理dataHandlingdataHandling和网页显示和网页显示webDisplaywebDisplay等三个任等三个任务。务。由于由于dataRecvdataRecv需要及时接收从网络传过来的数据,其优先级应最高;需要及时接收从网络传过来的数据,其优先级应最高;web
25、DisplaywebDisplay需要及时处理用户的输入(如停止获取当前页面或是请求新需要及时处理用户的输入(如停止获取当前页面或是请求新的页面等),其优先级应比的页面等),其优先级应比dataHandlingdataHandling高。据此,可人为地把高。据此,可人为地把dataRecvdataRecv、dataHandlingdataHandling和和webDisplaywebDisplay的优先级分别安排为的优先级分别安排为5 5、7 7、6 6(设定数字越大,任务的优先级越低)。(设定数字越大,任务的优先级越低)。2023/1/嵌入式系统设计嵌入式系统设计嵌入式系统设计嵌入式系统设计
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 任务 管理 调度

限制150内