CN107391244A - 一种基于混合调度模型的物联网操作***调度方法 - Google Patents
一种基于混合调度模型的物联网操作***调度方法 Download PDFInfo
- Publication number
- CN107391244A CN107391244A CN201710559285.6A CN201710559285A CN107391244A CN 107391244 A CN107391244 A CN 107391244A CN 201710559285 A CN201710559285 A CN 201710559285A CN 107391244 A CN107391244 A CN 107391244A
- Authority
- CN
- China
- Prior art keywords
- scheduling
- task
- real
- time
- event
- 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
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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/48—Indexing scheme relating to G06F9/48
- G06F2209/484—Precedence
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/48—Indexing scheme relating to G06F9/48
- G06F2209/486—Scheduler internals
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明公开了一种基于混合调度模型的物联网操作***调度方法,其特征在于它将***任务分为实时任务和非实时任务,实时任务采用多线程调度,使用独立堆栈;非实时任务采用事件驱动调度,使用共享堆栈。其中多线程调度的优先级高于事件驱动调度,任意时刻只能有一个调度器处于运行状态。多线程调度采用最早截止时间EDF(Earliest Deadline First)算法,事件驱动调度采用FIFO(First‑in,First‑out)队列调度。事件驱动调度器可作为多线程调度器中的一个线程被调度。通过使用本发明所述混合调度模型,可减少物联网操作***任务调度中的运行堆栈数目,在保证操作***实时性的同时减少了内存的消耗,提高了调度效率,优化了调度方式。适合于在内存资源高度受限的物联网终端上进行使用。
Description
技术领域
本发明属于物联网操作***调度方法,特别涉及一种基于混合调度模型的物联网操作***调度方法。
背景技术
物联网是新一代信息技术的重要组成部分。其英文名称是IOT (Internet OfThings),顾名思义,物联网就是“物物相连的互联网”。物联网大致可分为感知层、网络层、设备管理层、应用层等四个层次。其中最能体现物联网特征的就是物联网的感知层。感知层由各种各样的传感器和智能终端组成,运行在这些终端上的最重要的***软件——操作***,就是所谓的物联网操作***。任务调度是物联网操作***的核心功能之一,其主要功能是合理高效的调度操作***中的各类任务,使操作***在有限的片上资源上实现高效运转。
传统物联网操作***中的任务调度大多采用单一模型的调度方法,其具有简单、高效等优点,但每一种调度方法都有自己的不足,如TinyOS、Contiki等操作***采用的事件驱动型调度算法——基于 FIFO(First-in,First-out)调度策略的队列,由于不支持任务间抢占,实时性能较差。而μCOS中采用的多线程调度算法——基于固定优先级抢占的单调速率任务调度RMS(Rate Monotonic Scheduling)算法,由于要对每一个任务(无论该任务是实时性的还是非实时性的) 安排独立的堆栈,内存消耗量较大。
公开号为CN103713948A,名称为“一种优先级抢占时间片轮转操作***中任务定时调度方法”的发明公开了一种优先级抢占时间片轮转操作***中任务定时调度方法,其不足之处在于只能通过时间片累计来定时进行任务抢占,不能实现任务的实时抢占调度。公开号 CN103914346A,名称为“一种基于分组的实时操作***双优先级任务调度节能方法”的发明公开了一种基于分组的实时操作***双优先级任务调度节能方法,其不足之处在于双优先级的设置和刷新会额外占用内存资源,不适合节点资源高度受限的物联网终端应用。
本发明针对当前物联网操作***的一些弊端,利用事件驱动型调度算法与多线程调度算法相结合的混合调度算法,将任务分成实时任务与非实时任务,实时任务使用多线程调度器进行调度,保证了任务的实时性;非实时任务使用事件驱动型调度器进行调度,减少了***中堆栈的数量。本发明适合于在内存资源高度受限的实时性物联网终端上应用,既能保证任务的实时性,又能减少内存资源的消耗量。
发明内容
本发明所要解决的技术问题是:克服现有技术的不足,为物联网操作***提供一种实时性较好且内存资源消耗较小的任务调度方法。为此,本发明提出一种基于混合调度模型的物联网操作***调度方法,具体的技术方案如下:
1.将***任务分为两类:实时任务与非实时任务。实时任务间需支持抢占操作,由多线程调度器调度,且每个任务占用一个独立的堆栈;非实时任务不需要通过抢占操作保证实时性,由事件驱动调度器调度,所有任务共享同一个堆栈。
2.两个调度器之间可以相互切换,但在任意时刻,只能有一个调度器处于运行状态。
3.多线程调度器负责实时任务的调度,具有比事件驱动调度器更高的优先级,因此可在任意时刻抢占事件驱动调度器而获取CPU 资源。仅当多线程调度器处于空闲状态时(即所有实时任务均处于挂起或休眠状态),事件驱动调度器才能运行。
4.多线程调度器采用的调度算法为最早截止时间优先EDF (Earliest DeadlineFirst)算法。此算法为动态优先级调度算法,算法中优先级与截止时间成反比;截止时间越短,任务优先级越高。此算法可使实时任务的实时性得到保证,且对于CPU资源的利用率也较高。
5.事件驱动调度器采用的调度算法为FIFO队列调度策略,所有非实时任务依次执行,任务之间不支持抢占,当有实时任务触发多线程调度器时,可随时抢占事件驱动调度器的CPU使用权。
6.事件驱动调度器与多线程调度器之间的切换采用的方法是:事件驱动调度器被当成是一个事件驱动线程,参与到多线程调度中,此线程的作用就是启动事件驱动调度。
本发明与现有物联网操作***相比,具有以下优点:
1)利用混合调度模型,在保证操作***的实时性的基础上减少了任务的堆栈数,节约了内存资源。
2)混合调度模型中的两种调度机制切换的方式使操作***可按照多线程***进行实现,降低了***实现复杂度,提高了调度效率。
3)适合于应用在资源受限的物联网终端上,移植性和拓展性好。
附图说明
图1为混合调度模型原理图
图2为混合调度流程示意图
图3为混合调度机制切换实现图
具体实施方式
本发明用于提供一种基于混合调度模型的物联网操作***调度方法,为了使本发明的目的、技术方案及效果更佳清楚、明确,下面将结合附图,对本发明的具体实施方式进行详细描述,但应当理解此处所描述的具体实施方式仅仅用于解释本发明,并不用于限定本发明。
本实例公开了一种混合调度模型的物联网操作***调度方法,具体说明如下:
1.这种混合调度模型的优势之一在于可以减少***中堆栈的数量,适合于应用在资源紧张的物联网终端上。以图1为例,***中存在6个任务(T1~T6),其中3个任务(T4~T6)为实时性任务。若采用传统的多线程调度执行这6个任务,则需要创建6个线程,并分配6个堆栈。采用混合调度模型后,仅需创建4个堆栈,其中3个被实时任务T4、T5、T6所使用,剩下的1个被事件驱动调度器使用,事件驱动调度器负责以共有堆栈来调度非实时任务T1、T2、T3。
2.混合调度模型中事件驱动调度采用的是FIFO队列调度,即任务先进先出,任务之间不支持抢占。多线程调度采用的是EDF算法调度,EDF算法是一种动态优先级调度算法,此算法中优先级与截止时间成反比,截止时间越短,任务优先级越高。
3.为描述混合调度模型的调度流程,假设存在9个***任务(图 2所示),其中2个实时任务(T1和T2),T1的任务周期与运行时间分别是4和1,T2的任务周期与运行时间分别是5和3;其他7个任务则是非实时任务。根据本发明所述混合调度模型原理,T1和T2将由多线程调度器调度,每个线程拥有独立的一个运行堆栈,且两个任务之间的优先级根据其任务截止时间来动态分配。非实时任务T3~T9 由事件驱动调度器调度,所有任务公用一个公共堆栈。经计算,实时任务T1和T2的CPU资源利用率为0.85,而EDF算法的可调度边界值为1,因此此任务集是可以在截止期限之前执行完成的。
4.图2描述了T1~T9这9个任务被混合调度模型调度的流程。在时刻0,由于T1的任务截止时间大于T2,T1优先级大于T2,T1 将抢占CPU进入运行状态。而在时刻12,由于T2的截止时间大于T1的截止时间,T2的任务优先级大于T1,T2将继续执行。以此类推进行EDF算法调度。在时刻9,所有实时任务执行完毕,此时***从多线程调度模式切换到事件驱动模式,非实时任务T3开始执行。在时刻10,实时任务T2进入就绪状态,事件驱动调度器被暂停,***再次切换到多线程调度模式。在时刻14实时任务执行完毕,***再次切换到事件驱动模式,继续执行非实时任务T3。通过本发明所述混合调度模型,实时任务可在截止时间前得到执行,且***中仅需创建3个堆栈,内存消耗量比传统物联网操作***的调度方法要低。
5.本发明所述的物联网操作***中存在两种线程切换模式:一是多线程调度***内部的线程切换,二是调度器之间的切换。为了使这两种切换模式高效且便于管理,事件驱动调度***也被当成一个线程来实现,此线程的设定功能是运行事件驱动调度器以及对非实时任务进行调度。采用这种方式后,混合调度模型可***作***当做是一个纯粹的多线程模式进行调度。如图3所示。通过此种方式来降低***复杂度,提高混合调度效率。
Claims (4)
1.一种基于混合调度模型的物联网操作***调度方法,其特征在于它将***任务分为实时任务和非实时任务,实时任务采用多线程调度,使用独立堆栈;非实时任务采用事件驱动调度,使用共享堆栈。其中多线程调度的优先级高于事件驱动调度,任意时刻只能有一个调度器处于运行状态。多线程调度采用最早截止时间EDF(Earliest Deadline First)算法,事件驱动调度采用FIFO(First-in,First-out)队列调度。事件驱动调度器可作为多线程调度器中的一个线程被调度。
2.根据权利要求1所述一种基于混合调度模型的物联网操作***调度方法,其特征在于所述事件驱动调度是指所有任务依次执行,当一个任务执行完成后,其占用的内存资源被释放,下一个任务将被调度执行。任务执行过程中允许响应中断,但一个任务不能抢占另一个正在执行的任务,所有任务公用一个共享堆栈。
3.根据权利要求1所述一种基于混合调度模型的物联网操作***调度方法,其特征在于所述多线程调度是指各个任务(又称线程)是并行执行的。线程之间可支持抢占,而在一个线程被抢占前,其运行环境需被保存,每个线程都需要一个独立的运行堆栈。
4.一种基于混合调度模型的物联网操作***调度方法,其特征在于它包括以下说明:
①这种混合调度模型的优势之一在于可以减少***中堆栈的数量,适合于应用在资源紧张的物联网终端上。以图1为例,***中存在6个任务(T1~T6),其中3个任务(T4~T6)为实时性任务。若采用传统的多线程调度执行这6个任务,则需要创建6个线程,并分配6个堆栈。采用混合调度模型后,仅需创建4个堆栈,其中3个被实时任务T4、T5、T6所使用,剩下的1个被事件驱动调度器使用,事件驱动调度器负责以共有堆栈来调度非实时任务T1、T2、T3。
②混合调度模型中事件驱动调度采用的是FIFO队列调度,即任务先进先出,任务之间不支持抢占。多线程调度采用的是EDF算法调度,EDF算法是一种动态优先级调度算法,此算法中优先级与截止时间成反比,截止时间越短,任务优先级越高。
③为描述混合调度模型的调度流程,假设存在9个***任务(图2所示),其中2个实时任务(T1和T2),T1的任务周期与运行时间分别是4和1,T2的任务周期与运行时间分别是5和3;其他7个任务则是非实时任务。根据本发明所述混合调度模型原理,T1和T2将由多线程调度器调度,每个线程拥有独立的一个运行堆栈,且两个任务之间的优先级根据其任务截止时间来动态分配。非实时任务T3~T9由事件驱动调度器调度,所有任务公用一个公共堆栈。经计算,实时任务T1和T2的CPU资源利用率为0.85,而EDF算法的可调度边界值为1,因此此任务集是可以在截止期限之前执行完成的。
④图2描述了T1~T9这9个任务被混合调度模型调度的流程。在时刻0,由于T1的任务截止时间大于T2,T1优先级大于T2,T1将抢占CPU进入运行状态。而在时刻12,由于T2的截止时间大于T1的截止时间,T2的任务优先级大于T1,T2将继续执行。以此类推进行EDF算法调度。在时刻9,所有实时任务执行完毕,此时***从多线程调度模式切换到事件驱动模式,非实时任务T3开始执行。在时刻10,实时任务T2进入就绪状态,事件驱动调度器被暂停,***再次切换到多线程调度模式。在时刻14实时任务执行完毕,***再次切换到事件驱动模式,继续执行非实时任务T3。通过本发明所述混合调度模型,实时任务可在截止时间前得到执行,且***中仅需创建3个堆栈,内存消耗量比传统物联网操作***的调度方法要低。
⑤本发明所述的物联网操作***中存在两种线程切换模式:一是多线程调度***内部的线程切换,二是调度器之间的切换。为了使这两种切换模式高效且便于管理,事件驱动调度***也被当成一个线程来实现,此线程的设定功能是运行事件驱动调度器以及对非实时任务进行调度。采用这种方式后,混合调度模型可***作***当做是一个纯粹的多线程模式进行调度。如图3所示。通过此种方式来降低***复杂度,提高混合调度效率。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710559285.6A CN107391244A (zh) | 2017-07-11 | 2017-07-11 | 一种基于混合调度模型的物联网操作***调度方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710559285.6A CN107391244A (zh) | 2017-07-11 | 2017-07-11 | 一种基于混合调度模型的物联网操作***调度方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN107391244A true CN107391244A (zh) | 2017-11-24 |
Family
ID=60339120
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710559285.6A Pending CN107391244A (zh) | 2017-07-11 | 2017-07-11 | 一种基于混合调度模型的物联网操作***调度方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107391244A (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108536527A (zh) * | 2018-02-08 | 2018-09-14 | 山东省科学院自动化研究所 | 一种嵌入式软件的任务调度方法及装置 |
CN109597681A (zh) * | 2018-10-22 | 2019-04-09 | 平安科技(深圳)有限公司 | 云端控制方法、装置、计算机设备及存储介质 |
CN109840137A (zh) * | 2017-11-28 | 2019-06-04 | 大唐移动通信设备有限公司 | 一种操作***移植方法和装置 |
CN111373436A (zh) * | 2018-12-18 | 2020-07-03 | 深圳市大疆创新科技有限公司 | 图像处理方法、终端设备及存储介质 |
CN112436969A (zh) * | 2020-11-24 | 2021-03-02 | 成都西加云杉科技有限公司 | 一种物联网设备管理方法、***、设备及介质 |
CN113238501A (zh) * | 2021-05-08 | 2021-08-10 | 西安联乘智能科技有限公司 | 一种基于rtos操作***的车联网控制方法和*** |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090164811A1 (en) * | 2007-12-21 | 2009-06-25 | Ratnesh Sharma | Methods For Analyzing Environmental Data In An Infrastructure |
CN103049314A (zh) * | 2012-12-17 | 2013-04-17 | 南昌航空大学 | 一种开放式***实时调度方法 |
-
2017
- 2017-07-11 CN CN201710559285.6A patent/CN107391244A/zh active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090164811A1 (en) * | 2007-12-21 | 2009-06-25 | Ratnesh Sharma | Methods For Analyzing Environmental Data In An Infrastructure |
CN103049314A (zh) * | 2012-12-17 | 2013-04-17 | 南昌航空大学 | 一种开放式***实时调度方法 |
Non-Patent Citations (1)
Title |
---|
王简: "实时操作***任务调度算法的硬件化研究", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109840137A (zh) * | 2017-11-28 | 2019-06-04 | 大唐移动通信设备有限公司 | 一种操作***移植方法和装置 |
CN109840137B (zh) * | 2017-11-28 | 2021-01-22 | 大唐移动通信设备有限公司 | 一种跨核调度方法和装置 |
CN108536527A (zh) * | 2018-02-08 | 2018-09-14 | 山东省科学院自动化研究所 | 一种嵌入式软件的任务调度方法及装置 |
CN108536527B (zh) * | 2018-02-08 | 2020-10-30 | 山东省科学院自动化研究所 | 一种嵌入式软件的任务调度方法及装置 |
CN109597681A (zh) * | 2018-10-22 | 2019-04-09 | 平安科技(深圳)有限公司 | 云端控制方法、装置、计算机设备及存储介质 |
CN109597681B (zh) * | 2018-10-22 | 2024-05-07 | 平安科技(深圳)有限公司 | 云端控制方法、装置、计算机设备及存储介质 |
CN111373436A (zh) * | 2018-12-18 | 2020-07-03 | 深圳市大疆创新科技有限公司 | 图像处理方法、终端设备及存储介质 |
CN112436969A (zh) * | 2020-11-24 | 2021-03-02 | 成都西加云杉科技有限公司 | 一种物联网设备管理方法、***、设备及介质 |
CN113238501A (zh) * | 2021-05-08 | 2021-08-10 | 西安联乘智能科技有限公司 | 一种基于rtos操作***的车联网控制方法和*** |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107391244A (zh) | 一种基于混合调度模型的物联网操作***调度方法 | |
CN101339521B (zh) | 一种任务优先级动态调度算法 | |
CN101452404B (zh) | 一种嵌入式操作***的任务调度装置及方法 | |
CN101894047B (zh) | 一种基于内核虚拟机调度策略的实现方法 | |
CN104750543A (zh) | 线程创建方法、业务请求处理方法及相关设备 | |
CN106445070B (zh) | 一种硬实时***资源受限偶发任务能耗优化调度方法 | |
CN104021044A (zh) | 一种作业调度方法及装置 | |
CN108984292A (zh) | 混合关键***固定优先级周期任务能耗优化方法 | |
CN104111877A (zh) | 一种基于线程调配引擎的线程资源动态调配***和方法 | |
CN103941649A (zh) | 多轴运动卡控制***的控制方法 | |
CN103995742B (zh) | 一种基于mcu的嵌入式实时调度控制装置及方法 | |
CN104199730A (zh) | 一种基于同步i/o复用机制的单线程多任务处理方法 | |
CN103488531B (zh) | 一种基于多核处理器和fpga的软硬件混合实时任务调度方法 | |
CN109739332B (zh) | 一种多任务通用能耗优化方法 | |
CN111651864B (zh) | 一种事件集中发射式多异构时间队列优化仿真执行方法及*** | |
CN106970835A (zh) | 固定优先级资源受限***层次能耗优化方法 | |
CN106445659A (zh) | 一种空间飞行器周期性混成随机任务调度方法 | |
CN104090826A (zh) | 基于相关性的任务优化部署方法 | |
CN108563494A (zh) | 一种自适应动态调整的线程调度***及方法 | |
El Ghor et al. | Energy efficient scheduler of aperiodic jobs for real-time embedded systems | |
Funaoka et al. | Energy-efficient optimal real-time scheduling on multiprocessors | |
CN105706022B (zh) | 一种预测处理器利用率的方法、处理装置和终端设备 | |
CN108563497B (zh) | 一种高效的多维度算法调度方法、任务服务器 | |
CN106325983A (zh) | 一种内存占用小、支持并发的微程模型及调度方法 | |
Pachchigar et al. | Design and Implementation of Deadline based EDF Algorithm on ARM LPC2148 |
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 | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20171124 |
|
WD01 | Invention patent application deemed withdrawn after publication |