[发明专利]一种跨核调度方法和装置有效
申请号: | 201711215743.0 | 申请日: | 2017-11-28 |
公开(公告)号: | CN109840137B | 公开(公告)日: | 2021-01-22 |
发明(设计)人: | 马明礼;苏进喜 | 申请(专利权)人: | 大唐移动通信设备有限公司 |
主分类号: | G06F9/48 | 分类号: | G06F9/48 |
代理公司: | 北京同达信恒知识产权代理有限公司 11291 | 代理人: | 刘醒晗 |
地址: | 100083*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 调度 方法 装置 | ||
本发明实施例涉及计算机技术领域,尤其涉及一种跨核调度方法和装置,包括:在第一操作系统上创建一个单进程,在单进程上运行第二操作系统;在第一操作系统的用户态设置第二操作系统的寄生调度器;在第一操作系统内还设置中断线程,中断线程由第一操作系统的宿主调度器调度且宿主调度器工作在第一操作系统的内核态。可以看出,通过在第一系统上创建一个单进程,并在该进程上运行第二操作系统,能够降低移植操作系统的工作量,在不需要跨核调度的时候,不需要再采用内核态的宿主调度器,从而能够保证第二操作系统的实时性,最后通过通过在第一操作系统内设置中断线程以实现跨核调度,从而使得移植后的操作系统能够跨平台复用。
技术领域
本发明实施例涉及计算机技术领域,尤其涉及一种跨核调度方法和装置。
背景技术
目前移植操作系统主要指基于裸机实现操作系统,主要需要做三部分工作:芯片引导程序开发、OS(Operating System,操作系统)调度器开发、外围驱动开发。而芯片引导程序需要初始化芯片状态、内存初始化、外部设备扫描等,专业性极强,需要经过培训的专业技术人员方可,实现难度大。
因此,若要基于裸机进行操作系统移植,首先需要对硬件平台进行熟悉,了解其核心寄存器,学习其引导流程,学习硬件相关的底层语言(一般为汇编),熟悉外设寄存器,以上每一项都是少则几百页,多则几千页的文档。而只有熟悉以上内容才能够进行相应的三部分(芯片引导程序开发、OS调度器开发及外围驱动开发)移植工作;
此外,调度器为操作系统的核心,藉此实现任务切换,主要工作包括当前任务寄存器状态保存,待执行新任务寄存器状态恢复,即所谓的入栈和出栈,而此部分工作由于与硬件平台强相关,往往需要汇编指令编码实现,需要对硬件平台足够熟悉。
因此,基于裸机移植操作系统的开发工作量大,产品周期长,又由于移植工作的三部分核心工作(芯片引导程序开发、OS调度器开发及外围驱动开发)均与硬件强相关,换硬件平台需要完全重新开发,导致无法跨平台复用等问题。
发明内容
本发明实施例提供一种跨核调度方法和装置,用以降低移植操作系统的工作量以及移植后的操作系统能够跨平台服用。
本发明实施例提供一种跨核调度方法,包括:
在第一操作系统上创建一个单进程,在所述单进程上运行第二操作系统,所述第二操作系统的实时性要求高于所述第一操作系统;
在所述第一操作系统的用户态设置所述第二操作系统的寄生调度器,所述寄生调度器用于调度承载在所述第二操作系统上的任务集;
在所述第一操作系统内还设置中断线程,所述中断线程由所述第一操作系统的宿主调度器调度且所述宿主调度器工作在所述第一操作系统的内核态。
较佳的,
所述单进程包括多个线程,所述多个线程分别处理所述第二操作系统对应的各任务集;
在所述第一操作系统的用户态设置所述第二操作系统的寄生调度器,包括:
针对所述多个线程中任一线程,分别创建对应的寄生调度器,每个寄生调度器用于调度所述线程的任务集内的各任务。
较佳的,
为每个线程设置各自的虚拟处理器,所述虚拟处理器根据物理处理器的数量确定。
较佳的,
在第二线程向第一线程发送中断请求的情况下,触发所述中断线程,以使所述寄生调度器通过所述中断线程实现跨核调度。
较佳的,所述寄生调度器通过所述中断线程实现跨核调度,包括:
启动所述宿主调度器运行所述中断线程的中断任务并将第一任务的断点状态保存至所述第一线程的内存栈中;所述第一任务为所述第一线程正在执行的任务;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于大唐移动通信设备有限公司,未经大唐移动通信设备有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201711215743.0/2.html,转载请声明来源钻瓜专利网。