CN104714843A - 多内核操作系统实例支持多处理器的方法及装置 - Google Patents

多内核操作系统实例支持多处理器的方法及装置 Download PDF

Info

Publication number
CN104714843A
CN104714843A CN201310694856.9A CN201310694856A CN104714843A CN 104714843 A CN104714843 A CN 104714843A CN 201310694856 A CN201310694856 A CN 201310694856A CN 104714843 A CN104714843 A CN 104714843A
Authority
CN
China
Prior art keywords
system example
processor
operation system
operating system
hardware resource
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201310694856.9A
Other languages
English (en)
Other versions
CN104714843B (zh
Inventor
高云伟
薛栋梁
詹剑锋
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Institute of Computing Technology of CAS
Original Assignee
Huawei Technologies Co Ltd
Institute of Computing Technology of CAS
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd, Institute of Computing Technology of CAS filed Critical Huawei Technologies Co Ltd
Priority to CN201310694856.9A priority Critical patent/CN104714843B/zh
Publication of CN104714843A publication Critical patent/CN104714843A/zh
Application granted granted Critical
Publication of CN104714843B publication Critical patent/CN104714843B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Multi Processors (AREA)
  • Stored Programmes (AREA)

Abstract

本发明实施例提供一种多内核操作系统实例支持多处理器的方法及装置,本发明方法,包括:主操作系统实例分配至少两个处理器资源给从操作系统实例;所述主操作系统实例从各所述处理器资源上选择一个处理器以执行从操作系统实例的内核启动代码;选择的所述处理器在执行所述从操作系统实例的内核代码到设定的多处理器初始化阶段时,向分配给从操作系统实例的其他处理器发送IPI指令;分配的其他处理器接收到所述IPI指令后跳转到从操作系统实例设定的入口代码地址继续执行。本发明实施例,通过主操作系统实例为从操作系统分配并初始化处理器资源,以解决现有技术中多内核操作系统实例无法支持多处理器的问题。

Description

多内核操作系统实例支持多处理器的方法及装置
技术领域
本发明实施例涉及计算机技术,尤其涉及一种多内核操作系统实例支持多处理器的方法及装置。
背景技术
操作系统(Operating System,简称OS)是管理和控制计算机硬件与软件资源的计算机程序,位于底层硬件与用户之间,是两者沟通的桥梁。用户可以通过操作系统的用户界面,输入命令。操作系统则对命令进行解释,驱动硬件设备,实现用户要求。
在多核异构平台上,多内核操作系统已经成为一种主流的操作系统架构。多内核操作系统是由多个内核(微内核或运行时系统)构成,在单个或多个物理核上部署一个内核,并集成这些内核向上层提供单一系统映像或独立系统镜像的操作系统。其中每个内核主要包括硬件资源访问和消息转发等功能。多内核系统中首先启动的操作系统实例为主(primary)操作系统实例,后续启动的称为从(secondary)操作系统实例。
发明人发现,现有多内核操作系统中,存在从操作系统实例无法支持多处理器的问题。
发明内容
本发明实施例提供一种多内核操作系统实例支持多处理器的方法及装置,以实现在多内核操作系统中,提高多个操作系统实施例的处理效率和利用率。
第一方面,本发明实施例提供一种多内核操作系统实例支持多处理器的方法,包括:
主操作系统实例根据获取到的硬件资源需求描述信息,分配至少两个处理器资源给从操作系统实例;
所述主操作系统实例从各所述处理器资源上选择一个处理器以执行从操作系统实例的内核启动代码;
选择的所述处理器在执行所述从操作系统实例的内核代码到设定的多处理器初始化阶段时,向分配给从操作系统实例的其他处理器发送处理器中断IPI指令;
分配的其他处理器接收到所述IPI指令后跳转到从操作系统实例设定的入口代码地址继续执行,直到完成全部分配给从操作系统实例的多处理器初始化。
在第一方面第一种可能的实现方式中,所述主操作系统实例根据获取到的硬件资源需求描述信息,分配至少两个处理器资源给从操作系统实例之前,还包括:
主操作系统实例在运行当前应用程序时,接收所述当前应用程序发送的硬件资源需求描述信息;
或者,
主操作系统实例根据运行的当前应用程序所需的硬件资源,为所述当前应用程序生成所述硬件资源需求描述信息。
在第一方面第二种可能的实现方式中,选择的所述处理器在向分配给从操作系统实例的其他处理器发送IPI指令之前,还包括:
所述主操作系统实例向分配给从操作系统实例的其他处理器配置处理器暂停指令HLT代码,并使所述其他处理器执行所述HLT指令代码后处于等待接收IPI指令的暂停状态。
在第一方面第三种可能的实现方式中,所述主操作系统实例根据获取到的硬件资源需求描述信息,分配至少两个处理器资源给从操作系统实例,包括:
所述主操作系统实例根据所述硬件资源需求描述信息,从可用的处理器资源中选择至少两个处理器资源以分配给从操作系统实例;或者,
所述主操作系统实例根据所述硬件资源需求描述信息,释放当前使用的处理器资源,并从释放的处理器资源中选择至少两个处理器资源以分配给从操作系统实例。
根据第一方面、第一方面第一种至第三种任意可能的实现方式,在第一方面第四种可能的实现方式中,所述主操作系统实例根据获取到的硬件资源需求描述信息,分配至少两个处理器资源给从操作系统实例之后,还包括:
所述主操作系统实例在为从操作系统实例分配的物理地址空间里构建多处理器表项MP Table,所述MP Table用于描述为所述从操作系统实例分配的处理器资源信息。
第二方面,本发明实施例提供一种多内核操作系统实例支持多处理器的装置,包括:
分配模块,用于配置主操作系统实例根据获取到的硬件资源需求描述信息,分配至少两个处理器资源给从操作系统实例;
选择模块,配置于所述主操作系统实例中,用于从各所述处理器资源上选择一个处理器以执行从操作系统实例的内核代码;
发送中断模块,用于在执行所述从操作系统实例的内核代码到设定的多处理器初始化阶段时,向分配给从操作系统实例的其他处理器发送处理器中断IPI指令;
执行模块,用于接收到所述IPI指令后跳转到从操作系统实例设定的入口代码地址继续执行,直到完成全部分配给从操作系统实例的多处理器初始化。
在第二方面第一种可能的实现方式中,还包括:
接收模块,用于所述分配模块根据获取到的硬件资源需求描述信息,分配至少两个处理器资源给从操作系统实例之前,在运行当前应用程序时,接收所述当前应用程序发送的硬件资源需求描述信息;
或者,
生成模块,用于所述分配模块根据获取到的硬件资源需求描述信息,分配至少两个处理器资源给从操作系统实例之前,根据运行的当前应用程序所需的硬件资源,为所述当前应用程序生成所述硬件资源需求描述信息。
在第二方面第二种可能的实现方式中,还包括:
配置模块,用于选择的所述处理器在向分配给从操作系统实例的其他处理器发送IPI指令之前,向分配给从操作系统实例的其他处理器配置处理器暂停指令HLT代码,并使所述其他处理器执行所述HLT指令代码后处于等待接收IPI指令的暂停状态。
在第二方面第三种可能的实现方式中,所述分配模块,具体用于:
根据所述硬件资源需求描述信息,从可用的处理器资源中选择至少两个处理器资源以分配给从操作系统实例;或者,
根据所述硬件资源需求描述信息,释放当前使用的处理器资源,并从释放的处理器资源中选择至少两个处理器资源以分配给从操作系统实例。
根据第二方面、第二方面第一种至第三种任意可能的实现方式,在第二方面第四种可能的实现方式中,还包括:
构建模块,用于所述主操作系统实例根据获取到的硬件资源需求描述信息,分配至少两个处理器资源给从操作系统实例之后,在为从操作系统实例分配的物理地址空间里构建多处理器表项MP Table,所述MP Table用于描述为所述从操作系统实例分配的处理器资源信息。
本发明实施例通过主操作系统实例根据所述用户程序的资源需求描述信息从可用的资源中分配并初始化多个处理器核资源,以实现在多内核操作系统中,基于主操作系统实例创建执行所述用户程序的从操作系统,解决现有技术中从操作系统实例无法支持多处理器的问题。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明多内核操作系统实例支持多处理器方法实施例一的流程图;
图2为本发明多内核操作系统实例支持多处理器方法实施例二的流程图;
图3为本发明多内核操作系统实例支持多处理器方法实施例三的流程图;
图4为本发明多内核操作系统实例支持多处理器装置实施例一的结构图;
图5为本发明多内核操作系统实例支持多处理器装置实施例二的结构图;
图6为本发明多内核操作系统实例支持多处理器装置实施例三的结构图;
图7为本发明多内核操作系统实例支持多处理器装置实施例四的结构图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1为本发明多内核操作系统实例支持多处理器方法实施例一的流程图,本方法的执行主体是操作系统实例创建装置,该装置可以置于多核操作系统中,如Linux等操作系统。如图1所示,该方法具体包括:
步骤101、主操作系统实例根据获取到的硬件资源需求描述信息,分配至少两个处理器资源给从操作系统实例;
硬件资源可以包括:处理器资源,存储资源,输入/输出I/O资源、网络资源等。
可选地,本步骤中的处理器资源也可以替换为处理器核资源或处理器硬件线程资源,即若一个处理器资源中存在多个核或或处理器硬件线程资源,则主操作系统实例也可以根据获取到的硬件资源需求描述信息,分配至少两个核资源或处理器硬件线程资源给从操作系统。
主操作系统实例可以定义成重量级操作系统实例Heavy OS实例,一般具有资源分配、回收、虚拟化及协调等功能的通用操作系统,它是硬件上第一个启动的操作系统实例,也称primary操作系统实例;从操作系统实例也可以定义成轻量级操作系统实例Light OS实例,是指后续启动的操作系统实例,也称Secondary操作系统实例。
需要说明的是,本步骤中,主操作系统实例在为从操作系统实例分配处理器资源时,也同时为从操作系统实例分配相应地指定大小的物理内存。
步骤102、所述主操作系统实例从各所述处理器资源上选择一个处理器以执行从操作系统实例的内核启动代码;
在所述主操作系统实例分配好多个处理器资源后,比如以N为例,N>1,则从N中处理器资源中选择其中一个执行从操作系统实例的内核代码,可以是选择N中的第一个,也可以选择最后一个,也可以根据一定排序算法选择其中一个。
步骤103、选择的所述处理器在执行所述从操作系统实例的内核代码到设定的多处理器初始化阶段时,向分配给从操作系统实例的其他处理器发送处理器中断IPI指令;
本步骤中,处理器中断(Inter-Processor Interrupt,简称IPI)是一种特别的中断。在对称多处理器环境下,它可以被任意一个处理器用来对另一个处理器产生中断。
步骤104、分配的其他处理器接收到所述IPI指令后跳转到从操作系统实例设定的入口代码地址继续执行,直到完成全部分配给从操作系统实例的多处理器初始化。
本步骤中,分配的其他处理器中其中一个接收到所述IPI指令后,跳转到从操作系统实例设定的入口代码地址继续执行完成自身的初始化,完成后,再向其他的处理器发送IPI指令,依次进行,直到主操作系统实例完成所有的处理器资源的初始化。
本实施例通过主操作系统实例根据获取到的硬件资源需求描述信息,在分配的多个处理器资源上创建从操作系统,实现在多内核操作系统中基于主操作系统动态创建支持多处理器的从操作系统,提高多个操作系统实施例的处理效率和处理器资源的利用率。
进一步地,主操作系统可以根据实际的用户程序需求,创建不同的从操作系统,比如根据实时性的要求,对并行计算的要求等。需要说明的是,主操作系统和从操作系统可以属于不同的操作系统。上述技术方案,使得创建和运用从操作系统更加灵活,使得操作系统的处理效率尽可能的最优化。
图2为本发明多内核操作系统实例支持多处理器方法实施例二的流程图,本实施例在上一实施例的基础上增加主操作系统如何获取硬件资源需求描述信息以及增加构建多处理器表现的步骤,如图2所示,该方法具体包括:
步骤201、主操作系统实例在运行当前应用程序时,接收所述当前应用程序发送的硬件资源需求描述信息;
可选地,本步骤中,还可以主操作系统实例根据运行的当前应用程序所需的硬件资源,为所述当前应用程序生成所述硬件资源需求描述信息。
需要说明的是,主操作系统实例获取硬件资源需求描述信息的方式不限于上述两种,还可以用户根据特殊需求情况直接输入所需资源请求。
步骤202、所述主操作系统实例根据所述硬件资源需求描述信息,从可用的处理器资源中选择至少两个处理器资源以分配给从操作系统实例;
可选地,本步骤中,还可以所述主操作系统实例根据所述硬件资源需求描述信息,释放当前使用的处理器资源,并从释放的处理器资源中选择至少两个处理器资源以分配给从操作系统实例。
分配给从操作系统实例的处理器资源的获取也可以有很多种,除上述两种外,还可以先在可用的处理器资源中选择,如果还不满足资源需求,再从当前使用的处理器资源中进行释放。释放的策略也可以根据优先级,也可以根据满足需求的匹配度等因素。
步骤203、所述主操作系统实例在为从操作系统实例分配的物理地址空间里构建多处理器表项MP Table,所述MP Table用于描述为所述从操作系统实例分配的处理器资源信息;
本步骤中,MP Table描述了分配给从操作系统实例的处理器的相关信息,比如acpi id等,具体可参见intel的多处理器规范(mp spec)。
通过将分配给从操作系统实例的处理器相关信息存储在MP Table中,以使各从操作系统实例在初始化时,可以读取MP Table中分配给自身的处理器信息,以便于各从操作系统实例快速初始化,也有利于主操作系统实例对多个从操作系统实例进行统一管理和调度。
步骤204、所述主操作系统实例从各所述处理器资源上选择一个处理器以执行从操作系统实例的内核启动代码;
步骤205、所述主操作系统实例向分配给从操作系统实例的其他处理器配置处理器暂停指令HLT代码,并使所述其他处理器执行所述HLT指令代码后处于等待接收IPI指令的暂停状态;
本步骤中,除步骤204选择的一个处理器以外的其他处理器将主操作系统实例配置的处理器暂停指令HLT(halt)代码存放在各个处理器的低地址处,执行后使得处理器处于暂停状态,以等待其他处理器发送的IPI指令。
步骤206、选择的所述处理器在执行所述从操作系统实例的内核代码到设定的多处理器初始化阶段时,向分配给从操作系统实例的其他处理器发送处理器中断IPI指令;
步骤207、分配的其他处理器接收到所述IPI指令后跳转到从操作系统实例设定的入口代码地址继续执行,直到完成全部分配给从操作系统实例的多处理器初始化。
本实施例主操作系统通过多种方式获取硬件资源需求描述信息,以及增加标准的MP Table用于描述为所述从操作系统实例分配的处理器资源信息,以实现在多内核操作系统中,根据硬件资源需求动态的创建多操作系统实例,提高系统处理效率。
图3为本发明多内核操作系统实例支持多处理器方法实施例三的流程图,本实施例基于Linux操作系统,详细描述如何具体实现在主操作系统上动态创建从操作系统,假设定义主操作系统为Heavy OS,从操作系统为LightOS,处理器资源定义成CPU/Core,如图3所示,具体步骤包括:
步骤301、根据应用对运算能力及并行性的需求,用户提供Light OS所需的CPU/Core数量n给Heavy OS;
同时也可以提供内存需求等,比如用户需要一个运行在4个CPU/Core,256M内存的内核映像为vmlwk的Light OS。
步骤302、Heavy OS中从未分配的CPU/Core中分配或通过CPU热插拔(Hotplug)的方式释放指定数量的CPU/Core;
同时Heavy OS为light OS分配指定数量的物理内存。假设未分配的CPU/Core可以满足用户需求,故可以先得到未分配CPU/Core的位图(cpu_possible_map^cpu_online_map),之后从中分配n个CPU/Core;可以如下方式为Light OS分配内存资源:alloc_pages(__GFP_HIGHMEM,16),假设为其分配的起始物理地址为1G。
步骤303、Heavy OS在为Light OS分配的物理内存指定的低端空间部分构建CPU/Core的描述信息MP Table;
以符合PC标准的方式首先(比如在1G+0xfbaa0处)构建MP table描述符结构,然后(比如在1G+0xfb990处)构建描述各CPU/Core的MP Table。
步骤304、Heavy OS为Light OS准备好前N-1(N>1)个CPU/Core,让其执行HLT指令等待IPI指令,Light OS接收到IPI后跳转到Light OS指定的地址继续执行;
具体方法为:Heavy OS将跳板代码trampoline_ap.S拷贝一份到机器低端空间(比如0x6000),两份到为Light OS分配的内存的低端空间(比如拷贝一份到1G+0x6000和一份到1G+0x16000,假设为Light OS分配的物理内存起始地址为1G);向所述CPU/Core发送初始化INIT,启动STARTUP IPI,使其执行trampoline_ap.S;完成实模式到保护模式的转换后,Trampoline_ap.S加载定制的页表完成空间切换(页表只映射分配给Light OS的内存,此时会继续执行1G+0x6000那份trampoline_ap.S);之后跳到Light OS第二份trampoline_ap.S(1G+0x16000那份)代码继续执行;之后完成lapic初始化,执行HLT。
步骤305、Heavy OS准备好第N个CPU/Core后,让其执行Light OS的内核代码,执行到多处理器初始化阶段时,设置其它N-1个CPU/Core收到IPI后跳转的地址为Light OS内核中CPU/Core正常初始化代码的入口地址,之后分别向前(N-1)个处理器发送IPI。
具体方法为:Heavy OS将Light OS内核拷贝到为其分配的物理内存;将trampoline_bp.S拷贝到为Light OS分配的低端物理内存(比如1G+0x6000)以及机器低端内存(0x6000);向第N个CPU/Core发送INIT和STARTUP IPI,使其执行trampoline_bp.S;执行完trampoline_bp.S后,第N个CPU/Core会接着执行Light OS的内核代码;执行到多处理器初始化阶段时设置其它N-1个CPU/Core收到IPI后跳转的地址为Light OS内核中CPU/Core正常初始化代码的入口地址(假设Light OS是基于Linux的,则设置其它N-1个CPU/Core收到IPI后跳转的地址为secondary_startup符号的地址),之后分别向前(N-1)个CPU/Core发送IPI(由于这些CPU/Core已经完成初始化,所以此时发送的IPI非INIT和STARTUP IPI)。
本实施例详细描述了如何基于Linux创建多操作系统实例,使得不需要Intel硬件虚拟技术(Intel Virtualization Technology,简称VT)或AMD安全虚拟机(Secure Virtual Machine,简称SVM)支持就可以在主操作系统实例上创建的从操作系统实例里支持多CPU/Core,降低了企业进行虚拟化技术支撑的成本。同时,通过为从操作系统实例构建符合标准的CPU/Core描述符,同时在主操作系统实例中提前将CPU/Core准备好,只需对从操作系统实例作少量修改即可让其支持多CPU/Core。
图4为本发明多内核操作系统实例支持多处理器装置实施例一的结构图,如图4所示,本实施例的装置,包括:
分配模块41,用于配置主操作系统实例根据获取到的硬件资源需求描述信息,分配至少两个处理器资源给从操作系统实例;
选择模块42,配置于所述主操作系统实例中,用于从各所述处理器资源上选择一个处理器以执行从操作系统实例的内核代码;
发送中断模块43,用于在执行所述从操作系统实例的内核代码到设定的多处理器初始化阶段时,向分配给从操作系统实例的其他处理器发送处理器中断IPI指令;
执行模块44,用于接收到所述IPI指令后跳转到从操作系统实例设定的入口代码地址继续执行,直到完成全部分配给从操作系统实例的多处理器初始化。
本实施例的装置,用于执行图1所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
图5为本发明多内核操作系统实例支持多处理器装置实施例二的结构图,如图5所示,本实施例的装置在上一实施例的基础上,进一步地还包括:
接收模块51,用于所述分配模块根据获取到的硬件资源需求描述信息,分配至少两个处理器资源给从操作系统实例之前,在运行当前应用程序时,接收所述当前应用程序发送的硬件资源需求描述信息;
所述分配模块41,具体用于:
根据所述硬件资源需求描述信息,从可用的处理器资源中选择至少两个处理器资源以分配给从操作系统实例;或者,
根据所述硬件资源需求描述信息,释放当前使用的处理器资源,并从释放的处理器资源中选择至少两个处理器资源以分配给从操作系统实例。
构建模块52,用于所述主操作系统实例根据获取到的硬件资源需求描述信息,分配至少两个处理器资源给从操作系统实例之后,在为从操作系统实例分配的物理地址空间里构建多处理器表项MP Table,所述MP Table用于描述为所述从操作系统实例分配的处理器资源信息。
配置模块53,用于选择的所述处理器在向分配给从操作系统实例的其他处理器发送IPI指令之前,向分配给从操作系统实例的其他处理器配置处理器暂停指令HLT代码,并使所述其他处理器执行所述HLT指令代码后处于等待接收IPI指令的暂停状态。
本实施例的装置,用于执行图2所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
图6为本发明多内核操作系统实例支持多处理器装置实施例三的结构图,如图6所示,本实施例的装置与实施例5的区别在于,将接收模块替换成生成模块61,其中
生成模块61,用于所述分配模块根据获取到的硬件资源需求描述信息,分配至少两个处理器资源给从操作系统实例之前,根据运行的当前应用程序所需的硬件资源,为所述当前应用程序生成所述硬件资源需求描述信息。
本实施例的装置,用于执行图2所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
图7为本发明多内核操作系统实例支持多处理器装置实施例四的结构图,如图7所示,该装置用于在基于Linux的Heavy OS上实现由系统加载(OSLoader)功能模块及处理器控制(CPU Controller)模块组成的Light OS启动部件。OS Loader功能模块响应用户Light OS创建请求,经由CPU Controller内核驱动创建Light OS,具体包括如下:
Heavy OS响应创建Light OS请求模块71,用于响应Heavy OS创建Light OS请求,具体可包括:
根据应用对运算能力及并行性的需求,用户提供Light OS所需的CPU/Core数量n给Heavy OS;
Heavy OS中从未分配的CPU/Core中分配或通过CPU热插拔(hotplug)的方式释放指定数量的CPU/Core;
Heavy OS在为Light OS分配的物理内存指定的低端空间部分构建CPU/Core的描述信息MP Table。
OS Loader功能模块72,用于为Light OS准备好前N-1(N>1)个CPU/Core,让其执行HLT指令等待IPI指令,Light OS接收到IPI后跳转到Light OS指定的地址继续执行;
CPU Controller模块73,用于准备好第N个CPU/Core后,让其执行Light OS的内核代码,执行到多处理器初始化阶段时,设置其它N-1个CPU/Core收到IPI后跳转的地址为Light OS内核中CPU/Core正常初始化代码的入口地址,之后分别向前(N-1)个处理器发送IPI;
Light OS启动模块74,用于在所有CPU/Core初始化完成后,Light OS的启动。
本实施例的装置,用于执行图3所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

Claims (10)

1.一种多内核操作系统实例支持多处理器的方法,其特征在于,包括:
主操作系统实例根据获取到的硬件资源需求描述信息,分配至少两个处理器资源给从操作系统实例;
所述主操作系统实例从各所述处理器资源上选择一个处理器以执行从操作系统实例的内核启动代码;
选择的所述处理器在执行所述从操作系统实例的内核代码到设定的多处理器初始化阶段时,向分配给从操作系统实例的其他处理器发送处理器中断IPI指令;
分配的其他处理器接收到所述IPI指令后跳转到从操作系统实例设定的入口代码地址继续执行,直到完成全部分配给从操作系统实例的多处理器初始化。
2.根据权利要求1所述的方法,其特征在于,所述主操作系统实例根据获取到的硬件资源需求描述信息,分配至少两个处理器资源给从操作系统实例之前,还包括:
主操作系统实例在运行当前应用程序时,接收所述当前应用程序发送的硬件资源需求描述信息;
或者,
主操作系统实例根据运行的当前应用程序所需的硬件资源,为所述当前应用程序生成所述硬件资源需求描述信息。
3.根据权利要求1所述的方法,其特征在于,选择的所述处理器在向分配给从操作系统实例的其他处理器发送IPI指令之前,还包括:
所述主操作系统实例向分配给从操作系统实例的其他处理器配置处理器暂停指令HLT代码,并使所述其他处理器执行所述HLT指令代码后处于等待接收IPI指令的暂停状态。
4.根据权利要求1所述的方法,其特征在于,所述主操作系统实例根据获取到的硬件资源需求描述信息,分配至少两个处理器资源给从操作系统实例,包括:
所述主操作系统实例根据所述硬件资源需求描述信息,从可用的处理器资源中选择至少两个处理器资源以分配给从操作系统实例;或者,
所述主操作系统实例根据所述硬件资源需求描述信息,释放当前使用的处理器资源,并从释放的处理器资源中选择至少两个处理器资源以分配给从操作系统实例。
5.根据权利要求1-4任一项所述的方法,其特征在于,所述主操作系统实例根据获取到的硬件资源需求描述信息,分配至少两个处理器资源给从操作系统实例之后,还包括:
所述主操作系统实例在为从操作系统实例分配的物理地址空间里构建多处理器表项MP Table,所述MP Table用于描述为所述从操作系统实例分配的处理器资源信息。
6.一种多内核操作系统实例支持多处理器装置,其特征在于,包括:
分配模块,用于主操作系统实例根据获取到的硬件资源需求描述信息,分配至少两个处理器资源给从操作系统实例;
选择模块,配置于所述主操作系统实例中,用于从各所述处理器资源上选择一个处理器以执行从操作系统实例的内核启动代码;
发送中断模块,用于在执行所述从操作系统实例的内核代码到设定的多处理器初始化阶段时,向分配给从操作系统实例的其他处理器发送处理器中断IPI指令;
执行模块,用于接收到所述IPI指令后跳转到从操作系统实例设定的入口代码地址继续执行,直到完成全部分配给从操作系统实例的多处理器初始化。
7.根据权利要求6所述的装置,其特征在于,还包括:
接收模块,用于所述分配模块根据获取到的硬件资源需求描述信息,分配至少两个处理器资源给从操作系统实例之前,在运行当前应用程序时,接收所述当前应用程序发送的硬件资源需求描述信息;
或者,
生成模块,用于所述分配模块根据获取到的硬件资源需求描述信息,分配至少两个处理器资源给从操作系统实例之前,根据运行的当前应用程序所需的硬件资源,为所述当前应用程序生成所述硬件资源需求描述信息。
8.根据权利要求6所述的装置,其特征在于,还包括:
配置模块,用于选择的所述处理器在向分配给从操作系统实例的其他处理器发送IPI指令之前,向分配给从操作系统实例的其他处理器配置处理器暂停指令HLT代码,并使所述其他处理器执行所述HLT指令代码后处于等待接收IPI指令的暂停状态。
9.根据权利要求6所述的装置,其特征在于,所述分配模块,具体用于:
根据所述硬件资源需求描述信息,从可用的处理器资源中选择至少两个处理器资源以分配给从操作系统实例;或者,
根据所述硬件资源需求描述信息,释放当前使用的处理器资源,并从释放的处理器资源中选择至少两个处理器资源以分配给从操作系统实例。
10.根据权利要求6-9任一项所述的装置,其特征在于,还包括:
构建模块,用于所述主操作系统实例根据获取到的硬件资源需求描述信息,分配至少两个处理器资源给从操作系统实例之后,在为从操作系统实例分配的物理地址空间里构建多处理器表项MP Table,所述MP Table用于描述为所述从操作系统实例分配的处理器资源信息。
CN201310694856.9A 2013-12-17 2013-12-17 多内核操作系统实例支持多处理器的方法及装置 Active CN104714843B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310694856.9A CN104714843B (zh) 2013-12-17 2013-12-17 多内核操作系统实例支持多处理器的方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310694856.9A CN104714843B (zh) 2013-12-17 2013-12-17 多内核操作系统实例支持多处理器的方法及装置

Publications (2)

Publication Number Publication Date
CN104714843A true CN104714843A (zh) 2015-06-17
CN104714843B CN104714843B (zh) 2018-06-15

Family

ID=53414212

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310694856.9A Active CN104714843B (zh) 2013-12-17 2013-12-17 多内核操作系统实例支持多处理器的方法及装置

Country Status (1)

Country Link
CN (1) CN104714843B (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108108199A (zh) * 2017-12-21 2018-06-01 北京东土科技股份有限公司 一种多核cpu上多操作系统启动方法及装置
CN109597650A (zh) * 2017-09-30 2019-04-09 中兴通讯股份有限公司 一种多操作系统启动的方法、装置、设备及存储介质
WO2021168861A1 (zh) * 2020-02-29 2021-09-02 华为技术有限公司 一种多核处理器、多核处理器处理方法及相关设备
CN116257364A (zh) * 2023-05-12 2023-06-13 苏州浪潮智能科技有限公司 系统间的资源占用方法、装置、存储介质及电子装置

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070204271A1 (en) * 2006-02-28 2007-08-30 Andrew Gaiarsa Method and system for simulating a multi-CPU/multi-core CPU/multi-threaded CPU hardware platform
CN101149728A (zh) * 2007-10-29 2008-03-26 中国科学院计算技术研究所 一种多核处理系统及其管理方法
CN101246431A (zh) * 2008-03-10 2008-08-20 中兴通讯股份有限公司 加载多核不同操作系统映像的管理方法
CN101421700A (zh) * 2006-04-19 2009-04-29 英特尔公司 支持处理系统的分区中的独立操作系统的方法和设备
CN101620547A (zh) * 2009-07-03 2010-01-06 中国人民解放军国防科学技术大学 X86计算机虚拟化的物理中断处理方法
CN102713847A (zh) * 2009-12-29 2012-10-03 超威半导体公司 处理器内核的监管程序隔离

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070204271A1 (en) * 2006-02-28 2007-08-30 Andrew Gaiarsa Method and system for simulating a multi-CPU/multi-core CPU/multi-threaded CPU hardware platform
CN101421700A (zh) * 2006-04-19 2009-04-29 英特尔公司 支持处理系统的分区中的独立操作系统的方法和设备
US20100131746A1 (en) * 2006-04-19 2010-05-27 Lyle Cool Method and apparatus to support separate operating systems in partitions of a processing system
CN101149728A (zh) * 2007-10-29 2008-03-26 中国科学院计算技术研究所 一种多核处理系统及其管理方法
CN101246431A (zh) * 2008-03-10 2008-08-20 中兴通讯股份有限公司 加载多核不同操作系统映像的管理方法
CN101620547A (zh) * 2009-07-03 2010-01-06 中国人民解放军国防科学技术大学 X86计算机虚拟化的物理中断处理方法
CN102713847A (zh) * 2009-12-29 2012-10-03 超威半导体公司 处理器内核的监管程序隔离

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109597650A (zh) * 2017-09-30 2019-04-09 中兴通讯股份有限公司 一种多操作系统启动的方法、装置、设备及存储介质
CN108108199A (zh) * 2017-12-21 2018-06-01 北京东土科技股份有限公司 一种多核cpu上多操作系统启动方法及装置
WO2021168861A1 (zh) * 2020-02-29 2021-09-02 华为技术有限公司 一种多核处理器、多核处理器处理方法及相关设备
CN116257364A (zh) * 2023-05-12 2023-06-13 苏州浪潮智能科技有限公司 系统间的资源占用方法、装置、存储介质及电子装置
CN116257364B (zh) * 2023-05-12 2023-08-04 苏州浪潮智能科技有限公司 系统间的资源占用方法、装置、存储介质及电子装置

Also Published As

Publication number Publication date
CN104714843B (zh) 2018-06-15

Similar Documents

Publication Publication Date Title
JP6381956B2 (ja) 動的仮想マシンサイジング
KR101952795B1 (ko) 자원 프로세싱 방법, 운영체제, 및 장치
Ananthanarayanan et al. True elasticity in multi-tenant data-intensive compute clusters
US8381002B2 (en) Transparently increasing power savings in a power management environment
US20150067356A1 (en) Power manager for multi-threaded data processor
US11740921B2 (en) Coordinated container scheduling for improved resource allocation in virtual computing environment
WO2013131340A1 (zh) 片上系统soc的多处理器的调度方法及装置
JP2016541072A5 (zh)
CN101788920A (zh) 一种基于处理器分区技术的cpu虚拟化方法
US20160196157A1 (en) Information processing system, management device, and method of controlling information processing system
WO2006103687A1 (en) Partitioned resource reallocation system and method
US10802998B2 (en) Technologies for processor core soft-offlining
US10564995B2 (en) Dynamic control of halt polling based on receiving a monitoring instruction executed by a guest
JP2008186175A (ja) オペレーティングシステムの起動制御方法及び情報処理装置
WO2016092856A1 (ja) 情報処理装置、情報処理システム、タスク処理方法、及び、プログラムを記憶する記憶媒体
CN104714843A (zh) 多内核操作系统实例支持多处理器的方法及装置
WO2015090195A1 (zh) 操作系统实例创建方法及装置
CN103631648A (zh) 一种任务处理方法及系统
Harvey et al. A scalable runtime for the ecoscale heterogeneous exascale hardware platform
KR101334842B1 (ko) 가상화 지원 단말 플랫폼을 위한 가상머신 관리장치 및 방법
US8402191B2 (en) Computing element virtualization
US9547522B2 (en) Method and system for reconfigurable virtual single processor programming model
Kale et al. Distributing subsystems across different kernels running simultaneously in a Multi-Core architecture
Gero et al. Making the case for portable MPI process pinning
CN103106084A (zh) 执行多重操作系统的方法及电子装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant