[发明专利]一种微内核调度的方法和装置有效
申请号: | 201710495861.5 | 申请日: | 2017-06-26 |
公开(公告)号: | CN109117253B | 公开(公告)日: | 2022-05-24 |
发明(设计)人: | 蔡俊杰;曾旭;朱亮亮 | 申请(专利权)人: | 阿里巴巴集团控股有限公司 |
主分类号: | G06F9/48 | 分类号: | G06F9/48;G06F9/50 |
代理公司: | 北京润泽恒知识产权代理有限公司 11319 | 代理人: | 苏培华 |
地址: | 英属开曼群岛大开*** | 国省代码: | 暂无信息 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 内核 调度 方法 装置 | ||
本申请实施例提供了一种微内核调度的方法和装置,所述方法应用于软件平台,包括:接收针对当前微内核的调度指令;将当前微内核切换为目标微内核。本实施例通过调度指令直接对微内核进行切换,而不需要通过软件平台的线程来完成上述过程,解决了现有技术中将微内核与软件平台的线程一一对应所带来的微内核切换成本较高,实时性较差的问题。
技术领域
本申请涉及通信技术领域,特别是涉及一种微内核调度的方法和一种微内核调度的装置。
背景技术
随着物联网(Internet of Things,简称IoT)的兴起,应用于物联网的MCU(MicroController Unit,微控制单元)软件越来越复杂,针对MCU软件的开发调试工作也就显得越来越重要。但是,传统的打log(日志)的方式已经不再适用于当前的物联网开发;另一方面,由于受到MCU设备资源的限制,一些复杂的程序调试(debug)工具也无法直接在MCU上运行。因此,通过将IoT微内核运行在Linux系统上,复用Linux系统的开发工具进行软件的开发调试便成为了一个明智的选择。
现有技术中,当微内核在Linux系统上运行时,每一个微内核对应一个Linux线程,微内核的调度与Linux的线程调度混合在一起,统一由Linux系统控制各个微内核之间的切换,切换成本较高,实时性较差。
发明内容
鉴于上述问题,提出了本申请实施例以便提供一种克服上述问题或者至少部分地解决上述问题的一种微内核调度的方法和相应的一种微内核调度的装置。
为了解决上述问题,本申请公开了一种微内核调度的方法,应用于软件平台,所述方法包括:
接收针对当前微内核的调度指令;
将当前微内核切换为目标微内核。
可选地,所述软件平台运行有主线程和/或基于内核的虚拟机KVM,所述微内核运行于所述主线程和/或所述KVM中。
可选地,各个微内核具有对应的微内核控制单元,各个微内核控制单元分别具有相应的控制数值,所述将当前微内核切换为目标微内核的步骤包括:
确定目标微内核对应的第一控制数值;
采用所述目标微内核对应的第一控制数值替换所述当前微内核对应的第二控制数值。
可选地,所述调度指令包括针对setjmp函数和longjmp函数的指令。
可选地,所述接收针对当前微内核的调度指令的步骤包括:
接收由外部设备输入的调度指令;
依据所述调度指令,调用setjmp函数和longjmp函数。
可选地,还包括:
采用所述目标微内核模拟软件运行。
可选地,还包括:
接收软件平台发送的事件消息。
可选地,所述软件平台还运行有主线程,以及代理线程或代理进程,所述接收软件平台发送的事件消息的步骤包括:
软件平台发送事件消息至代理线程或代理进程;
所述代理线程或代理进程转发所述事件消息至主线程;
所述主线程将所述事件消息转换为中断事件;
接收所述主线程发送的所述中断事件。
可选地,所述软件平台发送事件消息至代理线程或代理进程的步骤包括:
软件平台接收外部设备输入的信息;
所述软件平台将所述信息转换为事件消息并发送至代理线程或代理进程。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于阿里巴巴集团控股有限公司,未经阿里巴巴集团控股有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710495861.5/2.html,转载请声明来源钻瓜专利网。