CN106775964A - 时间/事件混合触发的操作系统架构及任务调度方法 - Google Patents

时间/事件混合触发的操作系统架构及任务调度方法 Download PDF

Info

Publication number
CN106775964A
CN106775964A CN201610996815.9A CN201610996815A CN106775964A CN 106775964 A CN106775964 A CN 106775964A CN 201610996815 A CN201610996815 A CN 201610996815A CN 106775964 A CN106775964 A CN 106775964A
Authority
CN
China
Prior art keywords
task
time
module
scheduling
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
Application number
CN201610996815.9A
Other languages
English (en)
Inventor
朱怡安
罗殊彦
李联
黄林林
魏润之
苏世游
林鹤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Northwestern Polytechnical University
Original Assignee
Northwestern Polytechnical University
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Northwestern Polytechnical University filed Critical Northwestern Polytechnical University
Priority to CN201610996815.9A priority Critical patent/CN106775964A/zh
Publication of CN106775964A publication Critical patent/CN106775964A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/48Indexing scheme relating to G06F9/48
    • G06F2209/486Scheduler 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)
  • Debugging And Monitoring (AREA)

Abstract

本发明公开了一种时间/事件混合触发的操作系统架构及任务调度方法,用于解决现有时间触发系统体系结构实时性差的技术问题。技术方案是根据管理和调度任务的不同,时间/事件混合触发的操作系统架构将系统内核任务模型分为时间触发任务模块和事件触发任务模块,并采用混合任务调度方法,其中时间触发模块占主体地位,主要保证系统的可靠性和确定性。事件触发模块在时间触发模块的空闲时间内处理,提高了系统的灵活性。真正紧要的突发任务则可以使用时间触发模块的中断来实现,保证了系统的实时性,从整体上提高了系统的灵活性、可靠性和实时性性能。

Description

时间/事件混合触发的操作系统架构及任务调度方法
技术领域
本发明涉及一种时间触发操作系统架构,具体涉及一种时间/事件混合触发的操作系统架构。还涉及基于时间/事件混合触发的操作系统架构的任务调度方法。
背景技术
随着嵌入式系统的发展,嵌入式应用变得越来越复杂和多样化。早期,研究人员提出了事件触发机制来保证系统的灵活性和实时性,但可靠性和确定性却不能很好的保证,文章“《Priority Assignment for Event-triggered Systems Using MathematicalProgramming》,Design,Automation&Test in Europe Conference&Exhibition(DATE),2013:982-987”提出了一种解决事件触发任务优先级分配的方法,方法将优先级求解问题转化为有约束条件的二次元公式,简化了系统事件触发任务系统的优先级分配为题,但所设计的方法无法保证系统的确定性。后来又提出时间触发机制进行改善,如“《时间触发系统体系结构研究》,计算机工程与设计,2014,06,1956-1961”提出了一种基于ARINC-659总线的时间触发系统体系结构,并给出了可靠性模型,保证了系统的可靠性,但系统的灵活性和实时性相对较差。针对当前部分嵌入式系统中事件触发任务和时间触发任务共存的情况,使用某种单一机制已不能满足系统要求。
发明内容
为了克服现有时间触发系统体系结构实时性差的不足,本发明提供一种时间/事件混合触发的操作系统架构及任务调度方法。本发明根据管理和调度任务的不同,时间/事件混合触发的操作系统架构将系统内核任务模型分为时间触发任务模块和事件触发任务模块,并采用混合任务调度方法,其中时间触发模块占主体地位,主要保证系统的可靠性和确定性。事件触发模块在时间触发模块的空闲时间内处理,提高了系统的灵活性。真正紧要的突发任务则可以使用时间触发模块的中断来实现,保证了系统的实时性,从整体上提高了系统的灵活性、可靠性和实时性性能。
本发明解决其技术问题所采用的技术方案是:一种时间/事件混合触发的操作系统架构,其特点是:包括硬件相关层、操作系统服务层和应用层。所述硬件相关层包括CPU、时钟和设备驱动。所述操作系统服务层包括时间触发任务管理与调度模块和事件触发任务管理与调度模块。所述的时间触发任务管理与调度模块包括同步与通信模块、中断管理模块和错误处理子模块;所述的事件触发任务管理与调度模块包括任务同步与通信模块、资源管理模块、内存管理模块、中断管理模块和报警模块。应用层位于整个系统架构的最上层,包括操作系统配置模块,系统服务API和用户应用程序。所述的时间触发任务管理与调度模块和事件触发任务管理与调度模块之间通过同步与通信机制进行数据的交互,保证两者之间的数据同步。两模块通过硬件访问机制与硬件模块进行数据的交互,保证数据读取和存取的准确进行。
一种基于上述时间/事件混合触发的操作系统架构的任务调度方法,其特点是包括以下步骤:
步骤一、初始化系统中时间触发任务和事件触发任务调度队列,并建立不同运行模式下的静态时间触发任务调度表;
步骤二、启动系统任务调度,检查系统是否启动事件触发任务管理与调度模块,如没有启动,则直接根据静态调度表进行时间触发任务的调度,否则执行步骤三;
步骤三、判断当前时间点是否存在需要激活的时间触发任务,如存在,则进行时间触发任务调度,否则执行步骤四;
步骤四、判断当前任务是否执行完毕,如没有,则不进行任务切换,继续执行;否则检查在恢复链表中是否存在需要恢复执行的时间触发任务,如若存在,则进行时间触发任务的恢复执行;否则执行系统空闲任务,并在空闲任务中判断事件触发任务队列是否为空,如若不为空,则进行事件触发任务调度,否则继续运行空闲任务。
本发明的有益效果是:根据管理和调度任务的不同,时间/事件混合触发的操作系统架构将系统内核任务模型分为时间触发任务模块和事件触发任务模块,并采用混合任务调度方法,其中时间触发模块占主体地位,主要保证系统的可靠性和确定性。事件触发模块在时间触发模块的空闲时间内处理,提高了系统的灵活性。真正紧要的突发任务则可以使用时间触发模块的中断来实现,保证了系统的实时性,从整体上提高了系统的灵活性、可靠性和实时性性能。
本方法采用了时间触发与事件触发分模块管理的方法进行系统架构,解决了单一触发方式不能保证系统可靠性与灵活性的问题,提高了系统的可靠性、灵活性。并在系统内核中采用了新的混合任务调度算法,解决了传统基于时钟中断任务切换方式导致的实时性和系统资源利用率低的问题,提高了系统的资源利用率和实时性。
本方法能够进一步规范基于事件/时间混合触发的实时操作系统内核设计方法和任务调度理论,促进嵌入式实时操作系统软件的设计技术进步,能够更好地完善操作系统理论。
目前基于时间/事件混合触发机制的实时操作系统已经被应用于欧美的航天控制系统中,而国内在这方面的研究尚有不足,因此本发明方法将一定程度上提升我国航空航天等国防关键领域的实力,提升我国在操作系统方面的国际竞争力,打破国外对于我国的技术封锁。
本方法简单易于实现,可以实现快速的技术转换并应用于多种控制领域,具有较好的经济效应。
以下结合附图和实施例详细说明本发明。
附图说明
图1是本发明时间/事件混合触发的操作系统架构框图。
图2是本发明基于时间/事件混合触发的操作系统架构的任务调度方法中时间触发任务调度表;用于任务执行过程中确定任务的调度次序。
图3是本发明基于时间/事件混合触发的操作系统架构的任务调度方法的中断级任务调度流程;用于说明中断级任务调度的具体流程。
图4是本发明基于时间/事件混合触发的操作系统架构的任务调度方法中的任务级任务调度流程;用于说明任务级任务调度的具体流程。
具体实施方式
以下实施例参照图1-4。
本发明时间/事件混合触发的操作系统架构包括三个层次。
应用层。应用层位于整个系统架构的最上层,包括操作系统配置模块,系统服务API和由用户编写的各种实时应用程序。在系统配置模块中,用户可以对混合操作系统所支持的任务的最大数量,任务类型等进行静态配置,使系统能够根据实时系统应用需求的不同,灵活配置系统资源。在系统启动之后,系统内核读取配置模块的配置文件进行系统的配置和参数初始化,保证系统行为符合要求;操作系统API是用户应用程序获取操作系统服务的接口;用户应用程序是由用户编写的用于实现不同功能的程序,可以使用操作系统提供的服务进行任务的处理。
操作系统服务层。操作系统服务层是整个操作系统的核心部分。根据管理任务的类型,可分为相对独立的两大部分:一是时间触发任务管理与调度发模块;二是事件触发任务调度与管理模块。两大模块相对独立,同时又具有紧密的联系。
时间触发任务管理与调度模块主要包括:中断管理模块,错误处理模块和同步与通信模块。时间触发任务管理与调度模块用于实现时间触发任务的创建与初始化,进行任务调度等;中断管理实现系统的开/关中断功能,管理由外围设备产生的各类中断,并进行中断处理;错误处理模块用于完成系统执行过程中产生的各种类型错误的检测和处理,包括超时错误,操作系统内部错误,参数错误等;同步与通信模块用于支持操作系统的分布式应用。
事件触发任务管理与调度模块主要包括:任务间同步与通信模块,资源管理,内存管理,警报等模块。事件触发任务管理与调度模块主要提供事件触发任务的创建,初始化等服务,并根据事件触发任务的优先级和任务状态进行任务的调度与切换。此外,还能与时间触发任务管理模块进行交互;任务同步与通信模块支持事件机制与消息机制,用于事件触发任务,包括信号量,互斥信号量等;在系统创建时,可根据任务类型选择是否支持事件机制;资源管理模块用于协调多个不同优先级任务对于共享资源的互斥性访问,且避免产生优先级反转问题;内存管理模块也是可配置的,可以满足事件触发任务对于内存的动态申请;警报机制用于满足操作系统处理与时间有关的重复事件的需要,在内核中以定时器的方式实现。
硬件相关层。主要包括Xilinx ML507硬件平台的设备驱动,处理器与时钟等设备。系统的应用程序层、操作系统服务层可以与硬件进行信息的交互,包括读取硬件中的信息和通过硬件设备进行必要的信息处理。
为了保证系统内核中任务调度的实时性和灵活性,整个内核的任务管理和调度方法的原则为:
[1]时间触发任务比事件触发任务具有更高的优先级;
[2]时间触发任务在预先确定的时间点开始执行,任务由调度表激活并采用本地时钟作为基准时间;
[3]时间触发任务可以被其他新激活的时间触发任务所抢占;
[4]时间触发任务处于空闲时,事件触发任务开始执行,事件触发任务采用基于优先级的调度策略。
本发明在内核中采用一种新的调度方法进行任务管理,流程如下:
[1]参考图2。确立时间任务调度表和事件任务调度队列。调度表是用于时间触发任务调度的数据结构,不同应用模式对应不同的调度表,每个调度表中包含具有相同周期且触发时间各不相同的一系列时间触发任务。时间触发任务创建时,系统根据任务所属的应用模式将任务关联到不同的调度表中,同一调度表中的时间触发任务按照触发时间从小到大链接为一个单向链表。
[2]根据系统所属的应用模式进行时间触发任务的调度,在没有时间触发任务的时候按照优先级进行事件触发任务的调度。
[3]参考图3。时间触发在运行过程中会在每一次时钟中断中进行任务调度。其具体过程如下所述:
(a)判断时钟节拍是否到达调度窗口的最大值,如果是则开始新的一轮调度,且时钟节拍重置为0,并根据调度表重新进行任务的调度;如若没有达到最大值,则转至b继续运行。
(b)如若还没到下一个时间触发任务的触发时间,当前的时间触发任务还未执行完且执行时间未达到当前级别下的最坏执行时间时,则当前任务继续执行,不进行任务切换;
(c)当前的时间触发任务是高级别安全关键任务,执行时间已达到当前级别下的最坏执行时间而还未执行完时,则系统发生状态切换,提高系统所处关键级别和调度表,根据调度表将下一个执行的任务指针指向高级调度表中下一任务,当前任务继续执行,不进行任务切换;
(d)如果下一个时间触发任务触发,则抢占当前的时间触发任务并进行任务切换;
(e)如果当前时间触发任务已执行完且下一个任务还未到达,则对时间触发模块来说,当前处于空闲时间,将系统切换到事件触发模块,进行事件触发任务的调度和切换。
[4]参考图4。在时间触发任务运行完成而时钟中断没有到来的情况下,调度方法会提前进行任务级的任务切换,而不必等时钟中断到来。其具体执行过程如下所述:
(a)如果恢复链表为空,说明当前所有时间触发任务均已执行完毕,则将系统切换到事件触发模块,进行事件触发任务的调度和切换。
(b)若恢复链表不为空,当前结束任务为恢复链表中最后一个任务,则将当前任务从恢复链表中删除,启动事件触发任务调度和切换。
(c)若恢复链表不为空,当前结束任务不是恢复链表中最后一个任务,将当前任务从恢复链表中删除,然后恢复链表中下一个时间触发任务的执行,进行时间触发任务的任务切换。
(d)若恢复链表不为空,且当前任务不在恢复链表中,则将恢复链表中的第一个任务恢复运行,进行时间触发任务切换。

Claims (2)

1.一种时间/事件混合触发的操作系统架构,其特征在于:包括硬件相关层、操作系统服务层和应用层;所述硬件相关层包括CPU、时钟和设备驱动;所述操作系统服务层包括时间触发任务管理与调度模块和事件触发任务管理与调度模块;所述的时间触发任务管理与调度模块包括同步与通信模块、中断管理模块和错误处理子模块;所述的事件触发任务管理与调度模块包括任务同步与通信模块、资源管理模块、内存管理模块、中断管理模块和报警模块;应用层位于整个系统架构的最上层,包括操作系统配置模块,系统服务API和用户应用程序;所述的时间触发任务管理与调度模块和事件触发任务管理与调度模块之间通过同步与通信机制进行数据的交互,保证两者之间的数据同步;两模块通过硬件访问机制与硬件模块进行数据的交互,保证数据读取和存取的准确进行。
2.一种基于权利要求1所述时间/事件混合触发的操作系统架构的任务调度方法,其特征在于包括以下步骤:
步骤一、初始化系统中时间触发任务和事件触发任务调度队列,并建立不同运行模式下的静态时间触发任务调度表;
步骤二、启动系统任务调度,检查系统是否启动事件触发任务管理与调度模块,如没有启动,则直接根据静态调度表进行时间触发任务的调度,否则执行步骤三;
步骤三、判断当前时间点是否存在需要激活的时间触发任务,如存在,则进行时间触发任务调度,否则执行步骤四;
步骤四、判断当前任务是否执行完毕,如没有,则不进行任务切换,继续执行;否则检查在恢复链表中是否存在需要恢复执行的时间触发任务,如若存在,则进行时间触发任务的恢复执行;否则执行系统空闲任务,并在空闲任务中判断事件触发任务队列是否为空,如若不为空,则进行事件触发任务调度,否则继续运行空闲任务。
CN201610996815.9A 2016-11-11 2016-11-11 时间/事件混合触发的操作系统架构及任务调度方法 Pending CN106775964A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610996815.9A CN106775964A (zh) 2016-11-11 2016-11-11 时间/事件混合触发的操作系统架构及任务调度方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610996815.9A CN106775964A (zh) 2016-11-11 2016-11-11 时间/事件混合触发的操作系统架构及任务调度方法

Publications (1)

Publication Number Publication Date
CN106775964A true CN106775964A (zh) 2017-05-31

Family

ID=58973460

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610996815.9A Pending CN106775964A (zh) 2016-11-11 2016-11-11 时间/事件混合触发的操作系统架构及任务调度方法

Country Status (1)

Country Link
CN (1) CN106775964A (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107257311A (zh) * 2017-08-09 2017-10-17 西安微电子技术研究所 一种基于虚拟链路的时间触发通信混合数据发送调度方法
CN109639560A (zh) * 2017-10-09 2019-04-16 Tttech 电脑技术股份公司 改善实时计算机网络的可用性的方法
CN109656698A (zh) * 2018-12-14 2019-04-19 平安城市建设科技(深圳)有限公司 任务处理方法、管理平台、执行端及计算机可读存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101751289A (zh) * 2008-12-19 2010-06-23 黄强 一种嵌入式实时操作系统的混合调度方法
CN103092693A (zh) * 2013-01-30 2013-05-08 深圳联友科技有限公司 一种用于计算机的任务调度方法和系统
EP2645242A2 (en) * 2012-03-29 2013-10-02 U-blox Melbourn Ltd Control of programs in parallel processing systems

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101751289A (zh) * 2008-12-19 2010-06-23 黄强 一种嵌入式实时操作系统的混合调度方法
EP2645242A2 (en) * 2012-03-29 2013-10-02 U-blox Melbourn Ltd Control of programs in parallel processing systems
CN103092693A (zh) * 2013-01-30 2013-05-08 深圳联友科技有限公司 一种用于计算机的任务调度方法和系统

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
朱怡安 等: "一种基于μC/OS-II符合OSEK标准的实时系统内核设计", 《计算机科学》 *
陆伟 等: "嵌入式操作系统混合任务调度技术与策略研究", 《计算机工程与应用》 *

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107257311A (zh) * 2017-08-09 2017-10-17 西安微电子技术研究所 一种基于虚拟链路的时间触发通信混合数据发送调度方法
CN107257311B (zh) * 2017-08-09 2020-06-30 西安微电子技术研究所 一种基于虚拟链路的时间触发通信混合数据发送调度方法
CN109639560A (zh) * 2017-10-09 2019-04-16 Tttech 电脑技术股份公司 改善实时计算机网络的可用性的方法
CN109639560B (zh) * 2017-10-09 2022-03-18 Tttech 电脑技术股份公司 改善实时计算机网络的可用性的方法
CN109656698A (zh) * 2018-12-14 2019-04-19 平安城市建设科技(深圳)有限公司 任务处理方法、管理平台、执行端及计算机可读存储介质

Similar Documents

Publication Publication Date Title
CN106293919B (zh) 一种时间触发的嵌入式任务调度装置与方法
CN103559045B (zh) 一种硬件实时操作系统
Sehr et al. Programmable logic controllers in the context of industry 4.0
CN1965293B (zh) 使用模型事件调度模型组件的执行的系统和方法
US7451447B1 (en) Method, computer program and apparatus for operating system dynamic event management and task scheduling using function calls
US20060268967A1 (en) Supplying instruction to operational stations
CN104199730B (zh) 一种基于同步i/o复用机制的单线程多任务处理方法
CN106663021A (zh) 虚拟化环境中的智能gpu调度
CN110231995B (zh) 一种基于Actor模型的任务调度方法、装置及存储介质
JP2002517035A (ja) リアルタイムスケジューリングロジックおよび時間確定的アーキテクチャを使用する分散コンピューティング環境
US9256485B1 (en) System and method for generating message sequence diagrams from graphical programs
CN111694675B (zh) 任务调度方法及装置、存储介质
CN106775964A (zh) 时间/事件混合触发的操作系统架构及任务调度方法
CN106886450A (zh) 任务调度方法和系统
CN108196950A (zh) 一种应用于窄带物联网的实时化操作系统及其方法
CN110134504A (zh) 一种基于有限状态机的操作系统需求层形式化建模方法及装置
EP2278454B1 (en) Method for correct-by-construction development of real-time-systems
US6826761B1 (en) Efficient timer management system
CN113190427A (zh) 卡顿监控方法、装置、电子设备及存储介质
CN101349975B (zh) 一种在嵌入式操作系统上实现中断底半部机制的方法及装置
Prashanth et al. Real-time issues in embedded system design
Angelov et al. HARTEX—a safe real‐time kernel for distributed computer control systems
Nigro et al. A modular approach to real-time programming using actors and Java
Yang et al. Design of a sliding window over distributed and asynchronous event streams
Harbour Real-time POSIX: an overview

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

Application publication date: 20170531

RJ01 Rejection of invention patent application after publication