一种单任务实时消息传递操作系统技术方案

技术编号:20362744 阅读:25 留言:0更新日期:2019-02-16 16:28
本发明专利技术公开了一种单任务实时消息传递操作系统,包括应用层、应用框架层、运行时系统以及系统内核,应用框架层包括消息处理模块、消息循环模块、定时器管理模块以及传感器管理模块,运行时系统包括运行时系统接口、虚拟机以及支撑库,消息处理模块和消息循环模块采用实时消息传递方法对消息进行传递;消息处理模块根据线程发出的每个消息所指定的优先级分配至相应的队列中,并负责收发队列中待处理的消息。

【技术实现步骤摘要】
一种单任务实时消息传递操作系统
本专利技术涉及操作系统
,具体涉及一种基于安卓的单任务实时消息传递操作系统。
技术介绍
分时系统的主要目的是让多个计算机用户能共享系统的资源,能及时地响应和服务于联机用户,只具有很弱的实时功能,与实时操作系统有明显的区别。具体的说,对于分时操作系统,软件的执行在时间上的要求,并不严格,时间上的错误,一般不会造成灾难性的后果。而对于实时操作系统,主要任务是对事件进行实时的处理,虽然事件可能在无法预知的时刻到达,但是软件上必须在事件发生时能够在严格的时限内作出响应(系统响应时间),即使是在尖峰负荷下,也应如此,系统时间响应的超时就意味着致命的失败。另外,实时操作系统的重要特点是具有系统的可确定性,即系统能对运行情况的最好和最坏等的情况能做出精确的估计。传统的安卓(Android)系统可以看做一个三层结构:自底向上分别是Linux内核、支撑库、运行时系统和应用框架层。在系统之上运行的应用程序,如图1所示。在运行实时应用时,安卓的应用程序框架层存在如下问题,关于虚拟类接口,它们提供可扩展的类接口和API调用接口供开发人员使用,例如消息处理模块(Handler)、消息循环模块(Looper)。但是由于虚拟类接口不提供任何关于时间或存储量的预测结果以及没有优先级支持,所以满足不了实时应用的要求。在运行实时应用程序时的问题是,这些机制中的消息传递所需的延迟是不可预测的;同时,期望的高优先级的线程可能会经常被其他线程阻塞从而不能实时的执行。传统安卓系统的其不能应保证应用的实时性。系统的消息传递机制的行为具有严重的不可预测特性,无法提供可预测的执行时间保证;系统服务的设计不是面向实时系统的。
技术实现思路
本专利技术的目的就在于为了解决上述问题而提供一种单任务实时消息传递操作系统,详见下文阐述。为实现上述目的,本专利技术提供了以下技术方案:一种单任务实时消息传递操作系统,包括应用层、应用框架层、运行时系统以及系统内核,应用框架层包括消息处理模块、消息循环模块、定时器管理模块以及传感器管理模块,运行时系统包括运行时系统接口、虚拟机以及支撑库,消息处理模块和消息循环模块采用实时消息传递方法对消息进行传递;消息处理模块根据线程发出的每个消息所指定的优先级分配至相应的队列中,并负责收发队列中待处理的消息。有益效果在于:1、本专利技术重新设计消息处理模块、消息循环模块使得其支持实时应用需求,保证了高优先级的运行时间,内存空间可控;2、本专利技术重新设计定时器管理模块和传感器管理模块系统服务的技术使得其支持实时应用需求,实现了基于优先级的传感器事件消息的高效传递;3、本专利技术的两级红黑树保证高优先级线程的响应时间,优化了定时器请求所需的资源。附图说明为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1是现有技术的安卓系统组成框图;图2是本专利技术的安卓系统组成框图;图3是本专利技术的优先级的指定支持策略示意图。具体实施方式为使本专利技术的目的、技术方案和优点更加清楚,下面将对本专利技术的技术方案进行详细的描述。显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所得到的所有其它实施方式,都属于本专利技术所保护的范围。参见附图,一种单任务实时消息传递操作系统,包括应用层、应用框架层、运行时系统以及系统内核,应用框架层包括消息处理模块、消息循环模块、定时器管理模块以及传感器管理模块,运行时系统包括运行时系统接口、虚拟机以及支撑库,消息处理模块和消息循环模块采用实时消息传递方法对消息进行传递;定时器服务模块采用两级红黑树对定时器请求进行管理;传感器管理模块使用Polling线程对传感器数据进行处理。进一步的说,消息处理模块根据线程发出的每个消息所指定的优先级分配至相应的队列中,并负责收发队列中待处理的消息;其中,优先级的指定支持两种策略,分别为:A.继承策略,优先级继承自发出消息的线程优先级,实时线程需要发送消息并且采用继承策略,则该消息就作为实时消息放入实时消息队列,而普通线程需要发送消息并且采用继承策略,则该消息作为普通消息放入普通消息队列;B.继承+指派策略,优先级继承自发出消息的线程优先级并辅以线程主动调整,若一个实时线程需要发送消息并且采用继承+指派策略,则默认情况下该消息就作为实时消息放入实时消息队列,实时线程也可用操作系统提供的接口指定该消息指派为普通消息,并放入普通消息队列。其中,消息处理模块和消息循环模块为实时应用的虚拟类接口,运行时系统运行时,应用框架层使用消息处理模块和消息循环模块控制每一个应用程序的执行;其中,存放消息的消息队列为静态配置。上述做法保证了低优先级线程发出的消息不会影响高优先级线程发出的消息的响应时间,队列都是静态配置的,所以内存空间可控。进一步的说,定时器管理模块通过两级红黑树对定时器请求的管理过程具体为:步骤1,应用程序调用定时器管理设置函数(AlarmManager.set())向运行时系统注册定时器(Alarm)请求;步骤2,定时器管理模块(AlarmManager)采用了两级红黑树对定时器请求进行管理;其中,第一级红黑树的每个叶节点保存所有定时器请求的时间戳以及指向第二级红黑树的指针;第二级红黑树的叶节点保存的是同一时间戳下的所有定时器请求,并且按照请求发出者的优先级进行排序;步骤3,当应用程序提出新的定时器请求时,定时器管理线程立刻被唤醒,并在两级红黑树中插入新的定时器服务节点;步骤4,为该定时器请求设置一个专门的服务线程;步骤5,调度该服务线程在定时器请求指定的时间返回定时器消息;步骤6,定时器触发后,定时器管理模块就会发送消息给应用程序,进而触发应用程序的回调函数(BroadcastReceiver.onReceive())实现业务逻辑。两级红黑树保证低优先级的线程发出的定时器请求不会影响高优先级线程发出的定时器请求的响应时间,并且低优先级的定时器请求不会耗尽高优先级的定时器请求所需的资源。进一步的说,传感器管理模块为每一类传感器都分配一个线程用来传感器数据的处理,线程的数据全部来自于更为底层的polling线程,Polling线程直接从内核读取传感器原始数据并返回给上层线程做进一步处理。其中,传感器数据的处理过程具体为:步骤1,当优先级为p的应用程序注册成为某传感器事件的监听者,则传感器数据处理线程继承优先级p;步骤2,当消息发送线程创建一个执行传感器事件监听者的回调函数的新线程时,也会给其赋予原应用程序的优先级p。基于上述做法实现了基于优先级的传感器事件消息的高效传递。进一步的说,运行时系统接口为Fiji运行时系统接口,虚拟机为Fiji虚拟机,支撑库包括实时Bionic库。Fiji虚拟机是适用于硬实时环境的、可预测的Java实时虚拟机。Bionic库是安卓(Android)平台为C/C++开发者进行原生应用程序开发所提供的符合POSIX(可移植操作系统接口)标准的C库,Bionic库支持P本文档来自技高网
...

【技术保护点】
1.一种单任务实时消息传递操作系统,包括应用层、应用框架层、运行时系统以及系统内核,应用框架层包括消息处理模块和消息循环模块,运行时系统包括运行时系统接口、虚拟机以及支撑库,消息处理模块和消息循环模块采用实时消息传递方法对消息进行传递;消息处理模块根据线程发出的每个消息所指定的优先级分配至相应的队列中,并负责收发队列中待处理的消息。

【技术特征摘要】
1.一种单任务实时消息传递操作系统,包括应用层、应用框架层、运行时系统以及系统内核,应用框架层包括消息处理模块和消息循环模块,运行时系统包括运行时系统接口、虚拟机以及支撑库,消息处理模块和消息循环模块采用实时消息传递方法对消息进行传递;消息处理模块根据线程发出的每个消息所指定的优先级分配至相应的队列中,并负责收发队列中待处理的消息。2.根据权利要求1所述一种单任务实时消息传递操作系统,其特征在于优先级的指定支持两种策略,分别为:A.继承策略,优先级继承自发出消息的线程优先级;B.继承+指派策略,优先级继承自发出消息的线程优先级并辅以线程主动调整。3.根据权利要求2所述一种单任务实时消息传递操作系统,其特征在于所述继承策略具体为:实时线程需要发送消息并且采用继承策略,则该消息就作为实时消息放入实时消息队列,而普通线程需要发送消息并且采用继承策略,则该消息作为普通消息放入普通消息队列。4.根据权利要求2所述一种单任务实时消息传递操作系统,其特征在于所述继承+指派策略具体为:若一个实时线程需要发送消息并且采用继承+指派策略,则默认情况下该消息就作为实时消息放入实时消息队列,实时线程也可用操作系统提供的接口指定该消息指派为普通消息,并放入普通消息队列。5.根据权利要求1所述一种单任务实时消息传递操作系统,其特征在于:消息处理模块和消息循环模块为实时应用的虚拟类接口,运行时系统运行时,应用框架层使用消息处理模块和消息循环模块控制每一个应用程序的执行。6.根据权利要求3或者4所述一种单任务实时消息传递操作系统,其特征在于:存放消息的消息队列为...

【专利技术属性】
技术研发人员:唐宏伟所光
申请(专利权)人:北京技德终端技术有限公司
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1