操作系统实例创建方法及装置.pdf

上传人:00062****4422 文档编号:4039014 上传时间:2018-08-12 格式:PDF 页数:16 大小:1.37MB
返回 下载 相关 举报
摘要
申请专利号:

CN201310695516.8

申请日:

2013.12.17

公开号:

CN104714821A

公开日:

2015.06.17

当前法律状态:

实审

有效性:

审中

法律详情:

授权|||实质审查的生效IPC(主分类):G06F 9/445申请日:20131217|||公开

IPC分类号:

G06F9/445; G06F9/50

主分类号:

G06F9/445

申请人:

华为技术有限公司; 中国科学院计算技术研究所

发明人:

高云伟; 池志雄; 陆钢; 丁科; 詹剑锋

地址:

518129广东省深圳市龙岗区坂田华为总部办公楼

优先权:

专利代理机构:

北京同立钧成知识产权代理有限公司11205

代理人:

刘芳

PDF下载: PDF下载
内容摘要

本发明实施例提供一种操作系统实例创建方法及装置,该方法中,Primary操作系统根据资源需求信息,为Secondary操作系统实例分配独占的系统资源,生成Secondary操作系统实例的资源描述信息后,初始化并启动Secondary操作系统实例,从而实现根据用户提供的资源需求,动态的创建具有独占资源的操作系统实例,达到提高系统扩展性能,并满足用户的需求的目的。

权利要求书

权利要求书
1.  一种操作系统实例创建方法,其特征在于,包括:
主操作系统实例接收指示创建从操作系统实例的创建请求,所述创建请求携带所述从操作系统实例的资源需求信息;
所述主操作系统实例根据所述资源需求信息,为所述从操作系统实例分配独占的系统资源,所述系统资源至少包括:处理器资源、物理内存分区资源;
所述主操作系统实例根据所述资源需求信息,生成所述从操作系统实例的资源描述信息;
所述主操作系统实例初始化所述系统资源,得到初始化系统资源;
所述主操作系统实例在所述初始化系统资源上启动所述从操作系统实例。

2.  根据权利要求1所述的方法,其特征在于,所述主操作系统实例接收指示创建从操作系统实例的创建请求之后,根据所述资源需求信息,为所述从操作系统实例分配独占的系统资源之前,包括:
所述主操作系统实例根据所述资源需求信息,判断资源池中是否存在满足所述资源需求信息的所述系统资源。

3.  根据权利要求1或2所述的方法,其特征在于,所述资源描述信息,包括:
兼容的资源描述信息,所述兼容的资源描述信息为不符合引导过程标准multiboot的资源描述信息;或者,
标准的资源描述信息,所述标准的资源描述信息为符合引导过程标准multiboot的资源描述信息。

4.  根据权利要求1~3任一项所述的方法,其特征在于,所述主操作系统实例根据所述资源需求信息,生成所述从操作系统实例的资源描述信息,包括:
所述主操作系统实例根据所述资源需求信息,在用户层生成描述所述系统资源的数量信息的第一资源描述信息,并在内核空间,根据所述数量信息,生成所述从操作系统实例完整的资源描述信息,以使所述从操作系统实例将所述资源描述信息加载与所述系统资源中的物理内存分区资源中;或者,
所述主操作系统实例在内核空间,生成所述从操作系统实例的资源描述信息,以使所述从操作系统实例将所述资源描述信息加载与所述系统资源中的物理内存分区资源中;或者,
所述主操作系统实例,生成所述从操作系统实例的资源描述信息,加载于为所述从操作系统实例分配的所述系统资源中的物理内存分区中。

5.  根据权利要求1所述的方法,其特征在于,所述主操作系统实例根据所述资源需求信息,生成所述从操作系统实例的资源描述信息之后,初始化所述系统资源,得到初始化系统资源之前,包括:
所述主操作系统实例对所述物理内存分区资源进行虚拟地址重映射。

6.  一种操作系统实例创建装置,其特征在于,包括:
接收模块,用于接收指示创建从操作系统实例的创建请求,所述创建请求携带所述从操作系统的资源需求信息;
分配模块,用于根据所述资源需求信息,为所述从操作系统实例分配独占的系统资源,所述系统资源至少包括:处理器资源、物理内存分区资源;
生成模块,用于根据所述资源需求信息,生成所述从操作系统实例的资源描述信息;
初始化模块,用于初始化所述系统资源,得到初始化系统资源;
启动模块,用于在所述初始化系统资源上启动所述从操作系统实例。

7.  根据权利要求6所述的装置,其特征在于,所述装置还包括:
判断模块,用于根据所述资源需求信息,判断资源池中是否存在满足所述资源需求信息的所述系统资源。

8.  根据权利要求6或7所述的装置,其特征在于,所述资源描述信息,包括:
兼容的资源描述信息,所述兼容的资源描述信息为不符合引导过程标准multiboot的资源描述信息;或者,
标准的资源描述信息,所述标准的资源描述信息为符合引导过程标准multiboot的资源描述信息。

9.  根据权利要求6~8任一项所述的装置,其特征在于,所述生成模块,用于根据所述资源需求信息,在用户层生成描述所述系统资源的数量信息的第一资源描述信息,并在内核空间,根据所述数量信息,生成所述从操作系统实例完整的资源描述信息,以使所述从操作系统实例将所述资源描述信息加载与所述系统资源中的物理内存分区资源中;或者,
在内核空间,生成所述从操作系统实例的资源描述信息,以使所述从操作系统实例将所述资源描述信息加载与所述系统资源中的物理内存分区资源中;或者,
生成所述从操作系统实例的资源描述信息,加载于为所述从操作系统实例分配的所述系统资源中的物理内存分区中。

10.  根据权利要求6所述的装置,其特征在于,所述装置还包括:
重映射模块,用于对所述物理内存分区资源进行虚拟地址重映射。

说明书

说明书操作系统实例创建方法及装置
技术领域
本发明实施例涉及计算机领域,尤其涉及一种操作系统实例创建方法及装置。
背景技术
随着计算机技术的不断发展,在一个中央处理器(Central Processing Unit,CPU)上部署多个物理核(Core)形成具有强大处理能力的多核处理器,包括至少一个多核处理器的计算机系统称为多处理器系统。
在多处理器系统中,一个或多个物理核(core)上部署一个内核(kernel),称为多内核操作系统,在多内核操作系统中,core上部署定制的独立编译的系统映像,从而形成一个完整的操作系统。一般来说,多内核操作系统上共存多个操作系统实例,其中,首先启动的操作系统实例为主(Primary)操作系统实例,后续启动的一个或多个操作系统实例称为从(Secondary)操作系统实例,用户可经由Primary操作系统实例创建并管理Secondary操作系统实例。为满足用户需求,需要根据用户提供的资源需求,创建与资源需求相符的操作系统实例。然而,现有技术中并没有具体的根据用户提供的资源需求,动态的创建具有独占资源的操作系统实例的方法。
因此,如何提出一种根据用户提供的资源需求,动态的创建具有独占资源的操作系统实例的方法,实为业界亟待解决的问题。
发明内容
本发明实施例提供一种操作系统实例创建方法及装置,实现根据用户提供的资源需求,动态的创建具有独占资源的操作系统实例,从而提高系统扩展性能,并满足用户的需求。
第一个方面,本发明实施例提供一种操作系统实例创建方法,包括:
主操作系统实例接收指示创建从操作系统实例的创建请求,所述创建请求携带所述从操作系统实例的资源需求信息;
所述主操作系统实例根据所述资源需求信息,为所述从操作系统实例分配独占的系统资源,所述系统资源至少包括:处理器资源、物理内存分区资源;
所述主操作系统实例根据所述资源需求信息,生成所述从操作系统实例的资源描述信息;
所述主操作系统实例初始化所述系统资源,得到初始化系统资源;
所述主操作系统实例在所述初始化系统资源上启动所述从操作系统实例。
在第一个方面的第一种可能的实现方式中,所述主操作系统实例接收指示创建从操作系统实例的创建请求之后,根据所述资源需求信息,为所述从操作系统实例分配独占的系统资源之前,包括:
所述主操作系统实例根据所述资源需求信息,判断资源池中是否存在满足所述资源需求信息的所述系统资源。
结合第一个方面或第一个方面的第一种可能的实现方式,在第一个方面的第二种可能的实现方式中,所述资源描述信息,包括:
兼容的资源描述信息,所述兼容的资源描述信息为不符合引导过程标准multiboot的资源描述信息;或者,
标准的资源描述信息,所述标准的资源描述信息为符合引导过程标准multiboot的资源描述信息。
结合第一个方面、第一个方面的第一种或第二种可能的实现方式,在第一个方面的第三种可能的实现方式中,所述主操作系统实例根据所述资源需求信息,生成所述从操作系统的资源描述信息,包括:
所述主操作系统实例根据所述资源需求信息,在用户层生成描述所述系统资源的数量信息的第一资源描述信息,并在内核空间,根据所述数量信息,生成所述从操作系统实例完整的资源描述信息,以使所述从操作系统实例将所述资源描述信息加载与所述系统资源中的物理内存分区资源中;或者,
所述主操作系统实例在内核空间,生成所述从操作系统实例的资源描述信息,以使所述从操作系统实例将所述资源描述信息加载与所述系统资源中的物理内存分区资源中;或者,
所述主操作系统实例,生成所述从操作系统实例的资源描述信息,加载于为所述从操作系统实例分配的所述系统资源中的物理内存分区中。
在第一个方面的第四种可能的实现方式中,所述主操作系统实例根据所述资源需求信息,生成所述从操作系统实例的资源描述信息之后,初始化所述系统资源,得到初始化系统资源之前,包括:
所述Primary操作系统实例对所述物理内存分区资源进行虚拟地址重映射。
第二个方面,本发明实施例提供一种操作系统实例创建装置,包括:
接收模块,用于接收指示创建从操作系统实例的创建请求,所述创建请求携带所述从操作系统的资源需求信息;
分配模块,用于根据所述资源需求信息,为所述从操作系统实例分配独占的系统资源,所述系统资源至少包括:处理器资源、物理内存分区资源;
生成模块,用于根据所述资源需求信息,生成所述从操作系统实例的资源描述信息;
初始化模块,用于初始化所述系统资源,得到初始化系统资源;
启动模块,用于在所述初始化系统资源上启动所述从操作系统实例。
在第二个方面的第一种可能的实现方式中,所述装置还包括:
判断模块,用于根据所述资源需求信息,判断资源池中是否存在满足所述资源需求信息的所述系统资源。
结合第二个方面或第二个方面的第一种可能的实现方式,在第二个方面的第二种可能的实现方式中,所述资源描述信息,包括:
兼容的资源描述信息,所述兼容的资源描述信息为不符合引导过程标准multiboot的资源描述信息;或者,
标准的资源描述信息,所述标准的资源描述信息为符合引导过程标准multiboot的资源描述信息。
结合第二个方面、第二个方面的第一种或第二种可能的实现方式,在第二个方面的第三种可能的实现方式中,所述生成模块,用于根据所述资源需求信息,在用户层生成描述所述系统资源的数量信息的第一资源描述信息,并在内核空间,根据所述数量信息,生成所述从操作系统实例完整的资源描述信息,以使所述从操作系统实例将所述资源描述信息加载与所述系统资源中的物理内存分区资源中;或者,
在内核空间,生成所述从操作系统实例的资源描述信息,以使所述从操作系统实例将所述资源描述信息加载与所述系统资源中的物理内存分区资源中;或者,
生成所述从操作系统实例的资源描述信息,加载于为所述从操作系统实例分配的所述系统资源中的物理内存分区中。
在第二个方面的第四种可能的实现方式中,所述装置还包括:
重映射模块,用于对所述物理内存分区资源进行虚拟地址重映射。
本发明实施例提供的操作系统实例创建方法及装置,Primary操作系统根据资源需求信息,为Secondary操作系统实例分配独占的系统资源,生成Secondary操作系统实例的资源描述信息后,初始化并启动Secondary操作系统实例,从而实现根据用户提供的资源需求,动态的创建具有独占资源的操作系统实例,达到提高系统扩展性能,并满足用户的需求的目的。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明操作系统实例创建方法实施例一的流程图;
图2为本发明操作系统实例创建方法所适用的启动参数数据结构示意图;
图3为本发明操作系统实例创建装置实施例一的结构示意图;
图4为本发明操作系统实例创建装置实施例二的结构示意图;
图5为本发明操作系统实例创建装置实施例三的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1为本发明操作系统实例创建方法实施例一的流程图。本实施例适用于具有主(Primary)操作系统实例与至少一个从(Secondary)操作系统实例的多内核操作系统,应用于需要动态创建具有独立系统资源的Secondary操作系统实例的场景。具体的,本实施例包括如下步骤:
101、主操作系统实例接收指示创建从操作系统实例的创建请求,创建请求携带从操作系统的资源需求信息。
多内核操作系统中,Primary操作系统实例也可称之为重量级操作系统(Heavy OS),是具有资源分配、回收、虚拟化及协调等功能的通用操作系统,也是在硬件上第一个启动的操作系统实例,负责系统资源的管理,例如,控制多处理器操作系统中的CPU资源、物理内存分区资源、物理设备或虚拟设备等资源。Secondary操作系统实例也可称之为轻量级操作系统(Light OS),是基于Heavy OS所管理的资源而创建定制的操作系统,只能管理自身的资源,从Heavy OS申请资源,或将资源释放后返还给Heavy OS。本步骤中,当需要发起某种应用服务时,用户在Primary操作系统实例的环境或接口中提出创建启动Secondary操作系统实例的创建请求,同时提供该应用服务所需的资源需求信息,例如,需求的CPU的个数、物理内存分区的大小等。
102、主操作系统实例根据资源需求信息,为从操作系统实例分配独占的系统资源,系统资源至少包括:处理器资源、物理内存分区资源。
在接收到Secondary操作系统实例生成所需的资源需求信息后,Primary操作系统从资源池中为Secondary操作系统实例分配独占的系统资源,例如,独占的CPU,独占的物理内存分区、独占的虚拟设备或物理设备等设备资源。
103、主操作系统实例根据资源需求信息,生成从操作系统的资源描述信息。
Primary操作系统根据接收到的Secondary操作系统实例创建请求中的资源需求信息,为从操作系统实例生成特定数据结构的资源描述信息,例如,对于华为资助下,中科院开发出的多内核操作系统:Rainforest操作系统而言,生成启动参数数据结构Kernbootparams的资源描述信息。
可选的,Primary操作系统可采用如下几种方式为Secondary操作系统实例生成资源描述信息:
方式一、主操作系统实例根据资源需求信息,在用户层生成描述系统资源的数量信息的第一资源描述信息,并在内核空间,根据数量信息,生成从操作系统完整的资源描述信息,以使从操作系统实例将资源描述信息加载与系统资源中的物理内存分区中。
具体的,主操作系统可先根据资源需求信息,在用户层构造出描述系统资源的数量信息的第一资源描述信息,将所需的系统资源的相关信息,如CPU的个数、Core的个数、物理内存分区的大小、与应用服务对应的系统映像文件的信息等填充在资源描述信息中形成描述数量信息的第一资源描述信息。然后,通过函数调用等将用户层生成的第一资源描述信息传输至内核空间,在内核空间继续对第一资源描述信息进行填充,例如,与所需的CPU个数对应的具体CPU的信息、与所需的物理内存分区的大小对应的具体的物理内存分区的信息补充到第一资源描述信息中,从而生成最终完整的资源描述信息,然后使从操作系统实例将资源描述信息加载与系统资源中的物理内存分区中。
方式二、主操作系统实例在内核空间,生成从操作系统实例的资源描述信息,以使从操作系统实例将资源描述信息加载与系统资源中的物理内存分区中。具体的,Primary操作系统在内核空间,直接根据资源需求信息,生成Secondary操作系统实例完整的资源描述信息。
方式三、构建从操作系统实例的资源描述信息,直接加载于为从操作系统实例分配的物理内存分区上,由从操作系统从内存空间读取。
104、主操作系统实例初始化系统资源,得到初始化系统资源;
本步骤中,Primary操作系统实例初始化系统资源,并准备Secondary操作系统实例启动的相关资源,如x86架构CPU从实模式转换到保护模式的跳板(Trampoline)代码等。
需要说明的是,上述103与104没有严格的先后顺序,即实际的实施过程中,可先生成资源描述信息,再初始化系统资源;或者,也可以先初始化系统资源,再生成资源描述信息。
105、主操作系统实例在初始化系统资源上启动从操作系统实例。
对系统资源初始化后,Primary操作系统实例在初始化系统资源上运行Secondary操作系统内核代码等,从而创建启动Secondary操作系统实例。
本发明实施例提供的操作系统实例创建方法,Primary操作系统根据资源需求信息,为Secondary操作系统实例分配独占的系统资源,生成Secondary操作系统实例的资源描述信息后,初始化并启动Secondary操作系统实例,从而实现根据用户提供的资源需求,动态的创建具有独占资源的操作系统实例,达到提高系统扩展性能,并满足用户的需求的目的。
进一步的,上述实施例一中,主操作系统实例接收指示创建从操作系统实例的创建请求之后,根据资源需求信息,分配独占的系统资源之前,可根据资源需求信息,判断资源池中是否存在满足资源需求信息的系统资源。
具体的,Primary操作系统实例可根据资源需求信息,判断资源池中空闲的资源是否存在满足资源需求信息的资源,例如,可以根据CPU分配状态位图(MP Table),判断当前空闲可用的CPU或Core,或者,通过其他方式释放,如热插拔(Hotplug)方式释放其他Secondary操作系统实例中的CPU,将回收的CPU分配给当前待创建的Secondary操作系统实例。
进一步的,上述实施例一中,从引导过程标准(multiboot)的角度来讲,从操作系统实例的资源描述信息包括兼容的资源描述信息与标准的资源描述信息,符合multiboot的资源描述信息称之为标准的资源描述信息;反之,不符合multiboot的资源描述信息称之为兼容的资源描述信息。
一般来说,多内核操作系统可以有多种表现形式,例如,华为资助下,中科院开发出的Rainforest操作系统、剑桥大学维护的开源虚拟技术的开放源代码虚拟机监视器(XEN)、在XEN虚拟机上具有访问意见资源权限,并且可以管理其他字操作系统的操作系统(Demain0)。下面,以Rainforest操作系统为例,对本发明进行详细阐述。
具体的,在Rainforest系统是一个由一个(亦可以为多个)Primary操作实例和多个Secondary操作系统实例构成的系统,Primary操作系统实例负责系统资源的整合、配置、Secondary操作系统实例的生命周期的管理等,Secondary操作系统实例在隔离的物理内存分区上运行。其中,在对系统资源进行分区时有以下指导原则:首先,以物理上(PCI-E、内部总线)相互隔离的设备划分,其次,在系统资源无法满足需求时可以以物理设备的独立功能单元划分,最后,才会考虑对单一物理设备进行虚拟化,通过时间复用物理设备向上构造多个虚拟设备。Rainforest系统的Primary操作系统实例包括:操作系统用户层加载功能(Osloader)模块、CPU控制(CPU Controller)模块以及跳板(Trampoline)模块,Primary操作系统实例用Osloader功能模块响应用户发送的Secondary操作系统实例创建请求,经由CPU Controller模块驱动创建Secondary操作系统实例,并通过Trampoline模块完成模式转换,大致包括如下步骤:
S1、Primary操作系统实例接收创建启动Secondary操作系统实例的创建请求。
S2、Primary操作系统实例中的Osloader模块响应创建请求,在用户层构造第一资源描述信息,并调用内核空间的CPU Controller模块。
本步骤中,在用户层构造的第一资源描述信息例如启动Secondary操作系统实例的部分启动参数。具体的,Osloader模块完成如下子步骤:
S21、根据应用服务的特性的资源需求信息,准备在用户层构造第一资源描述信息。
具体的,资源需求信息例如为CPU/core的个数、物理内存分区的大小以及启动待创建的Secondary操作系统所需的系统映像文件等。
S22、验证资源需求信息中对应资源的合法性,并进行一系列的初始化。
例如,以CPU为例,若S21中资源描述信息指示的CPU个数为6个,则Osloader模块验证系统资源池中是否存在6个空闲的CPU,或者,是否可以热插拔(hotplug)其他Secondary操作系统实例的6个CPU,以分配给该待创建的Secondary系统实例。以系统映像文件为例,Osloader模块验证系统映像文件的合法性。
S23、若合法,则根据资源需求信息在用户层生成第一资源描述信息。
若步骤S22验证出资源需求信息中对应资源的均合法,则在用户层生成第一资源描述信息,该第一资源描述信息用于描述系统资源的数量信息等,例如为启动参数数据结构(kernboootparams),其中包括CPU/Core的个数、物理内存分区资源大小、系统映像文件的相关信息等。具体的,图2为本发明操作系统实例创建方法所适用的启动参数数据结构示意图。
S24、Osloader模块调用CPU Controller模块,分配相关资源,之后准备在内核空间构建完整资源描述信息。
在对第一资源描述信息,即启动参数部分数据结构填充完毕后,Osloader模块调用CPU Controller模块,通过调用函数(ioctl)将构造的第一资源描述信息传入内核空间,并监控该参数中的指示Secondary操作系统实例是否成功创建的成员变量ret,以确定Secondary操作系统实例创建的成功与否。
S3、CPU Controller模块根据在用户层生成的第一资源描述信息,分配相关的系统资源,在内核空间构建Secondary操作系统实例的完整资源描述信息,该过程包括具体CPU/core的分配、物理内存分区的分配、页表映射、CPU分配状态位图(MP Table)等一系列Secondary操作系统实例启动所需求的资源准备工作,最后发送高级可编程中断控制器(Inter-Processor Interrupt Controller,IPI),顺序启动Secondary操作系统实例。具体的,CPU Controller模块完成如下子步骤:
S31、CPU Controller模块接收Osloader模块发送的在用户层生成的第一资源描述信息。
在接收到Osloader模块传入的第一资源描述信息后,CPU Controller模块根据CPU分配状态位图(MP Table、CPU_Possible、CPU_online_map),从当前空闲的CPU/core中或通过其他方式释放(如CPU_hotplug)的第一资源描述信息指示的CPU/core资源,分配给Secondary操作系统实例,同时通过alloc_pages()函数为该Secondary操作系统实例分配第一资源描述信息指示的、连续的物理内存分区。
S32、CPU Controller模块生成Secondary操作系统实例的资源描述信息。
CPU Controller模块在S31中分配所需资源中,为Secondary操作系统实例分配的物理内存分区上构建符合PC标准的MP_Table、ACPI_Table描述信息,描述为Secondary操作系统实例分配的CPU/core的具体相关信息以及系统的全局描述符表(Global Descriptor Table,GDT)、中断描述符表(Interrupt Descriptor Table,IDT)等信息,同时构建E820map数据结构,在Secondary操作系统实例启动过程中,通过detect_memory_e820()获取内存布局,填充boot_params.e820map,从而建立Secondary操作系统实例物理内存分区的管理框架基础。其中,ACPI_Table可用于描述为Secondary操作系统实例分配的系统资源中的独占的设备资源的信息,该独占的设备资源信息可以是从Primary操作系统实例的设备信息中选取可用的信息参数后再填充在ACPI_Table中。
S33、Primary操作系统实例对所理内存分区资源进行虚拟地址重映射。
Primary操作系统实例的CPU Controller模块为步骤S31中分配的物理内存分区获取起始处(memstart)信息,进行虚拟地址的重映射page_to_phys(),使得Secondary操作系统实例具有独立的地址空间。
S34、CPU Controller模块将系统映像文件传入Secondary操作系统实例的物理内存分区。
CPU Controller模块复制传入的系统映像文件到指定的物理内存空间,并填充完善启动参数Kernbootparams数据结构,如步骤S33中获取起始处(memstart)信息、系统映像文件等,完成资源描述信息构造工作,准备好所有必须的资源后,Secondary操作系统实例等待IPI信号。
S35、CPU Controller模块将资源描述信息传入Trampoline模块。
在构造完资源描述信息,即对整个启动参数Kernbootparams数据结构填充完毕后,CPU Controller模块将模式转换的功能代码(trampoline_data_multi-kernel)设置到指定位置,并将整个启动参数Kernbootparams数据结构传入至Trampoline模块。
S36、CPU Controller模块向Secondary操作系统实例发送IPI中断信号。
具体的,CPU Controller模块转换启动参数成员变量bspindex为高级配置与电源管理接口(Advanced Configuration and Power Interface,apicid),即int apicid=apic->CPU_present_toapicid(bp->bspindex),通过apic机制发送IPI中断信号,让Secondary操作系统实例执行相应的中断处理程序。
S4、Trampoline模块对Secondary操作系统实例分配的系统资源进行初始化,并启动Secondary操作系统实例。
本步骤中,Trampoline模块在Primary操作系统实例为Secondary操作系统实例分配好系统资源后,初始化处理器资源、内存分区资源等系统资源,如初始化CPU等待IPI信号、调整trampoline里页表区域的值、虚拟地址的重映射等。具体的,Secondary操作系统实例的CPU/core在Trampoline模块支持下初始化后,等待IPI信号,当接收到IPI中断信号后,执行相应处理程序,然后,通过trampoline跳转、使得Secondary操作系统实例的CPU/core完成实模式到保护模式的转换。Trampoline模块通过head.S复制trampoline功能代码的构造参数到Secondary操作系统的内核空间,作为Secondary操作系统实例启动所需的参数,然后跳转到Secondary操作系统实例的系统映像文件加载处,加载系统映像文件后,将执行权交给Secondary操作系统实例的内核,完成一系列的初始化任务,搭建整个系统运行内核环境,从start_kernel到CPU_idle。该启动过程中,对于Linux操作系统,Secondary操作系统在启动过程中会从低地址空间,如BIOS内存区域读取设备资源的信息,以此来启动和初始化设备。对于非直接访问的设备,有Primary操作系统实例和Secondary操作系统实例协商完成“虚拟设备”的构建。
最后,当Secondary操作系统实例启动成功后,Primary操作系统实例将osloader中用于监控的成员变量ret置1,标识该Secondary操作系统实例成功创建。
图3为本发明操作系统实例创建装置实施例一的结构示意图。本实施例提供的操作系统实例创建装置可设置在多处理器操作系统的Primary操作系统实例上,也可以是Primary操作系统实例本身,是与本发明图1实施例对应的装置实施例,具体实现过程在此不再赘述。具体的,本实施例提供的操作系统实例创建装置100具体包括:
接收模块11,用于接收指示创建从操作系统实例的创建请求,创建请求携带从操作系统的资源需求信息;
分配模块12,用于根据资源需求信息,为从操作系统实例分配独占的系统资源,系统资源至少包括:处理器资源、物理内存分区资源;
生成模块13,用于根据资源需求信息,生成从操作系统实例的资源描述信息;
初始化模块14,用于初始化系统资源,得到初始化系统资源;
启动模块15,用于在初始化系统资源上启动从操作系统实例。
本发明实施例提供的操作系统实例创建装置,根据资源需求信息,为Secondary操作系统实例分配独占的系统资源,生成Secondary操作系统实例的资源描述信息后,初始化并启动Secondary操作系统实例,从而实现根据用户提供的资源需求,动态的创建具有独占资源的操作系统实例,达到提高系统扩展性能,并满足用户的需求的目的。
图4为本发明操作系统实例创建装置实施例二的结构示意图。如图4所示,本实施例提供的操作系统实例创建装置200,在图3的基础上,还包括:
判断模块16,用于根据资源需求信息,判断资源池中是否存在满足资源需求信息的系统资源。
进一步的,资源描述信息,包括:
兼容的资源描述信息,兼容的资源描述信息为不符合引导过程标准multiboot的资源描述信息;或者,
标准的资源描述信息,标准的资源描述信息为符合引导过程标准multiboot的资源描述信息。
进一步的,生成模块13,用于根据资源需求信息,在用户层生成描述系统资源的数量信息的第一资源描述信息,并在内核空间,根据数量信息,生成从操作系统实例完整的资源描述信息,以使从操作系统实例将资源描述信息加载与系统资源中的物理内存分区资源中;或者,
在内核空间,生成从操作系统实例的资源描述信息,以使从操作系统实例将资源描述信息加载与系统资源中的物理内存分区资源中;或者,
生成从操作系统实例的资源描述信息,加载于为从操作系统实例分配的系统资源中的物理内存分区中。
再请参照图4,操作系统实例创建装置包括:
重映射模块17,用于对物理内存分区资源进行虚拟地址重映射。
图5为本发明操作系统实例创建装置实施例三的结构示意图。如图5所示,本实施例提供的操作系统实例创建装置300包括处理器31和存储器32。操作系统实例创建装置300还可以包括发射器33、接收器34。发射器33和接收器34可以和处理器31相连。其中,发射器33用于发送数据或信息,接收器34用于接收数据或信息,存储器32存储执行指令,当操作系统实例创建装置300运行时,处理器31与存储器32之间通信,处理器31调用存储器32中的执行指令,用于执行以下操作:
接收指示创建从操作系统实例的创建请求,创建请求携带从操作系统的资源需求信息;
根据资源需求信息,为从操作系统实例分配独占的系统资源,系统资源至少包括:处理器资源、物理内存分区资源;
根据资源需求信息,生成从操作系统实例的资源描述信息;
初始化系统资源,得到初始化系统资源;
在初始化系统资源上启动从操作系统实例。
进一步的,接收指示创建从操作系统实例的创建请求之后,根据资源需求信息,为从操作系统实例分配独占的系统资源之前,包括:
根据资源需求信息,判断资源池中是否存在满足资源需求信息的系统资源。
进一步的,资源描述信息,包括:
兼容的资源描述信息,兼容的资源描述信息为不符合引导过程标准multiboot的资源描述信息;或者,
标准的资源描述信息,标准的资源描述信息为符合引导过程标准multiboot的资源描述信息。
进一步的,根据资源需求信息,生成从操作系统的资源描述信息,包括:
根据资源需求信息,在用户层生成描述系统资源的数量信息的第一资源描述信息,并在内核空间,根据数量信息,生成从操作系统实例完整的资源描述信息,以使从操作系统实例将资源描述信息加载与系统资源中的物理内存分区资源中;或者,
在内核空间,生成从操作系统实例的资源描述信息,以使从操作系统实例将资源描述信息加载与系统资源中的物理内存分区资源中;或者,
生成从操作系统实例的资源描述信息,加载于为从操作系统实例分配的系统资源中的物理内存分区中。
进一步的,根据资源需求信息,生成从操作系统实例的资源描述信息之后,初始化系统资源,得到初始化系统资源之前,包括:
对物理内存分区资源进行虚拟地址重映射。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

操作系统实例创建方法及装置.pdf_第1页
第1页 / 共16页
操作系统实例创建方法及装置.pdf_第2页
第2页 / 共16页
操作系统实例创建方法及装置.pdf_第3页
第3页 / 共16页
点击查看更多>>
资源描述

《操作系统实例创建方法及装置.pdf》由会员分享,可在线阅读,更多相关《操作系统实例创建方法及装置.pdf(16页珍藏版)》请在专利查询网上搜索。

本发明实施例提供一种操作系统实例创建方法及装置,该方法中,Primary操作系统根据资源需求信息,为Secondary操作系统实例分配独占的系统资源,生成Secondary操作系统实例的资源描述信息后,初始化并启动Secondary操作系统实例,从而实现根据用户提供的资源需求,动态的创建具有独占资源的操作系统实例,达到提高系统扩展性能,并满足用户的需求的目的。。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 物理 > 计算;推算;计数


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1