技术领域
[0001] 本发明属于人工智能技术领域,具体涉及一种混合抢占式实时操作系统及方法。
相关背景技术
[0002] 在物联网领域,环境能物联网是一个备受关注的新兴技术领域。环境能物联网是一种不带电源或无内置电池的物联网终端,这些终端提取环境中诸如光照、热量、无线电信号中的能量,以满足其工作需求。环境能物联网设备不使用电池供电,可以部署在电池无法正常工作或者人力维护成本较大的恶劣环境中,因此设备的能耗控制就显得尤为重要。
[0003] 环境能物联网设备的电力需求最主要的两种技术就是“微型猎能”和低功耗技术,两种技术的结合可以起到无电池供电和延长工作时间的效果。大多数物联网设备受限于硬件资源,软件大多是以裸机形式或者微型操作系统诸如Nano Rt‑Thread运行,裸机运行无法提供一些基本的任务调度,只能处理简单的逻辑;一些微型操作系统可以进行任务调度但是又无法兼顾设备的低功耗特性。目前存在环境能物联网设备运行的实时操作系统存在的无法兼顾设备能耗的问题。
具体实施方式
[0016] 为了能够更清楚地理解本发明的上述目的、特征和优点,下面结合附图和实施例对本发明作进一步说明。需要说明的是,在不冲突的情况下,本申请的实施例及实施例中的特征可以相互组合。
[0017] 在下面的描述中阐述了很多具体细节以便于充分理解本发明,但是,本发明还可以采用不同于在此描述的其他方式来实施,因此,本发明并不限于下面公开说明书的具体实施例的限制。
[0018] 实施例1,如图1~图3所示,本申请提供了一种混合抢占式实时操作系统,具体是一种充电感知的支持任务混合抢占的嵌入式实时操作系统,操作系统运行在如附图1所示的系统架构中。硬件光伏电路从环境中收集能量,电源管理单元将能量转换为稳定的电压并存储在储能电路中, 还负责为设备供电。硬件电路专门有一块外置的非易失性存储器NVM用于存储设备断电时任务运行的上下文数据。具体的系统各部分的功能描述如下:光伏电路:光伏阵列通过光伏转换器将环境中的太阳能转化为电能,输送到储能单元中;
储能单元:将电能存储在电容中,通过电压整流稳压器将电能输送至环境能物联网设备中;
电压检测电路:监视和控制整个电路板上的电源,计算整体的能量利用率,为设备提供低压阈值信息,可实现监控当前电路的充电速率以及计算系统中剩余的能量,并且能在规定时间内断开设备电源;电压检测电路可利用的常见的集成电路现有的方案。
[0019] 能量预测器:基于神经网络的能量预测器,可适应多种环境条件,通过神经网络实现多种环境下充电速率的动态调整;任务链。系统支持由任务链组成的周期性应用,任务链上的每个任务 τ1 可以是原子或非原子任务,原子任务在执行期间不可抢占且不可挂起;非原子任务在任何时候都可抢占和挂起。该任务链在第一个任务被释放进入运行态时开始按顺序执行,并且只有当前一个任务执行完毕后,后一个任务才可以执行。任务链示意图如附图2所示,图2中的任务链包含四个任务,任务链上任务数量和类别不限,如果任务链中的第一个任务是周期性任务,由定时器或者外部事件触发,则该任务链上的所有任务就都遵循第一个任务约束的周期模式。
[0020] 混合抢占方法:由于原子任务运行中是不可抢占的,因此系统以非抢占式的方式调度原子任务,原子任务一旦调度,在系统能量充足的时刻会执行完毕,在此期间不会被其他高优先级任务抢占。而非原子任务则执行正常RTOS的抢占式任务调度模式。
[0021] 系统的非抢占式调度:原子任务以非抢占式方式调度,原子任务采用先来先服务FCFS的调度算法,由于原子任务都具备最高的优先级,因此系统按照时间先后的顺序将原子任务放在等待队列中,FCFS算法从队列中按照先进先出的方式调度原子任务;
抢占式调度:
非原子任务采用RTOS的抢占式调度原则,采用按照优先级调度的算法,当低优先级的在执行过程中又加入高优先级的任务时,系统会保存低优先级任务的现场,切换上下文转而执行该优先级的任务,当高优先级的任务执行完毕后再恢复低优先级的现场转而继续执行低优先级任务。
[0022] 任务调度器:任务调度器是操作系统基于不同调度算法的纯软件模块。
[0023] 自适应任务调度器:旨在有效的利用可用能量实现操作系统中不同任务的自适应调度。设备从启动到开始任务调度的流程如附图3所示,更详细的如下描述:步骤1,设备启动后,调度器检查设备非易失性存储器中有无JIT检查点,若发现了检查点则从该检查点中恢复任务,并更新系统时间和定时器事件,若未发现检查点则进入步骤2;
步骤2,调度器从处于就绪态的任务队列中查找优先级最好的任务τh ,判断任务τh 的类别,若任务是非原子的,进入步骤3,若任务是原子的则进入步骤4;
步骤3,调度器执行任务τh的一个时间片,并继续查找高优先级的任务,重复上述过程;
步骤4,调度器估计执行任务所需要的能量,并且根据设备当前能量判断能否保证任务可以执行完,若能量足够,则调度器将调度该任务直至该任务执行完,若能量不够,则进入步骤5;
步骤5,系统执行一个能量循环以获得更多能量,包括:
步骤A,通过当前充电速率计算收集能量的时间 ∆t ,然后比较能量收集时间和其他高优先级周期性任务的未来释放时间,从而计算出设备下一个从待机到唤醒的时间,目的是为了确保在充电期间不会错过高优先级的任务;
步骤B,执行JIT检查;
步骤C,发送充电请求;
JIT 检查服务:JIT检查是作为系统服务任务实现的,作用是检测电容器的电压水平是否达到低压阈值,可以通过电压检测电路的外部中断或者定期轮询实现,JIT服务任务作为启动序列的第一步,在系统中以最高优先级执行。低电压阈值检查任务可以在非原子任务执行期间的任何时刻抢占任务执行,它遍历系统中所有非原子任务,并且将每个非原子任务的任务上下文、堆栈和SRAM数据存储在非易失性存储器中,以便在下次设备启动时将它们恢复到SRAM中,JIT服务还将当前的系统时间和计数器事件存储在非易失性存储器中,以确保计时器的正确执行。
[0024] 充电管理:JIT检察服务促进了非原子任务的正确执行,充电管理旨在保证原子任务的正常执行。系统会为原子任务设定一个最低阈值电压,该电压阈值表示执行某个任务之前的最小阈值电压,从而有效的确保了任务在到达JIT检查低压阈值之前能顺利执行完毕。
[0025] 能量预测器:随着环境的变化,系统的能量收集效率是变化的,系统采用基于机器学习的能量预测模型,通过利用时间序列电压数据提供可靠的太阳能收集率预测,使用半小时时间间隔作为预测窗口。
[0026] 能量控制器:虽然JIT检查点促进了非原子任务的执行,但是原子任务的完整执行至关重要,能量控制器的职责是负责系统的充电管理。系统为每个原子任务 分配一个电压阈值 ,该阈值表示系统在开始执行原子任务 之前所需要的最小电压,从而确保任务在达到用于JIT检查点的低压阈值之前可以执行完成。当系统调度一个原子任务时,调度程序通过读取电压检测电路中系统当前的电压值与任务的电压阈值 比较,若果当前电压大于电压阈值 ,则能量控制器通知系统调度器可以执行任务,否则直至下一个充电周期完成之后,才可以调度任务。
[0027] 任务执行的最长时间:
[0028] 任务的充电时间,即执行完该任务所需要的充电时间; 系统的能量收集率;:电容单位; 触发JIT检查点和电源循环的低电压阈值;
间歇性供电设备主要的工作阶段有以下几个阶段:
断电阶段,此阶段设备完全断电,电路处于收集能量阶段。
[0029] 运行阶段:储能电路能量充足时,设备开始运行,达到低压阈值以下时会断电,断电之前会将任务的上下文存储在NVM中;系统会计算电路中剩余能量,并在达到低压阈值之前执行即时检查,从而保证设备再次重启时能执行断电前未执行完的任务。
[0030] 休眠阶段:设备处于低功耗阶段从而节能。
[0031] 本实施例提供的一种混合抢占式实时操作系统,旨在保证无电池供电的环境能物联网设备在电力中断期间的工作。本发明基于嵌入式实时操作系统引入了即时检测技术以及操作系统混合抢占调度方法,将系统的任务分为原子任务和非原子任务,对非原子任务采用及时检测技术,确保任务可以完整执行的同时采用非抢占调度;对原子任务采用不间断执行策略,确保任务的高效执行。此外,系统还支持具有优先约束的任务处理链,并根据环境变化调整调度,以便在不同的环境下设备都可以连续运行。
[0032] 本实施例提供的一种混合抢占式的实时操作系统,用于无电池供电的环境能物联网设备,旨在保证设备间歇性供电时任务能完整的执行。该系统保证了设备在电力中断期间依旧能保持可靠的实时性。此外,设计了一种专用的操作系统软件架构和专用的硬件电路架构,通过软件的任务链以及即时点检查实现任务上下文在NVM的存储;通过电压检测电路和充电管理器实现了任务调度时间、充电时间的估计,保证了原子任务能顺利执行完毕。本发明提出的系统结合了能量收集技术、能量存储技术和操作系统任务调度技术等,可应用在诸如智慧农业和建筑监控等不希望使用电池供电以免需要大量的人力成本维护的领域,具有较高的社会应用价值。
[0033] 实施例2,本发明提供了一种如实施例1所述的基于充电感知的嵌入式实时操作系统的工作方法,包括:通过软件的任务链以及即时点检查实现任务上下文在NVM的存储;通过电压检测电路和充电管理器实现了任务调度时间、充电时间的估计,保证原子任务能顺利执行完毕。
[0034] 以上所述,仅是本发明的较佳实施例而已,并非对本发明作其他形式的限制,任何熟悉本专业的技术人员可能利用上述揭示的技术内容加以变更或改型为等同变化的等效实施例应用于其他领域,但是凡是未脱离本发明技术方案内容,依据本发明的技术实质对以上实施例所做的任何简单修改、等同变化与改型,仍属于本发明技术方案的保护范围。