CN101901207A - 异构共享存储多处理机系统的操作系统及其工作方法 - Google Patents

异构共享存储多处理机系统的操作系统及其工作方法 Download PDF

Info

Publication number
CN101901207A
CN101901207A CN 201010238592 CN201010238592A CN101901207A CN 101901207 A CN101901207 A CN 101901207A CN 201010238592 CN201010238592 CN 201010238592 CN 201010238592 A CN201010238592 A CN 201010238592A CN 101901207 A CN101901207 A CN 101901207A
Authority
CN
China
Prior art keywords
core
application program
module
main core
main
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
CN 201010238592
Other languages
English (en)
Other versions
CN101901207B (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.)
Institute of Computing Technology of CAS
Original Assignee
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 Institute of Computing Technology of CAS filed Critical Institute of Computing Technology of CAS
Priority to CN2010102385922A priority Critical patent/CN101901207B/zh
Publication of CN101901207A publication Critical patent/CN101901207A/zh
Application granted granted Critical
Publication of CN101901207B publication Critical patent/CN101901207B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

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

Abstract

本发明涉及异构共享存储多处理机系统的操作系统和其工作方法,异构共享存储多处理机系统的一个处理器同I/O设备连接,同I/O设备连接的处理器上运行主核心,每个不与I/O设备连接的处理器上运行一个从核心,所述方法包括:步骤1,主核心接收到应用程序,根据应用程序的目标指令集,以及主核心和各从核心中的当前负载量,从主核心和多个从核心中选择一个核心为应用程序的目标核心;步骤2,如果被选的目标核心为从核心,则被选的从核心通过主核心加载所述应用程序,并运行所述应用程序;步骤3,如果被选的目标核心为主核心,则被选的主核心运行所述应用程序。本发明能够实现了一个多核心单一映像操作系统和方法。

Description

异构共享存储多处理机系统的操作系统及其工作方法
技术领域
本发明涉及计算机领域,尤其涉及异构共享存储多处理机系统的操作系统及其工作方法。
背景技术
共享存储多处理机系统是指所有处理器对系统中的任何内存均可访问的多处理机系统,按照互连结构可以划分为:基于总线的共享存储多处理机系统、基于环形结构的共享存储多处理机系统、基于交换网络的共享存储多处理机系统等。目前市场上主流的共享存储多处理机系统为对称式共享存储多处理机系统,如图1所示,和NUMA(Non Uniform MemoryAccess,非一致性内存访问)多处理机系统,如图2所示。
现有的共享存储多处理机系统大多为同构系统,也就是所有处理器具有完全相同的体系结构。目前的共享存储多处理机系统操作系统技术主要关注操作系统的扩展性,包括处理器调度的并行化、利用存储管理的局部性、减少进程间同步操作的开销等。
由于现有的共享存储多处理机系统大多数为同构系统,因此现有的共享存储多处理机操作系统技术均仅关注于同构系统。因此利用现有的共享存储多处理机操作系统技术无法实现异构共享存储多处理机的操作系统,例如X8664与龙芯异构共享存储多处理机的操作系统。
一种异构共享存储多处理机系统如图3所示。这是一种典型的NUMA(Non Uniform Memory Access,非一致性内存访问)共享存储多处理机系统结构,其中仅有一个处理器与I/O设备直接相连,其它处理器对I/O设备的访问都是通过互联网络的转发实现。
发明内容
为解决上述问题,本发明提供了异构共享存储多处理机系统的操作系统及其工作方法,能够实现了一个多核心单一映像操作系统和方法。
本发明公开了一种异构共享存储多处理机系统的操作系统的工作方法,异构共享存储多处理机系统的一个处理器同I/O设备连接,同I/O设备连接的处理器上运行主核心,每个不与I/O设备连接的处理器上运行一个从核心,所述方法包括:
步骤1,主核心接收到应用程序,根据应用程序的目标指令集,以及主核心和各从核心中的当前负载量,从主核心和多个从核心中选择一个核心为应用程序的目标核心;
步骤2,如果被选的目标核心为从核心,则被选的从核心通过主核心加载所述应用程序,并运行所述应用程序;
步骤3,如果被选的目标核心为主核心,则被选的主核心运行所述应用程序。
所述步骤2中从核心加载应用程序时,进一步为,
步骤21,从核心的全局进程管理模块调用I/O客户端模块发出请求;
步骤22,从核心的远程过程调用模块应用远程过程调用通过共享数据通路将所述请求发送给主核心的I/O服务器模块;
步骤23,主核心的I/O服务器模块调用I/O设备管理模块,I/O设备管理模块从磁盘中读出所述应用程序的映像文件;
步骤24,主核心的远程过程调用模块通过共享数据通路将映像文件发送给从核心的I/O客户端模块,从核心的全局进程管理模块对映像文件进行加载。
所述步骤2中运行应用程序进一步为,
步骤31,从核心的本地CPU管理模块对应用程序进行对应的进程调度和上下文切换操作,并且从核心的本地内存管理模块对运行时应用的内存进行分配和回收。
所述步骤2中还包括,
步骤41,在应用程序运行所需内存超过从核心提供的本地内存时,从核心的全局内存管理模块向其他从核心租借内存,并在使用完成后归还租借的内存。
所述步骤2还包括,
步骤51,在应用程序由多个进程/线程构成,并且进程/线程间需要进行通信时,或者应用程序需要同其他应用程序的进程通信时,从核心的全局IPC管理模块与主核心的全局IPC管理模块一同为应用程序提供进程间通信服务。
所述步骤1进一步为,
步骤61,主核心的全局进程管理模块在主核心接收到应用程序时,选择同应用程序的目标指令集兼容,并且负载量最少的核心为应用程序的目标核心。
所述步骤1进一步为:
步骤71,主核心的全局进程管理模块在主核心接收到应用程序时,判断主核心是否同应用程序的目标指令集兼容并且主核心的负载量没有超过预设值;如果是,则主核心为应用程序的目标核心,否则,从多个从核心中选择同应用程序的目标指令集兼容,并且负载量最少的从核心为应用程序的目标核心。
所述步骤1还包括:
步骤81,主核心对异构共享存储多处理机系统的全局进程统一编号,维护全局进程树,全局进程树记录异构共享存储多处理机系统中所有进程的信息;
所述步骤2中从核心的全局进程管理模块对映像文件进行加载进一步为,
步骤82,从核心在加载时,从核心的全局进程管理模块对应于所述应用程序创建进程,并向主核心的全局进程管理模块维护的全局进程树进行注册;
所述步骤2还包括,
步骤83,从核心执行完应用程序后,向主核心的全局进程管理模块维护的全局进程树进行注销。
主核心运行所述应用程序进一步为,
步骤91,主核心的本地CPU管理模块对应用程序进行对应的进程调度和上下文切换操作,并且主核心的本地内存管理模块对运行时应用的内存进行分配和回收。
所述步骤2在加载所述应用程序前还包括:
步骤101,从核心的全局进程管理模块判断当前核心的指令集类型是否同应用程序的目标指令集类型兼容,并且当前核心的负载是否没有超过预设值,如果是,则进行所述的加载应用程序,否则执行步骤102;
步骤S102,从核心的全局进程管理模块通过从核心和主核心的远程过程调用模块到主核心查询目标核心,选择除所述从核心以外,同应用程序的目标指令集兼容,并且负载量最少的核心为应用程序的目标核心;并将进程迁移到目标核心;
步骤103,目标核心的本地CPU管理模块运行所述应用程序的进程,目标核心的本地内存管理模块对运行时应用的内存进行分配和回收。
所述步骤41进一步为,
步骤111,在应用程序运行所需内存超过从核心提供的本地内存时,从核心的全局内存管理模块向主核心的全局内存管理模块申请租借空闲内存,主核心的全局内存管理模块记录了各个从核心的内存使用情况,从中选择满足申请要求的从核心,指示申请的从核心向选择的从核心租借内存,并在使用完成后归还租借的内存。
本发明还公开了一种异构共享存储多处理机系统的操作系统,异构共享存储多处理机系统的一个处理器同I/O设备连接,
所述操作系统包括主核心和从核心,主核心运行于同I/O设备连接的处理器上,从核心运行于每个不与I/O设备连接的处理器上,
所述主核心,用于接收到应用程序,根据应用程序的目标指令集,以及主核心和各从核心中的当前负载量,从主核心和多个从核心中选择一个核心为应用程序的目标核心;在为被选的目标核心时,运行所述应用程序;
所述从核心,用于在为被选的目标核心时,通过主核心加载所述应用程序,并运行所述应用程序。
从核心进一步包括:全局进程管理模块、I/O客户端模块、远程过程调用模块;
主核心进一步包括:I/O服务器模块、I/O设备管理模块、远程过程调用模块;
在从核心加载应用程序时,
从核心的全局进程管理模块,用于调用I/O客户端模块发出请求;
从核心的远程过程调用模块,用于应用远程过程调用通过共享数据通路将所述请求发送给主核心的I/O服务器模块;
主核心的I/O服务器模块,用于调用I/O设备管理模块;
主核心的I/O设备管理模块,用于从磁盘中读出所述应用程序的映像文件;
主核心的远程过程调用模块,用于通过共享数据通路将映像文件发送给从核心的I/O客户端模块;
从核心的全局进程管理模块,用于对映像文件进行加载。
从核心还包括本地CPU管理模块和本地内存管理模块,
所述从核心运行应用程序时,
从核心的本地CPU管理模块,用于对应用程序进行对应的进程调度和上下文切换操作;
从核心的本地内存管理模块,用于对运行时应用的内存进行分配和回收。
从核心还包括全局内存管理模块,
从核心的全局内存管理模块,用于在应用程序运行所需内存超过从核心提供的本地内存时,向其他从核心租借内存,并在使用完成后归还租借的内存。
从核心还包括全局IPC管理模块,
主核心还包括全局IPC管理模块,
从核心的全局IPC管理模块与主核心的全局IPC管理模块相互交互,用于在应用程序由多个进程/线程构成,并且进程/线程间需要进行通信时,或者应用程序需要同其他应用程序的进程通信时,为应用程序提供进程间通信服务。
主核心还包括全局进程管理模块,
主核心的全局进程管理模块,用于在主核心接收到应用程序时,选择同应用程序的目标指令集兼容,并且负载量最少的核心为应用程序的目标核心。
主核心还包括全局进程管理模块,
主核心的全局进程管理模块,用于在主核心接收到应用程序时,判断主核心是否同应用程序的目标指令集兼容并且主核心的负载量没有超过预设值;如果是,则主核心为应用程序的目标核心,否则,从多个从核心中选择同应用程序的目标指令集兼容,并且负载量最少的从核心为应用程序的目标核心。
主核心还包括全局进程管理模块,
主核心的全局进程管理模块,用于对异构共享存储多处理机系统的全局进程统一编号,维护全局进程树,全局进程树记录异构共享存储多处理机系统中所有进程的信息;
从核心的全局进程管理模块还用于在对映像文件进行加载时,对应于所述应用程序创建进程,并向主核心的全局进程管理模块维护的全局进程树进行注册;在从核心执行完应用程序后,向主核心的全局进程管理模块维护的全局进程树进行注销。
主核心运行进一步包括本地CPU管理模块和本地内存管理模块,
主核心的本地CPU管理模块,用于对应用程序进行对应的进程调度和上下文切换操作;
主核心的本地内存管理模块,用于对运行时应用的内存进行分配和回收。
从核心的全局进程管理模块还用于在加载所述应用程序前,判断当前核心的指令集类型是否同应用程序的目标指令集类型兼容,并且当前核心的负载是否没有超过预设值,如果是,则进行所述的加载应用程序,否则通过从核心和主核心的远程过程调用模块到主核心查询目标核心,选择除所述从核心以外,同应用程序的目标指令集兼容,并且负载量最少的核心为应用程序的目标核心;并将进程迁移到目标核心;
目标核心的本地CPU管理模块,用于运行所述应用程序的进程;
目标核心的本地内存管理模块,用于对运行时应用的内存进行分配和回收。
所述主核心还包括全局内存管理模块,
从核心的全局内存管理模块进一步用于,在应用程序运行所需内存超过从核心提供的本地内存时,向主核心的全局内存管理模块申请租借空闲内存;
主核心的全局内存管理模块,用于记录了各个从核心的内存使用情况,从中选择满足申请要求的从核心,指示申请的从核心向选择的从核心租借内存,并在使用完成后归还租借的内存。
本发明的有益效果在于,通过实现多核心单一映像,使得异构多处理机系统呈现出兼容性、高效性、易管理性、易编程性和易操作性;能够在同一个操作系统内部管理多个异构的处理器;每个处理器上都运行与之体系结构相适应的核心,使得每个处理器都可以发挥其最大效能,例如,在X8664通用处理器上运行主核心,提供操作系统服务,在龙芯处理器上运行应用计算,利用其较强的浮点运算能力;能够在同一个操作系统环境下可以运行多种指令集的应用程序,提高了系统的兼容性;由于应用程序是直接运行在与其指令集相匹配的处理器上,省去了软件模拟带来的性能开销;多个核心相互协作,对用户提供单一操作系统映像的管理接口,用户通过单一控制点管理整个异构多处理器系统,大大降低了管理维护的复杂度;提供单一映像的操作系统编程接口,对用户隐藏了多核心的分布式特征,使得系统易于编程。
附图说明
图1是现有技术对称式共享存储多处理机系统的示意图;
图2是现有技术的NUMA多处理机系统的示意图;
图3是异构共享存储多处理机系统的示意图;
图4是本发明的异构共享存储多处理机系统的操作系统的工作方法的流程图;
图5是实施例中主核心的结构图;
图6是实施例中从核心的结构图;
图7是远程过程调用数据流的示意图;
图8是进程全局关系树示意图;
图9是进程执行过程流程的示意图;
图10是全局IPC管理统一架构示意图;
图11I/O客户端与I/O服务器的交互示意图。
具体实施方式
下面结合附图对本发明的方法做进一步的说明。
异构共享存储多处理机系统的一个处理器同I/O设备连接,同I/O设备连接的处理器上运行主核心,每个不同I/O设备连接的处理器上运行一个对应的从核心。
本发明的异构共享存储多处理机系统的操作系统的工作方法流程如图4所示。
步骤S100,主核心接收到应用程序,根据应用程序的目标指令集,以及主核心和各从核心中的当前负载量,从主核心和多个从核心中选择一个核心为应用程序的目标核心。
步骤S200,如果被选的目标核心为从核心,则被选的从核心通过主核心加载所述应用程序,并运行所述应用程序。
步骤S300,如果被选的目标核心为主核心,则被选的主核心运行所述应用程序。
主核心运行所述应用程序进一步为,主核心的本地CPU管理模块对应用程序进行对应的进程调度和上下文切换操作,并且主核心的本地内存管理模块对运行时应用的内存进行分配和回收。
在一具体实施方式中,步骤S200中从核心加载应用程序时,进一步如下所述。
步骤S211,从核心的全局进程管理模块调用I/O客户端模块发出请求;
步骤S212,从核心的远程过程调用模块应用远程过程调用通过共享数据通路将所述请求发送给主核心的I/O服务器模块。
步骤S213,主核心的I/O服务器模块调用I/O设备管理模块,I/O设备管理模块从磁盘中读出所述应用程序的映像文件。
步骤S214,主核心的远程过程调用模块通过共享数据通路将映像文件发送给从核心的I/O客户端模块,从核心的全局进程管理模块对映像文件进行加载。
在一具体实施方式中,所述步骤S200中运行应用程序进一步如下所述。
步骤S221,从核心的本地CPU管理模块对应用程序进行对应的进程调度和上下文切换操作,并且从核心的本地内存管理模块对运行时应用的内存进行分配和回收。
在一具体实施方式中,所述步骤S200中还包括,
步骤S230,在应用程序运行所需内存超过从核心提供的本地内存时,从核心的全局内存管理模块向其他从核心租借内存,并在使用完成后归还租借的内存。
在不同的从核心上运行的不同的应用进程对内存资源的需求不尽相同,往往会造成某些从核心上内存资源吃紧,而另一些从核心上内存资源比较空闲。为了提高内存资源的利用率,当某一个从核心上有空闲的物理内存时,可以将其租借给其它的、对内存需求量较大而该核心本地内存又无法满足的从核心。
一实施例中,应用程序运行所需内存超过从核心提供的本地内存时,从核心的全局内存管理模块向主核心的全局内存管理模块申请租借空闲内存,主核心的全局内存管理模块记录了各个从核心的内存使用情况,从中选择满足申请要求的从核心,指示申请的从核心向选择的从核心租借内存,并在使用完成后归还租借的内存。
另一实施例中,应用程序运行所需内存超过从核心提供的本地内存时,从核心的全局内存管理模块向其他从核心的全局内存管理模块申请租借空闲内存,从核心的全局内存管理模块根据自身的内存使用情况回复申请的从核心是否接受申请,所述申请的从核心从接受申请的从核心中选择一个从核心租借内存,并在使用完成后归还租借的内存。
在一具体实施方式中,所述步骤S200还包括如下步骤。
步骤S240,在应用程序由多个进程/线程构成,并且进程/线程间需要进行通信时,或者应用程序需要同其他应用程序的进程通信时,从核心的全局IPC管理模块与主核心的全局IPC管理模块一同为应用程序提供进程间通信服务。
在一具体实施方式中,所述步骤S100进一步如下所述。
步骤S110,主核心的全局进程管理模块在主核心接收到应用程序时,选择同应用程序的目标指令集兼容,并且负载量最少的核心为应用程序的目标核心。
在一具体实施方式中,所述步骤S100进一步如下所述。
步骤S110’,主核心的全局进程管理模块在主核心接收到应用程序时,判断主核心是否同应用程序的目标指令集兼容并且主核心的负载量没有超过预设值;如果是,则主核心为应用程序的目标核心,否则,从多个从核心中选择同应用程序的目标指令集兼容,并且负载量最少的从核心为应用程序的目标核心。
在一具体实施方式中,所述步骤S100还包括:
步骤S120,主核心对异构共享存储多处理机系统的全局进程统一编号,维护全局进程树,全局进程树记录异构共享存储多处理机系统中所有进程的信息。
所述步骤S200中从核心的全局进程管理模块对映像文件进行加载进一步为,
步骤S2141,从核心在加载时,从核心的全局进程管理模块对应于所述应用程序创建进程,并向主核心的全局进程管理模块维护的全局进程树进行注册。
所述步骤200还包括,
步骤S250,从核心执行完应用程序后,向主核心的全局进程管理模块维护的全局进程树进行注销。
在具体实施方式中,所述步骤S200在加载所述应用程序前还包括如下步骤。
步骤S261,从核心的全局进程管理模块判断当前核心的指令集类型是否同应用程序的目标指令集类型兼容,并且当前核心的负载是否没有超过预设值,如果是,则进行所述的加载应用程序,否则执行步骤262。
步骤S262,从核心的全局进程管理模块通过从核心和主核心的远程过程调用模块到主核心查询目标核心,选择除所述从核心以外,同应用程序的目标指令集兼容,并且负载量最少的核心为应用程序的目标核心;并将进程迁移到目标核心。
步骤S263,目标核心的本地CPU管理模块运行所述应用程序的进程,目标核心的本地内存管理模块对运行时应用的内存进行分配和回收。
本发明的异构共享存储多处理机系统的操作系统如下所述。异构共享存储多处理机系统的一个处理器同I/O设备连接。
操作系统包括主核心和从核心,主核心运行于同I/O设备连接的处理器上,从核心运行于每个不与I/O设备连接的处理器上。
主核心,用于接收到应用程序,根据应用程序的目标指令集,以及主核心和各从核心中的当前负载量,从主核心和多个从核心中选择一个核心为应用程序的目标核心;在为被选的目标核心时,运行所述应用程序。
从核心,用于在为被选的目标核心时,通过主核心加载所述应用程序,并运行所述应用程序。
在一优选实施方式中,从核心加载应用程序的操作如下所述。
从核心进一步包括:全局进程管理模块、I/O客户端模块、远程过程调用模块;主核心进一步包括:I/O服务器模块、I/O设备管理模块、远程过程调用模块。
在从核心加载应用程序时进行如下操作。
从核心的全局进程管理模块,用于调用I/O客户端模块发出请求。
从核心的远程过程调用模块,用于应用远程过程调用通过共享数据通路将所述请求发送给主核心的I/O服务器模块。
主核心的I/O服务器模块,用于调用I/O设备管理模块。
主核心的I/O设备管理模块,用于从磁盘中读出所述应用程序的映像文件。
主核心的远程过程调用模块,用于通过共享数据通路将映像文件发送给从核心的I/O客户端模块。
从核心的全局进程管理模块,用于对映像文件进行加载。
在进一步的优选实施方式中,从核心还包括本地CPU管理模块和本地内存管理模块,从核心运行应用程序的操作如下所述。
从核心的本地CPU管理模块,用于对应用程序进行对应的进程调度和上下文切换操作。
从核心的本地内存管理模块,用于对运行时应用的内存进行分配和回收。
在一优选实施方式中,主核心运行进一步包括本地CPU管理模块和本地内存管理模块。主核心运行应用程序的操作如下所述。
主核心的本地CPU管理模块,用于对应用程序进行对应的进程调度和上下文切换操作。
主核心的本地内存管理模块,用于对运行时应用的内存进行分配和回收。
在一优选实施方式中,主核心还包括全局进程管理模块,实现目标核心的选择。
具体实施方式一
主核心的全局进程管理模块,用于在主核心接收到应用程序时,选择同应用程序的目标指令集兼容,并且负载量最少的核心为应用程序的目标核心。
具体实施方式二
主核心的全局进程管理模块,用于在主核心接收到应用程序时,判断主核心是否同应用程序的目标指令集兼容并且主核心的负载量没有超过预设值;如果是,则主核心为应用程序的目标核心,否则,从多个从核心中选择同应用程序的目标指令集兼容,并且负载量最少的从核心为应用程序的目标核心。
在进一步优选实施方式中,从核心被选为目标核心后,还进行确认过程。
从核心的全局进程管理模块还用于在加载所述应用程序前,判断当前核心的指令集类型是否同应用程序的目标指令集类型兼容,并且当前核心的负载是否没有超过预设值,如果是,则进行所述的加载应用程序,否则通过从核心和主核心的远程过程调用模块到主核心查询目标核心,选择除所述从核心以外,同应用程序的目标指令集兼容,并且负载量最少的核心为应用程序的目标核心;并将进程迁移到目标核心。
目标核心的本地CPU管理模块,用于运行所述应用程序的进程。
目标核心的本地内存管理模块,用于对运行时应用的内存进行分配和回收。
在一优选实施方式中,进行进程的全局管理。
主核心的全局进程管理模块还用于对异构共享存储多处理机系统的全局进程统一编号,维护全局进程树,全局进程树记录异构共享存储多处理机系统中所有进程的信息。
从核心的全局进程管理模块还用于在对映像文件进行加载时,对应于所述应用程序创建进程,并向主核心的全局进程管理模块维护的全局进程树进行注册;在从核心执行完应用程序后,向主核心的全局进程管理模块维护的全局进程树进行注销。
在一优选实施方式中从核心还包括全局内存管理模块,以在内存不足时,从其他核心调用内存使用。
从核心的全局内存管理模块,用于在应用程序运行所需内存超过从核心提供的本地内存时,向其他从核心租借内存,并在使用完成后归还租借的内存。
进一步的,所述主核心还包括全局内存管理模块。
从核心的全局内存管理模块进一步用于在应用程序运行所需内存超过从核心提供的本地内存时,向主核心的全局内存管理模块申请租借空闲内存。
主核心的全局内存管理模块,用于记录了各个从核心的内存使用情况,从中选择满足申请要求的从核心,指示申请的从核心向选择的从核心租借内存,并在使用完成后归还租借的内存。
在一优选实施方式中,从核心还包括全局IPC管理模块,主核心还包括全局IPC管理模块。
从核心的全局IPC管理模块与主核心的全局IPC管理模块相互交互,用于在应用程序由多个进程/线程构成,并且进程/线程间需要进行通信时,或者应用程序需要同其他应用程序的进程通信时,为应用程序提供进程间通信服务。
本发明的实施例如下所述。
多核心单一映像操作系统由多个核心组成,其中包括一个主核心,例如运行于X8664架构的处理器,和多个从核心,例如运行于龙芯3A处理器。
用户通过登录到主核心向操作系统提交任务,所有核心相互协作,向用户提供单一映像的操作系统管理接口与应用编程接口。
其中,主核心的结构如图5所示。包括I/O服务器模块、全局进程管理模块、全局内存管理模块、全局IPC管理模块、远程过程调用模块、I/O设备管理模块、本地CPU管理模块、本地内存管理模块。从核心的结构如图6所示,包括I/O客户端模块、全局进程管理模块、全局内存管理模块、全局IPC管理模块、远程过程调用模块、本地CPU管理模块、本地内存管理模块。
CPU和内存是保证计算机系统运行的硬件,因此,无论是主核心还是从核心,本地CPU管理模块负责CPU的管理和驱动,为全局进程管理提供接口;本地内存管理负责本地内存资源的分配和释放等,同时为全局内存管理提供接口。
本地CPU管理模块,用于管理本地处理器资源,负责本地处理器上的进程调度、进程切换、负载平衡,该模块根据其所运行的处理器体系结构不同而实现上有所不同。
本地内存管理模块,用于管理本地虚拟内存和物理内存资源,负责本地内存的分配和回收,该模块根据其所运行的处理器体系结构不同而实现上有所不同。
I/O设备管理模块,用于初始化和驱动I/O设备,为I/O服务器提供编程接口,该模块仅存在于主核心。
远程过程调用模块,用于提供异构的多核心间的通信功能,负责通信过程的管理、不同体系结构间的数据格式转换工作。
I/O客户端模块,该模块仅存在于从核心。从核心不管理I/O设备,也不直接操作I/O设备,所有对I/O设备的操作都由主核心的I/O服务器代理其完成
I/O服务器模块,该模块仅存在于主核心。I/O服务器代理各个从核心完成各种I/O操作,如磁盘访问、网络数据传输、终端访问等。
全局进程管理模块,各个核心上的全局进程管理模块相互协调,根据应用程序的二进制格式和各个核心的负载情况,将其加载到与应用程序的目标指令集兼容的且负载最轻的核心上去。另外,为了实现动态的负载均衡,全局进程管理模块还负责监控各个核心的负载情况,在相同体系结构的核心间进行进程迁移操作,以实现负载平衡。
全局内存管理模块,各个核心上的全局内存管理模块相互协调,在各个核心间协调内存资源的使用,以充分利用全系统的内存资源和实现内存资源的负载均衡。
全局IPC管理模块,各个核心上的全局IPC(Inter ProcessCommunication,进程间通信)管理模块相互协调,为应用程序提供与单机操作系统完全相同的进程间通信功能,如Unix类操作系统中提供的信号、管道、消息、信号量、共享内存和套接字等。
全局进程管理模块的具体运行如下所述。
主核心的全局进程管理模块,用于在主核心接收到应用程序时,选择同应用程序的目标指令集兼容,并且负载量最少的从核心为应用程序的目标核心。
从核心的全局进程管理模块,用于在所在从核心被选择时,调用I/O客户端模块。并在所在核心被选择为目标核心时,进行认。
全局进程管理模块的处理包括全局进程关系树、进程创建、进程消亡、进程执行和进程迁移。
全局进程关系树位于主核心,记录异构共享存储多处理机系统中所有进程的基本信息:基本信息包括,进程所在核心编号、进程号、进程的父子和兄弟关系、进程迁移相关信息,如图8所示。
异构共享存储多处理机系统中的进程全局统一编号,因此在系统中进程号与进程是一一对应的关系。进程的父子、兄弟关系也可以跨越核心边界,并且对应用程序透明。全局进程关系树是全局进程管理模块的核心数据结构,是进程创建、消亡,进程迁移以及全局进程间通信的基础。
从核心在加载时,从核心的全局进程管理模块对应于所述应用程序创建进程,并向主核心的全局进程管理模块维护的全局进程树进行注册。
进程创建流程如下所述。
从核心全局进程管理模块通过远程过程调用模块向主核心申请新的进程ID;创建进程管理结构,并从父进程继承进程属性,如根文件系统、当前工作目录、打开文件描述符表等信息;通过远程过程调用模块向主核心全局进程关系树注册,为进程建立各种关系;将新创建的进程放到进程调度队列,等待执行。
从核心执行完应用程序后,向主核心的全局进程管理模块维护的全局进程树进行注销。
进程注销的处理流程如下所述。
从核心全局进程管理模块通过远程过程调用模块向主核心注销,从全局进程关系树中删除,并解除各种关系;释放内核数据结构,关闭已打开文件;向父进程发送信号,等待父进程回收。
从核心的全局进程管理模块在所述从核心被选择目标核心后,判断当前核心的指令集类型是否同应用程序的目标指令集类型兼容,并且当前核心的负载是否没有超过预设值,如果是,则进行所述的加载应用程序。否则,从核心的全局进程管理模块通过从核心和主核心的远程过程调用模块到主核心查询目标核心,选择除所述从核心以外,同应用程序的目标指令集兼容,并且负载量最少的核心为应用程序的目标核心;并将进程迁移到目标核心。目标核心的本地CPU管理模块运行所述应用程序的进程,目标核心的本地内存管理模块对运行时应用的内存进行分配和回收。
上述全局进程管理模块的进程执行的处理流程如图9所示。
步骤S901,从核心全局进程管理模块进行进程执行的前期准备工作。
包括创建进程的用户空间,复位信号屏蔽位图,关闭已打开文件。
步骤S902,解析可执行文件的目标指令集类型。
可执行文件(如ELF格式的可执行文件)的头部中包含了该可执行文件的目标指令集类型,因此可以通过读取该可执行文件的头部,解析其目标指令集类型,如示例系统中有两种目标指令集类型:X8664或龙芯。
步骤S903,判断当前核心的指令集类型与该进程所执行的可执行文件的目标指令集类型是否相匹配,如果是,则执行步骤S904,否则执行步骤S906。
步骤S904,判断当前核心的负载是否超过预设值,如果是,则执行步骤S905,本地运行该进程;否则执行步骤S906。
步骤S905,开始执行。
步骤S906,通过远程过程调用(RPC)到主核心查询目标核心。
首先查询与目标指令集类型相匹配的核心,查询在指令集类型相匹配的核心中负载最轻的核心作为进程运行的目标核心。
步骤S907,将进程迁移到目标核心。
进程迁移可采用通用的技术手段,将进程的映像、状态、地址空间、通信状态等传输到目标核心,并在目标核心上根据这些信息恢复重建该进程。进程迁移的描述请见进程迁移部分。
步骤S908,目标核心的本地CPU管理模块调度该进程执行,将控制权交给该进程,至此,进程执行过程处理结束。
进程迁移是进程执行和动态负载平衡的基础。进程迁移包括进程信息的迁移、全局进程关系树的更新。
进程信息的迁移,包括进程状态信息、进程地址空间、进程打开文件列表、进程通信状态。进程迁移的过程如下所述,其中,源核心是指进程当前所在的核心,目标核心是指进程欲迁往的核心。
具体迁移过程如下所述。
步骤S911,在源核心将进程信息按照一定的格式存储到一块内存缓冲区中,为了加速数据传输,还可以利用诸如bzip2等工具将该缓冲区中的信息进行压缩。
步骤S912,将内存缓冲区中的信息通过远程过程调用传递到目标核心。
步骤S913,在目标核心,将接收到的信息按照与源核心预先协定好的格式解析出来,并据此信息恢复、重建进程。
全局进程关系树的更新,由于进程迁移后,进程所在的核心编号也随之发生变化,因此需要更新进程所在的核心编号为该进程最新的核心编号,以使得后续的进程间通信、进程状态的维护操作能够正确定位进程。
本发明所用远程过程调用为现有技术。
远程过程调用(Remote Procedure Call)模块的处理包括数据格式转换、消息封装、RPC消息发送线程、RPC消息接收线程、RPC服务代理线程、客户端存根、RPC服务函数,一次远程过程调用的数据流图如图7所示。其中,剪头指示了数据的流向,圆圈代表各种处理线程,矩形框代表具体执行的处理操作,立方体代表消息接收缓冲区。
远程过程调用模块的工作流程如下所述。
步骤S701,当客户端进程需要调用服务器端的服务函数时,客户端进程调用rpc_call()接口进入RPC过程。
步骤S702,客户端进程将请求数据进行格式转换,转换成独立于处理器指令集体系结构的数据表示格式,如SUNRPC中采用的外部数据表示格式(XDR),以使得数据可以在异构处理器环境下被正确地解析。
步骤S703,客户端进程将请求数据封装成RPC请求包,生成RPC客户端存根后,将该RPC请求提交给RPC消息发送线程,客户端进程进入睡眠等待状态。
步骤S704,RPC请求发送线程将RPC请求包通过共享数据通路发送给服务器端的RPC消息接收缓冲区。
步骤S705,RPC请求到达服务器端会激发中断给服务器端的处理器,进而服务器端的RPC请求接收线程接收此RPC请求包;RPC请求接收线程将RPC请求包转换为本地可识别的数据格式,并提交给RPC服务代理线程。
步骤S706,RPC服务代理线程根据请求包中的命令字段,调用相应的RPC服务函数。
步骤S707,RPC服务函数执行完成后,调用应答接口rpc_return()进入RPC过程;RPC服务函数将执行结果与返回数据进行格式转换;RPC服务函数将执行结果与返回数据封装成RPC应答包,并提交给RPC消息发送线程。
步骤S708,RPC消息发送线程通过共享的数据通路将RPC应答包发送到客户端的接收缓冲区。
步骤S709,RPC应答包到达客户端后,由中断通知RPC消息接收线程以接收消息;RPC消息接收线程将接收到的应答包进行格式转换,并查找客户端RPC存根,将RPC应答包提交给客户端进程并将客户端进程唤醒。
步骤S710,客户端进程提取出执行结果和数据后,从rpc_call()中返回,继续执行。
全局IPC管理模块,用于在应用程序由多个进程/线程构成,并且进程/线程间需要进行通信时,或者应用程序需要同其他应用程序的进程通信时,为应用程序提供进程间通信服务。
全局IPC管理模块定义了一种统一的架构,在此架构基础之上可以实现各种Unix类操作系统支持的进程间通信机制,包括信号(Signal)、管道(Pipe)、消息队列(Message Queue)、信号量(Semaphore)、和套接字(Socket)。
其他通信与管道所采用的是相同实现架构,以管道为例是想说明这个统一的IPC实现架构。给出进程间利用管道机制通信的流程。现有技术中,Unix类系统上进程通过管道通信的过程如下所述。
通信一方,进程1,使用管道的名字打开管道;通信的另一方,进程2,使用管道的名字打开管道;进程1向管道中写入数据;进程2从管道中读出数据;通信结束后,进程1和进程2分别关闭管道。
本发明中管道通信过程的实现如图10所示。管道是一种UNIX进程间通信方式,本发明的实施例中遵循了UNIX管道的接口(API),但采用的是不同的实现方式,下面的步骤就是在本发明中独有的管道通信方式的示例工作流程。
步骤S1001,通信的一方(进程1)使用管道的名字到主核心查询该管道名字对应的全局IPC对象ID。如果存在,则说明此前已经由通信的另一方将此管道打开了,返回该管道的全局IPC对象ID,并根据通信另一方的进程号查找全局进程关系树,以确定通信另一方进程所在的核心编号,将此核心编号一并返回给进程1;否则,为该管道分配一个全局IPC对象,将进程1的进程ID记录在此对象中,并返回其ID。
在此例中,进程1是第一个打开管道的进程,因此,主核心为其分配一个全局IPC对象,并返回其ID,此后进程1则处于阻塞等待状态,等待进程2与其建立数据通路。
步骤S1002,通信的另一方(进程2)使用管道的名字到主核心查询该管道名字对应的全局IPC对象ID,此时该对象已存在。利用对象中记录的进程1的进程ID查询全局进程关系树,获得进程1所在的核心编号,连同对象ID一并返回给进程2。
步骤S1003,进程2通过远程过程调用模块向进程1请求建立数据通路。所谓数据通路,是指属于管道读者一方的通信接收缓冲区。二者协商成功后,在管道读者一方建立通信接收缓冲区。
步骤S1004,管道的读者一方进程2在该缓冲区等待数据。
步骤S1005,管道的写者一方进程1通过远程过程调用向进程2的通信接收缓冲区发送数据;
步骤S1006,进程1从通信接收缓冲区中读取数据。
步骤S1007,通信结束后,进程1和进程2分别向主核心的全局IPC名字空间注销,该管道对应的IPC对象被删除,其ID被回收。
I/O客户端模块及I/O服务器模块
I/O客户端模块运行于从核心(龙芯核心),I/O服务器模块运行于主核心(X8664核心),通信基于远程过程调用模块。下面以文件I/O为例,介绍I/O客户端和服务器的原理和工作流程。
如图11所示,从核心只是简单地将对磁盘的I/O请求通过远程过程调用模块转发到主核心,由主核心的RPC服务代理线程执行相应的服务函数,执行完成后,将I/O操作的结果和数据再反馈给从核心。
全局内存管理模块
全局内存资源管理采用基于“借用规则”的内存调度策略。每个核心的全局内存管理模块包括内存出借模块和内存借入模块。当核心所在节点内存有一定余量时,该核心充当内存出借方(Lender);当核心所在节点内存吃紧时,该核心充当内存借入方(Borrower)。
下面详细描述内存出租方和内存借入方的工作流程。
内存出借方(Lender)
在接收到其它节点的内存租借请求时,实时地获得本地内存使用情况的统计数据,决定是否可以将本地内存借给其它节点使用;
如被该Borrower选中,则决定将哪部分内存出借给对方使用,一旦内存被借出,该内存则不可被本地核心所使用;
当Borrower主动归还内存时,则将该内存区域回收,并更新本地内存的使用情况,此后该内存区域可以被本地核心所使用;
当本地内存吃紧时,需要强制回收借出的内存,如果本地内存已经借给了多个Borrower,还需要决定收回某个/些Borrower借用的内存,并通知相应的Borrower将其借用的内存收回或迁移到其它节点;
内存借入方(Borrower)
向所有其它核心发送广播消息,询问其它各个核心的内存使用情况;
从应答中选择出最佳的Lender(如根据内存余量最多原则),向该Lender申请内存,并获得该内存区的描述符(如物理地址);
将本地的虚拟内存映射到该Lender所借出的内存区,或将本地需要交换出的数据交换到Lender提供的内存区(根据远程内存访问的开销而定);
此后,当需要访问存储在Lender的内存区的数据时,则或者通过远程内存读写,或者将该数据交换回本地再读写(根据远程内存读写的开销而定);
借用的内存区使用完以后主动归还,需要将数据丢弃或者移动回本地,并通知Lender回收内存;
当Lender的内存发生吃紧,需要强制回收时,Borrower需要再次查找能够出借内存的节点,如果找到,则将数据迁移到该处,否则,将数据迁移到磁盘上的交换分区。
本领域的技术人员在不脱离权利要求书确定的本发明的精神和范围的条件下,还可以对以上内容进行各种各样的修改。因此本发明的范围并不仅限于以上的说明,而是由权利要求书的范围来确定的。

Claims (22)

1.一种异构共享存储多处理机系统的操作系统的工作方法,异构共享存储多处理机系统的一个处理器同I/O设备连接,其特征在于,同I/O设备连接的处理器上运行主核心,每个不与I/O设备连接的处理器上运行一个从核心,所述方法包括:
步骤1,主核心接收到应用程序,根据应用程序的目标指令集,以及主核心和各从核心中的当前负载量,从主核心和多个从核心中选择一个核心为应用程序的目标核心;
步骤2,如果被选的目标核心为从核心,则被选的从核心通过主核心加载所述应用程序,并运行所述应用程序;
步骤3,如果被选的目标核心为主核心,则被选的主核心运行所述应用程序。
2.如权利要求1所述的异构共享存储多处理机系统的操作系统的工作方法,其特征在于,
所述步骤2中从核心加载应用程序时,进一步为,
步骤21,从核心的全局进程管理模块调用I/O客户端模块发出请求;
步骤22,从核心的远程过程调用模块应用远程过程调用通过共享数据通路将所述请求发送给主核心的I/O服务器模块;
步骤23,主核心的I/O服务器模块调用I/O设备管理模块,I/O设备管理模块从磁盘中读出所述应用程序的映像文件;
步骤24,主核心的远程过程调用模块通过共享数据通路将映像文件发送给从核心的I/O客户端模块,从核心的全局进程管理模块对映像文件进行加载。
3.如权利要求1所述的异构共享存储多处理机系统的操作系统的工作方法,其特征在于,
所述步骤2中运行应用程序进一步为,
步骤31,从核心的本地CPU管理模块对应用程序进行对应的进程调度和上下文切换操作,并且从核心的本地内存管理模块对运行时应用的内存进行分配和回收。
4.如权利要求1所述的异构共享存储多处理机系统的操作系统的工作方法,其特征在于,
所述步骤2中还包括,
步骤41,在应用程序运行所需内存超过从核心提供的本地内存时,从核心的全局内存管理模块向其他从核心租借内存,并在使用完成后归还租借的内存。
5.如权利要求1所述的异构共享存储多处理机系统的操作系统的工作方法,其特征在于,
所述步骤2还包括,
步骤51,在应用程序由多个进程/线程构成,并且进程/线程间需要进行通信时,或者应用程序需要同其他应用程序的进程通信时,从核心的全局IPC管理模块与主核心的全局IPC管理模块一同为应用程序提供进程间通信服务。
6.如权利要求1所述的异构共享存储多处理机系统的操作系统的工作方法,其特征在于,所述步骤1进一步为,
步骤61,主核心的全局进程管理模块在主核心接收到应用程序时,选择同应用程序的目标指令集兼容,并且负载量最少的核心为应用程序的目标核心。
7.如权利要求1所述的异构共享存储多处理机系统的操作系统的工作方法,其特征在于,所述步骤1进一步为:
步骤71,主核心的全局进程管理模块在主核心接收到应用程序时,判断主核心是否同应用程序的目标指令集兼容并且主核心的负载量没有超过预设值;如果是,则主核心为应用程序的目标核心,否则,从多个从核心中选择同应用程序的目标指令集兼容,并且负载量最少的从核心为应用程序的目标核心。
8.如权利要求2所述的异构共享存储多处理机系统的操作系统的工作方法,其特征在于,
所述步骤1还包括:
步骤81,主核心对异构共享存储多处理机系统的全局进程统一编号,维护全局进程树,全局进程树记录异构共享存储多处理机系统中所有进程的信息;
所述步骤2中从核心的全局进程管理模块对映像文件进行加载进一步为,
步骤82,从核心在加载时,从核心的全局进程管理模块对应于所述应用程序创建进程,并向主核心的全局进程管理模块维护的全局进程树进行注册;
所述步骤2还包括,
步骤83,从核心执行完应用程序后,向主核心的全局进程管理模块维护的全局进程树进行注销。
9.如权利要求1所述的异构共享存储多处理机系统的操作系统的工作方法,其特征在于,主核心运行所述应用程序进一步为,
步骤91,主核心的本地CPU管理模块对应用程序进行对应的进程调度和上下文切换操作,并且主核心的本地内存管理模块对运行时应用的内存进行分配和回收。
10.如权利要求3所述的异构共享存储多处理机系统的操作系统的工作方法,其特征在于,所述步骤2在加载所述应用程序前还包括:
步骤101,从核心的全局进程管理模块判断当前核心的指令集类型是否同应用程序的目标指令集类型兼容,并且当前核心的负载是否没有超过预设值,如果是,则进行所述的加载应用程序,否则执行步骤102;
步骤S102,从核心的全局进程管理模块通过从核心和主核心的远程过程调用模块到主核心查询目标核心,选择除所述从核心以外,同应用程序的目标指令集兼容,并且负载量最少的核心为应用程序的目标核心;并将进程迁移到目标核心;
步骤103,目标核心的本地CPU管理模块运行所述应用程序的进程,目标核心的本地内存管理模块对运行时应用的内存进行分配和回收。
11.如权利要求4所述的异构共享存储多处理机系统的操作系统的工作方法,其特征在于,
所述步骤41进一步为,
步骤111,在应用程序运行所需内存超过从核心提供的本地内存时,从核心的全局内存管理模块向主核心的全局内存管理模块申请租借空闲内存,主核心的全局内存管理模块记录了各个从核心的内存使用情况,从中选择满足申请要求的从核心,指示申请的从核心向选择的从核心租借内存,并在使用完成后归还租借的内存。
12.一种异构共享存储多处理机系统的操作系统,异构共享存储多处理机系统的一个处理器同I/O设备连接,其特征在于,
所述操作系统包括主核心和从核心,主核心运行于同I/O设备连接的处理器上,从核心运行于每个不与I/O设备连接的处理器上,
所述主核心,用于接收到应用程序,根据应用程序的目标指令集,以及主核心和各从核心中的当前负载量,从主核心和多个从核心中选择一个核心为应用程序的目标核心;在为被选的目标核心时,运行所述应用程序;
所述从核心,用于在为被选的目标核心时,通过主核心加载所述应用程序,并运行所述应用程序。
13.如权利要求12所述的异构共享存储多处理机系统的操作系统,其特征在于,
从核心进一步包括:全局进程管理模块、I/O客户端模块、远程过程调用模块;
主核心进一步包括:I/O服务器模块、I/O设备管理模块、远程过程调用模块;
在从核心加载应用程序时,
从核心的全局进程管理模块,用于调用I/O客户端模块发出请求;
从核心的远程过程调用模块,用于应用远程过程调用通过共享数据通路将所述请求发送给主核心的I/O服务器模块;
主核心的I/O服务器模块,用于调用I/O设备管理模块;
主核心的I/O设备管理模块,用于从磁盘中读出所述应用程序的映像文件;
主核心的远程过程调用模块,用于通过共享数据通路将映像文件发送给从核心的I/O客户端模块;
从核心的全局进程管理模块,用于对映像文件进行加载。
14.如权利要求13所述的异构共享存储多处理机系统的操作系统,其特征在于,
从核心还包括本地CPU管理模块和本地内存管理模块,
所述从核心运行应用程序时,
从核心的本地CPU管理模块,用于对应用程序进行对应的进程调度和上下文切换操作;
从核心的本地内存管理模块,用于对运行时应用的内存进行分配和回收。
15.如权利要求12所述的异构共享存储多处理机系统的操作系统,其特征在于,
从核心还包括全局内存管理模块,
从核心的全局内存管理模块,用于在应用程序运行所需内存超过从核心提供的本地内存时,向其他从核心租借内存,并在使用完成后归还租借的内存。
16.如权利要求12所述的异构共享存储多处理机系统的操作系统,其特征在于,
从核心还包括全局IPC管理模块,
主核心还包括全局IPC管理模块,
从核心的全局IPC管理模块与主核心的全局IPC管理模块相互交互,用于在应用程序由多个进程/线程构成,并且进程/线程间需要进行通信时,或者应用程序需要同其他应用程序的进程通信时,为应用程序提供进程间通信服务。
17.如权利要求13所述的异构共享存储多处理机系统的操作系统,其特征在于,
主核心还包括全局进程管理模块,
主核心的全局进程管理模块,用于在主核心接收到应用程序时,选择同应用程序的目标指令集兼容,并且负载量最少的核心为应用程序的目标核心。
18.如权利要求13所述的异构共享存储多处理机系统的操作系统,其特征在于,主核心还包括全局进程管理模块,
主核心的全局进程管理模块,用于在主核心接收到应用程序时,判断主核心是否同应用程序的目标指令集兼容并且主核心的负载量没有超过预设值;如果是,则主核心为应用程序的目标核心,否则,从多个从核心中选择同应用程序的目标指令集兼容,并且负载量最少的从核心为应用程序的目标核心。
19.如权利要求13所述的异构共享存储多处理机系统的操作系统,其特征在于,
主核心还包括全局进程管理模块,
主核心的全局进程管理模块,用于对异构共享存储多处理机系统的全局进程统一编号,维护全局进程树,全局进程树记录异构共享存储多处理机系统中所有进程的信息;
从核心的全局进程管理模块还用于在对映像文件进行加载时,对应于所述应用程序创建进程,并向主核心的全局进程管理模块维护的全局进程树进行注册;在从核心执行完应用程序后,向主核心的全局进程管理模块维护的全局进程树进行注销。
20.如权利要求13所述的异构共享存储多处理机系统的操作系统,其特征在于,
主核心运行进一步包括本地CPU管理模块和本地内存管理模块,
主核心的本地CPU管理模块,用于对应用程序进行对应的进程调度和上下文切换操作;
主核心的本地内存管理模块,用于对运行时应用的内存进行分配和回收。
21.如权利要求14所述的异构共享存储多处理机系统的操作系统,其特征在于,
从核心的全局进程管理模块还用于在加载所述应用程序前,判断当前核心的指令集类型是否同应用程序的目标指令集类型兼容,并且当前核心的负载是否没有超过预设值,如果是,则进行所述的加载应用程序,否则通过从核心和主核心的远程过程调用模块到主核心查询目标核心,选择除所述从核心以外,同应用程序的目标指令集兼容,并且负载量最少的核心为应用程序的目标核心;并将进程迁移到目标核心;
目标核心的本地CPU管理模块,用于运行所述应用程序的进程;
目标核心的本地内存管理模块,用于对运行时应用的内存进行分配和回收。
22.如权利要求15所述的异构共享存储多处理机系统的操作系统,其特征在于,
所述主核心还包括全局内存管理模块,
从核心的全局内存管理模块进一步用于,在应用程序运行所需内存超过从核心提供的本地内存时,向主核心的全局内存管理模块申请租借空闲内存;
主核心的全局内存管理模块,用于记录了各个从核心的内存使用情况,从中选择满足申请要求的从核心,指示申请的从核心向选择的从核心租借内存,并在使用完成后归还租借的内存。
CN2010102385922A 2010-07-23 2010-07-23 异构共享存储多处理机系统的操作系统及其工作方法 Active CN101901207B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2010102385922A CN101901207B (zh) 2010-07-23 2010-07-23 异构共享存储多处理机系统的操作系统及其工作方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2010102385922A CN101901207B (zh) 2010-07-23 2010-07-23 异构共享存储多处理机系统的操作系统及其工作方法

Publications (2)

Publication Number Publication Date
CN101901207A true CN101901207A (zh) 2010-12-01
CN101901207B CN101901207B (zh) 2012-03-28

Family

ID=43226750

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2010102385922A Active CN101901207B (zh) 2010-07-23 2010-07-23 异构共享存储多处理机系统的操作系统及其工作方法

Country Status (1)

Country Link
CN (1) CN101901207B (zh)

Cited By (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013086861A1 (zh) * 2011-12-13 2013-06-20 华为技术有限公司 一种多路径访问i/o设备的方法、i/o多路径管理器及系统
CN103207808A (zh) * 2012-01-13 2013-07-17 百度在线网络技术(北京)有限公司 多核系统中的处理方法及装置
CN103294540A (zh) * 2013-05-17 2013-09-11 北京航空航天大学 一种通过至强融核协处理器提升Erlang虚拟机性能的方法
CN103347053A (zh) * 2013-06-19 2013-10-09 成都市欧冠信息技术有限责任公司 基于管道技术的远程协同处理过程调用方法
CN103493037A (zh) * 2011-03-16 2014-01-01 迈思肯系统公司 用于机器视觉应用的多核心分布式处理
CN103677978A (zh) * 2013-12-30 2014-03-26 Tcl集团股份有限公司 一种对进程进行保护的方法和电子设备
CN103995739A (zh) * 2014-04-24 2014-08-20 深圳中微电科技有限公司 共享内存映射页的处理器系统产生进程号的方法及装置
CN104102535A (zh) * 2013-04-01 2014-10-15 华为技术有限公司 进程迁移方法和可迁移操作系统
WO2015188330A1 (zh) * 2014-06-11 2015-12-17 华为技术有限公司 多内核操作系统进程处理方法及装置
WO2015188648A1 (zh) * 2014-06-09 2015-12-17 华为技术有限公司 一种内存共享方法、异构硬件、主机及异构系统
CN105242872A (zh) * 2014-06-18 2016-01-13 华中科技大学 一种面向虚拟集群的共享存储系统
CN108536538A (zh) * 2018-03-13 2018-09-14 Oppo广东移动通信有限公司 处理器核心调度方法、装置、终端及存储介质
CN110262900A (zh) * 2019-06-20 2019-09-20 山东省计算中心(国家超级计算济南中心) 一种基于申威众核处理器的主核与核组之间通信锁同步运行加速方法
WO2020062086A1 (zh) * 2018-09-28 2020-04-02 华为技术有限公司 选择处理器的方法和装置
CN111078301A (zh) * 2018-10-22 2020-04-28 致茂电子(苏州)有限公司 一种多核心运算装置及其运作方法
WO2020083019A1 (zh) * 2018-10-23 2020-04-30 百富计算机技术(深圳)有限公司 一种基于多核处理器的解码方法、终端设备及存储介质
US10701159B2 (en) 2013-12-17 2020-06-30 Huawei Technologies Co., Ltd. Method and apparatus for implementing device sharing
CN112068970A (zh) * 2020-08-10 2020-12-11 珠海全志科技股份有限公司 基于异构多核处理器的rpc实现方法及介质
CN113127069A (zh) * 2019-12-31 2021-07-16 成都鼎桥通信技术有限公司 基于双系统的位置服务管理方法、装置和终端设备
CN113168353A (zh) * 2018-11-30 2021-07-23 微软技术许可有限责任公司 具有共享的基本操作系统的相同类型子系统的并行执行
WO2021218623A1 (zh) * 2020-04-29 2021-11-04 北京希姆计算科技有限公司 一种数据处理装置、芯片和数据处理方法
US11782756B2 (en) 2018-04-20 2023-10-10 Guangdong Oppo Mobile Telecommunications Corp., Ltd. Method and apparatus for scheduling processor core, and storage medium
CN117215992A (zh) * 2023-11-09 2023-12-12 芯原科技(上海)有限公司 异构内核处理器、异构处理器和电源管理方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0645701A2 (en) * 1993-09-28 1995-03-29 Bull HN Information Systems Inc. Emulating the memory functions of a first system on a second system
CN101149728A (zh) * 2007-10-29 2008-03-26 中国科学院计算技术研究所 一种多核处理系统及其管理方法
CN101183315A (zh) * 2007-12-10 2008-05-21 华中科技大学 一种并行多处理器虚拟机系统
CN101639814A (zh) * 2009-08-31 2010-02-03 中国科学院计算技术研究所 面向多核平台和网络化操作系统的输入输出系统及方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0645701A2 (en) * 1993-09-28 1995-03-29 Bull HN Information Systems Inc. Emulating the memory functions of a first system on a second system
CN101149728A (zh) * 2007-10-29 2008-03-26 中国科学院计算技术研究所 一种多核处理系统及其管理方法
CN101183315A (zh) * 2007-12-10 2008-05-21 华中科技大学 一种并行多处理器虚拟机系统
CN101639814A (zh) * 2009-08-31 2010-02-03 中国科学院计算技术研究所 面向多核平台和网络化操作系统的输入输出系统及方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
《光学精密工程》 20071231 童小念等 异构多处理机系统的负载均衡与任务调度 1969-1973 1-22 第15卷, 第12期 2 *

Cited By (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9235455B2 (en) 2011-03-16 2016-01-12 Microscan Systems, Inc. Multi-core distributed processing using shared memory and communication link
CN103493037A (zh) * 2011-03-16 2014-01-01 迈思肯系统公司 用于机器视觉应用的多核心分布式处理
WO2013086861A1 (zh) * 2011-12-13 2013-06-20 华为技术有限公司 一种多路径访问i/o设备的方法、i/o多路径管理器及系统
CN103207808A (zh) * 2012-01-13 2013-07-17 百度在线网络技术(北京)有限公司 多核系统中的处理方法及装置
CN104102535A (zh) * 2013-04-01 2014-10-15 华为技术有限公司 进程迁移方法和可迁移操作系统
CN104102535B (zh) * 2013-04-01 2018-10-02 华为技术有限公司 进程迁移方法和可迁移操作系统
CN103294540A (zh) * 2013-05-17 2013-09-11 北京航空航天大学 一种通过至强融核协处理器提升Erlang虚拟机性能的方法
CN103347053A (zh) * 2013-06-19 2013-10-09 成都市欧冠信息技术有限责任公司 基于管道技术的远程协同处理过程调用方法
US10701159B2 (en) 2013-12-17 2020-06-30 Huawei Technologies Co., Ltd. Method and apparatus for implementing device sharing
CN103677978A (zh) * 2013-12-30 2014-03-26 Tcl集团股份有限公司 一种对进程进行保护的方法和电子设备
CN103677978B (zh) * 2013-12-30 2018-04-10 Tcl集团股份有限公司 一种对进程进行保护的方法和电子设备
CN103995739A (zh) * 2014-04-24 2014-08-20 深圳中微电科技有限公司 共享内存映射页的处理器系统产生进程号的方法及装置
CN103995739B (zh) * 2014-04-24 2017-12-19 深圳中微电科技有限公司 共享内存映射页的处理器系统产生进程号的方法及装置
WO2015188648A1 (zh) * 2014-06-09 2015-12-17 华为技术有限公司 一种内存共享方法、异构硬件、主机及异构系统
CN105224468A (zh) * 2014-06-09 2016-01-06 华为技术有限公司 一种内存共享方法、异构硬件、主机及异构系统
WO2015188330A1 (zh) * 2014-06-11 2015-12-17 华为技术有限公司 多内核操作系统进程处理方法及装置
CN105378674B (zh) * 2014-06-11 2019-10-22 华为技术有限公司 多内核操作系统进程处理方法及装置
CN105378674A (zh) * 2014-06-11 2016-03-02 华为技术有限公司 多内核操作系统进程处理方法及装置
CN105242872A (zh) * 2014-06-18 2016-01-13 华中科技大学 一种面向虚拟集群的共享存储系统
CN105242872B (zh) * 2014-06-18 2018-06-12 华中科技大学 一种面向虚拟集群的共享存储系统
CN108536538A (zh) * 2018-03-13 2018-09-14 Oppo广东移动通信有限公司 处理器核心调度方法、装置、终端及存储介质
US11782756B2 (en) 2018-04-20 2023-10-10 Guangdong Oppo Mobile Telecommunications Corp., Ltd. Method and apparatus for scheduling processor core, and storage medium
CN112292667A (zh) * 2018-09-28 2021-01-29 华为技术有限公司 选择处理器的方法和装置
CN112292667B (zh) * 2018-09-28 2022-04-29 华为技术有限公司 选择处理器的方法和装置
WO2020062086A1 (zh) * 2018-09-28 2020-04-02 华为技术有限公司 选择处理器的方法和装置
CN111078301A (zh) * 2018-10-22 2020-04-28 致茂电子(苏州)有限公司 一种多核心运算装置及其运作方法
CN111078301B (zh) * 2018-10-22 2023-11-21 致茂电子(苏州)有限公司 一种多核心运算装置及其运作方法
WO2020083019A1 (zh) * 2018-10-23 2020-04-30 百富计算机技术(深圳)有限公司 一种基于多核处理器的解码方法、终端设备及存储介质
CN113168353A (zh) * 2018-11-30 2021-07-23 微软技术许可有限责任公司 具有共享的基本操作系统的相同类型子系统的并行执行
CN110262900B (zh) * 2019-06-20 2023-09-29 山东省计算中心(国家超级计算济南中心) 一种基于申威众核处理器的主核与核组之间通信锁同步运行加速方法
CN110262900A (zh) * 2019-06-20 2019-09-20 山东省计算中心(国家超级计算济南中心) 一种基于申威众核处理器的主核与核组之间通信锁同步运行加速方法
CN113127069B (zh) * 2019-12-31 2023-08-22 成都鼎桥通信技术有限公司 基于双系统的位置服务管理方法、装置和终端设备
CN113127069A (zh) * 2019-12-31 2021-07-16 成都鼎桥通信技术有限公司 基于双系统的位置服务管理方法、装置和终端设备
WO2021218623A1 (zh) * 2020-04-29 2021-11-04 北京希姆计算科技有限公司 一种数据处理装置、芯片和数据处理方法
CN112068970A (zh) * 2020-08-10 2020-12-11 珠海全志科技股份有限公司 基于异构多核处理器的rpc实现方法及介质
CN112068970B (zh) * 2020-08-10 2024-04-19 珠海全志科技股份有限公司 基于异构多核处理器的rpc实现方法及介质
CN117215992A (zh) * 2023-11-09 2023-12-12 芯原科技(上海)有限公司 异构内核处理器、异构处理器和电源管理方法
CN117215992B (zh) * 2023-11-09 2024-01-30 芯原科技(上海)有限公司 异构内核处理器、异构处理器和电源管理方法

Also Published As

Publication number Publication date
CN101901207B (zh) 2012-03-28

Similar Documents

Publication Publication Date Title
CN101901207B (zh) 异构共享存储多处理机系统的操作系统及其工作方法
CN100504789C (zh) 控制虚拟机的方法
CN101268445B (zh) 用于向多核环境中的应用程序提供实时线程服务的方法、装置
US10509686B2 (en) Distributable computational units in a continuous computing fabric environment
JP2779587B2 (ja) コンピュータシステムに用いる名前スペースの一部分を別の名前スペースの一部分として利用可能にするための装置及びその方法
JP2644780B2 (ja) 処理依頼機能を持つ並列計算機
CN101163133B (zh) 一种多机虚拟环境下实现资源共享的通信系统及通信方法
KR101517258B1 (ko) 크로스-시스템의 프록시-기반 태스크 오프로딩을 위한 장치, 시스템 및 방법
WO2016169530A2 (zh) 面向服务的模块化系统体系架构
CN101013415A (zh) 用于多处理器阵列的线程感知分布式软件系统
JPH05233570A (ja) 異オペレーティング・システム間分散データ処理システム
CN103780655A (zh) 一种消息传递接口任务和资源调度系统及方法
KR20120068464A (ko) 통합 메모리 서비스를 위한 소프트웨어 구조 및 이 소프트웨어 구조를 이용한 통합 메모리 서비스 제공 방법
JP7293314B2 (ja) イーサリアム仮想マシンのトランザクション処理方法、装置、機器、プログラムおよび媒体
US11301142B2 (en) Non-blocking flow control in multi-processing-entity systems
JP2001051959A (ja) 少なくとも1つのnuma(non−uniformmemoryaccess)データ処理システムとして構成可能な相互接続された処理ノード
CN115033188B (zh) 一种基于zns固态硬盘的存储硬件加速模块系统
CN111541599B (zh) 基于数据总线的集群软件系统及方法
CN102193788A (zh) 基于动态二进制翻译的跨平台驱动程序复用方法
CN205103599U (zh) 一种跨境贸易bpo应用云终端装置
CN109062857A (zh) 一种能高速实现多处理器间通信的新型消息控制器及其通信方法
CN114281467A (zh) 实现热迁移的系统方法、装置和存储介质
US11687451B2 (en) Memory allocation manager and method performed thereby for managing memory allocation
CN105376273A (zh) 一种标准化云服务接口及方法
Dennis et al. Research directions in computer architecture

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant