一种基于加密卡PCIE独立IO支持多进程、多线程的方法技术

技术编号:29789467 阅读:18 留言:0更新日期:2021-08-24 18:08
本发明专利技术公开了一种基于加密卡PCIE独立IO支持多进程、多线程的方法,IO空间包括参数区、进程标识区和线程标识区,包括以下步骤:S1:读取配置文件,获取到进程个数和线程个数的配置信息;S2:进程初始化;S3:线程初始化;S4:数据传输;S5:IO空间释放。其中进程标识区用于对已使用进程进行标识,确保进程内进行线程初始化时IO空间是正确的避免同一空间重复使用,导致数据传输出现错误。线程标识是每个线程调用加解密服务时用于数据传输的IO空间,保证各线程稳定快速进行。通过对IO空间进行设计和划分,使独立IO空间具备支持多进程和多线程的方案,提高了通讯的性能和效率、避免出错。

【技术实现步骤摘要】
一种基于加密卡PCIE独立IO支持多进程、多线程的方法
本专利技术涉及通信领域,更具体地说涉及一种基于加密卡PCIE独立IO支持多进程、多线程的方法。
技术介绍
PCI-Express(peripheralcomponentinterconnectexpress)是一种高速串行计算机扩展总线标准,它的主要优势就是数据传输速率高,另外还有抗干扰能力强,传输距离远,功耗低等优点。PCIE通过的IO空间进行数据传输。加密卡是一款通过PCIE插槽插在服务器上,通过PCIE和主机进行通讯的一个加解密服务产品。但是PCIE的IO空间是共享的,对外需要提供支持高性能的多进程,多线程的接口。但是现有的PCIE的IO空间在进行多进程、多线程信息传递时存在出现信息传递错位、数据传输效率低的问题。
技术实现思路
本专利技术的目的在于提供一种基于加密卡PCIE独立IO支持多进程、多线程的方法,将IO空间划分为参数区、进程标识区和线程标识区,提供多进程、多线程服务,实现数据快速、准确传输,用以解决上述
技术介绍
中存在的技术问题。本专利技术技术方案一种基于加密卡PCIE独立IO支持多进程、多线程的方法,IO空间包括参数区、进程标识区和线程标识区,本方法包括以下步骤:S1:读取配置文件,获取到进程个数和线程个数的配置信息;S2:进程初始化,获取IO空间中进程标识区的未被标识的区域,根据进程个数和线程个数分配进程的ID并标记,获取进程的PID并创建共享内存;S3:线程初始化,根据进程的ID定位到IO空间线程标识的首地址,确定线程的THREADID,并把对应的IO空间做标记,将线程的THREADID和进程的PID绑定存在共享内存中;S4:数据传输,服务接口接收传入线程的THREADID和数据,根据线程的THREADID和进程的PID确定IO空间中传输地址并进程数据传输;S5:空间释放,根据线程的THREADID和进程的PID分别清除当前线程和进程的IO资源。在一个优选地实施例中,未被标识的区域获取方法为:A1:将PCIE的IO空间映射到主机侧;A2:使用lockf获取文件锁;A3:读取IO空间的进程标识区的值,根据读取数值确定未被标识的区域,并释放文件锁。在一个优选地实施例中,进程标识区的初始值为0,进程标识区使用时数值为1,S2中进程的ID标记为1。在一个优选地实施例中,所述共享内存通过shmget创建,所述共享内存的KEY为PID,所述共享内存中存储的内容为进程的PID和线程的THREADID,共享内存的大小为配置文件中线程个数*sizeof(PID)+sizeof(THREADID)。在一个优选地实施例中,S3中IO空间的标记值为1。本专利技术技术方案的有益效果是:将IO空间划分为参数区、进程标识区和线程标识区。其中进程标识区用于对已使用进程进行标识,确保进程内进行线程初始化时IO空间是正确的避免同一空间重复使用,导致数据传输出现错误。线程标识是每个线程调用加解密服务时用于数据传输的IO空间,保证各线程稳定快速进行。通过对IO空间进行设计和划分,使独立IO空间具备支持多进程和多线程的方案,提高了通讯的性能和效率、避免出错。附图说明图1为本专利技术整体流程图,图2为本专利技术进程初始化流程图,图3为本专利技术线程初始化流程体。具体实施方式下面结合附图和具体实施方式对本专利技术作进一步详细的说明。本专利技术的实施例是为了示例和描述起见而给出的,而并不是无遗漏的或者将本专利技术限于所公开的形式。很多修改和变化对于本领域的普通技术人员而言是显而易见的。选择和描述实施例是为了更好说明本专利技术的原理和实际应用,并且使本领域的普通技术人员能够理解本专利技术从而设计适于特定用途的带有各种修改的各种实施例。参照图1-图3,本专利技术技术方案一种基于加密卡PCIE独立IO支持多进程、多线程的方法,IO空间包括参数区、进程标识区和线程标识区。其中参数区是用作主机侧和卡侧进行一些参数传递配置等使用;进程标识区是为了进行初始化的时候,能够知道当前已经有几个进程在使用了,确保进程内进行线程初始化时IO空间是正确的避免同一空间重复使用,导致数据传输出现错误;线程标识是每个线程调用加解密服务时用于数据传输的IO空间。本方法包括以下步骤:S1:读取配置文件,获取到进程个数和线程个数的配置信息;通过对配置文件进行分析确定该文件所含有的进程个数和线程个数,以便IO空间进行空间准备。S2:进程初始化,获取IO空间中进程标识区的未被标识的区域,根据进程个数和线程个数分配进程的ID并标记,获取进程的PID并创建共享内存。进程初始化的目的是为配置文件准备好对应进程和线程所需的内存空间。在准备前,通过查看IO空间中空间标识区的标识情况,来确定未被标识的区域,即未被使用的区域,配置文件的传输工作在未被标识区域完成。未被标识的区域获取方法为:A1:将PCIE的IO空间映射到主机侧;A2:使用lockf获取文件锁;A3:读取IO空间的进程标识区的值,根据读取数值确定未被标识的区域,并释放文件锁。进程标识区的初始值为0,进程标识区使用时数值为1。0代表的是该区域未被使用,1代表的是该空间正在使用。在0代标识的区域内进行进程的ID分配(0,1…N),具体个数根据S1中获取的进程个数确定,然后对这些分配的进程ID标记,标记值为1,表示该进程的ID对应的空间区域已经在使用了,避免重复使用。通过用getpid获取进程的PID,然后根据进程的PID创建共享内存。共享内存通过shmget创建,共享内存的KEY为PID,共享内存中存储的内容为进程的PID和线程的THREADID(根据支持的线程最大个数分析0到N),共享内存的大小为配置文件中线程个数*sizeof(PID)+sizeof(THREADID)。S3:线程初始化,获取互斥锁、获取文件锁;根据进程的ID定位到IO空间线程标识的首地址,确定线程的THREADID,并把对应的IO空间做标记,IO空间的标记值为1;释放文件锁,将线程的THREADID和进程的PID绑定存在共享内存中。S4:数据传输,服务接口接收传入线程的THREADID和数据,根据线程的THREADID和进程的PID确定IO空间中传输地址并进程数据传输。S5:空间释放,根据线程的THREADID和进程的PID分别清除当前线程和进程的IO资源。在数据传输完成后,对执行任务的线程的THREADID和进程的PID进行清除,将占用的空间区域释放出来,整个数据传输过程完成。显然,所描述的实施例仅仅是本专利技术的一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域及相关领域的普通技术人员在没有作出创造性劳动的前提下所获得的所有其他实施例,都应属于本专利技术保护的范围。本专利技术中未具体描述和解释说明的结构、装置以及操作方法,如无特别说明和限定,均按照本领域的常规手段进行实施。本文档来自技高网...

【技术保护点】
1.一种基于加密卡PCIE独立IO支持多进程、多线程的方法,其特征在于,IO空间包括参数区、进程标识区和线程标识区,本方法包括以下步骤:/nS1:读取配置文件,获取到进程个数和线程个数的配置信息;/nS2:进程初始化,获取IO空间中进程标识区的未被标识的区域,根据进程个数和线程个数分配进程的ID并标记,获取进程的PID并创建共享内存;/nS3:线程初始化,根据进程的ID定位到IO空间线程标识的首地址,确定线程的THREADID,并把对应的IO空间做标记,将线程的THREADID和进程的PID绑定存在共享内存中;/nS4:数据传输,服务接口接收传入线程的THREADID和数据,根据线程的THREADID和进程的PID确定IO空间中传输地址并进程数据传输;/nS5:IO空间释放,根据线程的THREADID和进程的PID分别清除当前线程和进程的IO资源。/n

【技术特征摘要】
1.一种基于加密卡PCIE独立IO支持多进程、多线程的方法,其特征在于,IO空间包括参数区、进程标识区和线程标识区,本方法包括以下步骤:
S1:读取配置文件,获取到进程个数和线程个数的配置信息;
S2:进程初始化,获取IO空间中进程标识区的未被标识的区域,根据进程个数和线程个数分配进程的ID并标记,获取进程的PID并创建共享内存;
S3:线程初始化,根据进程的ID定位到IO空间线程标识的首地址,确定线程的THREADID,并把对应的IO空间做标记,将线程的THREADID和进程的PID绑定存在共享内存中;
S4:数据传输,服务接口接收传入线程的THREADID和数据,根据线程的THREADID和进程的PID确定IO空间中传输地址并进程数据传输;
S5:IO空间释放,根据线程的THREADID和进程的PID分别清除当前线程和进程的IO资源。


2.根据权利要求1所述的基于加密卡PCIE独立IO支持多进程、多线程的方法,...

【专利技术属性】
技术研发人员:陈继庞文俊王永李小超
申请(专利权)人:清创网御合肥科技有限公司
类型:发明
国别省市:安徽;34

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1