支持多核架构下资源隔离的方法及系统的制作方法

文档序号:6532444阅读:262来源:国知局
支持多核架构下资源隔离的方法及系统的制作方法
【专利摘要】本发明实施例提供一种支持多核架构下资源隔离的方法及系统。本发明实施例提供的支持多核架构下资源隔离的方法及系统,通过核间操作系统隔离、内存区段隔离、I/O资源隔离的方式,使得在多核处理器的不同处理核上运行的操作系统能够独立运行而互不影响,从而,充分利用了多核处理器高集成度、综合成本低的优势,实现了多核处理器的故障域维持在单块硬盘,具有较高的可靠性。
【专利说明】支持多核架构下资源隔离的方法及系统
【技术领域】
[0001]本发明实施例涉及计算机技术,尤其涉及一种支持多核架构下资源隔离的方法及系统。
【背景技术】
[0002]基于大规模统一资源池的云存储系统,以数据存储和管理为核心,支持多业务的统一部署,高效利用磁盘,可按需供给减少投资损失,通过合理调度实现有效利用资源、降低综合能耗。
[0003]现有技术采用多核ARM处理器带少量硬盘的服务器,例如基于精简指令集(Reduced Instruction Set Computing,简称 RISC)的 ARM 服务器方式,可以发挥 ARM 处理器低功耗、高集成度、综合成本低的优势。
[0004]然而,现有技术的多核ARM处理器带多块硬盘的情况,多核处理器上运行一个操作系统,在该操作系统失效时,服务器的失效粒度为多块硬盘,并且由于单块硬盘的容量大而输入/输出(Input/Output,简称I/O)吞吐带宽却较小,使得数据恢复量以及网络传输数据量都以倍数增长,故障恢复粒度较粗,给系统造成较大的压力。

【发明内容】

[0005]本发明实施例提供一种支持多核架构下资源隔离的方法及系统,以使多核处理器的故障域维持在单块硬盘。
[0006]第一方面,本发明实施例提供一种支持多核架构下资源隔离的系统,该系统包括:处理器,所述处理器包括多个处理核,所述多个处理核中包括一个启动时主核以及至少一个启动时从核;内存空间,所述内存空间包括共享内存段,以及各处理核的内存区段;所述共享内存段中存储有运行信息,以及各处理核的运行时入口地址;所述运行信息包括各处理核与各操作系统之间的对应关系、各内存区段的大小以及起始地址;所述各处理核的运行时入口地址,用于指示各处理核所需要运行的操作系统的内核镜像文件在各自的内存区段中的存储地址;其中,所述处理器将各处理核所需要运行的操作系统的内核镜像文件分别存储到各处理核的内存区段中,并将各处理核的运行时入口地址分别写入到所述共享内存段中;待启动的处理核分别获取各自的运行时入口地址,并运行存储在各自的内存区段中的操作系统的内核镜像文件。
[0007]在第一方面的第一种可能的实现方式中,所述处理器的各处理核根据预设的选举算法在各处理核中选举确定运行时主核;所述运行时主核,用于进行输入/输出I/O资源的仲裁控制。
[0008]根据第一方面的第一种可能的实现方式,在第二种可能的实现方式中,运行时从核将需要I/o操作的数据放入所述共享内存段,并将与所述I/o操作相关的内存地址通知所述运行时主核,以使所述运行时主核调用自身的本地物理驱动,对外部设备进行所述I/o操作。[0009]根据第一方面的第一种可能的实现方式,在第三种可能的实现方式中,运行时从核调用自身的本地物理驱动,对外部设备进行I/o操作。
[0010]根据第一方面、第一方面的第一种至第三种可能的实现方式的任意一种,在第四种可能的实现方式中,所述启动时主核内设置有启动加载器;所述处理器将各处理核所需要运行的操作系统的内核镜像文件分别存储到各处理核的内存区段中,包括:所述启动加载器根据所述运行信息,将各处理核所需要运行的操作系统的内核镜像文件分别存储到各处理核的内存区段中。
[0011]根据第一方面、第一方面的第一种至第三种可能的实现方式的任意一种,在第五种可能的实现方式中,所述启动时主核内设置有启动加载器;所述处理器将各处理核所需要运行的操作系统的内核镜像文件分别存储到各处理核的内存区段中,包括:所述启动加载器根据所述运行信息,在所述处理器的至少一个处理核的内存区段中存储所需要运行的操作系统的内核镜像文件,运行所述操作系统的内核镜像文件;所述运行操作系统的处理核根据所述运行信息,将所述处理器的需要运行操作系统的其余处理核所对应的操作系统的内核镜像文件分别存储到各所述其余处理核的内存区段中。
[0012]根据第一方面、第一方面的第一种至第五种可能的实现方式的任意一种,在第六种可能的实现方式中,由至少两个处理核构成的处理核组运行相同的操作系统的内核镜像文件,并且,所述构成所述处理核组的所有处理核共用同一段内存区段;或者,各处理核运行互不相同的操作系统的内核镜像文件。
[0013]第二方面,本发明实施例提供一种支持多核架构下资源隔离的方法,应用于包括处理器和内存空间的支持多核架构下资源隔离的系统,其中:所述处理器包括多个处理核,所述多个处理核中包括一个启动时主核以及至少一个启动时从核;所述内存空间包括共享内存段,以及各处理核的内存区段;所述共享内存段中存储有运行信息,以及各处理核的运行时入口地址;所述运行信息包括各处理核与各操作系统之间的对应关系、各内存区段的大小以及起始地址;所述各处理核的运行时入口地址,用于指示各处理核所需要运行的操作系统的内核镜像文件在各自的内存区段中的存储地址;
[0014]所述支持多核架构下资源隔离的方法包括:
[0015]所述处理器将各处理核所需要运行的操作系统的内核镜像文件分别存储到各处理核的内存区段中,并将各处理核的运行时入口地址分别写入所述共享内存段中;
[0016]待启动的处理核分别获取各自的运行时入口地址,并运行存储在各自的内存区段中的操作系统的内核镜像文件。
[0017]在第二方面的第一种可能的实现方式中,所述处理器的各处理核根据预设的选举算法在各处理核中选举确定运行时主核;所述运行时主核,用于进行输入/输出I/o资源的仲裁控制。
[0018]根据第二方面的第一种可能的实现方式,在第二种可能的实现方式中,运行时从核将需要I/o操作的数据放入所述共享内存段,并将与所述I/O操作相关的内存地址通知所述运行时主核,以使所述运行时主核调用自身的本地物理驱动,对外部设备进行所述I/o操作。
[0019]根据第二方面的第一种可能的实现方式,在第三种可能的实现方式中,运行时从核调用自身的本地物理驱动,对外部设备进行所述I/o操作。[0020]根据第二方面、第二方面的第一种至第三种可能的实现方式的任意一种,在第四种可能的实现方式中,所述启动时主核内设置有启动加载器;所述处理器将各处理核所需要运行的操作系统的内核镜像文件分别存储到各处理核的内存区段中,包括:
[0021]所述启动加载器根据所述运行信息,将各处理核所需要运行的操作系统的内核镜像文件分别存储到各处理核的内存区段中。
[0022]根据第二方面、第二方面的第一种至第三种可能的实现方式的任意一种,在第五种可能的实现方式中,所述启动时主核内设置有启动加载器;
[0023]所述处理器将各处理核所需要运行的操作系统的内核镜像文件分别存储到各处理核的内存区段中,包括:
[0024]所述启动加载器根据所述运行信息,在所述处理器的至少一个处理核的内存区段中存储所需要运行的操作系统的内核镜像文件,运行所述操作系统的内核镜像文件;所述运行操作系统的处理核根据所述运行信息,将所述处理器的需要运行操作系统的其余处理核所对应的操作系统的内核镜像文件分别存储到各所述其余处理核的内存区段中。
[0025]根据第二方面、第二方面的第一种至第五种可能的实现方式的任意一种,在第六种可能的实现方式中,由至少两个处理核构成的处理核组运行相同的操作系统的内核镜像文件,并且,所述构成所述处理核组的所有处理核共用同一段内存区段;或者,各处理核运行互不相同的操作系统的内核镜像文件。
[0026]本发明实施例提供的支持多核架构下资源隔离的方法及系统,通过核间操作系统隔离、内存区段隔离、I/o资源隔离的方式,使得在多核处理器的不同处理核上运行的操作系统能够独立运行而互不影响,从而,充分利用了多核处理器高集成度、综合成本低的优势,实现了多核处理器的故障域维持在单块硬盘,具有较高的可靠性。
【专利附图】

【附图说明】
[0027]图1a为本发明实施例一提供的支持多核架构下资源隔离的系统的结构示意图;
[0028]图1b为采用本发明实施例一的支持多核架构下资源隔离的系统的云存储系统的拓扑结构示意图;
[0029]图2为图1a所示的支持多核架构下资源隔离的系统中的共享内存段的局部结构示意图;
[0030]图3为本发明实施例二提供的支持多核架构下资源隔离的系统的结构示意图;
[0031]图4a为本发明实施例二提供的支持多核架构下资源隔离的系统的运行时从核对外部设备进行访问的一实现示意图;
[0032]图4b为本发明实施例二提供的支持多核架构下资源隔离的系统的运行时从核对外部设备进行访问的另一实现示意图;
[0033]图5为本发明实施例三提供的支持多核架构下资源隔离的方法的流程图。
【具体实施方式】
[0034]实施例一
[0035]图1a为本发明实施例一提供的支持多核架构下资源隔离的系统的结构示意图。图1a所示的支持多核架构下资源隔离的系统10适用于基于大规模统一资源池的云存储系统。图1b为采用本发明实施例一的支持多核架构下资源隔离的系统的云存储系统的拓扑结构示意图。如图1b所示,云存储系统100包括:交换机102、至少一个支持多核架构下资源隔离的系统10、至少一个应用服务器101。其中,应用服务器101与交换机102连接,支持多核架构下资源隔尚的系统10与交换机102连接。
[0036]如图1a所示,本实施例的支持多核架构下资源隔离的系统10包括:处理器11和内存空间12,其中:
[0037]处理器11,包括多个处理核:一个启动时主核111以及至少一个启动时从核112 ;
[0038]内存空间12,包括共享内存段123、启动时主核111的内存区段121、启动时从核112的内存区段122 ;共享内存段123中存储有运行信息,以及各处理核的运行时入口地址;所述运行信息包括各处理核与各操作系统之间的对应关系、各内存区段的大小以及起始地址;所述各处理核的运行时入口地址,用于指示各处理核所需要运行的操作系统的内核镜像文件在各自的内存区段中的存储地址;
[0039]其中,处理器11将各处理核所需要运行的操作系统的内核镜像文件分别存储到各处理核的内存区段中,并将各处理核的运行时入口地址写入共享内存段123中;待启动的处理核分别获取各自的运行时入口地址,并运行存储在各自的内存区段中的操作系统的内核镜像文件。
[0040]具体地,如图1a所示,处理器11是包括多个处理核的多核处理器,例如可以采用ARM或Intel ATOM处理器,但是本发明并不以此为限。处理器11包括多个处理核,图1a示例性的示出处理器11包括启动时主核111以及一个启动时从核112的情形,然而,处理器11可以包括一个或多数个启动时从核,在此不再赘述。启动时主核111,是指由硬件预先确定的设置启动加载器1111的处理核,并且启动时主核111能够触发其他处理核启动并运行;启动时从核112,是指处理器11在启动时,通过启动时主核111触发而启动的其他处理核。具体应用中,所述启动时主核内设置的启动加载器1111,例如是UBoot,可完成设备初始化,也可以将操作系统的内核镜像文件存储到需要运行该操作系统的处理核所的内存区段中。图1a示出了启动时主核111、启动时从核112分别与操作系统1、操作系统2的对应关系,其中,操作系统1、操作系统2可以是LINUX、Windows、Solaris、DOS、OS/2、UNIX、XENIX、Netware,或者同一操作系统的不同版本,并且,操作系统I和操作系统2可以为完全相同的操作系统,也可以为同一种类操作系统的不同版本,或者不同种类的操作系统,但本发明并不以此为限。
[0041]图2为图1a所示的支持多核架构下资源隔离的系统中的共享内存段的局部结构示意图。如图1a和图2所示,共享内存段123中存储有运行信息123a、启动时从核112的运行时入口地址123b,以及启动时主核111的运行时入口地址123c ;其中,运行信息123a,记录了内存区段的规划信息,至少包括:各处理核与各操作系统之间的对应关系、各内存区段的大小以及起始地址,即如下信息:(I)启动时主核111运行操作系统1,为启动时主核111分配的内存区段121的大小和起始地址;(2)启动时从核112运行操作系统2,启动时从核112的内存区段122的大小和起始地址;(3)共享内存段123的大小和起始地址。所述各内存区段相互独立,相互隔离,实现了为不同的操作系统分配相互独立的内存区段。如果未指定各内存区段的起始地址,将缺省从地址O开始,或者从前一个内存区段的结束地址开始作为该内存区段的起始地址。运行信息地址1231是运行信息123a在共享内存段123中的存储地址,各处理核都需要遵循运行信息地址1231的约定,通过运行信息地址1231查询运行信息,可选的,在每个处理核存储的操作系统的内核镜像文件中分别指示各个处理核的运行信息地址,并且运行信息可以在系统运行过程中动态修改和调整。启动时从核112的运行时入口地址指针1232指向启动时从核112的运行时入口地址123b,其中,运行时入口地址123b,用以指示启动时从核112所需要运行的操作系统2的内核镜像文件在内存区段122中的存储地址。启动时主核111的运行时入口地址指针1233指向启动时主核111的运行时入口地址123c,其中,运行时入口地址123c,用以指示启动时主核111所需要运行的操作系统I的内核镜像文件在内存区段121中的存储地址。每个处理核的运行时入口地址指针是系统启动前在UBoot中为每个处理核分别预设的。
[0042]本发明实施例提供的支持多核架构下资源隔离的系统,通过核间操作系统隔离、内存区段隔离的方式,使得在多核处理器的不同处理核上运行的操作系统能够独立运行而互不影响,当单个处理核或其上运行的操作系统失效时,不会影响到其他处理核或其他处理核上运行的操作系统,从而,充分利用了多核处理器高集成度、综合成本低的优势,实现了多核处理器的故障域维持在单块硬盘,具有较高的可靠性。
[0043]在上述实施例的基础上,处理器11将各处理核所需要运行的操作系统的内核镜像文件存储到各处理核的内存区段中的实现方式,至少包括以下两种方式:
[0044]方式1:启动加载器1111根据运行信息123a,将各处理核所需要运行的操作系统的内核镜像文件分别存储到各处理核的内存区段中。
[0045]方式2:启动加载器1111根据运行信息123a,将所述处理器的至少一个处理核所需要运行的操作系统的内核镜像文件存储到该处理核的内存区段中,该处理核运行所述操作系统的内核镜像文件;所述运行操作系统的处理核根据运行信息,将需要运行操作系统的其余处理核所对应的操作系统的内核镜像文件分别存储到到余处理核所的内存区段中。
[0046]具体地,在实现方式2中,启动加载器1111根据运行信息123a,将所述处理器的至少一个处理核所需要运行的操作系统的内核镜像文件存储到该处理器的内存区段中,例如,启动加载器1111根据运行信息123a,将启动时主核111所需要运行的操作系统I的内核镜像文件存储到为启动时主核111分配的内存区段121中;接着,启动时主核111运行内存区段121中的操作系统I的内核镜像文件;随后,启动时主核111通过运行的操作系统1,根据运行信息123a将启动时从核112所需要运行的操作系统2的内核镜像文件存储到启动时从核112的内存区段122中,从而将每个处理核需要运行的操作系统的内核镜像文件在各自的内存区段中展开。需要说明的是,本实施例示例性地描述了启动时主核111作为最先运行操作系统的处理核,但是本领域技术人员应该理解,最先启动运行操作系统的处理核并不只限于启动时主核111,处理器11的任意处理核都可能通过例如预先指定的方式确定为最先启动运行操作系统的处理核。
[0047]本发明实施例提供的支持多核架构下资源隔离的系统,通过将每个处理核需要运行的操作系统的内核镜像文件在各自的内存区段中展开,使得不同的处理核的内存区段中存储各自需要运行的操作系统的内核镜像文件,并且各内存区段上的资源是相互隔离的。
[0048]在上述实施例的基础上,运行信息中记录的各处理核与各操作系统之间的对应关系,至少包括以下两种关系:
[0049]对应关系1:由至少两个处理核构成的处理核组运行相同的操作系统的内核镜像文件。可选的,构成所述处理核组的所有处理核共用同一段内存区段。
[0050]具体地,由至少两个处理核构成的处理核组运行相同的操作系统的内核镜像文件。构成所述处理核组的所有处理核可以共用同一段内存区段。处理核组的数目可以不止一个,并且各个处理核组各自运行的操作系统相互独立,为不同的操作系统分配相互独立的内存区段,使得单个操作系统的失效,不会影响到其他的处理核组或其上运行的操作系统,实现了多核处理器的故障域维持在单块硬盘。
[0051]对应关系2:各处理核运行互不相同的操作系统的内核镜像文件。
[0052]可选的,根据运行信息,处理器11中可以存在处理核组和独立的单个处理核同时存在的情形。
[0053]在上述实施例的基础上,在处理核组或独立的单个处理核上运行着相互独立的操作系统,实现了核间操作系统隔离。鉴于多核处理器的I/o资源以及协处理器全局共享,当各处理核启动后,需要在各处理核中选择一个处理核进行统一 I/o资源的仲裁控制。进一步,所述处理器的各处理核根据预设的选举算法在各处理核中选举确定运行时主核;所述运行时主核,用于进行I/o资源的仲裁控制。
[0054]可选的,运行时从核将需要I/O操作的数据放入所述共享内存段,并将与所述I/O操作相关的内存地址通知所述运行时主核,以使所述运行时主核调用自身的本地物理驱动,对外部设备进行所述I/o操作。
[0055]可选的,运行时从核调用自身的本地物理驱动,对外部设备进行I/O操作。
[0056]下面通过一个具体的实施例对上述支持多核架构下资源隔离的系统的具体实现,进行详细的说明。
[0057]实施例二
[0058]图3为本发明实施例二提供的支持多核架构下资源隔离的系统的结构示意图。本实施例基于上述实施例来实现。如图3所示,本实施例的支持多核架构下资源隔离的系统20包括:处理器21和内存空间22,其中:处理器21,包括启动时主核111、启动时从核112、启动时从核211、启动时从核212,启动时主核111内设置有启动加载器1111 ;并且,启动时主核111与启动时从核112分别运行操作系统I与操作系统2,启动时从核211和启动时从核212组成处理核组214,处理核组214运行同一个操作系统3 ;启动时主核111对应内存区段121,启动时从核112对应内存区段122,处理核组214对应内存区段221,该些信息均记录在运行信息中。
[0059]具体地,运行信息中记录的例如是以下的信息:(1)启动时主核111运行操作系统1,为启动时主核111分配的内存区段121的大小和起始地址;(2)启动时从核112运行操作系统2,启动时从核112的内存区段122的大小和起始地址;(3)处理核组214运行操作系统3,处理核组214的内存区段221的大小和起始地址。在内存空间22中,内存区段121、内存区段122、内存区段221及共享内存段123相互之间,实现了内存区段隔离。
[0060]系统启动后,每个处理核处于自旋状态,自旋状态是指处理核不停空转,等待外部事件唤醒。启动加载器1111完成设备初始化之后;处理器21通过启动加载器1111,根据运行信息中记录的各处理核与各操作系统之间的对应关系、各内存区段的大小以及起始地址,使用启动加载模式或下载模式,将各处理核所需要运行的操作系统的内核镜像文件分别存储到各处理器的内存区段中,并将各处理核的运行时入口地址分别写入共享内存段123 中。
[0061]在本实施例中,最先启动运行操作系统的处理核预设为启动时主核111,但并不以此为限,最先启动运行操作系统的处理核也可以预设为处理器11的其他处理核。
[0062]启动时主核111读取自身的运行时入口地址指针,检查是否有效物理地址,若是,则跳转到该运行时入口地址指针所指向的启动时主核111的运行时入口地址,运行操作系统I的内核镜像文件,从而运行操作系统I。启动时主核111通过核间通信机制,唤醒待启动的处理核;各所述待启动的处理核分别读取各自的运行时入口地址指针,检查是否有效物理地址,若是,则跳转到各自的运行时入口地址指针所指向的运行时入口地址,运行对应的操作系统的内核镜像文件,从而运行对应的操作系统。其中,各处理核在执行过程中,将跳转到运行信息地址读取运行信息,获知各自需要运行的操作系统、分配的内存区段的大小以及起始地址,从而,各处理核只可以操作共享内存段123,以及各自的内存区段。因此,本实施例的支持多核架构下资源隔离的系统20,实现了在处理器的不同的处理核或处理核组上运行相互独立的操作系统,并且只在系统启动时,通过运行于启动时主核111上的启动加载器1111将各处理核或处理核组所需要运行的操作系统的内核镜像文件存储到各处理核或处理核组的内存区段中,之后,每个处理核可以独立进行重启、休眠或关闭,而并不会影响其他处理核的正常运行,尤其在单个处理核或其操作系统失效时,也不会影响到其他处理核或在其上运行的操作系统,实现了核间操作系统隔离。
[0063]一种可选的实现场景为:处理核独立重启时,只需要复位,读取对应的运行时入口地址指针获取对应的运行时入口地址,运行存储在该处理核的内存区段中的操作系统的内核镜像文件,其不用依赖于其他处理核的操作系统。
[0064]另一种可选的实现场景为:在系统运行过程中,对于某一处理核,其他处理核可以根据系统需求修改运行信息,该处理核获知运行信息改变后进行复位,重新启动时,通过读取运行信息地址中的新的运行信息,获知新的运行信息,并通过读取运行时入口地址指针中的运行时入口地址,运行重新指定的操作系统。例如,在系统启动后的某一时刻,多核处理器的处理核a已经占用了一段内存区段,并在其上运行着操作系统A,处理核b处于自旋状态;处理核c可以根据系统运行状态对运行信息进行修改,在修改后的运行信息中重新指定了:处理核a和处理核b构成处理核组T、并在处理核组T上运行同一个操作系统B、分配给处理核组T的内存区段的大小,以及内存区段的起始地址。处理核a获知运行信息改变后,可选的,处理核a首先将正在处理核a上运行的操作系统A卸载,并释放占用的内存区段,处理核a重新启动。处理核组T (处理核a和处理核b)根据修改后的运行信息,运行操作系统B,并占用一段新的内存区段。
[0065]处理器21的各处理核启动后,各处理核或处理核组上运行着相互独立的操作系统,实现了内存区段隔离、核间操作系统隔离。鉴于多核处理器的I/o资源以及协处理器全局共享,当各处理核启动后,需要在处理器21的各处理核中选择一个运行时主核。所述运行时主核是指处理器21的各处理核启动后,能够作为各处理核集中控制和仲裁的处理核;所述运行时主核负责统一进行I/O资源的仲裁控制。具体地,运行时主核,是由处理器21的各处理核根据预设的选举算法在各处理核中选举确定的。如图3所示,假设处理器21的启动时主核111、启动时从核112、启动时从核211和启动时从核212均处于运行状态,那么这4个处于运行状态的处理核构成一个集群,在该集群内,这4个处理核通过核间通信,运行选举算法,例如PAXOS算法,选举确定运行时主核,例如选举结果为:启动时主核111被选举为运行时主核,其他的处理核为运行时从核,需要说明的是:集群通过多核协商选举出的运行时主核并不只限于启动时主核,其可能是任一处理核,本实施例只是示例性的给出启动时主核作为选举出的运行时主核,但是本发明并不以此为限。当选举出的运行时主核失效时,处理核的集群重新选举一个新的运行时主核,运行时主核的唯一性由所使用的选举算法来保证,例如PAXOS算法。
[0066]运行时主核负责统一进行I/O资源的仲裁控制,所有的I/O资源以及协处理器资源使用都需要经过运行时主核的认可授权。
[0067]当运行时从核需要访问外部设备23时,运行时从核向运行时主核发送资源使用请求;运行时主核根据该资源使用请求,基于系统资源使用情况和资源分配策略,在排他性使用资源的裁决后,向所述运行时从核发送资源请求响应;所述运行时从核接收到所述资源请求响应后,获得I/o资源的使用授权,开始对外部设备23进行I/O操作。
[0068]运行时主核在系统资源使用情况和资源分配策略允许时可以调用自身的本地物理驱动,对外部设备进行I/O操作;各运行时从核使用I/O资源对外部设备23进行访问的实现方式,至少可以包括以下两种方式:
[0069]方式1:运行时从核将需要I/O操作的数据放入所述共享内存段,并将与所述I/O操作相关的内存地址通知所述运行时主核,以使所述运行时主核调用自身的本地物理驱动,对外部设备进行所述I/o操作。
[0070]方式2:运行时从核调用自身的本地物理驱动,对外部设备进行I/O操作。
[0071]图4a为本发明实施例二提供的支持多核架构下资源隔离的系统的运行时从核对外部设备进行访问的一实现示意图;图4b为本发明实施例二提供的支持多核架构下资源隔离的系统的运行时从核对外部设备进行访问的另一实现示意图。
[0072]如图4a所示,运行时从核402将需要I/O操作的数据放入所述共享内存段,并将与所述I/O操作相关的内存地址通知运行时主核401,以使运行时主核401调用自身的本地物理驱动4011,对外部设备23进行所述I/O操作。运行时从核402对外部设备23进行I/
O操作,是通过运行时主核401代理完成。运行时从核402可以通过共享内存方式,将需要本次I/O操作的数据放入共享内存段,并将与所述I/O操作相关的内存地址通知运行时主核401 ;运行时主核401接收运行时从核402发送的通知信息,调用本地物理驱动4011将数据通过I/O资源发给外部设备23,进行访问,例如运行时主核401对外部设备23进行I/O操作,并在访问结束后释放I/o资源及外部设备23的相关资源。
[0073]如图4b所示,运行时从核402调用自身的本地物理驱动4021,对外部设备23进行I/o操作。运行时从核402需要对外部设备23进行访问时,通过控制仲裁方式,由运行时主核401批准运行时从核402对I/O资源的使用;运行时从核402根据运行时主核401发送的资源请求响应,采用直通方式对为其分配的外部设备进行访问,包括对外部设备23进行I/O的直通操作,通过调用本地的物理驱动4021直接进行I/O资源的操作,也即各处理核采用直通方式对外部设备23进行I/O操作,操作完成后释放I/O资源的控制给运行时主核401,即,通知运行时主核401已完成对外部设备23的I/O操作;运行时主核401根据所述通知,释放I/O资源及外部设备23的相关资源,以便将资源释放给其他处理核使用。
[0074]可选的,运行时主核与运行时从核之间维持状态同步信息。当运行时主核发现有某个处理核无法联系,若此时,运行时主核已经给该无法联系的处理核分配了外部设备资源,则运行时主核将收回该外部设备资源。本发明上述实施例提供的支持多核架构下资源隔离的系统,通过运行时主核负责统一进行I/o资源的仲裁控制,实现了各个处理核使用I/o资源对外部设备进行访问。需要说明的是,本发明上述实施例提供的支持多核架构下资源隔离的系统,也用于实现各个处理核对公共功能部件进行访问,公共功能部件至少可以包括协处理器资源。共享式的协处理器资源的仲裁应用的实现方式具体参见上述实施例的描述,在此不再赘述。
[0075]本发明实施例提供的支持多核架构下资源隔离的系统,通过在各处理核中选举运行时主核来负责统一进行I/O资源的仲裁控制,实现I/O资源的隔离。在各处理核或处理核组上的运行的操作系统互相独立运行的情况下,实现了多核处理器中统一 I/O能力以及协处理器的调度控制,保证了多核处理器的故障域维持在单块硬盘。
[0076]实施例三
[0077]图5为本发明实施例三提供的支持多核架构下资源隔离的方法的流程图。本实施例的方法应用于包括处理器和内存空间的支持多核架构下资源隔离的系统,其中:所述处理器包括多个处理核,所述多个处理核中包括一个启动时主核以及至少一个启动时从核;所述内存空间包括共享内存段,以及各处理核的内存区段;所述共享内存段中存储有运行信息,以及各处理核的运行时入口地址;所述运行信息包括各处理核与各操作系统之间的对应关系、各内存区段的大小以及起始地址;所述各处理核的运行时入口地址,用于指示各处理核所需要运行的操作系统的内核镜像文件在各自的内存区段中的存储地址。如图5所示,本实施例的方法包括:
[0078]501、处理器将各处理核所需要运行的操作系统的内核镜像文件分别存储到各处理核的内存区段中,并将各处理核的运行时入口地址分别写入所述共享内存段中。
[0079]502、待启动的处理核分别获取各自的运行时入口地址,并运行存储在各自的内存区段中的操作系统的内核镜像文件。
[0080]可选的,所述处理器的各处理核根据预设的选举算法在各处理核中选举确定运行时主核;所述运行时主核,用于进行输入/输出I/o资源的仲裁控制。
[0081]可选的,运行时从核将需要I/O操作的数据放入所述共享内存段,并将与所述I/O操作相关的内存地址通知所述运行时主核,以使所述运行时主核调用自身的本地物理驱动,对外部设备进行所述I/o操作。
[0082]可选的,运行时从核调用自身的本地物理驱动,对外部设备进行I/O操作。
[0083]可选的,所述启动时主核内设置有启动加载器;所述处理器将各处理核所需要运行的操作系统的内核镜像文件分别存储到各处理核的内存区段中,包括:所述启动加载器根据所述运行信息,将各处理核所需要运行的操作系统的内核镜像文件分别存储到各处理核的内存区段中;
[0084]可选的,所述启动时主核内设置有启动加载器;所述处理器将各处理核所需要运行的操作系统的内核镜像文件分别存储到各处理核的内存区段中,包括:所述启动加载器根据所述运行信息,在所述处理器的至少一个处理核内存区段中存储所需要运行的操作系统的内核镜像文件,运行所述操作系统的内核镜像文件;所述运行操作系统的处理核根据所述运行信息,将所述处理器的需要运行操作系统的其余处理核所对应的操作系统的内核镜像文件分别存储到各所述其余处理核的内存区段中。
[0085]可选的,由至少两个处理核构成的处理核组运行相同的操作系统的内核镜像文件,并且,所述构成所述处理核组的所有处理核共用同一段内存区段;或者,各处理核运行互不相同的操作系统的内核镜像文件。
[0086]本发明实施例提供的支持多核架构下资源隔离的方法,通过核间操作系统隔离、内存区段隔离、I/o资源隔离的方式,使得在多核处理器的不同处理核上运行的操作系统能够独立运行而互不影响,从而,充分利用了多核处理器高集成度、综合成本低的优势,实现了多核处理器的故障域维持在单块硬盘,具有较高的可靠性。
[0087]本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:R0M、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
[0088]最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
【权利要求】
1.一种支持多核架构下资源隔离的系统,其特征在于,包括: 处理器,所述处理器包括多个处理核,所述多个处理核中包括一个启动时主核以及至少一个启动时从核; 内存空间,所述内存空间包括共享内存段,以及各处理核的内存区段;所述共享内存段中存储有运行信息,以及各处理核的运行时入口地址;所述运行信息包括各处理核与各操作系统之间的对应关系、各内存区段的大小以及起始地址;所述各处理核的运行时入口地址,用于指示各处理核所需要运行的操作系统的内核镜像文件在各自对应的内存区段中的存储地址; 其中,所述处理器将各处理核所需要运行的操作系统的内核镜像文件分别存储到各处理核的内存区段中,并将各处理核的运行时入口地址分别写入所述共享内存段中;待启动的处理核分别获取各自的运行时入口地址,并运行存储在各自的内存区段中的操作系统的内核镜像文件。
2.根据权利要求1所述的支持多核架构下资源隔离的系统,其特征在于,所述处理器的各处理核根据预设的选举算法在各处理核中选举确定运行时主核;所述运行时主核,用于进行输入/输出I/O资源的仲裁控制。
3.根据权利要求2所述的支持多核架构下资源隔离的系统,其特征在于,运行时从核将需要I/o操作的数据放入所述共享内存段,并将与所述I/O操作相关的内存地址通知所述运行时主核,以使所述运行时主核调用自身的本地物理驱动,对外部设备进行所述I/o操作。
4.根据权利要求2所述的支持多核架构下资源隔离的系统,其特征在于,运行时从核调用自身的本地物理驱动,对外部设备进行I/O操作。
5.根据 权利要求1-4任一项所述的支持多核架构下资源隔离的系统,其特征在于,所述启动时主核内设置有启动加载器; 所述处理器将各处理核所需要运行的操作系统的内核镜像文件分别存储到各处理核的内存区段中,包括: 所述启动加载器根据所述运行信息,将各处理核所需要运行的操作系统的内核镜像文件分别存储到各处理核的内存区段中。
6.根据权利要求1-4任一项所述的支持多核架构下资源隔离的系统,其特征在于,所述启动时主核内设置有启动加载器; 所述处理器将各处理核所需要运行的操作系统的内核镜像文件分别存储到各处理核的内存区段中,包括: 所述启动加载器根据所述运行信息,在将所述处理器的至少一个处理核的内存区段中存储所需要运行的操作系统的内核镜像文件存储到对应的内存区段中,运行所述操作系统的内核镜像文件;所述运行操作系统的处理核根据所述运行信息,将所述处理器的需要运行操作系统的其余处理核所对应的操作系统的内核镜像文件分别存储到各所述其余处理核对应的内存区段中。
7.根据权利要求1-6任一项所述的支持多核架构下资源隔离的系统,其特征在于,各处理核运行互不相同的操作系统的内核镜像文件;或者,由至少两个处理核构成的处理核组运行相同的操作系统的内核镜像文件,并且,所述构成所述处理核组的所有处理核共用同一段内存区段。
8.一种支持多核架构下资源隔离的方法,其特征在于,应用于包括处理器和内存空间的支持多核架构下资源隔离的系统,其中:所述处理器包括多个处理核,所述多个处理核中包括一个启动时主核以及至少一个启动时从核;所述内存空间包括共享内存段,以及各处理核的内存区段;所述共享内存段中存储有运行信息,以及各处理核的运行时入口地址;所述运行信息包括各处理核与各操作系统之间的对应关系、各内存区段的大小以及起始地址;所述各处理核的运行时入口地址,用于指示各处理核所需要运行的操作系统的内核镜像文件在各自的内存区段中的存储地址; 所述支持多核架构下资源隔离的方法包括: 所述处理器将各处理核所需要运行的操作系统的内核镜像文件分别存储到各处理核的内存区段中,并将各处理核的运行时入口地址分别写入所述共享内存段中; 待启动的处理核分别获取各自的运行时入口地址,并运行存储在各自的内存区段中的操作系统的内核镜像文件。
9.根据权利要求8所述的支持多核架构下资源隔离的方法,其特征在于,所述处理器的各处理核根据预设的选举算法在各处理核中选举确定运行时主核;所述运行时主核,用于进行输入/输出I/O资源的仲裁控制。
10.根据权利要求9所述的支持多核架构下资源隔离的方法,其特征在于,运行时从核将需要I/o操作的数据放入所述共享内存段,并将与所述I/o操作相关的内存地址通知所述运行时主核,以使所述运行时主核调用自身的本地物理驱动,对外部设备进行所述I/o操作。
11.根据权利要求9所述的支持多核架构下资源隔离的方法,其特征在于,运行时从核调用自身的本地物理驱动,对外部设备进行I/o操作。
12.根据权利要求8-11任一项所述的支持多核架构下资源隔离的方法,其特征在于,所述启动时主核内设置有启动加载器; 所述处理器将各处理核所需要运行的操作系统的内核镜像文件分别存储到各处理核的内存区段中,包括: 所述启动加载器根据所述运行信息,将各处理核所需要运行的操作系统的内核镜像文件分别存储到各处理核的内存区段中。
13.根据权利要求8-11任一项所述的支持多核架构下资源隔离的方法,其特征在于,所述启动时主核内设置有启动加载器; 所述处理器将各处理核所需要运行的操作系统的内核镜像文件分别存储到各处理核的内存区段中,包括: 所述启动加载器根据所述运行信息,在所述处理器的至少一个处理核的内存区段中存储所需要运行的操作系统的内核镜像文件,运行所述操作系统的内核镜像文件;所述运行操作系统的处理核根据所述运行信息,将所述处理器的需要运行操作系统的其余处理核所对应的操作系统的内核镜像文件分别存储到各所述其余处理核的内存区段中。
14.根据权利要求8-13任一项所述的支持多核架构下资源隔离的方法,其特征在于,各处理核运行互不相同的操作系统的内核镜像文件;或者,由至少两个处理核构成的处理核组运行相同的操作系统的内核镜像文件,并且,所述构成所述处理核组的所有处理核共用同一段内存区段。
【文档编号】G06F13/10GK103608792SQ201380000917
【公开日】2014年2月26日 申请日期:2013年5月28日 优先权日:2013年5月28日
【发明者】雷晓松 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1