基于multi-kernelMOS的分区系统构建方法

文档序号:6401049阅读:297来源:国知局
专利名称:基于multi-kernel MOS 的分区系统构建方法
技术领域
本发明涉及一种基于mult1-kernelMOS (Module Operating System)的分区系统构建方法,适用于当前乃至今后多核、众核平台上分区系统的构建,可应用在航电系统、汽车电子、实时控制等领域。
背景技术
随着电子工艺技术的进步,深亚微米时代单个处理器芯片上所能集成的晶体管数可达数十亿之多,今后芯片制造工艺将继续按照摩尔定律发展。为了避开功耗、频率等限制因素,将更多的晶体管和能量用于有效的计算,目前处理器设计正呈现由单核、多核(几个 十几个核心)向众核(几十个、甚至成百上千个核心)转变的趋势,在某些领域(科学计算、消费类电子),异构处理架构也开始投入实用。为了充分有效利用处理器芯片上越来越多的计算能力,提高系统的效能,工业和学术界近些年开始倾向于采用服务和资源整合的方式(如虚拟化技术、分区系统等),将更多相对独立的应用综合到同一个计算平台运行,从而充分发挥现代多核、众核处理器的计算能力,并进一步降低应用的总体功耗与成本。Aeronautical Radio公司提出的ARINC653分区系统规范为面向关键应用的服务和资源综合化技术提供了相应的标准,定义了系统与应用之间的接口及API (ApplicationProgramming Interface)服务功能,主要服务于航空航天、汽车电子、医疗器械等安全攸关领域。分区系统使得多个关键应用整合在一台计算机成为可能,其关键在于在时间和空间两个维度将不同的应用以分区的形式隔离开来,同一系统中各分区运行于共有的操作系统环境M0S,彼此之间拥有独立的地址空间和处理器时间片,分区间的功能不会相互干扰,一个分区的失效或者故障不会传播到另一个分区,这使得整个系统的可靠性大大增强,并且分析与验证也更加容易。分区内部拥有自己的分区操作系统(POS:Partition OperatingSystem),P0S上的执行单元为任务,多个任务相互协调,共同构成功能完整的分区应用。一般情况下,POS与任务运行在同一特权级,且任务往往可以无限制地访问整个分区所属地址空间。传统的ARINC653分区系统的实现大多基于单核系统,随着多核、众核系统的普及,ARINC653面临着多处理器核心所带来的一系列挑战,如系统的可扩展性、核间通信延迟的不确定性、通信带宽的保障、共享总线的争用、通信拓扑结构的有效性以及处理器核心失效等问题。另外,对于日渐兴起的异构处理器平台,现有ARINC653分区系统标准也尚未提供相应规范。操作系统是解决分区系统多核问题的关键,目前分区系统所采用的MOS主要有VxWorks653、INTEGRITY-178B、PikeOS等,这些MOS普遍采用共享存储式架构模型,系统中所有处理器核心共享同一份操作系统内核代码及相应的数据结构,所有处理器ISA架构也必须相同。除此之外,传统的实时操作系统如RTEMS (Real Time Executivefor Multiprocessor Systems)、uC/OS-11、RT-Linux 等均米用共享存储式架构,在一个或者有限的几个处理器核心上具有较好的效率,但是在处理器核数增多的情况下,系统中由于数据结构共享而造成的互斥锁、cache (高速缓冲存储器)false-sharing(伪共享)与ping-pong效应等严重限制了多核并发性,并降低了系统总体效率,从而抵消多核所带来的性能优势,当处理器核数增多时,传统操作系统表现出了严重的可扩展性以及实时性问题。

发明内容
本发明针对分区系统在多核、众核平台上面临的问题,提出一种基于mult1-kernel MOS的分区系统构建方法,以提升系统的可扩展性和实时性,并适应未来体系结构发展趋势。—种基于mult1-kernel MOS的分区系统构建方法,针对多核、众核异构系统,包括如下步骤:步骤1:为系统中的处理器核心和分区分别建立拓扑结构图,然后基于负载均衡及通信延迟最小化的原则,将系统中各分区映射到合适的处理器核心上运行;负载均衡是指系统中各处理器核心负载(分区)均衡,通信延迟最小化是指系统中各分区间通信延迟加权和最小化;所述的映射的约束条件为:I)每个分区被映射到指令集架构(Instruction Set Architecture,简称ISA)匹配的处理器核心;2)每个分区需要的处理器核心数与映射的处理器核心数相符;3)每个处理器核心上映射的分区集合满足实时可调度性要求。步骤2:基于mult1-kernel MOS的架构模型,依次在每个处理器核心上启动并运行与其ISA相匹配的独立操作系统内核(MOS kernel),处理器核心之间不共享内核代码与数据结构。根据分区的通信需求,为映射到各处理器核心的分区建立并初始化通信信道及附属的管理数据结构,分区之间基于消息传递方式实现通信;通信信道附属的管理数据结构包括:信道所属的源分区、目的分区;信道优先级;以及各子信道地址、容量、优先级、数量和读与指针等。步骤3:每个处理器核心上的MOS Kernel启动之后,会像启动传统操作系统的流程一样,依次启动被映射到其所属处理器核心的上各个分区内部的操作系统(POS)及任务,分区开始执行。本发明的优点和积极效果在于:(I)采用本发明方法构建的分区系统,消除了系统中各处理器之间的数据共享,使得各处理器核心拥有自己独立的内核数据结构拷贝,避免了传统共享存储多核系统中由于cache 一致性协议造成的系统性能下降,在有效降低系统开销的基础上,最大程度保证程序运行的确定性。(2)采用本发明方法构建的分区系统,在系统级消除了共享存储给多核实时系统建模带来的不利影响,便于用户对实时应用进行WCET (West Case Execution Time,最坏情况执行时间)分析。(3)本发明方法通过采用消息传递方式实现分区间通信,系统中各模块运行于固定的处理器核心,可以有效降低cache-line的false-sharing、ping-pong效应,不仅有助于提升cache有效利用率,还可以提升cache的命中率。而且,消息传递架构模型既能在支持核间共享存储的处理器上实施,也能在不支持核间共享存储的处理器上实施,对体系结构具有良好的适应性。(4)本发明方法构建的系统中各处理器核心之间代码耦合度大大降低,这使得在同一分区系统之中同时支持多种ISA架构的处理器核心成为可能,各异构处理器核心之间基于消息方式实现数据一致性维护和函数调用,各分区可以根据自身属性特点选择有益于系统效能最大化的处理器架构,使得RISC、CISC、ASIC以及FPGA等多种计算平台可以集成于同一系统。(5)本发明方法中采用显式的消息传递方式,核间通信得以暴露给软件层,加大了用户对软件进行优化的空间和力度,从而可以更近一步提升系统性能;分区间通信也具备可调度性,因此其延迟确定性可得以保障,为分区系统的实时确定性提供了良好的底层支撑技术。


图1为采用本发明方法所构建的一个分区系统的结构示意图;图2为本发明实施例中异构系统的处理器核心拓扑结构简图;图3为本发明实施例中异构系统的分区的拓扑结构简图;图4为本发明构建分区系统方法中采用启发式算法实现分区映射的步骤流程图;图5为图2和图3所示实施例中最终实现的分区映射图;图6为本发明构建分区系统方法中分区系统启动的流程示意图。
具体实施例方式在下述具体实施示例中,结合附图对本发明进行进一步的详细说明。通过足够详细的描述这些实施示例,使得本领域技术人员能够理解和实践本发明。在不脱离本发明的主旨和范围的情况下,可以对实施做出逻辑的、实现的和其他的改变。因此,以下详细说明不应该被理解为限制意义,本发明的范围仅仅由权利要求来限定。如图1所示,为本发明所构建的一个分区系统,该分区系统可以拥有多个处理器核心,其规模为几个 几十个不等,其ISA架构涵盖桌面系统常用的X86架构,航空航天领域常用的PowerPC架构,嵌入式手持设备常用的ARM架构以及数字型号领域常用的DSP等多种选择,分区系统在设计阶段根据需要将以上一种或者多种架构的多个处理器核心集成于同一硬件平台,以满足不同分区应用的差异化需求及最优化配置。在软件层,系统被划分为3个层次,自下而上依次为MOS,P0S,以及任务,POS可以是诸如VxWorks、uC/OS-11、RTEMS等一些实时或/实时操作系统或运行时(run-time)服务,其中POS与任务运行于同一特权级且共享地址空间。MOS是分区系统的关键,决定着整个系统的架构方式。传统操作系统往往采用单一内核(monolithic-kernel)、微内核(micro-kernel)或者二者混合架构方式,所有处理器核心共享同一份操作系统内核代码和数据结构。而本发明的MOS采用mult1-kernel架构方式,每个处理器核心上运行一份独立的MOS kernel,采用消息传递取代共享存储式编程模型。这与传统操作系统架构有着本质的不同,能有效提升分区系统的多核可扩展性以及实时性。本发明中构建的分区系统,每个处理器核心上的MOS kernel采用微内核架构。MOSkernel运行在处理器的内核态,仅实现系统必须的中断管理、时钟管理、分区管理、分区通信以及内存分页机制等,内核规模小,易于验证,系统中的其他功能模块如页面分配、文件系统、网络协议栈以及设备驱动等则以用户态应用的形式运行在固定的处理器核心之上。由于每个处理器核心运行独立的MOS kernel,各kernel之间不再共享存储空间,因此各处理器核心所运行的kernel代码不存在相关性依赖,所操作的存储地址空间不存在一致性约束,kernel结构与特性可以根据处理器核心的属性而自由配置。这使得该类型kernel对于异构处理器具有天然的支持能力,例如在一个X86、ARM混合ISA的多核处理器上,需要配置两份不同的内核代码镜像,分别基于X86和ARM指令集。假设主核为X86架构,则系统在启动引导过程中,主核需要执行基于X86指令集的引导程序,这通过系统配置可以实现。主核上的引导程序完成硬件的初始化以及自身MOS kernel的运行环境配置(代码区、数据区、堆栈等)之后,会跳入MOS kernel代码空间执行从核的启动工作,根据从核的ISA将相应指令集的MOS kernel加载到内存,并为其分配相应的内存空间(如数据区、堆栈等)。然后初始化数据区,将从核MOS kernel的起始地址写入从核的程序计数器(PC:ProgramCounter),堆栈栈顶地址写入从核的堆栈计数器(SP: Stack Pointer),之后从核便开始自主运行,主核上的引导程序会继续加载其他从核的MOS kernel并启动其运行。在启动每个处理器核(包括主核)上MOS Kernel的过程中,主核上的引导程序还会根据系统启动配置文件为映射到各处理器核心上的分区建立通信信道及附属的管理数据结构,如信道所属的源分区、目的分区,信道优先级,各子信道地址、容量、优先级、数量、读写指针等,然后在处理器核心开始运行MOS kernel之前将相关参数传递给MOS kernel。对于同构多核处理器,各处理器核心上的MOS kernel启动流程与异构多核处理器系统相同。一般情况下,通信信道同时属于两个分区,每当启动一个处理器核心上的MOS kernel之前,引导程序会检测该处理器核心上具有通信需求的分区并建立相应的通信信道,无论该分区是通信信道的源分区还是目的分区。在之后的处理器核心启动过程中,当启动程序检测到已经建立的通信信道所属的另一个分区时无需再次分配内存和管理数据结构,可直接将之前配置好的信道参数传递给另一个分区所映射的处理器核心上的MOS kernel0当然,如果具有通信关系的两个不同分区运行于同一处理器核心,其通信信道参数只需传递一个MOS kernel.在MOSkernel启动的过程中,引导程序除了传递信道参数之外,还会传递一些其他相关参数,如分区配置信息、分区代码地址等。当MOS kernel在所属的处理器核心上启动之后,完成一系列的本地初始化过程,然后开始按着分区配置信息启动各个分区的运行,并将具有通信需求的各分区与相应分区通信信道“连接”,之后各分区便可在分区调度算法的调度下持续运行,完成既定的功能。本发明提供的基于mult1-kernel MOS的分区系统构建方法,主要包括如下3个步骤。步骤1:基于负载均衡及通信延迟最小化的原则,将系统中各分区映射到合适的处理器核心,系统初始化时能够按着映射结果在各处理器核心上启动对应的分区。本发明多构建的分区系统,MOS运行于处理器的内核态,而POS连同分区任务运行于用户态,且共享同一地址空间。根据不同应用的需求,POS可以选用各种具有不同特性的操作系统内核,甚至对于非关键性应用,POS也可以采用非实时内核。分区系统存在的主要目的在于将物理上独立的多个计算机上的应用以分区形式集中于同一计算机系统,该系统包含一个或者多个处理器核心。若原有独立的计算机系统包括多个处理器核心,那么在分区系统上,该计算机系统上应用所构成的分区也应该被映射到相同数量的处理器核心,以保证对原有系统的兼容性。当然,对于只具有一个处理器核心的计算机系统,所对应的分区也只被映射到一个处理器核心。一般情况下,分区在处理器核心上映射是静态的,因此在分区系统启动之后,分区不允许发生迁移,否则会引起通信信道、分区最坏情况执行时间、分区可调度性等系统属性的不确定性变化,这对于实时系统来说是不可接受的。在多核、众核系统,尤其是基于NoC (Networks on Chip)互联架构的系统上,分区映射的主要依据在于分区间通信互联拓扑结构,根据分区之间的通信频率(单位时间内通信的次数)决定分区在处理器核心上的物理排布。对于通信频率越高的分区,对应分区所在处理器核心之间的物理距离越近,在处理器性能允许的情况下,具有高通信频率的两个分区会尽量分配在同一处理器核心运行,以使得分区间通信数据可以基于处理器的一级cache传输,并附加相应的机制如cache分区、cache锁等,从而保证通信延迟尽可能短。每个处理器核心的MOS上可以运行多个不同分区,分区内可以采用如前所述的不同P0S,用于实现对分区资源和分区任务的个性化管理。另外,对于并发度要求较高的应用,分区还可以跨越处理器核心,即在同一时刻或者不同时刻一个分区内部有多个处理器核心运行,这需要MOS提供相应的支持,以使得上层分区能实现核间地址空间的共享,从而支持传统的共享存储式操作系统,如RTEMS。基于应用的需求,每个分区分别被映射到不同的ISA架构的处理器核心之上,根据分区对性能的要求,分区可以映射到多个处理器核心,由于一个处理器核心上可能会有多个分区运行,因此不同分区在处理器核心上会有不同程度的交集,随着运行分区数目的不同,每个处理器核心的负载也不同,负载均衡是分区映射的重要指标。另外,由于分区之间存在固有的通信关系,分区的映射也应考虑通信延迟问题,具有密切通信关系的普通任务分区应该位于相同或者临近的处理器核心,以使得系统的通信延迟加权和最小。总之,在满足性能和ISA要求的前提下,分区映射的最优化目标是负载均衡、通信延迟小,且最终满足应用的实时性能要求。在进行分区映射之前,需要分别对处理器核心和分区建立拓扑结构图,以描述分区之间的通信属性以及处理器核心之间的互联线路属性,除此之外,处理器核心拓扑结构图还需包括各处理器核心的ISA信息、性能属性。本发明实施例中,处理器核心的互联拓扑结构图用图G(V,E)描述,V表示节点集合,每个节点表示一个处理器核心,E为边的集合,每条边表示两个处理器核心之间的物理互联线路。V中节点Vi表示第i个处理器核心,每个处理器核心节点上附属有该处理器核心的ISA信息和性能参数等,边(Vi,Vj) e E,表示处理器核心Vi与处理器核心Vj之间的物理互联线路,边上标记有两个处理器核心之间的通信延迟参数。i,j为正整数。分区间的互联拓扑结构通过图T(P, L)描述,P表示节点集合,每个节点表示一个分区,P中元素Pi表示第i个分区,每个分区节点上附属有分区的ISA信息和需要的处理器核心数。L为边的集合,每条边表示分区间的通信信道,边(Pi,Pj) e L,表示分Epi与分区Pj之间的通信信道,每条边上标记两个分区之间的通信频率。步骤I中分区到处理器核心的映射就是完成有向图G(V,E)到有向图T(P,L)的映射。如图2和图3所不,分别为本发明实施例一个多核系统的处理器核心的拓扑结构图和分区的拓扑结构图。如图2所示,该多核系统是包含8个处理器核心的异构系统,其中2个为DSP架构:vD1、vD2,6个为ARM架构:vA1、vA2、vA3、vA4、vA5、vA6。相邻的处理器核心之间具有直接的物理互联线路,物理互联线路上标注的数字为相邻处理器核心之间的通信延迟。通信延迟根据处理器核心的通信性能模型得出,在同一处理器核心上的分区间通信延迟最小,同构相邻处理器核心之间通信延迟比同一处理器核心上的通信延迟大,但小于异构相邻处理器核心之间的通信延迟。本发明实施例中设分区在同一处理器核心上通信延迟为O,同构相邻处理器核心之间的通信延迟均为1,异构相邻处理器核心之间的通信延迟为
2。不相邻的处理器核心之间的通信延迟为数据传输所经过路径的通信延迟之和。在这8个处理器核心之上,需要映射12分区:ρι、ρ2、…、P12,分区间的互联关系如图3所示,分区节点之间的连线表示分区之间存在通信关系,连线上所标注的数字为通信频率。各分区的属性信息如表I所示,分区属性主要包括所支持的处理器ISA,所需要的处理器核心数,以及在每个处理器核心上的CPU利用率。各分区的CPU利用率基于系统中ARM或者DSP处理器性能模型得出,为了实施方便,这里按上界取整处理。其中分gPl,P2各需要两个处理器核心,均采用基于局部调度策略的多核实时调度算法,即分区中的任务只在固定的处理器核心上运行而不会发生核间迁移,基于某种实时调度算法,分区在每一个处理器核心上都会有固定的CPU利用率。表I各分区属性信息
权利要求
1.一种基于 mult1-kernel MOS (Module Operating System)的分区系统构建方法,针对多核、众核异构系统,其特征在于,通过如下步骤进行分区系统构建: 步骤1:为系统中的处理器核心和分区建立拓扑结构图,然后基于负载均衡及通信延迟最小化的原则,将系统中各分区映射到合适的处理器核心上;负载均衡是指系统中各处理器核心负载均衡,通信延迟最小化是指系统中各分区间通信延迟加权和最小化; 映射的约束条件为: 1)每个分区被映射到指令集架构(ISA:1nstruction Set Architecture)匹配的处理器核心; 2)每个分区需要的处理器核心数与映射的处理器核心数相符; 3)每个处理器核心上的分区集合满足实时可调度性要求; 步骤2:依次在每个处理器核心上启动并运行与自身ISA相匹配的操作系统内核(M0Skernel),处理器核心之间不共享内核代码与数据结构;根据分区的通信需求,为映射到各处理器核心的分区建立并初始化通信信道及附属的管理数据结构,分区之间基于消息传递方式实现通信;通信信道附属的管理数据结构包括:信道所属的源分区、目的分区;信道优先级;以及各子信道地址、容量、优先级、数量和读写指针; 步骤3:每个处理器核心上的MOS Kernel启动之后,依次启动被映射到各处理器核心的上的各个分区内部的操作系统(POS:Partition Operating System)及任务,分区开始执行。
2.根据权利要求1所述的分区系统构建方法,其特征在于,步骤I中所述的为系统中的处理器核心和分区建立拓扑结构图,具体是: (1)处理器核心的拓扑结构图用图G(V,E)描述,V表示节点集合,V中节点Vi表示第i个处理器核心,节点上附属有该处理器核心的ISA信息和性能参数,E表示边的集合,E中的边(Vi, Vj)表示处理器核心Vi与处理器核心Vj之间的物理互联线路,边上标记两个处理器核心之间的通信延迟;i,j为正整数; (2)分区的拓扑结构图用图T(P,L)描述,P表示节点集合,P中节点Pi表示第i个分区,节点上附属有该分区的ISA信息和需要的处理器核心数,L为边的集合,L中的边(Pi,Pj)表示分区Pi与分区Pj之间的通信信道,每条边上标记两个分区之间的通信频率。
3.根据权利要求2所述的分区系统构建方法,其特征在于,所述的通信延迟,根据处理器核心的通信性能模型得出,在同一处理器核心上的分区间通信延迟最小,同构相邻处理器核心之间通信延迟比同一处理器核心上的通信延迟大,但小于异构相邻处理器核心之间的通信延迟,不相邻的处理器核心之间的通信延迟为数据传输所经过路径的通信延迟之和。
4.根据权利要求1或2或3所述的分区系统构建方法,其特征在于,所述的步骤1,采用启发式算法实现分区的映射,具体步骤是: 步骤1.1:构建数据队列Q并初始化; 步骤1.2:建立分区集合P,将系统中所有分区加入集合P中,将系统中处理器核心按照所支持的ISA的类 型分类,并建立相应的处理器核心集合,然后所有处理器核心加入对应的集合; 步骤1.3:基于某种实时调度算法,将系统中每个处理器核心V的空闲率,设置为满足分区任务实时性要求之后该处理器核心的利用率上限值; 步骤1.4:判断集合P是否为空,若是,结束本分区映射方法,否则,继续执行步骤1.5 ;步骤1.5:首先从集合P中选择需要映射的处理器核心数最大的分Epm,设分Epm需要映射的处理器核心数为n (Pm); 步骤1.6:设分区pm的ISA为ISA(Pm),系统中指令集架构为ISA(Pm)的处理器核心集合为vIsa4u*判断与分区Pm的ISA相匹配的处理器集合VKA(iU中的处理器核心数是否小于n (Pm),若是,结束本分区映射方法,否则,继续执行步骤1.7 ; 步骤1.7:判断与分区Pm的ISA相匹配的处理器核心集合V1SAiiu中处理器核心数是否小于n (Pm),若是,执行步骤1.12,否则,继续执行步骤1.8 ; 步骤1.8:按照空闲率由大到小的顺序从集合中选择n(pm)个处理器核心作为分区Pm的映射目标,并将所选择的n (pm)个处理器核心构成集合Vnp ; 步骤1.9:将分区pm映射到处理器集合Vnp之后,统计集合Vnp中空闲率大于等于O的处理器核心的数量I ; 步骤1.10:判断I是否等于n (Pm),如果是,执行步骤1.11,否则执行步骤1.12 ; 步骤1.11:计算分区Pm与已经映射到处理器核心的分区Pk(Pk e {MAP(Vi) Vi e V}, Pk^Pm)之间的通信延迟加权和D:D= Σ Freq(pm, pk)*Delay (pm, pk);其中,V表示系统中所有处理器核心的集合,MAP(Vi)表示映射到处理器核心Vi的分区集合;Freq (pm, pk)表示分区Pm与分区Pk之间的通信频率,Delay (pm, pk)表示分区Pm与分区Pk映射到处理器核心之后的通信延迟;再将集合Vnp中具有最大空闲率的处理器核心vmax_ftM从集合中删除,将由处理器核心Vmarfree、集合Vnp以及通信延迟加权和D构成的数据结构单元存入队列Q中,然后转步骤1.7执行; 步骤1.12:设Vmap表示分区Pm所映射的处理器核心的集合,并初始化为空,设延迟值D11Iin为无穷大; 步骤1.13:判断队列Q是否为空,若是,执行步骤1.15,否则执行步骤1.14 ; 步骤1.14:从队列Q中取出一个数据结构单元,并将该数据结构单元内各元素的值分别赋予变量vmax_&ee、Vnp以及D,将处理器核心vmax_&ee重新加入集合VKA(Pra)* ;如果D〈=Dmin,将D赋值给Dmin,将集合Vnp赋予集合Vmap,然后执行步骤1.13,否则,直接执行步骤1.13 ;步骤1.15:判断集合Vmap是否为空,若是,结束本分区映射方法,否则,执行步骤1.16 ;步骤1.16:将分区Pm映射到集合Vmap中的处理器核心上,更新集合Vmap中所有处理器核心的空闲率,将分区Pm从集合P中删除,然后执行步骤1.4。
5.根据权利要求1所述的分区系统构建方法,其特征在于,步骤2中所述的分区之间基于消息传递方式实现通信,具体是: (I)具有通信关系的分区两两之间具有通信信道,分区间的通信信道被划分为一个以上具有不同优先级的子信道,在每个子信道上,各消息的优先级相同;分区间通信信道内部的子信道优先级只在所连接的两个分区间有效;当一个分区与两个以上的分区之间具有通信信道时,根据分区的重要程度为每个通信信道设置优先级,或者采用时间片轮转机制,实现对每个通信信道内部消息的处理顺序与处理时间的决策;(2)系统服务模块以应用程序方式运行在固定的处理器核心上,系统中处理器核心的分区应用程序需要请求服务模块的服务时,分区应用程序先将服务请求以消息方式打包并写入所在分区与服务模块之间的通信信道,然后分区应用程序有两种选择:I)原地阻塞,待服务模块同样以消息方式回传相应的处理结果之后继续当前执行过程;2)注册一个回调函数,当前应用程序执行过程结束,当分区收到服务模块回传的消息之后,调度先前注册的回调函数,执行相应过程;消息数据中包含优先级信息。
6.根据权利要求1或5所述的分区系统构建方法,其特征在于,所述的步骤2具体包括如下子步骤: 步骤2.1:系统引导程序启动主核,完成软硬件初始化和MOS kernel的运行环境配置;步骤2.2:为主核加载与其ISA相匹配的MOS kernel,申请并初始化包括内核堆栈和数据区的内存区域; 步骤2.3:为主核上的分区创建通信信道及附属的管理数据结构,并进行相应的初始化; 步骤2.4:启动主核MOS kernel,并传递分区的通信信道及附属的管理数据结构; 步骤2.5:主核MOS kernel获得主核硬件的控制权;` 步骤2.6:主核MOS kernel查询系统中是否还有未启动的从核,如果有,执行步骤2.7,否则结束对从核的启动过程,并开始启动所在核心上各分区POS及任务; 步骤2.7:根据从核ISA,加载从核的MOS kernel,申请并初始化包括内核堆栈和数据区的内存区域; 步骤2.8:为从核上的分区创建通信信道及附属的管理数据结构,并进行相应的初始化; 步骤2.9:启动从核MOS kernel,并传递当前从核上的分区的通信信道及附属的管理数据结构,执行步骤2.6。
全文摘要
本发明是一种基于multi-kernel MOS的分区系统构建方法,适用于多核、众核异构处理器平台。本发明基于负载均衡及通信延迟最小化的原则,将系统中各分区映射到合适的处理器核心上;再依次在每个处理器核心上启动并运行与自身ISA相匹配的操作系统内核(MOS kernel),并为映射到该处理器核心的分区建立并初始化通信信道及附属的管理数据结构,分区之间基于消息传递方式实现通信;最后MOS kernel启动映射到其所在处理器核心的各个分区内部的操作系统及任务。本发明使多种ISA架构的处理器核心能同时运行于同一分区系统,并且在有效提升系统效能及可扩展性的基础上,最大程度地保证程序运行的实时确定性。
文档编号G06F9/44GK103207782SQ20131010223
公开日2013年7月17日 申请日期2013年3月27日 优先权日2013年3月27日
发明者龙翔, 杨经纬, 高小鹏, 万寒, 姜博, 郑思遥 申请人:北京航空航天大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1