[发明专利]实时嵌入式操作系统的事件处理方法有效
申请号: | 201810020581.3 | 申请日: | 2018-01-10 |
公开(公告)号: | CN108009015B | 公开(公告)日: | 2021-03-12 |
发明(设计)人: | 韩明峰;李峰;荆蕾;李文正 | 申请(专利权)人: | 烟台大学文经学院 |
主分类号: | G06F9/48 | 分类号: | G06F9/48;G06F9/52 |
代理公司: | 烟台双联专利事务所(普通合伙) 37225 | 代理人: | 梁翠荣 |
地址: | 264003 山东*** | 国省代码: | 山东;37 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 实时 嵌入式 操作系统 事件 处理 方法 | ||
本发明是一种实时嵌入式操作系统的事件处理方法。包括创建事件组控制块、获取事件和发送事件三个基本操作。发送事件时,如果事件等待结点中的等待方式指定了消耗事件标志,则马上在事件组控制块的事件值中清除掉已获取到的事件,并且在下一个事件等待结点的处理中使用更新后的事件组控制块的事件值。将事件组控制块区分为源事件组控制块和目标事件组控制块。目标事件组控制块通过在源事件组控制块上关联一个事件聚集结点,从而对源事件组控制块进行聚集,以扩大任务能同时使用的事件组控制块数目。
技术领域
本发明涉及一种实时嵌入式操作系统的事件处理方法,属于实时嵌入式系统领域。
背景技术
实时嵌入式操作系统在工业自动化、航空航天等很多领域广泛应用,包括时间正确和功能正确两个方面。在变电站自动化领域,实时嵌入式操作系统的应用范围从最初的测控装置、自动装置一步步进入到了实时性要求苛刻的保护装置,表明了实时嵌入式操作系统的使用是实时嵌入式系统领域的发展趋势。事件组是实时嵌入式操作系统提供的一种中断服务程序和任务,以及任务间同步的重要机制。很多应用任务的运行方式就是基于时间组机制的,并且所需要的事件种类很多。现有事件组机制的实现存在以下问题:
1、没有很好地体现事件消耗的特点。任务获取事件在等待方式中可以选择消耗标志,并且事件的消耗方式相对于非消耗方式使用得更加普遍。对于事件等待结点链表中的消耗标志,现有实时嵌入式操作系统的处理方法如下:
现有方法一:由发送事件操作将事件等待结点链表中的阻塞任务唤醒,以后在获取事件操作中进行事件消耗。
现有方法二:在发送事件操作中以非消耗事件的方式对事件等待结点链表中的阻塞任务进行唤醒,并记录事件消耗位,当事件等待结点链表处理完后再统一清除掉消耗事件位。
现有方法一存在一个时间窗口,即在获取事件操作中进行事件消耗之前,其它应用任务有可能获取到这些即将清除的事件位,而这些事件位在逻辑上
已经被清除了,只是因实现方式的问题而导致暂时没有清除,从而造成逻辑上的混乱。
现有方法二也会导致与任务执行时序有关的问题,比如前一个事件等待结点已经消耗掉的事件位后一个事件等待结点仍然会继续使用。
2、一个事件组一般只提供16个或32个事件位,而应用任务往往需要更多的事件位。一种常见的方法是由应用任务扩展事件位,但扩展事件位的同步与互斥的处理比较麻烦,很难达到实时嵌入式操作系统对事件组的实现效果。另一方面,现有事件组机制也无法实现一个任务同时等待多个事件组的需求,而这种需求对应用任务来讲往往更利于解决实际问题。
发明内容
为解决现有技术存在的不足,本发明提出了一种实时嵌入式操作系统的事件处理方法,其目的是精确处理事件的消耗,避免逻辑上已消耗掉事件而实际上并未消耗掉事件所带来的时序问题;应用任务能够同时等待多个事件组控制块,扩大任务能够管理的操作系统内核级事件的数量。
为了实现上述目的,本发明采用了以下技术方案。
一种实时嵌入式操作系统的事件处理方法,其特征是:包括创建事件组控制块、获取事件和发送事件三个基本操作;
获取事件操作的参数包括事件组控制块标识、指定的位、等待方式和等待延时;等待方式包括“与”和“或”两种逻辑关系以及获取事件时是否消耗事件;获取事件操作包括两种情况:
(1)事件组控制块对指定的位和等待方式能满足条件,根据指定的消耗事件标志,在事件组控制块的事件值中清除掉已获取到的事件;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于烟台大学文经学院,未经烟台大学文经学院许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201810020581.3/2.html,转载请声明来源钻瓜专利网。