发明名称 跨异构操作系统的一种I/O密集型协同交互仿真方法
摘要 本发明属于系统仿真技术领域,具体涉及跨异构操作系统的一种I/O密集型协同交互仿真方法,包括以下步骤:⑴确定跨异构操作系统协同仿真交互中的开发环境;⑵确定协同仿真交互运行的源码库;⑶确定协同仿真交互运行的应用开发接口API;⑷信息协同交互步骤;⑸在Linux操作系统中,安装、配置协同交互仿真环境;⑹编写CMakeLists.txt;⑺工程编译成功之后,将提供协同交互服务的支撑软件中的可执行文件到usr/bin目录下,使得能够在Linux下被成功调用;⑻构建InfiniBand高速网体系作为协同交互仿真的网络环境;⑼用IP网和IB网结合的IPoIB体系控制跨操作系统协同交互仿真软件在InfiniBand体系下运行;⑽基于InfiniBand体系的跨操作系统I/O密集型协同交互的通信方法;⑾基于InfiniBand体系的跨操作系统协同交互流程。
申请公布号 CN103777992A 申请公布日期 2014.05.07
申请号 CN201210396368.5 申请日期 2012.10.18
申请人 北京临近空间飞行器系统工程研究所;中国运载火箭技术研究院 发明人 铁鸣;吴旭生;王玲;刘璟;丁雪
分类号 G06F9/455(2006.01)I;G06F9/45(2006.01)I 主分类号 G06F9/455(2006.01)I
代理机构 核工业专利中心 11007 代理人 高尚梅
主权项 跨异构操作系统的一种I/O密集型协同交互仿真方法,其特征在于,包括以下步骤:⑴确定跨异构操作系统协同仿真交互中的开发环境:使用通用的高级语言,并编写程序;对原有的开发代码进行检验,检验原有代码是否使用C/C++语言的标准;跨操作系统的协同交互程序使用标准库;⑵确定协同仿真交互运行的源码库:编译器将程序源代码翻译成可执行的代码;在Windows系统下编译器选用VC++,Linux系统下编译器选用G++;对协同交互仿真对象在Linux环境下采用G++和跨平台编译工具Cmake,通过编写cmake编译文件CMakeLists.txt生成相应的静态链接库和可执行文件;⑶确定协同仿真交互运行的应用开发接口API:在协同仿真交互运行体系中,协同支撑软件本地代理进程RTIA与协同支撑软件网关RTI Gateway都涉及到对于系统进程的操作,针对在Linux环境下与Windows环境下不同的操作系统接口调用的形式,涉及到的Windows应用开发接口API改用Linux下的应用开发接口API;⑷信息协同交互步骤:获取交互信息集合,获取集合中的交互信息,声明输出交互信息,声明输入交互信息,更新交互信息,进行异步传输,请求协同推进,接受所有成员一致请求后,开始协同推进;⑸在Linux操作系统中,安装、配置协同交互仿真环境:先后安装以下程序:c语言编译环境、跨平台编译工具cmake、编译器代码生成器yacc、xml C语言解析器libxml2;⑹编写CMakeLists.txt:对每一个子文件夹下相应的cmake编译文件CMakeLists.txt进行编写,然后进入其所在的目录后执行cmake编译工具程序,得到编译制定规则Makefile并进行编译;⑺工程编译成功之后,将提供协同交互服务的支撑软件中的可执行文件到usr/bin目录下,使得能够在Linux下被成功调用;⑻构建InfiniBand高速网体系作为协同交互仿真的网络环境:InfiniBand高速网体系的整体结构由如下几部分组成:InfiniBand交换机、InfiniBand主机通道适配器、InfiniBand目标通道适配器、路由器;InfiniBand的物理层根据网络介质(铜线或光纤)的类型把该包转换成电信号或光信号进行传输;⑼用IP网和IB网结合的IPoIB体系控制跨操作系统协同交互仿真软件在InfiniBand体系下运行:在TCP/IP包外包一层InfiniBand协议的包,在InfiniBand子网内部,每个节点都经过TCP/IP的打包后,再在外面包装一层InfiniBand协议的包,在运行InfiniBand的子网内部之间传递;当子网内数据包通过接口机时,把InfiniBand部分卸载后送出,从子网外部进来的以太网数据包进入接口机时,在外面加入InfiniBand协议部分;⑽基于InfiniBand体系的跨操作系统I/O密集型协同交互的通信方法:本地进程RTIA位于跨操作系统的协同交互仿真节点和RTI Gateway之间,监听和管理两者之间的消息传递,对联邦成员的请求和交互数据进行处理和过滤,通过网络链接把请求发往服务器RTI Gateway;在RTIA与成员程序以及RTI Gateway服务器之间采用Socket网络通信模式,通过IPoIB协议,把在不同节点上的成员连接起来。在Windows 2008 Server环境下的联邦成员,通过调用Windows套接字应用开发接口Windows Socket API调用TCP/IP协议,然后经过IPoIB协议通过InfiniBand与其他成员通信;在linuxServer环境下的联邦成员,通过调用linux套接字应用开发接口linux Socket API套接字应用开发接口,调用TCP/IP协议,然后经过IPoIB协议通过InfiniBand与其他成员通信;⑾基于InfiniBand体系的跨操作系统协同交互流程:成员向本地RTIA传递服务消息,本地RTIA通过Windows(linux)Socket API利用TCP/IP协议进行通信,IP报文通过IPoIB协议加上InfiniBand包头封转为InfiniBand报文,InfiniBand报文通过InfiniBand链路进行通信传递到RTIGateway服务器,InfiniBand报文通过IPoIB协议将其转换为IP报文,RTIGateway服务器通过Windows(linux)Socket API解读报文消息并处理。
地址 100076 北京市丰台区南大红门路1号