CN114327938A - 一种Linux系统下的PISA管理器实现方式 - Google Patents
一种Linux系统下的PISA管理器实现方式 Download PDFInfo
- Publication number
- CN114327938A CN114327938A CN202111548601.2A CN202111548601A CN114327938A CN 114327938 A CN114327938 A CN 114327938A CN 202111548601 A CN202111548601 A CN 202111548601A CN 114327938 A CN114327938 A CN 114327938A
- Authority
- CN
- China
- Prior art keywords
- shared memory
- node
- memory
- address
- file
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/544—Buffers; Shared memory; Pipes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/176—Support for shared access to files; File sharing support
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5016—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5022—Mechanisms to release resources
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/52—Program synchronisation; Mutual exclusion, e.g. by means of semaphores
- G06F9/526—Mutual exclusion algorithms
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
本发明公开了一种Linux系统下的PISA管理器实现方式,应用于基于信息技术应用创新平台的开创性的基础设施体系架构,所述PISA管理器用于管理API层跨进程调用SPI层,包括服务句柄管理、服务请求ID管理、内存管理、同步调用实现和异步调用实现管理;每个API层调用SPI层,均生成系统唯一的服务句柄;API每次调用SPI层,均生成系统唯一的服务请求ID;通过文件映射共享内存和跨进程锁,保存PISA管理器生成的服务句柄和服务请求ID、API层的调用进程数和调用进程句柄。本发明可以支持多进程访问金融自助设备的设备服务。
Description
技术领域
本发明属于金融自助设备技术领域,具体涉及一种Linux系统下的PISA管理器实现方式。
背景技术
目前,绝大部分金融终端设备,如自助类设备等,均遵循基于Windows操作系统的CEN/XFS(The European Committee for Standardization/Extensions for FinancialServices)规范,CEN/XFS规范为欧洲标准化委员会制定的金融服务扩展规范,与Windows系统密切相关,具有较强的操作系统绑定特性,无法直接迁移至其他系统。
随着Linux系统逐渐应用于越来越多的领域,现已出现了以Linux系统为基础的XFS实现方式,实现大多的都采用直接调用的方式,但这种方式导致设备不能支持多进程访问,而且设备服务跟应用有强的耦合性。因此有必要开发一种Linux系统下的PISA管理器实现方式,用于解决Linux系统下开发设备服务所存在的诸多困难。
发明内容
本发明提供一种Linux系统下的PISA管理器实现方式,可以支持多进程访问金融自助设备的设备服务。
为实现上述技术目的,本发明采用如下技术方案:
一种Linux系统下的PISA管理器实现方式,所述PISA管理器用于管理API层跨进程调用SPI层,包括服务句柄管理、服务请求ID管理、内存管理、同步调用实现和异步调用实现管理;每个API层调用SPI层,均生成系统唯一的服务句柄;API每次调用SPI层,均生成系统唯一的服务请求ID;通过文件映射共享内存和跨进程锁,保存PISA管理器生成的服务句柄和服务请求ID、API层的调用进程数和调用进程句柄。
进一步地,生成系统唯一的服务句柄和系统唯一的服务请求ID的实现方式为:
S01:当API层调用SPI层时,API层初始化PISA管理器,PISA管理器映射到共享内存文件中;如果共享内存的文件不存在,执行步骤S02,如果共享内存的文件存在,执行步骤S03;
S02:生成共享内存文件,文件中包括共享内存跨进程锁、服务句柄、服务请求ID、调用进程数以及调用进程列表,重置调用管理器的进程数为零,并跳转执行步骤S05;
S03:读取共享内存文件中的共享内存跨进程锁、服务句柄、服务请求ID、调用进程数以及调用进程列表,执行步骤S04;
S04:轮询共享内存文件中的调用进程列表,判断列表中的进程编号是否有效,如果进程编号无效,则调用进程数减1;执行步骤S05;
S05:判断调用进程数是否为零,如果为零,则重置服务句柄以及服务请求ID;执行步骤S06;
S06:共享内存的文件中保存的调用进程数加1,并在调用进程列表中增加节点。
进一步地,PISA管理器对服务句柄和服务请求ID的管理方法为:
S11:当API层调用SPI层时,PISA管理器锁定共享内存跨进程锁;
S12:若API层调用连接建立指令,则执行步骤S13,否则执行步骤S14;
S13:共享内存文件中的服务句柄数增加1;
S14:共享内存文件中的服务请求ID增加1;
S15:释放共享内存跨进程锁。
进一步地,所述内存管理通过共享内存的方式,即API层与SPI层文件共享同时映射到同一个内存地址,完成跨进程的API层与SPI层通讯;
其中,跨进程内存操作包括分配、增加、释放三种操作,内存的分配和释放需要跨进程锁互斥内存的分配和释放,并通过链表管理内存分配,采用列表的方式把增加的内存链接在链表中,释放空间直接释放链表上的所有节点;
内存管理的节点包括:跨进程的锁资源、内存列表的数量、共享内存链表数组、共享内存的地址指针首地址,其中的共享内存链表数组包括:暂用该地址的进程编号、共享内存是否使用、指向共享内存的地址指针、共享内存的大小;
链表节点包括:本节点内存的长度、内存的初始化方式、指向下一个节点指针和共享内存数组。
进一步地,进程加载共享内存进行如下操作,完成共享内存的初始化:
S21:读取指定地址的共享内存的配置文件,获取共享内存的映射地址、共享内存的共享大小、共享内存文件位置;
S22:判断该共享内存文件是否存在,若不存在则执行步骤S23,若存在则执行步骤S24;
S23:创建共享文件,并设置文件大小为共享管理的节点加上共享内存块的大小,初始化跨进程锁,执行步骤S25;
S24:打开共享文件,设置共享内存的大小;
S25:锁定管理的节点中的跨进程锁;
S26:若管理的节点的共享内存的指针地址不等于共享内存的地址空间,则执行步骤S27,否则执行步骤S28;
S27:初始化管理的节点,设置管理的节点中的链表数为1,指针地址指向共享内存地址,并初始化共享内存数组的第一个元素;
S28:删除管理节点内存数组中无效进程暂用的元素,如果该节点状态为已暂用,并且进程编号为无效进程,则执行删除节点过程;
S29:释放管理的节点中的跨进程锁。
进一步地,进程分配共享内存和增加共享内存的执行步骤包括:
S31:若过程为增加共享内存,则执行步骤S32;若过程为分配共享内存,则执行步骤S33;
S32:通过父节点地址找到链表中节点指针地址,通过链表找到尾节点;
S33:申请共享内存地址块为申请内存加上链表节点的空间大小;
S34:锁定管理的节点中的跨进程锁;
S35:内存管理节点通过列表数,从共享内存链表数组中找到一块满足申请空间大小节点;如果链表数大于申请空间的大小,则执行步骤S36,否则执行步骤S37。
S36:拆分两个节点,内存管理节点链表数加1,原始位置记录申请的空间链表,记录分配空间的进程编号、空间大小、空间首地址,设置已使用标识;共享内存链表数组链表数节点位置增加一个新节点,设置空间未使用和空间首地址,返回空间地址;执行步骤S38;
S37:设置进程编号以及已使用标识,返回空间地址;
S38:释放管理的节点中的跨进程锁;
S39:空间地址初始化;设置空间大小和初始化标志;初始化内存数组;如果是增加共享内存,尾节点链表指向该节点,返回内存数组地址的首地址为分配空间的地址和结果。
进一步地,释放共享内存的执行步骤包括:
S41:通过释放内存地址找到链表中节点指针地址;
S42:判断链表的内存分配方式是否合法,如果不合规则返回失败,否则继续;
S43:锁定管理的节点中的跨进程锁;
S44:内存管理节点通过列表数找到链表地址空间;如果未找到,跳转执行步骤S49;
S45:设置数组节点空间未使用,并把数组的最后一个节点移动到该节点位置,内存管理节点链表数减1;
S46:轮询整个数组节点,判断是否可以跟一个未使用的块合并,如果能合并执行步骤S47,否则执行S48;
S47:把首地址联合,共享内存大小合并;执行S49;
S48:数组节点最后一个节点增加这个未使用的块;执行S49;
S49:释放管理的节点中的跨进程锁。
进一步地,异步调用实现方式为:API层通过服务句柄、逻辑名生成一个消息队列名,API层把这个消息队列名直接发送给SPI层;SPI完成指令调度后,会根据消息回调消息队列名,发送完成消息;API层获取到完成消息后,直接处理消息,把消息结果给上层应用。
同步调用实现方式为:API层通过PISA管理器调用同步动作,PISA管理器内部生成一个消息队列名,PISA管理器把消息队列名发送给SPI层,并等待消息队列返回的消息;SPI层执行指定调度后,把消息回调给消息队列名,发送完成消息;PISA管理器接收到完成消息后,直接发消息结果返回给API层。
有益效果
本发明具有以下优点:
1、本发明提供了PISA管理器的内部实现,方便后续开发者完成linux下管理器的开发。
2、本发明提供的跨进程共享内存实现方式,为后续在跨进程共享内存实现提供一种实现思路。
3、本发明提供的跨进程消息通讯的实现方式,为其他跨进程通讯提供了一种思路。
附图说明
图1是本申请实施例中所述的基础设施体系架构PISA的结构模型图;
图2是本申请实施例进程加载共享内存的流程图。
具体实施方式
下面对本发明的实施例作详细说明,本实施例以本发明的技术方案为依据开展,给出了详细的实施方式和具体的操作过程,对本发明的技术方案作进一步解释说明。
本实施例提供一种Linux系统下的PISA管理器实现方式,应用于智能机具标准架构协议(PISA,Protocol for Intelligence terminal Standards Architecture),一种智能终端(包括金融终端)的标准体系架构,主要包括PISA管理器、配置信息和设备服务程序,结构模型见图1。
其中的PISA管理器用于管理API层跨进程调用SPI层,因此PISA管理器实现方式主要包括服务句柄管理、服务请求ID管理、内存管理、同步调用实现和异步调用实现管理。
PISA管理器需要管理API层调用的SPI层请求服务句柄和服务请求编号(即服务请求ID),服务句柄和服务请求ID均需要本系统是唯一的,因此:每个API层调用SPI层,均生成系统唯一的服务句柄;API每次调用SPI层,均生成系统唯一的服务请求ID;通过文件映射共享内存和跨进程锁,保存PISA管理器生成的服务句柄和服务请求ID、API层的调用进程数和调用进程句柄。
生成系统唯一的服务句柄和系统唯一的服务请求ID的实现方式为:
S01:当API层调用SPI层时,API层初始化PISA管理器,PISA管理器映射到共享内存文件中;如果共享内存的文件不存在,执行步骤S02,如果共享内存的文件存在,执行步骤S03;
S02:生成共享内存文件,文件中包括共享内存跨进程锁、服务句柄、服务请求ID、调用进程数以及调用进程列表,重置调用管理器的进程数为零,并跳转执行步骤S05;
S03:读取共享内存文件中的共享内存跨进程锁、服务句柄、服务请求ID、调用进程数以及调用进程列表,执行步骤S04;
S04:轮询共享内存文件中的调用进程列表,判断列表中的进程编号是否有效,如果进程编号无效,则调用进程数减1;执行步骤S05;
S05:判断调用进程数是否为零,如果为零,则重置服务句柄以及服务请求ID;执行步骤S06;
S06:共享内存的文件中保存的调用进程数加1,并在调用进程列表中增加节点。
以上步骤实现服务句柄和服务请求编号在系统调用中的唯一性,同时保证没有调用者的情况下,服务句柄和编号会变重置。
PISA管理器对服务句柄和服务请求ID的管理方法为:
S11:当API层调用SPI层时,PISA管理器锁定共享内存跨进程锁;
S12:若API层调用连接建立指令,则执行步骤S13,否则执行步骤S14;
S13:共享内存文件中的服务句柄数增加1;
S14:共享内存文件中的服务请求ID增加1;
S15:释放共享内存跨进程锁。
内存管理主要要完成跨进程API层跟SPI层通讯的结构体相对复杂,需要通过共享内存的方式完成API和SPI层消息通讯。API层跟SPI通过地址映射的方式共享内存空间。一方申请共享内存,修改内存的地址,并把地址传递给另一层。另一层直接通过地址就可以访问对应的内容。本发明实现的方式是文件共享同时映射到同一个内存地址的方式。
内存地址的分配需要分配、增加、释放三种操作方式,内存分配和释放需要跨进程支持,需要跨进程锁互斥内存的分配和释放。共享内存需要支持增加操作,本发明的处理方式是通过链表管理内存分配。内存管理的节点包含如下内容:跨进程的锁资源、内存列表的数量、共享内存链表数组、共享内存的地址指针首地址。共享内存链表数组包括:暂用该地址的进程编号、共享内存是否使用、指向共享内存的地址指针、共享内存的大小。
共享内存要支持增加功能,所以需要一部分空间来管理分配空间和增加空间节点的内存,本发明采用列表的方式把增加的内存链接在链表中,释放空间直接释放链表上的所有节点即可,链表节点(list)包含如下内容:本节点内存的长度、内存的初始化方式、指向下一个节点指针和共享内存数组。
进程加载共享内存进行如下操作,完成共享内存的初始化:
S21:读取指定地址的共享内存的配置文件,获取共享内存的映射地址、共享内存的共享大小、共享内存文件位置;
S22:判断该共享内存文件是否存在,若不存在则执行步骤S23,若存在则执行步骤S24;
S23:创建共享文件,并设置文件大小为共享管理的节点加上共享内存块的大小,初始化跨进程锁,执行步骤S25;
S24:打开共享文件,设置共享内存的大小;
S25:锁定管理的节点中的跨进程锁;
S26:若管理的节点的共享内存的指针地址不等于共享内存的地址空间,则执行步骤S27,否则执行步骤S28;
S27:初始化管理的节点,设置管理的节点中的链表数为1,指针地址指向共享内存地址,并初始化共享内存数组的第一个元素;
S28:删除管理节点内存数组中无效进程暂用的元素,如果该节点状态为已暂用,并且进程编号为无效进程,则执行删除节点过程;
S29:释放管理的节点中的跨进程锁。
进程分配共享内存和增加共享内存的执行步骤包括:
S31:若过程为增加共享内存,则执行步骤S32;若过程为分配共享内存,则执行步骤S33;
S32:通过父节点地址找到链表中节点指针地址,通过链表找到尾节点;
S33:申请共享内存地址块为申请内存加上链表节点的空间大小;
S34:锁定管理的节点中的跨进程锁;
S35:内存管理节点通过列表数,从共享内存链表数组中找到一块满足申请空间大小节点;如果链表数大于申请空间的大小,则执行步骤S36,否则执行步骤S37。
S36:拆分两个节点,内存管理节点链表数加1,原始位置记录申请的空间链表,记录分配空间的进程编号、空间大小、空间首地址,设置已使用标识;共享内存链表数组链表数节点位置增加一个新节点,设置空间未使用和空间首地址,返回空间地址;执行步骤S38;
S37:设置进程编号以及已使用标识,返回空间地址;
S38:释放管理的节点中的跨进程锁;
S39:空间地址初始化;设置空间大小和初始化标志;初始化内存数组;如果是增加共享内存,尾节点链表指向该节点,返回内存数组地址的首地址为分配空间的地址和结果。
释放共享内存的执行步骤包括:
S41:通过释放内存地址找到链表中节点指针地址;
S42:判断链表的内存分配方式是否合法,如果不合规则返回失败,否则继续;
S43:锁定管理的节点中的跨进程锁;
S44:内存管理节点通过列表数找到链表地址空间;如果未找到,跳转执行步骤S49;
S45:设置数组节点空间未使用,并把数组的最后一个节点移动到该节点位置,内存管理节点链表数减1;
S46:轮询整个数组节点,判断是否可以跟一个未使用的块合并,如果能合并执行步骤S47,否则执行S48;
S47:把首地址联合,共享内存大小合并;执行S49;
S48:数组节点最后一个节点增加这个未使用的块;执行S49;
S49:释放管理的节点中的跨进程锁。
异步调用实现方式为:API层通过服务句柄、逻辑名生成一个消息队列名,API层把这个消息队列名直接发送给SPI层;SPI完成指令调度后,会根据消息回调消息队列名,发送完成消息;API层获取到完成消息后,直接处理消息,把消息结果给上层应用。
同步调用实现方式为:API层通过PISA管理器调用同步动作,PISA管理器内部生成一个消息队列名,PISA管理器把消息队列名发送给SPI层,并等待消息队列返回的消息;SPI层执行指定调度后,把消息回调给消息队列名,发送完成消息;PISA管理器接收到完成消息后,直接发消息结果返回给API层。
以上实施例为本申请的优选实施例,本领域的普通技术人员还可以在此基础上进行各种变换或改进,在不脱离本申请总的构思的前提下,这些变换或改进都应当属于本申请要求保护的范围之内。
Claims (9)
1.一种Linux系统下的PISA管理器实现方式,其特征在于,所述PISA管理器用于管理API层跨进程调用SPI层,包括服务句柄管理、服务请求ID管理、内存管理、同步调用实现和异步调用实现管理;每个API层调用SPI层,均生成系统唯一的服务句柄;API每次调用SPI层,均生成系统唯一的服务请求ID;通过文件映射共享内存和跨进程锁,保存PISA管理器生成的服务句柄和服务请求ID、API层的调用进程数和调用进程句柄。
2.根据权利要求1所述的实现方式,其特征在于,生成系统唯一的服务句柄和系统唯一的服务请求ID的实现方式为:
S01:当API层调用SPI层时,API层初始化PISA管理器,PISA管理器映射到共享内存文件中;如果共享内存的文件不存在,执行步骤S02,如果共享内存的文件存在,执行步骤S03;
S02:生成共享内存文件,文件中包括共享内存跨进程锁、服务句柄、服务请求ID、调用进程数以及调用进程列表,重置调用管理器的进程数为零,并跳转执行步骤S05;
S03:读取共享内存文件中的共享内存跨进程锁、服务句柄、服务请求ID、调用进程数以及调用进程列表,执行步骤S04;
S04:轮询共享内存文件中的调用进程列表,判断列表中的进程编号是否有效,如果进程编号无效,则调用进程数减1;执行步骤S05;
S05:判断调用进程数是否为零,如果为零,则重置服务句柄以及服务请求ID;执行步骤S06;
S06:共享内存的文件中保存的调用进程数加1,并在调用进程列表中增加节点。
3.根据权利要求1所述的实现方式,其特征在于,PISA管理器对服务句柄和服务请求ID的管理方法为:
S11:当API层调用SPI层时,PISA管理器锁定共享内存跨进程锁;
S12:若API层调用连接建立指令,则执行步骤S13,否则执行步骤S14;
S13:共享内存文件中的服务句柄数增加1;
S14:共享内存文件中的服务请求ID增加1;
S15:释放共享内存跨进程锁。
4.根据权利要求1所述的实现方式,其特征在于,所述内存管理通过共享内存的方式,即API层与SPI层文件共享同时映射到同一个内存地址,完成跨进程的API层与SPI层通讯;
其中,跨进程内存操作包括分配、增加、释放三种操作,内存的分配和释放需要跨进程锁互斥内存的分配和释放,并通过链表管理内存分配,采用列表的方式把增加的内存链接在链表中,释放空间直接释放链表上的所有节点;
内存管理的节点包括:跨进程的锁资源、内存列表的数量、共享内存链表数组、共享内存的地址指针首地址,其中的共享内存链表数组包括:暂用该地址的进程编号、共享内存是否使用、指向共享内存的地址指针、共享内存的大小;
链表节点包括:本节点内存的长度、内存的初始化方式、指向下一个节点指针和共享内存数组。
5.根据权利要求4所述的实现方式,其特征在于,进程加载共享内存进行如下操作,完成共享内存的初始化:
S21:读取指定地址的共享内存的配置文件,获取共享内存的映射地址、共享内存的共享大小、共享内存文件位置;
S22:判断该共享内存文件是否存在,若不存在则执行步骤S23,若存在则执行步骤S24;
S23:创建共享文件,并设置文件大小为共享管理的节点加上共享内存块的大小,初始化跨进程锁,执行步骤S25;
S24:打开共享文件,设置共享内存的大小;
S25:锁定管理的节点中的跨进程锁;
S26:若管理的节点的共享内存的指针地址不等于共享内存的地址空间,则执行步骤S27,否则执行步骤S28;
S27:初始化管理的节点,设置管理的节点中的链表数为1,指针地址指向共享内存地址,并初始化共享内存数组的第一个元素;
S28:删除管理节点内存数组中无效进程暂用的元素,如果该节点状态为已暂用,并且进程编号为无效进程,则执行删除节点过程;
S29:释放管理的节点中的跨进程锁。
6.根据权利要求5所述的实现方式,其特征在于,进程分配共享内存和增加共享内存的执行步骤包括:
S31:若过程为增加共享内存,则执行步骤S32;若过程为分配共享内存,则执行步骤S33;
S32:通过父节点地址找到链表中节点指针地址,通过链表找到尾节点;
S33:申请共享内存地址块为申请内存加上链表节点的空间大小;
S34:锁定管理的节点中的跨进程锁;
S35:内存管理节点通过列表数,从共享内存链表数组中找到一块满足申请空间大小节点;如果链表数大于申请空间的大小,则执行步骤S36,否则执行步骤S37。
S36:拆分两个节点,内存管理节点链表数加1,原始位置记录申请的空间链表,记录分配空间的进程编号、空间大小、空间首地址,设置已使用标识;共享内存链表数组链表数节点位置增加一个新节点,设置空间未使用和空间首地址,返回空间地址;执行步骤S38;
S37:设置进程编号以及已使用标识,返回空间地址;
S38:释放管理的节点中的跨进程锁;
S39:空间地址初始化;设置空间大小和初始化标志;初始化内存数组;如果是增加共享内存,尾节点链表指向该节点,返回内存数组地址的首地址为分配空间的地址和结果。
7.根据权利要求5所述的实现方式,其特征在于,释放共享内存的执行步骤包括:
S41:通过释放内存地址找到链表中节点指针地址;
S42:判断链表的内存分配方式是否合法,如果不合规则返回失败,否则继续;
S43:锁定管理的节点中的跨进程锁;
S44:内存管理节点通过列表数找到链表地址空间;如果未找到,跳转执行步骤S49;
S45:设置数组节点空间未使用,并把数组的最后一个节点移动到该节点位置,内存管理节点链表数减1;
S46:轮询整个数组节点,判断是否可以跟一个未使用的块合并,如果能合并执行步骤S47,否则执行S48;
S47:把首地址联合,共享内存大小合并;执行S49;
S48:数组节点最后一个节点增加这个未使用的块;执行S49;
S49:释放管理的节点中的跨进程锁。
8.根据权利要求1所述的实现方式,其特征在于,异步调用实现方式为:API层通过服务句柄、逻辑名生成一个消息队列名,API层把这个消息队列名直接发送给SPI层;SPI完成指令调度后,会根据消息回调消息队列名,发送完成消息;API层获取到完成消息后,直接处理消息,把消息结果给上层应用。
9.根据权利要求1所述的实现方式,其特征在于,同步调用实现方式为:API层通过PISA管理器调用同步动作,PISA管理器内部生成一个消息队列名,PISA管理器把消息队列名发送给SPI层,并等待消息队列返回的消息;SPI层执行指定调度后,把消息回调给消息队列名,发送完成消息;PISA管理器接收到完成消息后,直接发消息结果返回给API层。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011503627.0A CN112612622A (zh) | 2020-12-18 | 2020-12-18 | 一种Linux系统下的PISA管理器实现方式 |
CN2020115036270 | 2020-12-18 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114327938A true CN114327938A (zh) | 2022-04-12 |
Family
ID=75241044
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011503627.0A Withdrawn CN112612622A (zh) | 2020-12-18 | 2020-12-18 | 一种Linux系统下的PISA管理器实现方式 |
CN202111548601.2A Pending CN114327938A (zh) | 2020-12-18 | 2021-12-17 | 一种Linux系统下的PISA管理器实现方式 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011503627.0A Withdrawn CN112612622A (zh) | 2020-12-18 | 2020-12-18 | 一种Linux系统下的PISA管理器实现方式 |
Country Status (1)
Country | Link |
---|---|
CN (2) | CN112612622A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117201577A (zh) * | 2023-11-07 | 2023-12-08 | 中电长城(长沙)信息技术有限公司 | 基于pisa的跨平台api和spi的通讯方法和系统 |
-
2020
- 2020-12-18 CN CN202011503627.0A patent/CN112612622A/zh not_active Withdrawn
-
2021
- 2021-12-17 CN CN202111548601.2A patent/CN114327938A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117201577A (zh) * | 2023-11-07 | 2023-12-08 | 中电长城(长沙)信息技术有限公司 | 基于pisa的跨平台api和spi的通讯方法和系统 |
CN117201577B (zh) * | 2023-11-07 | 2024-02-13 | 中电长城(长沙)信息技术有限公司 | 基于pisa的跨平台api和spi的通讯方法和系统 |
Also Published As
Publication number | Publication date |
---|---|
CN112612622A (zh) | 2021-04-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5687373A (en) | Communications system for exchanging data between computers in a network and a method of operating such a system in which communications services are defined within a common object class | |
WO2020228838A1 (zh) | 容器化vnf的部署方法和相关设备 | |
US7299320B2 (en) | Message based inter-process for high volume data | |
WO2022143653A1 (zh) | 基于微服务的多云接口适配方法、系统及存储介质 | |
WO2020211652A1 (zh) | 多租户场景下的租户资源管理方法和装置 | |
CN113032166B (zh) | 核间通信的方法、处理器、核间通信系统及计算机可读存储介质 | |
JP2022550402A (ja) | ネットワークリソース管理方法、システム、ネットワーク機器と可読記憶媒体 | |
CN114327938A (zh) | 一种Linux系统下的PISA管理器实现方式 | |
CN111163140A (zh) | 资源获取和分配的方法、装置和计算机可读存储介质 | |
CN109905258B (zh) | PaaS的管理方法、装置及存储介质 | |
US20220365822A1 (en) | Data Processing Method and Computer Device | |
US7669202B1 (en) | Resource management | |
CN114911632A (zh) | 一种进程间通信的控制方法和系统 | |
CN111770179B (zh) | 一种高性能高可用云化联网网关实现方法、介质及终端 | |
CN112015515B (zh) | 一种虚拟网络功能的实例化方法及装置 | |
CN113312031A (zh) | 一种软件通信体系结构的命名服务接口 | |
US7472174B2 (en) | Abstract mechanism for constructing commands for the command pattern | |
CN110784335A (zh) | 一种云场景下的网元资源预留系统 | |
CN111949286A (zh) | 一种升级方法、装置、设备及计算机可读存储介质 | |
CN114968497B (zh) | 硬件层的调用方法、装置、设备及存储介质 | |
US11442756B2 (en) | Common service resource application method, related device, and system | |
CN114168233B (zh) | 一种数据处理方法、装置、服务器及存储介质 | |
KR100594430B1 (ko) | 네트워크 환경에서의 비동기적 입출력 처리 방법 | |
US7843935B2 (en) | System and method for resource management in a terminal connected to a communication network | |
WO2018014356A1 (zh) | 一种加载方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |