一种多操作系统的资源分配方法和装置的制作方法

文档序号:6584459阅读:160来源:国知局
专利名称:一种多操作系统的资源分配方法和装置的制作方法
技术领域
本发明涉及计算机技术领域,特别涉及一种多操作系统的资源分配方法和装置。
背景技术
随着计算机技术的飞速发展,多核CPU目前得到了日益广泛的应用,许多操作系 统(OS)都支持多个CPU核,比如Linux可以使用服务器消息块(SMB)方式支持多CPU核, 多个CPU核共同支持一个操作系统。目前,基于多CPU核的产品,进一步提出了多核双系统(MCDS,Multi-Core Dual-System)技术,即不同CPU核上运行不同的操作系统,这种技术在软件特性上容易集 成不同操作系统平台的业务功能,灵活和丰富了软件的系统架构,扩展了与第三方合作的 领域和内容。MCDS系统模型可以如图1所示,OSl和0S2分别控制同一个CPU的不同CPU 核,如图1中所示,OSl占用了 20个CPU核,0S2占用了 12个CPU核。两个操作系统分别拥 有独立的内存区,独立运行互不干扰,同时通过共享内存区完成系统间的配置和业务交互。由于MCDS技术中两个操作系统运行在同一个CPU上面,则需要对硬件资源进行 分配,使每个操作系统都拥有自己的硬件资源。其中,分配给各操作系统的硬件资源包括 CPU核以及内存。但是,目前业界尚没有提出任何关于MCDS技术的多操作系统资源分配方 法。如果按照常规的分配方式,即为各操作系统固定分配硬件资源,则会存在缺乏可扩展性 和灵活性的缺陷。例如,由于不同设备的CPU核和内存资源是不一样的,显然固定分配硬件 资源的方式对于操作系统的设计带来一定困难;由于用户组网是千差万别的,在某种特殊 应用场合下,固定分配的硬件资源可能对于一个操作系统并不足够使用,而对于另一个操 作系统则出现空闲,显然,固定分配硬件资源的方式不能使设备的整体性能达到最优,缺乏 灵活性。

发明内容
有鉴于此,本发明提供了一种多操作系统的资源分配方法,以便于提高资源分配 的可扩展性和灵活性。一种多操作系统的资源分配方法,该方法包括主控操作系统在启动过程中,指定分配给主控操作系统的CPU核coreO读取静态 存储器中的资源分配表,触发资源分配表中分配给该主控操作系统的其它CPU核进行启 动;主控操作系统完成启动后,所述coreO触发资源分配表中分配给辅助操作系统的 其中一个CPU核CoreN开始启动,并将资源分配表信息发送给所述coreN ;辅助操作系统在启动过程中,所述coreN按照所述资源分配表信息读取资源分配 表,触发资源分配表中分配给该辅助操作系统的其它CPU核进行启动。一种多操作系统的资源分配装置,设置在CPU核中,该装置包括资源表读取单元,用于在所述CPU核被分配给的操作系统启动过程中,读取静态存储器中的资源分配表,或者按照接收到的资源分配表信息读取资源分配表;启动触发单元,用于按照所述资源表读取单元读取的资源分配表,触发资源分配 表中分配给所述操作系统的其它CPU核进行启动;在所述操作系统完成启动后,如果存在 没有启动的辅助操作系统,则触发资源分配表中分配给所述辅助操作系统的其中一个CPU 核开始启动,并将资源分配表信息发送给所述辅助操作系统的其中一个CPU核。由以上技术方案可以看出,在本发明中各操作系统在启动过程中实现的硬件资源 分配都是以静态存储器中的资源分配表为依据的,这就使得修改各操作系统的硬件资源分 配成为可能,只要对静态存储器中的资源分配表进行修改即可实现各操作系统的硬件资源 分配。显然,这种方式可以适用于各种多核设备,即使各设备的CPU核和内存资源是千差万 别的;并且可以根据实际的资源使用状况,对各操作系统的硬件资源进行调整使得设备的 整体性能达到更优,相比较固定分配硬件资源的方式大大提高了资源分配的可扩展性和灵 活性。


图1为MCDS系统模型示意图;图2为本发明提供的设备启动过程中实现双操作系统的资源分配流程图;图3为本发明提供的装置结构示意图。
具体实施例方式为了使本发明的目的、技术方案和优点更加清楚,下面结合附图和具体实施例对 本发明进行详细描述。本发明提供的方法主要包括主控操作系统在启动过程中,指定分配给主控操作 系统的CPU核CoreO读取静态存储器中的资源分配表,触发资源分配表中分配给该主控操 作系统的硬件资源进行启动;主控操作系统完成启动后,所述coreO触发资源分配表中分 配给辅助操作系统的其中一个CPU核coreN开始启动,并将资源分配表信息发送给所述 coreN;辅助操作系统在启动过程中,所述CoreN按照所述资源分配表信息读取资源分配 表,触发资源分配表中分配给该辅助操作系统的硬件资源进行启动。上述方法可以应用于双操作系统,也可以应用于多操作系统。当应用于多操作系 统时,辅助操作系统存在两个以上。一个辅助操作系统完成启动后,可以将资源分配表信息 发送给下一个辅助操作系统触发下一个辅助操作系统进行启动,直至所有辅助操作系统都 完成启动。本发明提供的方法中,各操作系统按照资源分配表进行硬件资源的分配。资源分 配表中定义了分配给各操作系统独享的硬件资源,其中,硬件资源包括内存和CPU核。该资源分配表可以以缺省资源分配表的形式在主控操作系统中设置,主控操作系 统在出厂第一次启动时,由主控操作系统写入诸如闪存(Flash)等的静态存储器中。在除 出厂第一次启动之后的网络设备启动都从静态存储器中读取资源分配表,并按照读取的资 源分配表确定分配给主控操作系统核辅助操作系统的硬件资源。其中,缺省的资源分配表不能够被修改,可以用于恢复出厂设置时使用。用户能 够对静态存储器中的资源分配表进行修改,修改后的资源分配表仍存储在静态存储器中,例如,用于可以通过命令行修改静态存储器中的资源分配表,调整资源分配表中分配给各 操作系统的硬件资源。对于修改后的资源分配表只有在设备重新启动后才能够生效,即设 备重新启动过程中,各操作系统从静态存储器中读取到的资源分配表为修改后的资源分配 表,并按照该修改后的资源分配表进行硬件资源的初始化。下面以多核双操作系统为例,对本发明提供的方法进行详细描述。假设网络设备 的多核CPU上存在两个操作系统OSl和0S2,其中,OSl为主控操作系统,0S2为辅助操作系 统。该网络设备上电后默认从主控操作系统OSl开始启动。则通过启动实现双操作系统的 资源分配过程可以如图2所示,主要包括以下步骤步骤201 网络设备上电后,OSl从默认的第一 CPU核CoreO开始启动。步骤202 =CoreO判断Flash中是否存在有效的资源分配表,如果否,执行步骤 203 ;如果是,执行步骤204。在网络设备上电后,由主控操作系统开始启动。在一个网络设备上可以默认设置 一个CPU核作为第一 CPU核,该第一 CPU核是指定分配给主控操作系统的,主控操作系统从 该第一 CPU核开始启动,从而完成后续的操作。为了方便对该实施例的理解,首先对资源分配表进行描述。在该实施例中,资源分 配表中的内容为分配给OSl核0S2的资源,其数据结构可以如下所示
权利要求
1.一种多操作系统的资源分配方法,其特征在于,该方法包括主控操作系统在启动过程中,指定分配给主控操作系统的CPU核CoreO读取静态存储 器中的资源分配表,触发资源分配表中分配给该主控操作系统的其它CPU核进行启动;主控操作系统完成启动后,所述coreO触发资源分配表中分配给辅助操作系统的其中 一个CPU核coreN开始启动,并将资源分配表信息发送给所述coreN ;辅助操作系统在启动过程中,所述coreN按照所述资源分配表信息读取资源分配表, 触发资源分配表中分配给该辅助操作系统的其它CPU核进行启动。
2.根据权利要求1所述的方法,其特征在于,所述coreO读取静态存储器中的资源分配 表之前还包括所述coreO判断静态存储器中是否存在有效的资源分配表,如果是,则继续 执行所述读取静态存储器中的资源分配表;否则将主控操作系统中缺省的资源分配表写入 静态存储器中,继续执行所述读取静态存储器中的资源分配表。
3.根据权利要求2所述的方法,其特征在于,所述coreO判断静态存储器是否存在有效 的资源分配表包括所述coreO判断静态存储器中资源表存在标识是否为预设的有效值, 如果是,则确定静态存储器存在有效的资源分配表;否则确定静态存储器不存在有效的资 源分配表;在将主控操作系统中缺省的资源分配表写入静态存储器中时,将所述资源表存在标识 设置为预设的有效值。
4.根据权利要求1所述的方法,其特征在于,所述coreO读取静态存储器中的资源分配 表之后,还包括将所述资源分配表中分配给主控操作系统的内存信息上报给所述主控操 作系统的内存管理模块;所述coreN读取资源分配表之后,还包括将所述资源分配表中分配给辅助操作系统 的内存信息上报给所述辅助操作系统的内存管理模块。
5.根据权利要求1所述的方法,其特征在于,所述触发资源分配表中分配给该主控操 作系统的其它CPU核进行启动为所述CoreO向资源分配表中分配给该主控操作系统的其 它CPU核发送指示被分配给所述主控操作系统的核间消息;所述触发资源分配表中分配给该辅助操作系统的其它CPU核进行启动为所述coreN 向资源分配表中分配给该辅助操作系统的其它CPU核发送指示被分配给所述辅助操作系 统的核间消息。
6.根据权利要求1所述的方法,其特征在于,如果所述coreN确定存在没有启动的另一 个辅助操作系统,则触发资源分配表中分配给所述另一个辅助操作系统的其中一个CPU核 coreM开始启动,并将资源分配表信息发送给所述coreM ;所述coreM执行与所述coreN相同的操作。
7.根据权利要求1至6任一权项所述的方法,其特征在于,所述coreO对用户输入的命 令行进行解析,根据解析结果对静态存储器中的资源分配表进行修改;其中,所述命令行用 于修改分配给所述主控操作系统或辅助操作系统的硬件资源;在所述主用控制系统重新启动过程中,所述coreO读取的资源分配表为修改后的资源 分配表,发送的资源分配表信息为修改后的资源分配表信息。
8.一种多操作系统的资源分配装置,其特征在于,设置在CPU核中,该装置包括资源表读取单元,用于在所述CPU核被分配给的操作系统启动过程中,读取静态存储器中的资源分配表,或者按照接收到的资源分配表信息读取资源分配表;启动触发单元,用于按照所述资源表读取单元读取的资源分配表,触发资源分配表中 分配给所述操作系统的其它CPU核进行启动;在所述操作系统完成启动后,如果存在没有 启动的辅助操作系统,则触发资源分配表中分配给所述辅助操作系统的其中一个CPU核开 始启动,并将资源分配表信息发送给所述辅助操作系统的其中一个CPU核。
9.根据权利要求8所述的装置,其特征在于,如果该装置所在的CPU核被分配给的操作 系统为主控操作系统,则该装置还包括缺省处理单元,用于在所述资源表读取单元读取静态存储器中的资源分配表之前,判 断所述静态存储器中是否存在有效的资源分配表,如果是,则触发所述资源表读取单元读 取静态存储器中的资源分配表;否则将所述主控操作系统中缺省的资源分配表写入静态存 储器中,触发所述资源表读取单元读取静态存储器中的资源分配表。
10.根据权利要求8所述的装置,其特征在于,该装置还包括内存信息上报单元,用于根据所述资源表读取单元读取的资源分配表,将所述资源分 配表中分配给所述操作系统的内存信息上报给所述操作系统的内存管理模块。
11.根据权利要求8所述的装置,其特征在于,所述启动触发单元向所述资源分配表中 分配给所述操作系统的其它CPU核发送指示被分配给所述操作系统的核间消息,以触发所 述其它CPU核进行启动。
12.根据权利要求8至11任一权项所述的装置,其特征在于,该装置还包括命令解析单元,用于对用户输入的命令行进行解析,该命令行用于修改分配给所述操 作系统的硬件资源;资源表修改单元,用于按照所述命令解析单元的解析结果对静态存储器中的资源分配 表进行修改。
全文摘要
本发明提供了一种多操作系统的资源分配方法和装置。主控操作系统在启动过程中,指定分配给主控操作系统的CPU核core0读取静态存储器中的资源分配表,触发资源分配表中分配给该主控操作系统的其它CPU核进行启动;主控操作系统完成启动后,core0触发资源分配表中分配给辅助操作系统的其中一个CPU核coreN开始启动,并将资源分配表信息发送给coreN;辅助操作系统在启动过程中,coreN按照资源分配表信息读取资源分配表,触发资源分配表中分配给该辅助操作系统的其它CPU核进行启动。本发明能够通过修改静态存储器中的资源分配表调整分配给各操作系统的硬件资源,提高了资源分配的可扩展性和灵活性。
文档编号G06F9/50GK102053869SQ20091023591
公开日2011年5月11日 申请日期2009年10月29日 优先权日2009年10月29日
发明者郭武 申请人:杭州华三通信技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1