CN110825506A - 一种嵌入式操作系统的任务调度方法、装置及存储介质 - Google Patents
一种嵌入式操作系统的任务调度方法、装置及存储介质 Download PDFInfo
- Publication number
- CN110825506A CN110825506A CN201911049134.1A CN201911049134A CN110825506A CN 110825506 A CN110825506 A CN 110825506A CN 201911049134 A CN201911049134 A CN 201911049134A CN 110825506 A CN110825506 A CN 110825506A
- Authority
- CN
- China
- Prior art keywords
- task
- scheduling
- operating system
- priority
- embedded operating
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 37
- 230000006870 function Effects 0.000 claims description 10
- 238000004590 computer program Methods 0.000 claims description 6
- 238000012544 monitoring process Methods 0.000 description 4
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000012163 sequencing technique Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 101100334010 Drosophila melanogaster sotv gene Proteins 0.000 description 1
- -1 Ext3 Proteins 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种嵌入式操作系统的任务调度方法,调度初始化,定义空闲时间最小优先的调度模式,其中任务预测能完成的时间与其截止时间的差值称定义为空闲时间,将该调度方法添加进宏定义中并将其放在调度链表的头部同时重新对嵌入式操作系统的原有调度模式进行优先权排序,使得新加入的调度模式优先级高于原有调度算法;对数据结构和调度参数的进行初始化,在所述嵌入式操作系统中设置额外的算法调度的运行队列,并将所述的运行队列加入到全局调度器的就绪队列中;通过定义空闲时间最小优先的调度模式调度的任务集合都被安排在了额外队列中;同时通过红黑树的数据结构存储所述任务集合所有任务。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种嵌入式操作系统的任务调度方法、装置及存储介质。
背景技术
嵌入式设备的运算能力越来越强,很多嵌入式装置具有多媒体摄像(拍摄视频,照片连拍或者录音功能),通过摄像头获取的实时数据则以普通文件的方式保存于文件系统之中。嵌入式装置通常支持通用的文件系统格式(如FAT12、FAT16、FAT32、NTFS、ExFAT、Ext2、Ext3、HFS、HFS+等)。通用文件系统的支持,意味着介质中存储的文件不需要进行任何格式装换,就可以与其它支持这些文件系统格式的系统进行数据的共享使用。所以存储文件写入数据的时候,都必须按照相关文件系统之格式,数据组织规则(如文件的属性信息存储位置,文件存储位置的分布规则等),对的存储设备进行访问。
嵌入式设备中多媒体部分支持录音或者拍摄视频,而录音或者摄像等会产生数据流,数据流按照普通流媒文件保存于文件系统中。如录音保存的文件为PCM、ADPCM、MP3、amr等音频文件。摄像视频保存avi、mov等视频格式文件,而这些文件格式也遵循数据一些文件格式规范,如frame头信息+数据节点等的数据信息写入文件必须符合这些格式规范。嵌入式操作系统如Linux系统启动时BIOS(Basic Input Output System,基本输入输出系统)会提供处理器相关的静态信息,Linux系统以处理器相关的静态信息为基础,根据HT(Hyper-Threading,超线程),内核(core),SMP(Symmetrical Multi-Processing,对称多处理机)、NUMA(Non-Uniform Memory Access,非一致性共享内存访问)节点之间的关系将系统结构划分成了3个级别的调度域(Scheduling Domain),每个调度域为具有相同属性的一组处理器(CPU,Central Processing Unit)的集合,如图1所示,3个级别的调度域分别为SMT(Simultaneous Multithreading、同时多线程)域、SMP域、NMUA域,各个不同级别的调度域之间通过指针链接在一起,从而形成一种多层次的架构。现有的这种架构主要用于周期性的对多个处理器之间进行负载均衡,或在每次执行完毕后对多个处理器之间进行负载均衡,还用于根据用户空间下发的CPU亲和性进行系统调用。
现有技术中的多核处理器系统运行应用程序时,大多以线程为调度单位运行,然而,发明人在研究中发现,目前的线程调度过程中,是按照线程的优先级确定将要切换的线程,而忽略了多核处理器系统共享资源产生的资源竞争或浪费而导致多核处理器系统性能下降的问题。现有的基于多核处理器的调度方法对多个处理器之间进行的负载均衡属于处理器调度完成任务之后的事后调整行为,但是对于调度之前多个处理器间的任务分配不均衡、不精细则无法解决。而且CPU亲和性的相关策略只能从用户空间手动下发,调度器只能根据用户空间指定的CPU亲和性来对任务进行调度,而无法实现调度器的智能化调度。
发明内容
本发明旨在至少解决现有技术中存在的技术问题。为此,本发明公开了一种嵌入式操作系统的任务调度方法,包括:调度初始化,定义空闲时间最小优先的调度模式,其中任务预测能完成的时间与其截止时间的差值称为空闲时间,将该调度方法添加进宏定义中并将其放在调度链表的头部同时重新对嵌入式操作系统的原有调度模式进行优先权排序,使得新加入的调度模式优先级高于原有调度算法;对数据结构和调度参数的进行初始化,在所述嵌入式操作系统中设置额外的算法调度的运行队列,并将所述的运行队列加入到全局调度器的就绪队列中;通过定义空闲时间最小优先的调度模式调度的任务集合都被安排在了额外队列中;同时通过红黑树的数据结构存储所述任务集合所有任务,其中,所述红黑树中的每一个节点标识为一个任务;通过在系统中设置第一中断函数,并利用所述第一中断函数来实时更新红黑树上的节点,使得保证空闲时间最小的任务节点的任务优先级最高以保证该任务在调度时被系统选中。
更进一步地,监测任务的执行时间对调度的影响值,其中,所述影响值包括系统完成任务的速度、任务等待时长,若影响值大于预设阈值,则更换调度模式并重新监测任务执行对调度的影响情况。
更进一步地,根据任务的空闲时间为其分配优先级,空闲时间越短任务的优先级越高,所述嵌入式操作系统每次调度都会查询预估的任务完成时间表,并选择空闲时间最短的任务为其分配处理器资源让其运行。
更进一步地,所述嵌入式操作系统为Linux系统。
更进一步地,查询红黑树对应的进程中的所有线程分组,判断是否所有的所述线程分组正在执行最高优先权的任务,遍历所有的线程察验该线程的执行任务情况,若检测到有线程并未执行最高优先权的任务,若检测到低优先权的任务正在被执行,则通过第二中断函数重新调整调度模式,并查阅调度逻辑日志。
本发明还公开了一种电子装置,包括:处理器;以及,存储器,用于存储所述处理器的可执行指令;其中,所述处理器配置为经由执行所述可执行指令来执行所述的嵌入式操作系统的任务调度方法。
本发明进一步公开了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现所述的嵌入式操作系统的任务调度方法。
本发明与现有技术相比,由于嵌入式操作系统由于其应用的特殊领域对系统的实时性有着较高的要求,针对算法的实时性和可调度性,设计了一种新的调度方法,实现嵌入式处理器之间的任务分配均衡性、更精细化的提高,并且能够感知系统的拓扑结构,从而可以自行获知处理器的亲和性,不需要用户的手动下发,提高调度的智能化。
附图说明
从以下结合附图的描述可以进一步理解本发明。图中的部件不一定按比例绘制,而是将重点放在示出实施例的原理上。在图中,在不同的视图中,相同的附图标记指定对应的部分。
图1是本发明的一种嵌入式操作系统的任务调度方法的结构图。
图2是本发明的一实施例所示的一种嵌入式操作系统的任务调度方法的流程图。
具体实施方式
实施例一
如图1所示CPU调度模型,本实施提供了一种相应的嵌入式操作系统的任务调度方法,如图2所示,包括:调度初始化,定义空闲时间最小优先的调度模式,其中任务预测能完成的时间与其截止时间的差值称为空闲时间,将该调度方法添加进宏定义中并将其放在调度链表的头部同时重新对嵌入式操作系统的原有调度模式进行优先权排序,使得新加入的调度模式优先级高于原有调度算法;对数据结构和调度参数的进行初始化,在所述嵌入式操作系统中设置额外的算法调度的运行队列,并将所述的运行队列加入到全局调度器的就绪队列中;通过定义空闲时间最小优先的调度模式调度的任务集合都被安排在了额外队列中;同时通过红黑树的数据结构存储所述任务集合所有任务,其中,所述红黑树中的每一个节点标识为一个任务;通过在系统中设置第一中断函数,并利用所述第一中断函数来实时更新红黑树上的节点,使得保证空闲时间最小的任务节点的任务优先级最高以保证该任务在调度时被系统选中。
更进一步地,监测任务的执行时间对调度的影响值,其中,所述影响值包括系统完成任务的速度、任务等待时长,若影响值大于预设阈值,则更换调度模式并重新监测任务执行对调度的影响情况。
更进一步地,根据任务的空闲时间为其分配优先级,空闲时间越短任务的优先级越高,所述嵌入式操作系统每次调度都会查询预估的任务完成时间表,并选择空闲时间最短的任务为其分配处理器资源让其运行。
更进一步地,所述嵌入式操作系统为Linux系统。
更进一步地,查询红黑树对应的进程中的所有线程分组,判断是否所有的所述线程分组正在执行最高优先权的任务,遍历所有的线程察验该线程的执行任务情况,若检测到有线程并未执行最高优先权的任务,若检测到低优先权的任务正在被执行,则通过第二中断函数重新调整调度模式,并查阅调度逻辑日志。
本发明还公开了一种电子装置,包括:处理器;以及,存储器,用于存储所述处理器的可执行指令;其中,所述处理器配置为经由执行所述可执行指令来执行所述的嵌入式操作系统的任务调度方法。
本发明进一步公开了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现所述的嵌入式操作系统的任务调度方法。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
虽然上面已经参考各种实施例描述了本发明,但是应当理解,在不脱离本发明的范围的情况下,可以进行许多改变和修改。因此,其旨在上述详细描述被认为是例示性的而非限制性的,并且应当理解,以下权利要求(包括所有等同物)旨在限定本发明的精神和范围。以上这些实施例应理解为仅用于说明本发明而不用于限制本发明的保护范围。在阅读了本发明的记载的内容之后,技术人员可以对本发明作各种改动或修改,这些等效变化和修饰同样落入本发明权利要求所限定的范围。
Claims (7)
1.一种嵌入式操作系统的任务调度方法,其特征在于,调度初始化,定义空闲时间最小优先的调度模式,其中任务预测能完成的时间与其截止时间的差值定义为空闲时间,将该调度方法添加进宏定义中并将其放在调度链表的头部同时重新对嵌入式操作系统的原有调度模式进行优先权排序,使得新加入的调度模式优先级高于原有调度算法;对数据结构和调度参数的进行初始化,在所述嵌入式操作系统中设置额外的算法调度的运行队列,并将所述的运行队列加入到全局调度器的就绪队列中;通过定义空闲时间最小优先的调度模式调度的任务集合都被安排在了额外队列中;同时通过红黑树的数据结构存储所述任务集合所有任务,其中,所述红黑树中的每一个节点标识为一个任务;通过在系统中设置第一中断函数,并利用所述第一中断函数来实时更新红黑树上的节点,使得保证空闲时间最小的任务节点的任务优先级最高以保证该任务在调度时被系统选中。
2.如权利要求1所述的一种嵌入式操作系统的任务调度方法,其特征在于,监测任务的执行时间对调度的影响值,其中,所述影响值包括系统完成任务的速度、任务等待时长,若影响值大于预设阈值,则更换调度模式并重新监测任务执行对调度的影响情况。
3.如权要求2所述的一种嵌入式操作系统的任务调度方法,其特征在于,根据任务的空闲时间为其分配优先级,空闲时间越短任务的优先级越高,所述嵌入式操作系统每次调度都会查询预估的任务完成时间表,并选择空闲时间最短的任务为其分配处理器资源让其运行。
4.如权要求1所述的一种嵌入式操作系统的任务调度方法,其特征在于,所述嵌入式操作系统为Linux系统。
5.如权要求3所述的一种嵌入式操作系统的任务调度方法,其特征在于,查询红黑树对应的进程中的所有线程分组,判断是否所有的所述线程分组正在执行最高优先权的任务,遍历所有的线程察验该线程的执行任务情况,若检测到有线程并未执行最高优先权的任务,若检测到低优先权的任务正在被执行,则通过第二中断函数重新调整调度模式,并查阅调度逻辑日志。
6.一种电子装置,其特征在于,包括:
处理器;以及,
存储器,用于存储所述处理器的可执行指令;
其中,所述处理器配置为经由执行所述可执行指令来执行权利要求1-5任一项所述的嵌入式操作系统的任务调度方法。
7.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1-5任一项所述的嵌入式操作系统的任务调度方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911049134.1A CN110825506A (zh) | 2019-10-31 | 2019-10-31 | 一种嵌入式操作系统的任务调度方法、装置及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911049134.1A CN110825506A (zh) | 2019-10-31 | 2019-10-31 | 一种嵌入式操作系统的任务调度方法、装置及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110825506A true CN110825506A (zh) | 2020-02-21 |
Family
ID=69551696
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911049134.1A Pending CN110825506A (zh) | 2019-10-31 | 2019-10-31 | 一种嵌入式操作系统的任务调度方法、装置及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110825506A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111650895A (zh) * | 2020-04-08 | 2020-09-11 | 上海航天精密机械研究所 | 一种自动线生产任务动态调度方法 |
CN112015539A (zh) * | 2020-10-29 | 2020-12-01 | 北京世纪好未来教育科技有限公司 | 任务分配方法、装置和计算机存储介质 |
CN112363816A (zh) * | 2020-11-26 | 2021-02-12 | 华东计算技术研究所(中国电子科技集团公司第三十二研究所) | 嵌入式多核操作系统确定性调度方法、系统及介质 |
CN112783626A (zh) * | 2021-01-21 | 2021-05-11 | 珠海亿智电子科技有限公司 | 中断处理方法、装置、电子设备及存储介质 |
CN113688053A (zh) * | 2021-09-01 | 2021-11-23 | 北京计算机技术及应用研究所 | 云化测试工具的排队使用方法和系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5890134A (en) * | 1996-02-16 | 1999-03-30 | Mcdonnell Douglas Corporation | Scheduling optimizer |
CN102043667A (zh) * | 2010-11-25 | 2011-05-04 | 深圳市科陆电子科技股份有限公司 | 一种嵌入式操作系统的任务调度方法 |
CN102323895A (zh) * | 2011-09-02 | 2012-01-18 | 广东中大讯通软件科技有限公司 | 一种基于机顶盒嵌入式操作系统实时调度方法 |
CN109343960A (zh) * | 2018-10-12 | 2019-02-15 | 郑州云海信息技术有限公司 | 一种Linux系统的任务调度方法、系统及相关装置 |
-
2019
- 2019-10-31 CN CN201911049134.1A patent/CN110825506A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5890134A (en) * | 1996-02-16 | 1999-03-30 | Mcdonnell Douglas Corporation | Scheduling optimizer |
CN102043667A (zh) * | 2010-11-25 | 2011-05-04 | 深圳市科陆电子科技股份有限公司 | 一种嵌入式操作系统的任务调度方法 |
CN102323895A (zh) * | 2011-09-02 | 2012-01-18 | 广东中大讯通软件科技有限公司 | 一种基于机顶盒嵌入式操作系统实时调度方法 |
CN109343960A (zh) * | 2018-10-12 | 2019-02-15 | 郑州云海信息技术有限公司 | 一种Linux系统的任务调度方法、系统及相关装置 |
Non-Patent Citations (3)
Title |
---|
包增辉;宋余庆;陈健美;: "嵌入式Linux混合任务调度器的设计与实现" * |
周艳;: "基于LLF算法的双队列TinyOS调度策略" * |
杜慧江;王云光;: "Linux内核2.6.24的CFS调度器分析" * |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111650895A (zh) * | 2020-04-08 | 2020-09-11 | 上海航天精密机械研究所 | 一种自动线生产任务动态调度方法 |
CN111650895B (zh) * | 2020-04-08 | 2023-07-04 | 上海航天精密机械研究所 | 一种自动线生产任务动态调度方法 |
CN112015539A (zh) * | 2020-10-29 | 2020-12-01 | 北京世纪好未来教育科技有限公司 | 任务分配方法、装置和计算机存储介质 |
CN112015539B (zh) * | 2020-10-29 | 2021-02-02 | 北京世纪好未来教育科技有限公司 | 任务分配方法、装置和计算机存储介质 |
CN112363816A (zh) * | 2020-11-26 | 2021-02-12 | 华东计算技术研究所(中国电子科技集团公司第三十二研究所) | 嵌入式多核操作系统确定性调度方法、系统及介质 |
CN112363816B (zh) * | 2020-11-26 | 2022-08-16 | 华东计算技术研究所(中国电子科技集团公司第三十二研究所) | 嵌入式多核操作系统确定性调度方法、系统及介质 |
CN112783626A (zh) * | 2021-01-21 | 2021-05-11 | 珠海亿智电子科技有限公司 | 中断处理方法、装置、电子设备及存储介质 |
CN112783626B (zh) * | 2021-01-21 | 2023-12-01 | 珠海亿智电子科技有限公司 | 中断处理方法、装置、电子设备及存储介质 |
CN113688053A (zh) * | 2021-09-01 | 2021-11-23 | 北京计算机技术及应用研究所 | 云化测试工具的排队使用方法和系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110825506A (zh) | 一种嵌入式操作系统的任务调度方法、装置及存储介质 | |
Rao et al. | Survey on improved scheduling in Hadoop MapReduce in cloud environments | |
US10133598B2 (en) | Systems and methods of using a hypervisor to assign virtual processor priority based on task priority and to schedule virtual processors for guest operating systems | |
US9436510B2 (en) | System and method for managing the interleaved execution of threads | |
US20170228260A1 (en) | Efficient priority-aware thread scheduling | |
US9798595B2 (en) | Transparent user mode scheduling on traditional threading systems | |
US7739685B2 (en) | Decoupling a central processing unit from its tasks | |
JP2005534116A (ja) | 複数の消費者をもつコンピュータシステムで資源を動的に割当てて管理する方法 | |
JP2011192281A (ja) | 仮想マシンモニター及び仮想マシンモニターのスケジューリング方法 | |
Liu et al. | Scheduling parallel jobs with tentative runs and consolidation in the cloud | |
Liu et al. | Preemptive hadoop jobs scheduling under a deadline | |
JP2008234191A (ja) | ハードウエアモニタ管理装置及びハードウエアモニタ機能の実行方法 | |
CN111897647B (zh) | 一种多核系统中多线程调度方法、装置及设备 | |
US8954969B2 (en) | File system object node management | |
Banaei et al. | Etas: predictive scheduling of functions on worker nodes of apache openwhisk platform | |
Pastorelli et al. | Practical size-based scheduling for MapReduce workloads | |
US20090320036A1 (en) | File System Object Node Management | |
Abeni et al. | Multicore CPU reclaiming: parallel or sequential? | |
CN108429704B (zh) | 一种节点资源分配方法及装置 | |
CN115098230A (zh) | 管理线程的方法及装置 | |
Hahn et al. | Improving user experience of android smartphones using foreground app-aware I/O management | |
US10180858B2 (en) | Parallel computing device, parallel computing system, and job control method | |
US20130191839A1 (en) | Information processing apparatus, control method therefor, and computer-readable storage medium | |
Sharma et al. | CASH: a credit aware scheduling for public cloud platforms | |
Guo et al. | Work-in-progress: Cache-aware partitioned EDF scheduling for multi-core real-time systems |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20200221 |