内核重启方法技术

技术编号:32344923 阅读:15 留言:0更新日期:2022-02-20 01:58
本申请提供一种内核重启方法,为处理器中的物理核预留内存用于存储物理核的入口地址以及代码段。以内核热替换场景为例,当计算机系统停止执行旧内核时,向物理核发送中断以使得物理核进入忙等状态。当计算机系统启动新内核时,会修改物理核的入口地址。处于忙等状态的物理核查询到入口地址被修改时,会退出忙等状态,执行物理核的初始化流程,接收新内核的任务调度。整个过程中物理核均处于上电状态,相比于现有技术需要物理核下电再上电,本申请实施例提供的方法可以节省内核重启所需的时间,提高计算机系统使用者的用户体验。提高计算机系统使用者的用户体验。提高计算机系统使用者的用户体验。

【技术实现步骤摘要】
内核重启方法


[0001]本申请涉及操作系统领域,具体涉及一种内核重启方法。

技术介绍

[0002]现代计算机系统宏观上看由硬件层和软件层组成,其中硬件层可以包括一个或多个处理器、存储器、输入/输出设备;软件层有包括操作系统和应用程序。操作系统是管理和控制计算机软件与硬件资源的计算机程序,是运行在物理机上的基本的系统软件,应用程序需要在操作系统的支持下才能运行。当重启物理机或者更新操作系统的内核版本时,若重启计算机系统所需的时间过久会给使用者造成较差的用户体验。
[0003]启动计算机系统所需的时间主要包括三部分:启动系统固件(例如基本输入输出系统(basic input/output system,BIOS))所需的时间、硬件初始化所需的时间和重启内核所需的时间。其中硬件初始化的时间和系统固件的启动时间消耗了大部分时间。Kexec(kernel execution)是Linux内核的一种机制,用于从当前运行的旧内核引导至新内核并启动新内核来完成内核版本的更新。kexec会跳过启动系统固件的阶段和硬件初始化的阶段,直接将新内核加载到内存并开始执行新内核,因此能够缩短计算机系统的启动时间。虽然kexec能够跳过比较耗时的启动系统固件和硬件初始化这两个阶段,但是调试过程中发现更新内核版本的过程中物理核的下电(down)到上电(up)过程非常耗时。

技术实现思路

[0004]本申请提供一种内核重启的方法,能够缩短内核重启所需的时间,提高用户体验。
[0005]第一方面,本申请提供了一种内核重启方法,该方法包括:接收停止执行内核的请求;将物理核的状态设置为忙等状态;位于忙等状态下的所述物理核查询所述物理核的入口地址是否被修改;确定所述物理核的入口地址被修改后,将所述物理核的状态设置为退出忙等状态;执行所述物理核的初始化流程。
[0006]处于忙等状态的物理核处于空载状态,不接收内核下发的任何任务。处于忙等状态的物理核查询到入口地址被修改时,会退出忙等状态,执行物理核的初始化流程,之后接收新内核的任务调度。整个过程中物理核均处于上电状态,相比于现有技术需要物理核下电再上电,本申请实施例提供的方法可以节省内核重启所需的时间,提高计算机系统使用者的用户体验。
[0007]在一种实现方式中,物理核为多个,所述将所述物理核的状态设置为忙等状态包括:响应于接收到所述请求,同时向处理器中一个或多个所述物理核发送中断;响应于接收到所述中断,将所述物理核的状态设置为忙等状态。忙等(busy waiting)是内核锁(lock)中的一个状态。
[0008]在一种实现方式中,物理核为多个,所述一个或多个物理核中每个物理核具有对应的内存空间用于存储物理核的入口地址。
[0009]在一种实现方式中,每个物理核对应的内存空间中还存储有代码段,所述位于忙
等状态下的所述物理核查询所述物理核的入口地址是否被修改包括:所述物理核调用所述代码段中的指令,以执行查询所述物理核的入口地址是否被修改。
[0010]在一种实现方式中,方法还包括:响应于所述内核被启动,修改所述内存空间中所述物理核的入口地址以及所述代码段,修改后的入口地址为所述修改后的代码段的起始地址;所述修改后的代码段的指令被所述物理核调用用以执行所述物理核的初始化流程。
[0011]在一种实现方式中,所述确定所述物理核的入口地址被修改后,将所述物理核的状态设置为退出忙等状态,包括:
[0012]确定所述物理核的入口地址被修改,跳转至执行所述修改后的入口地址对应的代码段,所述修改后的入口地址为所述修改后的入口地址对应的代码段的起始地址,所述修改后的入口地址对应的代码段的指令被所述物理核调用以执行所述物理核的初始化流程。
[0013]第二方面,本申请提供一种内核重启装置,该装置包括:
[0014]接收单元,用于接收停止执行内核的请求;
[0015]处理单元,用于将物理核的状态设置为忙等状态;查询所述物理核的入口地址是否被修改;确定所述物理核的入口地址被修改后,将所述物理核的状态设置为退出忙等状态;执行所述物理核的初始化流程。处理单元具体可以指示位于忙等状态的物理核查询该物理核的入口地址是否修改。
[0016]在一种实现方式中,物理核为多个,所述处理单元具体用于:响应于接收到所述请求,同时向处理器中一个或多个所述物理核发送中断;响应于接收到所述中断,将所述物理核的状态设置为忙等状态。
[0017]在一种实现方式中,物理核为多个,所述一个或多个物理核中每个物理核具有对应的内存空间用于存储物理核的入口地址。
[0018]在一种实现方式中,所述每个物理核对应的内存空间中还存储有代码段,所述处理单元具体用于:调用所述代码段中的指令,以执行查询所述物理核的入口地址是否被修改
[0019]在一种实现方式中,所述装置还包括修改单元,用于响应于所述内核被启动,修改所述内存空间中所述物理核的入口地址以及所述代码段,修改后的入口地址为所述修改后的代码段的起始地址;所述修改后的代码段的指令被所述物理核调用用以执行所述物理核的初始化流程。
[0020]在一种实现方式中,所述处理单元具体用于:确定所述物理核的入口地址被修改,跳转至执行所述修改后的入口地址对应的代码段,所述修改后的入口地址为所述修改后的入口地址对应的代码段的起始地址,所述修改后的入口地址对应的代码段的指令被所述物理核调用以执行所述物理核的初始化流程。
[0021]第三方面,本申请提供一种计算机系统,该计算机系统包括处理器和存储器,所述存储器中存储有计算机指令,所述处理器执行所述计算机指令以执行如第一方面及其任一种实现方式所描述的方法。
[0022]第四方面,本申请提供一种计算机可读存储介质,计算机可读存储介质中存储有计算机指令,处理器执行所述计算机指令以执行如第一方面及其任一种实现方式所描述的方法。
[0023]第五方面,本申请提供一种计算机程序产品,计算机程序产品包括计算机指令,该
计算机指令被处理器调用以执行如第一方面及其任一种实现方式所描述的方法。
附图说明
[0024]图1为本申请实施例提供的计算机系统100的结构图;
[0025]图2为本申请实施例提供的计算机系统100的结构图;
[0026]图3为本申请实施例提供的内核重启流程示意图;
[0027]图4为本申请实施例提供的内核重启流程示意图;
[0028]图5为本申请实施例提供的内核重启装置示意图。
具体实施方式
[0029]下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行详细描述,显然,所描述的实施例是本申请的一部分实施例,而不是全部实施例。
[0030]图1为计算机系统100的结构示意图。计算机系统100可包括软件层(未示出)和硬件层103,软件层包括一个或多个应用程序101,和操作系统102,操作系统102中包括内核104。硬件层103包括处理器106、存储本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种内核重启方法,其特征在于,所述方法包括:接收停止执行内核的请求;将物理核的状态设置为忙等状态;位于忙等状态下的所述物理核查询所述物理核的入口地址是否被修改;确定所述物理核的入口地址被修改后,将所述物理核的状态设置为退出忙等状态;执行所述物理核的初始化流程。2.根据权利要求1所述的方法,其特征在于,所述物理核为多个,所述将所述物理核的状态设置为忙等状态包括:响应于接收到所述请求,同时向处理器中一个或多个所述物理核发送中断;响应于接收到所述中断,将所述物理核的状态设置为忙等状态。3.根据权利要求1或2所述的方法,其特征在于,所述物理核为多个,所述一个或多个物理核中每个物理核具有对应的内存空间用于存储物理核的入口地址。4.根据权利要求3所述的方法,其特征在于,所述每个物理核对应的内存空间中还存储有代码段,所述位于忙等状态下的所述物理核查询所述物理核的入口地址是否被修改包括:所述物理核调用所述代码段中的指令,以执行查询所述物理核的入口地址是否被修改。5.根据权利要求1-4任一项所述的方法,其特征在于,所述方法还包括:响应于所述内核被启动,修改所述内存空间中所述物理核的入口地址以及所述代码段,修改后的入口地址为所述修改后的代码段的起始地址;所述修改后的代码段的指令被所述物理核调用用以执行所述物理核的初始化流程。6.根据权利要求1-5任一项所述的方法,其特征在于,所述确定所述物理核的入口地址被修改后,将所述物理核的状态设置为退出忙等状态,包括:确定所述物理核的入口地址被修改,跳转至执行所述修改后的入口地址对应的代码段,所述修改后的入口地址为所述修改后的入口地址对应的代码段的起始地址,所述修改后的入口地址对应的代码段的指令被所述物理核调用以执行所述物理核的初始化流程。7.一种内核重启装置,其特征在于,所述装置包括:接收单元,用于接收停止执行内核的请求;处理单元,用于将物理核的状...

【专利技术属性】
技术研发人员:朱玲桑琰
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:

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

1