CN101477474A - 一种联合模拟系统及其工作方法 - Google Patents
一种联合模拟系统及其工作方法 Download PDFInfo
- Publication number
- CN101477474A CN101477474A CNA2009100764739A CN200910076473A CN101477474A CN 101477474 A CN101477474 A CN 101477474A CN A2009100764739 A CNA2009100764739 A CN A2009100764739A CN 200910076473 A CN200910076473 A CN 200910076473A CN 101477474 A CN101477474 A CN 101477474A
- Authority
- CN
- China
- Prior art keywords
- target machine
- module
- simulator
- host
- simulation system
- 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.)
- Pending
Links
Images
Landscapes
- Debugging And Monitoring (AREA)
- Stored Programmes (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开了联合模拟系统及其工作方法。该系统包括:至少两台物理计算机、系统主控进程模块和进程库,其中:至少一台物理计算机,包括:宿主机系统模块,用于运行宿主机进程;管理进程模块,用于管理其所在物理计算机上的宿主机进程。至少一台物理计算机,包括:一种或多种类型的模拟器,用于模拟目标机,并获取目标机进程的具体行为的特征信息;代理进程模块,用于管理其所在物理计算机上的所述模拟器;以及目标机操作系统模块,用于运行目标机进程。系统主控进程模块,位于任意一台所述物理计算机上,用于将控制命令传递给所述代理进程模块和所述管理进程模块。进程库,位于每一台所述物理计算机上,负责联合模拟系统的通信操作。
Description
技术领域
本发明涉及模拟系统加速的技术领域,特别是涉及一种联合模拟系统及其工作方法。
背景技术
模拟器可以理解为″用纯软件的手段来仿真某一种硬件机能的机器″,它是研究新型高性能计算机体系结构的一种快速、有效的手段,是计算机体系结构研究者的重要工具。当构建一个新系统时,模拟器可以有效地测试和验证新系统的正确性并对其性能进行验证,可以大大降低开发的成本和时间。利用模拟器,可以使得硬件生产厂商在构建系统之前对硬件验证,还可以使得软件开发商在样机生产之前就能够进行软件开发,从而使软、硬件同时面世成为可能。另外,模拟器可以在程序运行时收集机器的运行信息,帮助分析系统的行为,从而进行相关的优化。由于模拟器的直观性和易用性,它在计算机组成和体系结构教学领域也有广泛的应用。
目前,软件模拟器的应用最为广泛,但软件模拟器的主要弱点就是执行速度较低,模拟的规模有限。Derek Chiou提出了软硬结合的模拟器FAST,用于实现一个运行速度快、模拟精度高的单节点模拟器。由于硬件的执行速度很快,所以相对于纯软件模拟器,这种混合模拟技术可以起到加速作用。
模拟器FAST将功能模拟和时序模拟分离开来,对于功能模拟部分使用软件模拟器QEMU来实现,而对于时序模拟部分使用现场可编程门阵列模拟器来实现。软件模拟器只提供指令集架构,确保程序可以正确运行。现场可编程门阵列模拟器模拟微结构,模拟分支预测、缓存状态等。功能级模拟器和时序级模拟器之间通过一个缓冲区来交互。功能级模拟器产生执行的踪迹信息,时序级模拟器从缓冲区中读出踪迹信息进行微结构模拟。可以看出,模拟器FAST的技术特点在于将一次指令模拟分为两个部分,重点关注的部分,即需要详细模拟的部分,利用硬件加速;非关注部分由软件处理。
相比于其它软件模拟器,模拟器FAST由于硬件的辅助可以更快地获取到详细的时序模拟信息。但是模拟器FAST定位于单机模拟的加速,而对于大规模并行应用程序来说,单机模拟的加速对整体的加速效果影响十分有限,随着模拟规模的扩展,单机模拟加速手段不具备可扩展性。
现有的模拟器对大规模并行应用模拟时会模拟应用程序各个进程在所有目标节点上运行行为的细节,当各个进程采用的工作集相近的时候,获取所有节点的模拟细节信息意义不大,因为这些信息反映的行为特征相近,具有冗余信息。另外,对大规模并行应用模拟时,模拟周期通常很长。而希望通过模拟获取到的信息种类又很多,例如访存行为特种、指令执行的时序特征等。一般来说,一种模拟器获取的信息种类越多其模拟速度越慢,所以仅采用一种模拟器很难既快速又详细的获取多种行为特征信息。
发明内容
本发明的目的在于提供一种联合模拟系统及其工作方法,能够加速模拟异构系统中的并行应用程序,达到既快速又详细的获取多种行为的特征信息的目的。
为实现本发明的目的而提供的一种联合模拟系统,包括:至少两台物理计算机、系统主控进程模块和进程库,其中:
至少一台物理计算机,包括宿主机系统模块和管理进程模块,其中:
所述宿主机系统模块,用于运行宿主机进程;
所述管理进程模块,用于管理其所在物理计算机上的宿主机进程;
至少一台物理计算机,包括一种或多种类型的模拟器,代理进程模块,以及目标机操作系统模块,其中:
所述模拟器,用于模拟目标机,并获取在所述目标机上运行的目标机进程的具体行为的特征信息;
所述代理进程模块,用于管理其所在物理计算机上的所述模拟器;
所述目标机操作系统模块,用于运行目标机进程;
系统主控进程模块,位于任意一台所述物理计算机上,用于将控制命令传递给所述代理进程模块和所述管理进程模块;
进程库,位于每一台所述物理计算机上,用于联合模拟系统的通信操作。
所述模拟器,包括一虚拟设备,所述虚拟设备使用虚拟设备所在模拟器的资源;所述虚拟设备所在物理计算机上的代理进程模块通过控制所述虚拟设备间接控制所述模拟器。
所述目标机操作系统模块包括:驱动程序模块和后台进程模块,其中:
所述驱动程序模块,用于在所述虚拟设备和目标机进程之间传递消息;
所述后台进程模块,用于控制该后台进程模块所在的目标机操作系统模块上运行的目标机进程。
所述目标机操作系统模块,根据所述模拟器的不同类型实现不同的目标机操作系统。
所述目标机操作系统模块,根据所述模拟器的不同类型实现相同的目标机操作系统。
为实现本发明的目的还一种联合模拟系统,包括一台物理计算机,其特征在于,所述物理计算机包括:宿主机系统模块、管理进程模块、模拟器、代理进程模块、目标机操作系统模块、系统主控进程模块和进程库,其中:
所述宿主机系统模块,用于运行宿主机进程;
所述管理进程模块,用于管理宿主机进程;
所述模拟器,用于模拟目标机,并获取在所述目标机上运行的目标机进程的具体行为的特征信息;
所述代理进程模块,用于管理所述模拟器;
所述目标机操作系统模块,用于运行目标机进程;
所述系统主控进程模块,用于将控制命令传递给所述代理进程模块和所述管理进程模块;
所述进程库,负责代理进程模块和所述管理进程模块通信操作。
所述模拟器,包括一虚拟设备,所述虚拟设备使用虚拟设备所在模拟器的资源;所述代理进程模块通过控制所述虚拟设备间接控制所述模拟器。
所述目标机操作系统模块包括:驱动程序模块和后台进程模块,其中:
所述驱动程序模块,用于在所述虚拟设备和目标机进程之间传递消息;
所述后台进程模块,用于控制所述目标机操作系统模块上运行的目标机进程。
所述目标机操作系统模块,根据所述模拟器的类型确定目标机操作系统。
所述宿主机进程,包括SHELL程序的进程,用于发出控制命令;所述SHELL程序由用户根据所需的功能自行编写,是根据用户输入的命令调用系统提供的接口。
相应于一种联合模拟系统,本发明提供应用于该联合模拟系统的工作方法,包括下列步骤:
步骤A、确定联合模拟系统中的模拟器的类型并为联合模拟系统编写任务分配脚本;
步骤B、根据所述任务分配脚本,启动联合模拟系统,为联合模拟系统中运行的应用程序的进程统一分配系统进程ID,并利用所述任务分配脚本为联合模拟系统创建并加载、销毁联合模拟系统中运行的应用程序的进程;
步骤C、根据所述任务分配脚本和所述系统进程ID,实现所述联合模拟系统中运行的应用程序的进程自由通信。
所述步骤A,包括下列步骤:
步骤A1、确定联合模拟系统中模拟器的类型;
步骤A2、为联合模拟系统编写任务分配脚本。
步骤A2中,所述任务分配脚本的语法格式是:
物理机名进程类型子进程数。
所述步骤B包括下列步骤:
步骤B1、为联合模拟系统中运行的应用程序的进程统一分配系统进程ID;
步骤B2、利用所述任务分配脚本为联合模拟系统创建并加载、销毁联合模拟系统中运行的应用程序的进程;
步骤B1中,所述统一分配系统进程ID,需要确定进程空间范围,所述确定进程空间范围,方法是:若一进程空间范围是1~N,另一进程空间范围是1~M,而宿主机上的进程空间是1~P,那么所述联合模拟系统能够提供范围在1~
(M+N+P)的进程空间。
所述创建并加载包括下列步骤:
步骤B21、使用任务分配脚本创建并加载宿主机进程、目标机进程。
步骤B21中,所述创建并加载宿主机进程,方法是:用户输入创建宿主机进程请求,通过SHELL程序将创建请求提交给管理进程,该管理进程根据任务分配脚本确定创建的宿主机进程对应的管理进程,将创建请求转交给与创建的宿主机进程对应的管理进程,该管理进程利用宿主机系统提供的进程创建和加载机制实现宿主机进程的创建和加载。
所述SHELL程序是应用程序,用于发出控制命令;SHELL程序由用户根据所需的功能自行编写,是根据用户输入的命令调用系统提供的接口。
步骤B21中,所述创建并加载目标机进程,方法是:用户输入创建目标机进程的请求,通过SHELL程序将创建请求传递给将要运行目标机进程的模拟器对应的代理进程,该代理进程则将目标机进程创建请求转交给该模拟器的虚拟设备;虚拟设备通过中断程序通知驱动程序提取目标机进程创建请求,而驱动程序则将提取的目标机进程创建请求转给目标机的后台进程;目标机的后台进程利用目标机操作系统提供的机制创建并加载目标机进程。
所述加载分为两种情况:若目标机进程未指定模拟器,联合模拟系统将从目标机进程空间中随机选取一个系统进程ID分配给该目标机进程,将该目标机进程加载到随机选择的模拟器上运行,相应改变任务分配脚本中的数据;若目标机进程指定模拟器,那么联合模拟系统将在该模拟器映射的进程空间范围内为该目标机进程选择一个系统进程ID,将该目标机进程将被加载到指定的模拟器上,相应改变任务分配脚本中的数据。
步骤C中,所述通信分为两个层面:首先是系统主控进程、代理进程、管理进程之间的通信;其次是宿主机的应用程序的进程之间、目标机的应用程序的进程之间、宿主机的应用程序的进程与目标机的应用程序的进程之间通信。
所述步骤C还进一步包括:
步骤C1、位于同一宿主机上的不同宿主机进程之间进行通信;
步骤C2、位于同一目标机上的不同目标机进程之间进行通信;
步骤C3、位于不同目标机上的目标机进程之间进行通信;
步骤C4、位于不同宿主机上的宿主机进程之间进行通信;
步骤C5、位于宿主机上宿主机进程与位于目标机上的目标机进程之间进行通信。
所述步骤C3包括下列步骤:
步骤C31,发送端的目标机进程,将数据提交给已经编译到发送端目标机的通信库;
步骤C32,所述通信库将数据封装成可以用于转发的数据包,然后将数据包提交给发送端的驱动程序;
步骤C33,所述驱动程序不对数据包进一步处理,直接传递给发送端的模拟器的虚拟设备;
步骤C34,所述虚拟设备需要根据传输网络的情况将大数据包划分为若干数据包分片然后再传递给相应代理进程;
步骤C35,所述代理进程根据联合模拟系统的进程树确定将请求转交的代理进程,然后转发数据包分片;
步骤C36,所述代理进程接收到数据包分片后,根据联合模拟系统的进程树确定将请求转交的代理进程,然后转发数据包分片;
步骤C37,接收数据包分片的代理进程将数据包分片转发给根据目的系统进程ID找到的目标机进程所在的模拟器的虚拟设备,该虚拟设备此时不会重组数据包分片,而是将数据包分片通知给接收端的驱动程序;
步骤C38,接收端的驱动程序接收数据包分片并将数据包分片重组回原来的数据包提交给接收端的通信库;
步骤C39,接收端通信库接收到数据包后将数据包提交给接收端的根据目的系统进程ID找到的目标机进程,完成数据传输过程。
所述步骤C4包括下列步骤:
步骤C41,发送端的宿主机进程,将数据提交给已经编译到发送端的宿主机的通信库;
步骤C42,所述通信库将数据封装成用于转发的数据包,然后将数据包提交给发送端的宿主机的管理进程;
步骤C43,所述管理进程根据联合模拟系统的进程树确定将请求转交的管理进程,然后转发数据包;
步骤C44,所述管理进程接收数据包后将数据包提交给接收端的进程库;
步骤C45,所述接收端的通信库接收到数据包后将数据提交给接收端的根据目的系统进程ID找到的宿主机进程,完成数据传输过程。
所述步骤C5包括下列步骤
步骤C51,发送端的宿主机进程,将数据提交给已经编译到发送端的宿主机的通信库;
步骤C52,所述通信库将数据封装成用于转发的数据包,然后将数据包提交给发送端的宿主机的管理进程;
步骤C53,所述管理进程根据联合模拟系统的进程树确定将转发的代理进程,并根据传输网络的情况将大数据包划分为若干数据包分片转发给确定的代理进程;
步骤C54,所述代理进程接收数据包分片,并根据目的系统进程ID找到目标机进程所在模拟器的虚拟设备,并转发数据包分片;
步骤C55,所述虚拟设备此时不会重组数据包分片,而是将数据包分片通知给接收端的目标机操作系统的驱动程序;
步骤C56,所述驱动程序接收数据包分片并将数据包分片重组回原来的数据包提交给接收端的进程库;
步骤C57,所述接收端的进程库将接收的数据包提交给根据目的系统进程ID找到的目标机进程,完成数据传输过程。
所述进程树,与所述任务分配脚本对应,其中所述系统主控进程位于根节点,叶节点是运行在所述联合模拟系统中的应用程序的进程,其它节点对应的是所述模拟器的虚拟设备和所述代理进程或所述管理进程。
本发明采用多种形式模拟器联合模拟的方法运行大规模应用程序的进程,将应用程序的进程划分为若干类别,每种类别的进程运行在一类模拟器上,由于每个模拟器单独模拟的规模变小,所以达到快速整理模拟过程的效果,同时实现获取多种类型的行为特征信息。
附图说明
图1是本发明联合模拟系统一实施例的组成结构图;
图2是本发明联合模拟系统的实施例说明图;
图3是本发明联合模拟系统的工作方法的流程图;
图4是联合模拟系统中模块间关系示意图;
图5是本发明中进程空间的映射关系图;
图6是本发明中进程的树形结构图;
图7是本发明联合模拟系统另一实施例的组成结构图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明的一种联合模拟系统及其工作方法进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明的一种联合模拟系统及其工作方法,能够加速模拟异构系统中的并行应用程序,达到既快速又详细的获取多种行为的特征信息的目的。现有的模拟器对大规模并行应用程序模拟时会模拟应用程序的各个进程在所有目标节点上运行行为的细节,当各个进程采用的工作集相近的时候,获取所有节点的模拟细节信息意义不大,因为这些信息反映的行为特征相近,具有冗余信息,所以本发明的本质是将所有目标节点上运行的实现主要行为与细节行为的应用程序的进程分开,只对主要行为模拟,从而实现了模拟系统的加速,进而实现快速获取特征信息。
同时,本发明采用多种形式模拟器联合模拟的方法模拟大规模应用程序的进程,将应用程序的进程划分为若干类别,每种类别的进程运行在一类模拟器上,由于每个模拟器单独模拟的规模变小,所以也达到快速整理模拟过程的效果,另一方面,由于多种模拟器共同模拟,从而实现同时获取到多种类型的行为特征信息。
为了更好的描述本发明,首先说明有关本发明的一些概念:
宿主机,是指实际的物理计算机;
目标机,是指模拟器模拟出的计算机;
主要行为,是指应用程序的进程中受关注的行为;
细节行为,是指应用程序的进程中不受关注的行为;
宿主机进程,是指实现细节行为的应用程序的进程;
目标机进程,是指实现主要行为的应用程序的进程。
图1是本发明联合模拟系统一实施例的组成结构图,参照图1,本发明的联合模拟系统包括一台物理计算机,所述物理计算机包括:宿主机系统模块、管理进程模块、模拟器、代理进程模块、目标机操作系统模块、进程库以及系统主控进程模块,其中:
所述宿主机系统模块,用于直接运行宿主机进程,而不获取该宿主机进程的具体行为的特征信息;
所述宿主机系统模块,直接运行宿主机进程,所以不会获取到该宿主机进程的细节行为信息,但可以快速执行,辅助联合模拟系统中的其他进程完成任务从而对整个模拟过程起到加速作用。
本发明中,在宿主机系统模块上运行的宿主机进程中包括SHELL程序的进程,所述SHELL程序是一种特殊的应用程序,仅用于发出控制命令;SHELL程序由用户根据所需的功能自行编写,是根据用户输入的命令调用系统提供的接口。
所述管理进程模块,用于管理在宿主机系统模块上运行的宿主机进程,对宿主机进程之间的消息传递起到路由作用;
所述模拟器,用于模拟目标机,并获取在所述目标机上运行的目标机进程的具体行为的特征信息;
所述模拟器只获取应用程序中主要行为的特征信息,减少了模拟器的模拟规模,实现了整体模拟过程的加速。
所述模拟器可以是一台模拟器,也可以是多种类型的多台模拟器;在多台模拟器的情况下,每一台模拟器只获取与模拟器本身具有相同类型的具体行为的特征信息,保证了一次执行后能够同时获取到多种行为特征。
所述代理进程模块,用于管理所述模拟器,对所述模拟器或在所述模拟器上运行的目标机进程之间的消息传递起到路由作用;
所述模拟器还包括虚拟设备,所述虚拟设备由其所在的模拟器调用;所述虚拟设备是一种模拟技术领域通用的虚拟设备。
对于模拟器而言,此虚拟设备是其组成部分,虚拟设备可以利用模拟器的资源;对于代理进程模块而言,虚拟设备是模拟器的代理人,通过控制虚拟设备可以间接控制模拟器。
所述目标机操作系统模块,用于运行目标机进程;
所述目标机操作系统模块,既可以根据所述模拟器的不同类型实现不同的目标机操作系统模块,也可以实现相同的目标机操作系统。
所述目标机操作系统模块还包括:驱动程序模块和后台进程模块。
所述驱动程序模块位于目标机操作系统模块中,负责驱动程序与目标机进程直接通信。
为了使软硬件方便沟通,在目标机操作系统中需要为模拟器中的虚拟设备编写驱动程序供驱动程序模块调用,消息可以通过驱动程序在虚拟设备和驱动程序模块之间自由传递。
另外,可以在目标机操作系统之上通过后台进程模块启动一个后台进程(demon进程)。通过后台进程可以实现对目标机进程的创建和销毁等操作。
所述代理进程模块,负责与虚拟设备直接通信。
所述系统主控进程模块,通过系统主控进程负责将控制命令传递给所述管理进程模块和代理进程模块,实现全局的控制;
所述进程库,主要用于负责系统请求的创建、重组、转发等与通信相关的操作,也称作通信库。它可以链接到所述驱动程序中或应用程序中,当链接到应用程序中时可以称作应用程序库。应用程序利用应用程序库实现与模拟器模拟的目标机进程通信。
所述系统主控进程、所述代理进程以及所述管理进程都被编译成一般意义上的可执行文件,可以独立运行;所述虚拟设备、所述进程库以及所述驱动程序都被编译成通信库。
所述后台进程既可以是一般意义上的可执行程序也可以是通信库。如果是作为可执行程序,那么后台进程运行在目标机操作系统上,以用户态执行;如果后台进程是作为通信库,则链接到指定的目标机进程中形成运行在目标机操作系统中的核心态程序。
图7是本发明联合模拟系统另一实施例的组成结构图,参照图7,作为一种可实施方式,本发明所述的联合模拟系统还可以以多个物理计算机的形式组成,所述联合模拟系统包括:至少两台物理计算机、系统主控进程模块和进程库,其中:
至少一台物理计算机,包括宿主机系统模块和管理进程模块,其中:
所述宿主机系统模块,用于直接运行宿主机进程,而不获取该宿主机进程的具体行为的特征信息;
本发明中,在宿主机系统模块上运行的宿主机进程中包括SHELL程序的进程,所述SHELL程序是一种特殊的应用程序,仅用于发出控制命令;SHELL程序由用户根据所需的功能自行编写,是根据用户输入的命令调用系统提供的接口。
所述管理进程模块,负责管理宿主机进程,对宿主机进程之间的消息传递起到路由作用;
至少一台物理计算机,包括:一种或多种类型的模拟器,代理进程模块,以及目标机操作系统模块,其中:
所述模拟器,用于模拟目标机,并获取所述目标机上运行的目标机进程的具体行为的特征信息;
所述模拟器包括一个虚拟设备;
所述代理进程模块,用于管理其所在物理计算机上的模拟器,对所述模拟器或在模拟器上运行的目标机进程之间的消息传递起到路由作用;
所述目标机操作系统模块,用于运行目标机进程。
所述目标机操作系统模块,既可以根据目标机进程的具体行为的类型相应改变目标机操作系统,也可以不改变目标机操作系统。
所述目标机操作系统模块,包括后台进程模块和驱动程序模块。
系统主控进程模块,可位于任意一台所述物理计算机上,通过系统主控进程将控制命令传递给代理进程模块和管理进程模块,实现全局的控制。
进程库,位于每一台所述物理计算机上,用于负责请求的创建、重组、转发等与通信相关的操作。
包含多个物理计算机的联合模拟系统中的各组成部分之间的关系和通信方式与包含一个物理计算机的联合模拟系统的情况一致,在此不再一一赘述。
本发明一种联合模拟系统,可以多种形式组成,包括但不限于以上所述两种方式,用户可根据具体需要,决定联合模拟系统的组成形式。
图2是本发明联合模拟系统的另一实施例说明图,参照图2,作为一种实施方式,在这个联合模拟系统虚拟出来的目标系统上模拟由6个应用程序的进程构成的Linpack并行程序。可以看到,如果这六个应用程序的进程仅在访存模拟器上运行,那么由于规模增加,整个模拟周期至少是图1中配置的3倍。而最终获取到的信息也仅仅是访存信息。采用异构系统联合模拟系统后,将访存模拟器和指令时序模拟器整合在一起后,保证了一次执行后同时获取到访存行为信息和指令时序信息。另外,由于将一部分任务分配给宿主机快速执行,从而减少了模拟器的模拟规模,实现了整体模拟过程的加速。
本发明的联合模拟系统将现有的模拟器技术及通信技术集成在一起达到联合模拟的效果,从而达到了一次执行后同时获取多种行为的特征信息的目的;系统内部的机制没有参与加速,但系统结构保证了参与的模拟器所要模拟的任务规模变小,从而达到了加速效果。
相应于一种联合模拟系统,本发明还提供一种联合模拟系统的工作方法。
图3是本发明联合模拟系统的工作方法的流程图,图4是联合模拟系统中模块间关系示意图,参照图3、图4,本发明联合模拟系统的工作方法包括下列步骤:
步骤S100,确定联合模拟系统中的模拟器的类型并为联合模拟系统编写任务分配脚本;
进一步地,所述步骤S100,包括下列步骤:
步骤110,确定联合模拟系统中模拟器的类型;
根据模拟器模拟目标机进程的具体行为,确定模拟器的类型,不同类型的模拟器获取不同类型的行为的特征信息,多台模拟器共同模拟保证了一次执行后能够同时获取多种行为的特征信息。
举例说明,若模拟器模拟目标机进程的具体行为是访存行为,则模拟器的类型是访存模拟器,获取到访存行为的特征信息。
步骤120,为联合模拟系统编写任务分配脚本;
为了易于联合模拟系统的使用人员配置联合模拟系统及系统中每个模拟器所负责的任务,使用人员只需编写简单的任务分配脚本,就可以在指定的模拟器上执行所要求的目标机进程。
所述配置任务分配脚本的语法格式如下:
物理机名 进程类型 子进程数。
如图4所示,一个模拟器的目标机上运行三个应用程序,代理进程运行在物理机0上,管理进程运行于物理机1和物理机2上,各管理两个应用程序。主控进程不会直接参与应用程序的管理,所以这个配置脚本是:
物理机 1 主控进程 0
物理机 0 代理进程 3
物理机 1 管理进程 1 2
物理机 2 管理进程 2 2
步骤200,根据任务分配脚本,启动联合模拟系统,为联合模拟系统中运行的应用程序的进程统一分配系统进程ID,并利用所述任务分配脚本为联合模拟系统创建并加载、销毁联合模拟系统中运行的应用程序的进程;
根据任务分配脚本启动联合模拟系统,在对应物理计算机上运行宿主机的操作系统、代理进程、管理进程、目标机操作系统和系统主控进程。
进一步地,所述步骤S200包括下列步骤:
步骤S210,为联合模拟系统中运行的应用程序的进程统一分配系统进程ID;
为了便于支持模拟器整合到基于异构系统的联合模拟系统中,联合模拟系统需要提供单一进程空间,即运行在联合模拟系统上的应用程序的进程被统一分配系统进程ID,运行在联合模拟系统上的应用程序的进程通过系统进程ID进行合作而无需关心进程所处的环境(即所述应用程序的进程是在宿主机系统上运行,还是在模拟机的操作系统上运行)。
为了支持单一进程空间,联合模拟系统首先需要知道进程空间的范围。由于每个集成到联合模拟系统中的模拟器本身也存在一个进程空间范围,所以联合模拟系统需要从更高的层次管理进程空间,从而形成一个全局进程空间到局部进程空间的映射关系。
所述模拟器为现有技术中的模拟器,包括:指令模拟器、访存模拟器、指令时序模拟器等模拟器。
图5是本发明中全部进程空间的映射关系图,下面以图5为例来说明此映射关系。
假设指令模拟器的进程空间范围是1~N,访存模拟器的空间范围是1~M,而宿主机上允许的进程空间是1~P,这些信息通过基于异构系统的联合模拟系统的任务分配脚本传递给基于异构系统的联合模拟系统。那么基于异构系统的联合模拟系统可以提供一个范围在1~(M+N+P)的进程空间。
步骤220,利用所述任务分配脚本为联合模拟系统创建并加载、销毁联合模拟系统中运行的应用程序的进程;
所述进程的创建并加载和销毁根据上述任务分配脚本实现,所述步骤S220包括下列步骤:
步骤S221,使用任务分配脚本,创建并加载运行在联合模拟系统上的应用程序的进程;
所述进程又分为宿主机进程和目标机进程两类,模拟器只获取所述目标机进程的具体行为的特征信息,而不获取宿主机进程的具体行为的特征信息,从而减少了模拟器的模拟规模,实现了整体模拟过程的加速。
步骤S2211,使用任务分配脚本创建并加载宿主机进程;
用户输入创建宿主机进程请求,通过SHELL程序将创建请求提交给相应的管理进程,该管理进程根据任务分配脚本确定创建的宿主机进程对应的管理进程,所以将创建请求转交给与创建的宿主机进程对应的管理进程,该管理进程利用宿主机系统提供的进程创建和加载机制实现宿主机进程的创建和加载。
例如,如图4所示,创建宿主机的应用程序4的进程时,SHELL程序将创建请求提交给管理进程1,管理进程1根据任务分配脚本确定应用程序4由管理进程2管理,所以将创建请求转交给管理进程2。管理进程2利用宿主机操作系统提供的进程创建机制实现应用程序4的进程的创建和加载。
步骤S2212,使用任务分配脚本创建并加载目标机进程;
用户输入创建目标机进程的请求,通过SHELL程序将创建请求传递给将要运行目标机进程的模拟器对应的代理进程,该代理进程则将目标机进程创建请求转交给该模拟器的虚拟设备。虚拟设备通过中断程序通知驱动程序提取目标机进程创建请求,而驱动程序则将提取的目标机进程创建请求转给目标机的后台进程。由于目标机的后台进程根据目标机操作系统特点而设计,所以可以利用目标机操作系统的机制创建目标机进程。
例如,如图4所示,创建目标机的应用程序2的过程与消息传递的过程类似,只是驱动程序最终将创建请求发送给后台进程,由后台进程利用目标机操作系统的机制完成目标机的应用程序2的进程创建与加载。
目标机操作系统的现有机制支持进程创建后的加载,所以后台进程将直接根据请求中的应用程序名称和参数调用目标机操作系统的函数完成进程的加载。
加载目标机进程的时候,分为两种情况:
一种情况是:如果目标机进程未指定模拟器,联合模拟系统将从目标机进程空间中随机选取一个系统进程ID分配给该目标机进程,相当于该目标机进程加载到随机选择的模拟器上运行,那么相应改变任务分配脚本中的数据。
另一种情况是:如果目标机进程指定模拟器,那么联合模拟系统将在该模拟器映射的进程空间范围内为该目标机进程选择一个系统进程ID,于是在加载的时候该目标机进程将被加载到指定的模拟器上,同样相应改变任务分配脚本中的数据。
步骤S222,使用任务分配脚本,销毁运行在联合模拟系统上的应用程序的进程;
所述进程销毁过程与创建过程一致,只是传递的请求类型是销毁请求。
步骤S300,根据任务分配脚本和系统进程ID,实现所述联合模拟系统中运行的应用程序的进程自由通信;
为了方便联合模拟系统中运行的应用程序的进程自由通信,联合模拟系统中所有运行的进程以进程树结构组织,该进程树与任务分配脚本对应。图6是本发明中进程的树形结构图,参照图6,其中主控进程位于根节点,叶节点就是运行在基于异构系统的联合模拟系统中的各种应用程序的进程,其它节点对应的是模拟器的虚拟设备和代理进程(或管理进程)。进程树结构有效地将异构系统联合模拟框架中所有进程统一组织在一起。根据进程树可以快速确定两个叶节点之间的路径,为消息的路由提供了基础。
数据的路由策略根据进程树结构而确定,其路由遵循两个原则:
1.如果当前进程与目标进程具有兄弟关系,则将数据直接发送给目标进程;
2.否则,将数据直接发送给父进程,由父进程转发。
根据此路由策略,数据的发送链路可以很容易且灵活的确定。
所述统一通信机制分为两个层面:首先是所述系统主控进程、所述代理进程、所述管理进程之间的通信,由于这些模块运行于物理机上,所以可以利用现有比较成熟的通信库,例如MPICH通信库;其次是宿主机进程之间、目标机的进程之间、宿主机与目标机的进程之间通信。又分为以下几种情况:
1.位于同一宿主机上的不同宿主机进程之间进行通信;
2.位于同一目标机上的不同目标机进程之间进行通信;
上述两种可以利用现有的通信技术实现,例如共享内存通信、socket套接字通信。
3.位于不同目标机上的目标机进程之间进行通信;
4.位于不同宿主机上的宿主机进程之间进行通信;
例如,如图4所示,应用程序3和应用程序4,他们通信必须通过管理进程中转。应用程序3与应用程序4通信时,首先将请求发送给管理进程1,然后由管理进程1找到应用程序4的管理进程,将请求转发给该管理进程,最后才到达应用程序4。
5.位于宿主机上宿主机进程与位于目标机上的目标机进程之间进行通信。
例如,如图4所示,应用程序3与应用程序2通信,由于他们分别位于宿主机和目标机上,所以请求先由管理进程1转交给代理进程。由于代理进程与虚拟设备位于相同宿主机上,所以可以利用现有技术直接通信。请求由代理进程转到虚拟设备后,将利用模拟器系统自身的通信机制将请求提交给目标机操作系统的驱动程序。驱动程序负责将请求最终提交给应用程序2。
步骤S310,位于不同目标机上的目标机进程之间进行通信时,具体过程如下:
步骤S311,发送端的目标机进程,将数据提交给已经编译到发送端目标机的通信库;
步骤S312,所述通信库将数据封装成可以用于转发的数据包,然后将数据包提交给发送端的驱动程序;
步骤S313,所述驱动程序不会对数据包进一步处理,直接传递给发送端的模拟器的虚拟设备;
步骤S314,所述虚拟设备需要根据传输网络的情况将大数据包划分为若干小数据包然后再传递给相应代理进程(即与该模拟器位于相同物理计算机上的代理进程);
由于在后续传输中,位于不同物理计算机上的代理进程可以一次接收的最大数据包长度不同,所述虚拟设备在将数据发送给相应代理进程前需要根据传输网络的情况将大数据包划分为若干小数据包(即数据包分片)。
步骤S315,所述代理进程根据联合模拟系统的进程树确定将请求转交的代理进程,然后转发数据包分片;
步骤S316,所述代理进程接收到数据包分片后,根据联合模拟系统的进程树确定将请求转交的代理进程,然后转发数据包分片;
步骤S317,接收数据包分片的代理进程将数据包分片转发给根据目的系统进程ID找到地目标机进程所在的模拟器的虚拟设备,该虚拟设备此时不会重组数据包分片,而是将数据包分片通知给接收端的驱动程序;
步骤S318,接收端的驱动程序接收数据包分片并将数据包分片重组回原来的数据包提交给接收端的通信库;
步骤S319,接收端通信库接收到数据包后将数据包提交给接收端的根据目的系统进程ID找到的目标机进程,完成数据传输过程。
步骤S320,位于不同宿主机上的宿主机进程之间进行通信;
步骤S321,发送端的宿主机进程,将数据提交给已经编译到发送端的宿主机的通信库;
步骤S322,所述通信库将数据封装成用于转发的数据包,然后将数据包提交给发送端的宿主机的管理进程;
步骤S323,所述管理进程根据联合模拟系统的进程树确定将请求转交的管理进程,然后转发数据包;
步骤S324,所述管理进程接收数据包后将数据包提交给接收端的进程库;
步骤S325,所述接收端的通信库接收到数据包后将数据提交给接收端的根据目的系统进程ID找到的宿主机进程,完成数据传输过程。
步骤S330,位于宿主机上宿主机进程与位于目标机上的目标机进程之间进行通信。
步骤S331,发送端的宿主机进程,将数据提交给已经编译到发送端的宿主机的通信库;
步骤S332,所述通信库将数据封装成用于转发的数据包,然后将数据包提交给发送端的宿主机的管理进程;
步骤S333,所述管理进程根据联合模拟系统的进程树确定将转发的代理进程,并根据传输网络的情况将大数据包划分为若干数据包分片转发给确定的代理进程;
步骤S334,所述代理进程接收数据包分片,并根据目的系统进程ID找到目标机进程所在模拟器的虚拟设备,并转发数据包分片;
步骤S335,所述虚拟设备此时不会重组数据包分片,而是将数据包分片通知给接收端的目标机操作系统的驱动程序;
步骤S336,所述驱动程序接收数据包分片并将数据包分片重组回原来的数据包提交给接收端的进程库;
步骤S337,所述接收端的进程库将接收的数据包提交给根据目的系统进程ID找到的目标机进程,完成数据传输过程。
本发明的有益效果在于:
1.本发明一种联合模拟系统及其工作方法,具有很强的灵活性,可以支持多种类型执行应用程序的资源,易于添加新的资源,为以后的扩展提供了便利条件;
2.本发明一种联合模拟系统及其工作方法,具有较高的可扩展性,各个进程各自相对独立,不完全依赖于根节点,保证了系统的可扩展性;
3.本发明一种联合模拟系统及其工作方法,具有较高的稳定性,每个程序执行在独立的进程空间中,不会因为某个进程崩溃而导致整个模拟失败;
4.本发明一种联合模拟系统及其工作方法,能够既快速又详细地获取多种行为的特征信息。
通过结合附图对本发明具体实施例的描述,本发明的其它方面及特征对本领域的技术人员而言是显而易见的。
以上对本发明的具体实施例进行了描述和说明,这些实施例应被认为其只是示例性的,并不用于对本发明进行限制,本发明应根据所附的权利要求进行解释。
Claims (23)
1、一种联合模拟系统,用于加速模拟异构系统中的并行应用程序的进程并获取多种行为的特征信息,其特征在于,包括:至少两台物理计算机、系统主控进程模块和进程库,其中:
至少一台物理计算机,包括宿主机系统模块和管理进程模块,其中:
所述宿主机系统模块,用于运行宿主机进程;
所述管理进程模块,用于管理其所在物理计算机上的宿主机进程;
至少一台物理计算机,包括一种或多种类型的模拟器,代理进程模块,以及目标机操作系统模块,其中:
所述模拟器,用于模拟目标机,并获取在所述目标机上运行的目标机进程的具体行为的特征信息;
所述代理进程模块,用于管理其所在物理计算机上的所述模拟器;
所述目标机操作系统模块,用于运行目标机进程;
系统主控进程模块,位于任意一台所述物理计算机上,用于将控制命令传递给所述代理进程模块和所述管理进程模块;
进程库,位于每一台所述物理计算机上,用于联合模拟系统的通信操作。
2、根据权利要求1所述的联合模拟系统,其特征在于,所述模拟器,包括一虚拟设备,所述虚拟设备使用该虚拟设备所在模拟器的资源;所述虚拟设备所在物理计算机上的代理进程模块通过控制该虚拟设备间接控制所述模拟器。
3、根据权利要求2所述的联合模拟系统,其特征在于,所述目标机操作系统模块包括:驱动程序模块和后台进程模块,其中:
所述驱动程序模块,用于在所述虚拟设备和目标机之间传递消息;
所述后台进程模块,用于控制该后台进程模块所在的目标机操作系统模块上运行的目标机进程。
4、根据权利要求1所述的联合模拟系统,其特征在于,所述目标机操作系统模块对不同类型的模拟器采用相同的目标机操作系统,或根据所述模拟器的不同类型选择不同的目标机操作系统。
5、一种联合模拟系统,用于加速模拟异构系统中的并行应用程序的进程并获取多种行为的特征信息,其特征在于,包括一台物理计算机,其特征在于,所述物理计算机包括:宿主机系统模块、管理进程模块、模拟器、代理进程模块、目标机操作系统模块、系统主控进程模块和进程库,其中:
所述宿主机系统模块,用于运行宿主机进程;
所述管理进程模块,用于管理宿主机进程;
所述模拟器,用于模拟目标机,并获取在所述目标机上运行的目标机进程的具体行为的特征信息;
所述代理进程模块,用于管理所述模拟器;
所述目标机操作系统模块,用于运行目标机进程;
所述系统主控进程模块,用于将控制命令传递给所述代理进程模块和所述管理进程模块;
所述进程库,用于代理进程模块和所述管理进程模块通信操作。
6、根据权利要求5所述的联合模拟系统,其特征在于,所述模拟器,包括一虚拟设备,所述虚拟设备使用该虚拟设备所在模拟器的资源;所述代理进程模块通过控制该虚拟设备间接控制所述模拟器。
7、根据权利要求6所述的联合模拟系统,其特征在于,所述目标机操作系统模块包括:驱动程序模块和后台进程模块,其中:
所述驱动程序模块,用于在所述虚拟设备和目标机之间传递消息;
所述后台进程模块,用于控制所述目标机操作系统模块上运行的目标机进程。
8、根据权利要求5所述的联合模拟系统,其特征在于,所述目标机操作系统模块,根据所述模拟器的类型确定目标机操作系统。
9、根据权利要求1或5所述的联合模拟系统系统,其特征在于,所述宿主机进程,包括SHELL程序的进程,用于发出控制命令;所述SHELL程序由用户根据所需的功能编写,是根据用户输入的命令调用系统提供的接口。
10、一种应用于权利要求1至10任一所述的联合模拟系统的工作方法,其特征在于,包括下列步骤:
步骤A、为联合模拟系统编写任务分配脚本;
步骤B、根据所述任务分配脚本,启动联合模拟系统,为联合模拟系统中运行的应用程序的进程统一分配系统进程ID,并利用所述任务分配脚本为联合模拟系统创建并加载、销毁联合模拟系统中运行的应用程序的进程;
步骤C、根据所述任务分配脚本和所述系统进程ID,实现所述联合模拟系统中运行的应用程序的进程自由通信。
11、根据权利要求10所述的联合模拟系统的工作方法,其特征在于,所述步骤B包括下列步骤:
步骤B1、为联合模拟系统中运行的应用程序的进程统一分配系统进程ID;
步骤B2、利用所述任务分配脚本为联合模拟系统创建并加载、销毁联合模拟系统中运行的应用程序的进程。
12、根据权利要求11所述的联合模拟系统的工作方法,其特征在于,步骤B1中,所述统一分配系统进程ID,需要确定进程空间范围,所述确定进程空间范围的步骤包括:若一进程空间范围是1~N,另一进程空间范围是1~M,而宿主机上的进程空间是1~P,那么所述联合模拟系统能够提供范围在1~(M+N+P)的进程空间。
13、根据权利要求11所述的联合模拟系统的工作方法,其特征在于,所述步骤B2包括下列步骤:
步骤B21、使用任务分配脚本创建并加载宿主机进程和目标机进程。
14、根据权利要求13所述的联合模拟系统的工作方法,其特征在于,步骤B21中,所述创建并加载宿主机进程包括:用户输入创建宿主机进程请求,通过SHELL程序将创建请求提交给管理进程,该管理进程根据任务分配脚本确定创建的宿主机进程对应的管理进程,将创建请求转交给与创建的宿主机进程对应的管理进程,该管理进程利用宿主机系统提供的进程创建和加载机制实现宿主机进程的创建和加载。
15、根据权利要求14所述的联合模拟系统的工作方法,其特征在于,所述SHELL程序的进程属于宿主机进程,用于发出控制命令;SHELL程序由用户根据所需的功能自行编写,是根据用户输入的命令调用系统提供的接口。
16、根据权利要求15所述的联合模拟系统的工作方法,其特征在于,步骤B21中,所述创建并加载目标机进程包括:用户输入创建目标机进程的请求,通过SHELL程序将创建请求传递给将要运行目标机进程的模拟器对应的代理进程,该代理进程则将目标机进程创建请求转交给该模拟器的虚拟设备;虚拟设备通过中断程序通知驱动程序提取目标机进程创建请求,而驱动程序则将提取的目标机进程创建请求转给目标机的后台进程;目标机的后台进程利用目标机操作系统提供的机制创建并加载目标机进程。
17、根据权利要求16所述的联合模拟系统的工作方法,其特征在于,所述加载分为两种情况:若目标机进程未指定模拟器,联合模拟系统将从目标机进程空间中随机选取一个系统进程ID分配给该目标机进程,将该目标机进程加载到随机选择的模拟器上运行,相应改变任务分配脚本中的数据;若目标机进程指定模拟器,那么联合模拟系统将在该模拟器映射的进程空间范围内为该目标机进程选择一个系统进程ID,将该目标机进程将被加载到指定的模拟器上,相应改变任务分配脚本中的数据。
18、根据权利要求10所述的联合模拟系统的工作方法,其特征在于,步骤C中,所述通信分为两个层面:首先是系统主控进程、代理进程、管理进程之间的通信;其次是宿主机的应用程序的进程之间、目标机的应用程序的进程之间、宿主机的应用程序的进程与目标机的应用程序的进程之间通信。
19、根据权利要求10所述的联合模拟系统的工作方法,其特征在于,所述步骤C还进一步包括:
步骤C1、位于同一宿主机上的不同宿主机进程之间进行通信;
步骤C2、位于同一目标机上的不同目标机进程之间进行通信;
步骤C3、位于不同目标机上的目标机进程之间进行通信;
步骤C4、位于不同宿主机上的宿主机进程之间进行通信;
步骤C5、位于宿主机上宿主机进程与位于目标机上的目标机进程之间进行通信。
20、根据权利要求19所述的联合模拟系统的工作方法,其特征在于,所述步骤C3包括下列步骤:
步骤C31,发送端的目标机进程,将数据提交给已经编译到发送端目标机的通信库;
步骤C32,所述通信库将数据封装成可以用于转发的数据包,然后将数据包提交给发送端的驱动程序;
步骤C33,所述驱动程序不对数据包进一步处理,直接传递给发送端的模拟器的虚拟设备;
步骤C34,所述虚拟设备需要根据传输网络的情况将大数据包划分为若干数据包分片然后再传递给相应代理进程;
步骤C35,所述代理进程根据联合模拟系统的进程树确定将请求转交的代理进程,然后转发数据包分片;
步骤C36,所述代理进程接收到数据包分片后,根据联合模拟系统的进程树确定将请求转交的代理进程,然后转发数据包分片;
步骤C37,接收数据包分片的代理进程将数据包分片转发给根据目的系统进程ID找到的目标机进程所在的模拟器的虚拟设备,该虚拟设备此时不会重组数据包分片,而是将数据包分片通知给接收端的驱动程序;
步骤C38,接收端的驱动程序接收数据包分片并将数据包分片重组回原来的数据包提交给接收端的通信库;
步骤C39,接收端通信库接收到数据包后将数据包提交给接收端的根据目的系统进程ID找到的目标机进程,完成数据传输过程。
21、根据权利要求19所述的联合模拟系统的工作方法,其特征在于,所述步骤C4包括下列步骤:
步骤C41,发送端的宿主机进程,将数据提交给已经编译到发送端的宿主机的通信库;
步骤C42,所述通信库将数据封装成用于转发的数据包,然后将数据包提交给发送端的宿主机的管理进程;
步骤C43,所述管理进程根据联合模拟系统的进程树确定将请求转交的管理进程,然后转发数据包;
步骤C44,所述管理进程接收数据包后将数据包提交给接收端的进程库;
步骤C45,所述接收端的通信库接收到数据包后将数据提交给接收端的根据目的系统进程ID找到的宿主机进程,完成数据传输过程。
22、根据权利要求19所述的联合模拟系统的工作方法,其特征在于,所述步骤C5包括下列步骤:
步骤C51,发送端的宿主机进程,将数据提交给已经编译到发送端的宿主机的通信库;
步骤C52,所述通信库将数据封装成用于转发的数据包,然后将数据包提交给发送端的宿主机的管理进程;
步骤C53,所述管理进程根据联合模拟系统的进程树确定将转发的代理进程,并根据传输网络的情况将大数据包划分为若干数据包分片转发给确定的代理进程;
步骤C54,所述代理进程接收数据包分片,并根据目的系统进程ID找到目标机进程所在模拟器的虚拟设备,并转发数据包分片;
步骤C55,所述虚拟设备此时不会重组数据包分片,而是将数据包分片通知给接收端的目标机操作系统的驱动程序;
步骤C56,所述驱动程序接收数据包分片并将数据包分片重组回原来的数据包提交给接收端的进程库;
步骤C57,所述接收端的进程库将接收的数据包提交给根据目的系统进程ID找到的目标机进程,完成数据传输过程。
23、根据权利要求20、21或者22所述的联合模拟系统的工作方法,其特征在于,所述进程树,与所述任务分配脚本对应,其中所述系统主控进程位于根节点,叶节点是运行在所述联合模拟系统中的应用程序的进程,其它节点对应的是所述模拟器的虚拟设备和所述代理进程或所述管理进程。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNA2009100764739A CN101477474A (zh) | 2009-01-04 | 2009-01-04 | 一种联合模拟系统及其工作方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNA2009100764739A CN101477474A (zh) | 2009-01-04 | 2009-01-04 | 一种联合模拟系统及其工作方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101477474A true CN101477474A (zh) | 2009-07-08 |
Family
ID=40838196
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNA2009100764739A Pending CN101477474A (zh) | 2009-01-04 | 2009-01-04 | 一种联合模拟系统及其工作方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101477474A (zh) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102541708A (zh) * | 2010-12-22 | 2012-07-04 | 无锡物联网产业研究院 | 一种实代码仿真的方法和装置 |
CN102681894A (zh) * | 2011-03-09 | 2012-09-19 | 中兴通讯股份有限公司 | 一种多任务并发调度方法及系统 |
CN101630272B (zh) * | 2009-08-19 | 2013-03-27 | 用友软件股份有限公司 | 进程调度方法和系统 |
CN104216795A (zh) * | 2013-06-04 | 2014-12-17 | 上海联影医疗科技有限公司 | 一种多进程保护系统及其实现方法 |
CN104731635A (zh) * | 2014-12-17 | 2015-06-24 | 华为技术有限公司 | 一种虚拟机访问控制方法,及虚拟机访问控制系统 |
CN106775597A (zh) * | 2016-12-06 | 2017-05-31 | 复旦大学 | 一种松耦合结构的并行多核全系统模拟器 |
CN107168819A (zh) * | 2017-03-31 | 2017-09-15 | 北京奇艺世纪科技有限公司 | 一种操作系统重启方法及装置 |
CN109314726A (zh) * | 2016-06-20 | 2019-02-05 | 华为技术有限公司 | 操作系统容器之间通讯的系统和方法 |
WO2020192443A1 (zh) * | 2019-03-28 | 2020-10-01 | 比亚迪股份有限公司 | 基于异构操作系统的消息传输系统、方法和车辆 |
CN114924810A (zh) * | 2021-05-14 | 2022-08-19 | 武汉深之度科技有限公司 | 一种异构程序执行方法、装置、计算设备及可读存储介质 |
-
2009
- 2009-01-04 CN CNA2009100764739A patent/CN101477474A/zh active Pending
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101630272B (zh) * | 2009-08-19 | 2013-03-27 | 用友软件股份有限公司 | 进程调度方法和系统 |
CN102541708A (zh) * | 2010-12-22 | 2012-07-04 | 无锡物联网产业研究院 | 一种实代码仿真的方法和装置 |
CN102681894A (zh) * | 2011-03-09 | 2012-09-19 | 中兴通讯股份有限公司 | 一种多任务并发调度方法及系统 |
CN104216795A (zh) * | 2013-06-04 | 2014-12-17 | 上海联影医疗科技有限公司 | 一种多进程保护系统及其实现方法 |
CN104731635A (zh) * | 2014-12-17 | 2015-06-24 | 华为技术有限公司 | 一种虚拟机访问控制方法,及虚拟机访问控制系统 |
CN109314726A (zh) * | 2016-06-20 | 2019-02-05 | 华为技术有限公司 | 操作系统容器之间通讯的系统和方法 |
CN106775597A (zh) * | 2016-12-06 | 2017-05-31 | 复旦大学 | 一种松耦合结构的并行多核全系统模拟器 |
CN107168819A (zh) * | 2017-03-31 | 2017-09-15 | 北京奇艺世纪科技有限公司 | 一种操作系统重启方法及装置 |
WO2020192443A1 (zh) * | 2019-03-28 | 2020-10-01 | 比亚迪股份有限公司 | 基于异构操作系统的消息传输系统、方法和车辆 |
CN114924810A (zh) * | 2021-05-14 | 2022-08-19 | 武汉深之度科技有限公司 | 一种异构程序执行方法、装置、计算设备及可读存储介质 |
CN114924810B (zh) * | 2021-05-14 | 2024-02-23 | 武汉深之度科技有限公司 | 一种异构程序执行方法、装置、计算设备及可读存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101477474A (zh) | 一种联合模拟系统及其工作方法 | |
Frank et al. | Multicast communication on network computers | |
CN102768642A (zh) | 一种基于源码分析的linux内核可靠性评测系统及其方法 | |
CN111082949B (zh) | 一种类脑计算机中脉冲数据包高效传输方法 | |
US20130067443A1 (en) | Parallel Processing Development Environment Extensions | |
CN103544103A (zh) | 一种软件性能测试模拟并发方法及系统 | |
US20030005416A1 (en) | Fault search method and apparatus | |
CN113572815B (zh) | 一种跨异构平台的通信技术方法、系统及介质 | |
KR101056682B1 (ko) | 컴포넌트 기반의 무기체계 시뮬레이션 시스템 및 시뮬레이션 방법 | |
CN102591778B (zh) | 一种基于服务的可扩展程序竞赛评测系统 | |
CN109977022A (zh) | 游戏资源的检查方法、装置、系统及存储介质 | |
CN105959347A (zh) | 一种基于p2p网络的全数字协同仿真系统通信方法 | |
CN100588197C (zh) | 一种网格模拟方法及其模拟器 | |
Davydov et al. | SERVICE ROBOTS INTEGRATING SOFTWARE AND REMOTE REPROGRAMMING. | |
CN101799767B (zh) | 一种利用模拟器多种运行模式反复切换进行并行模拟的方法 | |
CN114896108A (zh) | 测试验证系统 | |
CN103678099A (zh) | 一种实现硬件平台与软件平台通讯的方法以及装置 | |
CN101969442B (zh) | 基于进程运行环境感知与迁移的网络模拟框架实现方法 | |
CN109656849B (zh) | 一种基于级联父节点选通的总线地址分配系统及通信方法 | |
CN115271078A (zh) | 一种超级计算机与量子计算机协同的软件栈及工作方法 | |
CN114492052A (zh) | 一种全局流级别网络仿真方法、系统及装置 | |
CN113535572A (zh) | 服务虚拟化装置及方法 | |
Boukerche et al. | Alternative approaches to multicast group management in large-scale distributed interactive simulation systems | |
Adebayo et al. | A performance study of client-broker-server systems | |
Cheng et al. | Ros Based Remote Robot Task Monitoring and Control System |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C12 | Rejection of a patent application after its publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20090708 |