CN105426258A - 在客户端与服务器之间通信的机制和方法 - Google Patents
在客户端与服务器之间通信的机制和方法 Download PDFInfo
- Publication number
- CN105426258A CN105426258A CN201510584213.8A CN201510584213A CN105426258A CN 105426258 A CN105426258 A CN 105426258A CN 201510584213 A CN201510584213 A CN 201510584213A CN 105426258 A CN105426258 A CN 105426258A
- Authority
- CN
- China
- Prior art keywords
- client
- buffer zone
- server
- buffer
- data
- 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
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/568—Storing data temporarily at an intermediate stage, e.g. caching
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
-
- 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
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/12—Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/163—Interprocessor communication
- G06F15/167—Interprocessor communication using a common memory, e.g. mailbox
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- General Health & Medical Sciences (AREA)
- Medical Informatics (AREA)
- Computing Systems (AREA)
- Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Computer And Data Communications (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Multi Processors (AREA)
- Memory System (AREA)
Abstract
本发明题为“在客户端与服务器之间通信的机制和方法”。用于由至少一个客户端访问共享存储器中的消息数据的机制和方法包括分配共享存储器中的数据(该存储器在多个缓冲区中配置),以及由客户端或服务器访问数据而不锁定或限制对数据的访问。
Description
背景技术
线路可替换单元(LRU)是例如车辆或飞机等较大单元的模块化部件,并且针对规范来设计以确保它们在失效的情况下可以互换和/或被替换。例如,飞机的LRU可包括完全包含的系统、传感器、无线电或其他辅助设备,用于管理和/或操作飞机功能。在飞机环境中,LRU可设计成根据特定操作、互操作性和/或形状因子标准(例如由ARINC系列标准定义的那些)来操作。
多个LRU可通过数据网络互连以在飞行控制计算机或其他计算机系统的共同或共享存储器中访问或交换数据。飞行控制计算机或其他计算机系统可进一步管理和/或操作飞机功能。
发明内容
在一个实施例中,用于通过访问共享存储器中的消息数据而在至少一个客户端与至少一个服务器之间通信的机制包括共享存储器中的数据到至少一个邮件槽内的分配,该分配通过预定的常量地址和用于至少一个客户端中的每个的缓冲区组而可访问,并且其中这些缓冲区中的每个可由相应客户端或服务器中的任一个控制,至少一个邮件槽具有识别至少一个客户端和至少一个服务器的引用,至少一个客户端具有使至少一个客户端能够经由客户端控制的缓冲区直接操纵消息数据的主动访问指针,至少一个服务器具有使至少一个服务器能够经由服务器控制的缓冲区直接操纵消息数据的主动访问指针。主动访问指针仅使用原子操作在缓冲区之间分配而不在操作系统级复制数据。
在另一个实施例中,用于通过访问共享存储器中的消息数据而在至少一个客户端与一个服务器之间通信的方法,该方法包括:将共享存储器中的数据分配到至少一个邮件槽内;指派单个预定地址以访问每个至少一个邮件槽;对至少一个客户端中的每个分配多个缓冲区,每个缓冲区是客户端可控制或服务器可控制的,缓冲区的数量等于相应客户端请求的事务的数量;以及分配来自客户端控制的缓冲区的客户端主动访问指针来使客户端控制的缓冲区的控制变成服务器控制的缓冲区,其使服务器能够经由服务器主动访问指针来直接操纵消息数据。消息数据经由到缓冲区的主动访问指针来访问而不在操作系统级复制消息数据。
技术方案1:一种通过访问共享存储器中的消息数据而在至少一个客户端与至少一个服务器之间通信的机制,其包括:
所述共享存储器中的数据到至少一个邮件槽内的分配,所述分配通过预定的常量地址和用于执行事务请求的至少一个客户端中的每个的缓冲区组而可访问,并且其中所述缓冲区中的每个可由相应客户端或服务器中的任一个控制;
所述至少一个邮件槽具有识别所述至少一个客户端和所述至少一个服务器的引用;
所述至少一个客户端具有使所述至少一个客户端能够经由客户端控制的缓冲区直接操纵消息数据的主动访问指针;以及
所述至少一个服务器具有使所述至少一个服务器能够经由服务器控制的缓冲区直接操纵消息数据的主动访问指针;
其中所述主动访问指针仅使用原子操作在缓冲区之间分配而不在操作系统级复制数据。
技术方案2:如技术方案1所述的机制,其中所述机制是飞行管理系统。
技术方案3:如技术方案1所述的机制,其中所述至少一个邮件槽和所述缓冲区组在所述共享存储器的初始化期间预定义。
技术方案4:如技术方案1所述的机制,其中所述事务请求包括读取所述数据或将新的数据写入所述缓冲区中的至少一个。
技术方案5:如技术方案4所述的机制,其中至少一个事务分配给单向存储器空间,所述单向存储器空间包括至少可用缓冲区队列和请求缓冲区队列。
技术方案6:如技术方案4所述的机制,其中至少一个事务分配给双向存储器空间,所述双向存储器空间包括至少可用缓冲区队列、请求缓冲区队列和响应缓冲区队列。
技术方案7:如技术方案1所述的机制,其中缓冲区的数量等于至少相应客户端请求的事务的数量加上一个附加缓冲区。
技术方案8:一种用于通过访问共享存储器中的消息数据而在至少一个客户端与一个服务器之间通信的方法,所述方法包括:
将所述共享存储器中的数据分配到至少一个邮件槽内;
指派单个预定地址以访问每个至少一个邮件槽;
对所述至少一个客户端中的每个分配多个缓冲区,每个缓冲区是客户端可控制或服务器可控制的,缓冲区的数量等于相应客户端请求的事务的数量;以及
分配来自客户端控制的缓冲区的客户端主动访问指针来使所述客户端控制的缓冲区的控制变成服务器控制的缓冲区,其使所述服务器能够经由服务器主动访问指针来直接操纵所述消息数据;
其中所述消息数据经由到所述缓冲区的主动访问指针来访问而不在操作系统级复制所述消息数据。
技术方案9:如技术方案8所述的方法,其中将所述数据分配到至少一个邮件槽、指派单个预定地址以及对每个至少一个客户端分配多个缓冲区在所述共享存储器的初始化期间出现。
技术方案10:如技术方案8所述的方法,其中访问所述消息数据包括读取所述数据或将新的数据写入所述缓冲区中的至少一个。
技术方案11:如技术方案10所述的方法,其中至少一个事务在单向存储器空间中执行,其包括至少状态部分和消息数据部分。
技术方案12:如技术方案10所述的方法,其中至少一个事务在双向存储器空间中执行,其包括至少可用缓冲区队列、请求缓冲区队列和响应缓冲区。
技术方案13:如技术方案8所述的方法,其进一步包括在相应的未被占用客户端控制的缓冲区中发起新的客户端事务请求。
技术方案14:如技术方案8所述的方法,其中缓冲区的数量等于至少所述相应客户端请求的事务的数量加上一个附加缓冲区。
技术方案15:如技术方案14所述的方法,其中所述新的客户端事务请求在所有相应客户端缓冲区被占用时将失效。
附图说明
在图中:
图1是根据本发明的一个实施例的飞机和通信网络的自顶向下示意图。
图2是根据本发明的一个实施例在访问共享存储器的多个客户端和/或服务器之间的通信的示意图。
图3是根据本发明的一个实施例访问邮件槽的缓冲区的客户端的示意图。
图4是根据本发明的一个实施例的单向和双向存储器空间的示意图。
图5是根据本发明的一个实施例对于客户端访问缓冲区中的消息数据的机制的示意图。
图6是根据本发明的一个实施例对于客户端对缓冲区中的数据执行读/写事务的机制的示意图。
图7是根据本发明的一个实施例用于将客户端引导到安全缓冲区的机制的示意图。
具体实施方式
描述的本发明的实施例在飞机的环境中图示,该飞机具有使对多个传感器、系统和飞机的部件可访问的共同或共享存储器互连的数据网络。然而,本发明的实施例可在使用访问共同或共享存储器的客户端和服务器的任何环境中实现。此外,尽管在下文描述“客户端”和“服务器”,将理解描述的特定实施例是客户端和服务器两者的非限制性示例。客户端和服务器的额外示例可包括远程(经由数据网络或互联网)或局部化分立单元、应用、计算机进程、处理线程等,或其任何组合,其访问共享存储器。例如,多个“客户端”可全部驻存在单个计算机或计算单元上,从而访问共同随机存取存储器(RAM)。
如在图1中图示的,示出飞机8,其具有机身10和至少一个涡轮机引擎,示出为左引擎系统12和右引擎系统14。左和右引擎系统12、14可大致相同。尽管图示涡轮机引擎12、14,飞机可具有更少或额外引擎系统,或备选的推进引擎系统,例如基于推进器的引擎。示出飞机8,其进一步包括多个传感器、系统和部件(统称为线路可替换单元(LRU)18)和至少一个服务器20或计算单元,示出为两个飞行管理系统或飞行控制计算机,其靠近彼此、接近飞机8的机头定位。服务器20中的至少一个可进一步包括存储器22。LRU18和服务器20可通过定义数据通信网络24、横过飞机8的至少一部分的传输和/或通信线而通信地互连。LRU18的示例可包括飞行管理系统和/或机载维护系统。可包括额外LRU18。尽管描述服务器20,本发明的实施例可包括任何计算系统、飞行计算机或显示来自多个系统的数据的显示系统。
存储器22可包括随机存取存储器(RAM)、闪存或一个或多个不同类型的便携式电子存储器等,或这些类型的存储器的任何适合的组合。LRU18和/或服务器20可与存储器22操作耦合使得LRU18和/或服务器20或其上的任何计算机程序或进程可访问存储器22(例如,“共享存储器”22)的至少一部分。
如本文使用的,“程序”和/或“进程”可包括计算机程序的全部或一部分,其具有可执行指令集用于控制相应LRU18、服务器20或飞机8功能中的至少一个的管理和/或操作。程序和/或进程可包括计算机程序产品,其可包括用于携带或具有存储在其上的机器可执行指令或数据结构的机器可读介质。这样的机器可读介质可以是任何可用介质,其可以被通用或专用计算机或具有处理器的其他机器访问。一般,这样的计算机程序可包括例程、程序、对象、部件、数据结构、算法等,其具有执行特定任务或实现特定抽象数据类型的技术效果。机器可执行指令、关联的数据结构和程序代表用于执行如本文公开的信息交换的程序代码的示例。机器可执行指令可包括例如指令和数据,其促使通用计算机、专用计算机、控制器或专用处理机执行某一功能或功能组。
在图1中示出的飞机8仅仅是本发明的一个实施例的示意表示,并且用于图示多个LRU18和服务器20可遍布飞机8定位。LRU18和服务器20的确切位点与本发明的实施例无关。另外,在本发明的实施例中可包括更多或更少的LRU18和/或服务器20。
通信网络24图示为总线,但可包括多个数据通信连接器和接口(例如以太网或光纤电缆和路由和/或交换部件),用于促进LRU与服务器20之间的通信互连。此外,通信网络24的配置和操作可由能适用于特定飞机环境的共同标准或法规集定义。例如,飞机8上的通信网络24可由ARINC664(A664)标准或ARINC653(A653)标准定义和/或根据其来配置,每个通过引用完全合并于此。
图2示出根据本发明的一个实施例的数据通信系统24的示意图示。多个LRU18(每个包括一个或多个线程或计算机进程26)访问共享存储器22(示出为共享RAM)。另外,一个或多个服务器20(每个包括一个或多个线程或计算机进程28)也访问共享存储器22。在该意义上,每个进程26、28可访问共享存储器22。
示出存储器22,其进一步包括数据30到至少一个分组或“邮件槽”32内的分配,其安置在存储器22的预定常量可寻址存储器位点或“常量地址”34处。如本文使用的,“邮件槽”可包括为飞机8的数据存储的特定利用所分配的存储器22的预定子集。例如,单个邮件槽32可包括单个数据分配,例如飞机8的空速,而另一个邮件槽32可包括多个相关或不相关数据元素,例如航路点或当前飞行计划。本发明的实施例可包括这样的配置,其中每个个体邮件槽32使用相同的消息数据定义,或其中不同的消息数据定义在不同的邮件槽32中使用。如示出的,邮件槽32可采用源于常量地址34的连续方式排列,例如单链表;然而,邮件槽32的额外组织结构可配置成包括矩阵、对于每个邮件槽32的可变分配等,其全部源于常量地址34位点。
进程26、28和/或相应地LRU18和服务器20中的每个预先配置成包括共享存储器22的预定常量地址34。在该意义上,每个进程26、28、LRU18和/或服务器20预先配置成识别常量地址34的位点,并且因此,识别具有要访问的数据的一个或多个邮件槽32。如本文使用的,每个LRU18和/或每个LRU进程26可视为用于访问共享存储器22中的数据的“客户端”,并且每个服务器20和/或每个服务器进程28可视为用于访问共享存储器22中的数据的“服务器”。可包括额外实施例,其中服务器20执行与客户端相似的动作或功能,并且客户端执行与服务器20相似的动作或功能。在该意义上,“客户端”和“服务器”可执行可互换功能,除非另外指出。另外,尽管服务器20和LRU18图示为独立部件,本发明的实施例可包括驻存在彼此相同的系统上和/或驻存在与共享存储器22相同的系统上的服务器20或客户端。
在本发明的一个实施例中,共享存储器22中邮件槽32的数量在存储器22的初始化期间基于对客户端和/或服务器可访问的邮件槽32的已知数量而预定义。在本发明的另一个实施例中,邮件槽32的数量在运行时间或在运行时间期间由被客户端和/或服务器可访问的邮件槽32的共同数量定义。在该意义上,邮件槽32的数量可以是动态的、根据需要增加和减小或仅在需要访问额外邮件槽32时添加。
现在转向图3,共享存储器22可与多个客户端40和服务器50通信。共享存储器22的每个邮件槽32可进一步包括引用列表33,其包括对一个或多个客户端40和一个或多个服务器50(其可与该特定邮件槽32关联)中的每个的引用的列表。引用列表33可包括例如对于相应客户端40和/或服务器50中的每个关联的路由、源和/或目的信息,使得例如客户端40或服务器50可查阅共享存储器22的引用列表33来获得到相应服务器50或客户端40中的另一个的至少一个通信路径。在该意义上,具有引用列表33的常量地址34和已知邮件槽32的使用促进一个或多个客户端40和/或服务器50之间的通信而不必在客户端40和/或服务器50本身之间定义直接通信。
如示意示出的,一个或多个客户端40中的每个进一步包括主动访问指针42,其能够识别特定可寻址存储器空间,或多个存储器空间分组,例如缓冲区,使得客户端可访问一个或多个缓冲区。如示出的,第一客户端54可访问与第一客户端54关联并且包括多个缓冲区36的第一可寻址存储器空间55。同样示出的,第二客户端56可访问与第二客户端56关联并且包括第二数量的缓冲区36的第二可寻址存储器空间57。相应可寻址存储器空间55、57中的每个由它们相应的客户端54、56和/或它们相应客户端的主动访问指针42来识别和管理。多个缓冲区36中的每个可配置成根据需要对于特定数据元素存储预定数量的数据。本发明的实施例可包括这样的配置,其中例如第一客户端54可仅访问它自己的存储器空间55和/或与特定邮件槽32关联的缓冲区36,并且从而无法访问例如第二客户端56的存储器空间57。在该意义上,每个客户端54、56“拥有”它们相应的存储器空间55、57,即使缓冲区36的个体控制可指派给其他部件也如此。尽管客户端40可局限于它们相应的存储器空间55、57,服务器50可访问任何客户端40的存储器空间55、57中的缓冲区36。
对于每个可寻址存储器空间55、57的缓冲区36的数量可由每个相应客户端54、56所请求的事务的数量来定义。可选地,对于每个可寻址存储器空间55、57的缓冲区36的数量可由每个相应客户端54、56所请求的事务的数量加上一个附加缓冲区36定义。从而,在图示的示例中,第一客户端54请求在共享存储器22中执行两个事务,并且已被提供三个缓冲区36(两个加上一个附加缓冲区),而第二客户端56请求在共享存储器22中执行三个事务,并且已被提供四个缓冲区36(三个加上一个附加缓冲区)。
在本发明的一个实施例中,每个可寻址存储器空间55、57中缓冲区36的数量以及每个缓冲区36的大小在共享存储器22的初始化期间基于能够访问邮件槽32的客户端440的已知数量和事务的已知数量来预定义。在本发明的另一个实施例中,每个可寻址存储器空间55、57中的缓冲区36的数量在运行时间或运行时间期间由然后访问邮件槽32的客户端40的共同数量和请求的事务的数量定义。在该意义上,缓冲区36的数量可以是动态的,其根据需要增加和减小,或仅在额外客户端40访问邮件槽32或请求事务时添加。在本发明的再另一个实施例中,邮件槽32和可寻址存储器空间55、57可独立配置。例如,邮件槽32可如解释的那样预定义,但可寻址存储器空间55、57在运行时间期间动态配置,或反之亦然。在预定义或动态示例中,邮件槽32的数量和/或缓冲区36的配置可根据存储在共享存储器22中的算法或可执行程序来定义。
另外,一个或多个服务器50每个包括主动访问指针52,并且能够访问由相应主动访问指针52指示的特定缓冲区36。例如,服务器50可访问邮件槽32的引用列表33,其可识别客户端40和/或与该客户端40关联的可寻址存储器空间55、57以及其中的缓冲区36中的至少一个。在图示的示例中,第一客户端54与第一缓冲区58关联。本发明的实施例可仅包括与每个邮件槽32通信的单个服务器50。
图4进一步图示客户端的可寻址存储器空间55、57的配置和操作的备选示意图。示出单向存储器空间80,其包括至少由客户端40(未示出)管理的可用缓冲区队列82和由服务器50(未示出)管理的请求缓冲区队列84。可用缓冲区队列82可配置成在存储器空间80中保持可用的最大数量的缓冲区36,而请求缓冲区队列84可配置成保持由客户端40请求的最大数量的缓冲区36(即,存储器空间80中缓冲区36的最大数量,减去一)。在其中不包括“附加”缓冲区的实施例中,可用缓冲区队列82和请求缓冲区队列84可配置成保持相同数量的缓冲区(等于由客户端40请求的缓冲区36的最大数量)。
在图示的示例中,缓冲区36可包括数据有效载荷,或消息,其由相应的客户端40和/或服务器50处理事务。在客户端40执行单向事务请求(事务等待服务器50交互;例如“请求未决”)时,对于每个事务请求的缓冲区36可转移到请求缓冲区队列84用于等待事务或由服务器50处理。一旦服务器50执行和/或处理请求的事务,缓冲区36返回到对于客户端40的可用缓冲区队列82以执行另外的事务请求。客户端40可备选地在使缓冲区36返回可用缓冲区队列82之前从请求的缓冲区队列84返回时对缓冲区36的消息数据执行额外事务和/或处理。如本文使用的,在可用缓冲区队列82中分配的缓冲区36对于发起新的事务可视为“可用”或“未被占用”,而在请求缓冲区队列84中分配的缓冲区36可视为“不可用”或“被占用”。
此外,因为请求缓冲区队列84可用比可用缓冲区队列82少一个的可用缓冲区36队列空间来配置,本发明的实施例可包括这样的配置,其中客户端40对它相应的存储器空间80的所有可用缓冲区36未执行共同未决的完成事务请求(即,不是所有的缓冲区36都可同时在请求缓冲区队列84内)。尽管图示示出缓冲区36从一个队列82、84移到另一个队列82、84,理解缓冲区36本身可未在存储器空间80内改变位点。在该意义上,队列82、84可以是“虚拟队列”。队列82、84可仅图示本发明的一个实施例,其证明在单向存储器空间80中的事务处理期间相应缓冲区36的所有权。
另外图示双向存储器空间86并且它除由客户端40(未示出)管理的响应缓冲区队列88外还可包括可用缓冲区队列82和请求缓冲区队列84,如上文解释的。双向存储器空间86的可用缓冲区队列82和请求缓冲区队列84与上文描述的操作相似地操作,除非另外指出。如示出的,响应缓冲区队列88还可配置成保持由客户端40请求的最大数量的缓冲区36(即,存储器空间80中缓冲区36的最大数量,减去一)。在其中不包括“附加”缓冲区的实施例中,请求的缓冲区队列88可配置成保持一定数量的缓冲区,其等于由客户端40请求的缓冲区36的最大数量。
单向存储器空间80与双向存储器空间86之间的一个差异是一旦服务器50在请求缓冲区队列84中执行和/或处理请求的事务,缓冲区36被转移到响应缓冲区队列88用于被客户端40的一些额外处理(事务等待客户端40交互;例如,“响应未决”)。一旦由客户端40的额外处理在响应缓冲区队列88中完成,缓冲区36返回到可用缓冲区队列82以供客户端40执行另外的事务请求。如本文使用的,在响应缓冲区队列88中分配的缓冲区36可视为“不可用”或“被占用”。响应缓冲区队列88还可以是“虚拟队列”,如上文解释的。此外,本发明的实施例可包括这样的配置,其中客户端40可未对它相应的存储器空间86的所有可用缓冲区36执行共同未决的完成事务请求,并且从而在请求缓冲区队列84与响应缓冲区队列88之间分配的缓冲区36的共同数量可未超出由客户端40请求的缓冲区36的数量。
在这些配置中,单向存储器空间80可例如在只读事务期间提供单向通信,而双向存储器空间86可例如在读和写操作期间提供双向通信。本发明的实施例可包括这样的配置,其中客户端40可发起事务,并且服务器50可用对应的事务作出响应。在本发明的实施例中可包括任何数量的单向和双向存储器空间80、86,并且它们由请求的事务定义,如上文解释的。
用于通过访问共享存储器22的缓冲区36中的消息数据而在至少一个客户端40与至少一个服务器50之间通信的机制关于图5描述。在图5中,为了便于理解和简洁起见,仅图示单个客户端40和对应的可寻址存储器空间57。本发明的实施例可包括多个客户端40和相应的存储器空间57,每个执行相似机制。另外,为了说明目的,示出多个缓冲区36,其具有不同的分类状态(包括被占用44和未被占用46状态)。在这些示例中,“被占用”44缓冲区可以是客户端40“控制的”或服务器50“控制的”,其中“控制”指示相应控制器直接操纵缓冲区36内的消息数据的能力。所有权可由例如客户端40控制和/或管理,或可由客户端的主动访问指针42分配和/或管理。客户端40和/或主动访问指针41基于数据事务请求而指引对多个缓冲区36的访问。
因此,经由第一通信,第一缓冲区58被识别为被占用缓冲区44,并且由客户端40控制。当客户端40完成事务或事务的一部分时,利用第一缓冲区,客户端40可将缓冲区设置成例如“请求未决”来指示服务器50需要事务并且停止第一通信64。不管与服务器50的事务如何,如果客户端40请求新的事务,主动访问指针42将通过识别对事务可用的第二缓冲区60并且指向下一个可用(例如,未被占用)缓冲区36(示出为第二缓冲区60)来管理客户端40的通信。客户端40然后可经由第二通信66与第二缓冲区60通信,并且第二缓冲区60将具有被占用状态44(未示出)。客户端现在将对存储在第二缓冲区60中的数据执行规定的第二事务。在由该相同客户端40请求另一个事务时,机制重复使得由客户端40请求的即将到来的事务可访问未被占用的缓冲区44,如由客户端40和/或主动访问指针42识别的。
在图6中图示的机制建立在图5中示出的机制上。在该示例中,客户端40对第一缓冲区58执行例如读/写事务、完成事务并且将缓冲区58设置成例如“请求未决”来指示服务器50需要事务,并且现在对第二缓冲区60执行事务。
服务器50可根据调度对多个客户端40执行事务。例如,服务器50可基于循环调度、先进先出调度、后进后出调度、顺序调度、服务质量调度、计时调度(其中每个客户端40具有与之交互的定义的时隙)或其组合来对客户端执行事务。可包括额外的算法和/或调度方法,用于寻址多个客户端40事务。
在图示的示例中,当服务器50确定要服务于客户端40时,服务器50可首先查阅邮箱32和/或引用列表33来识别客户端40(图示为通信68)。服务器50可接着查阅客户端40和/或客户端的主动访问指针42来确定服务器50是否需要任何事务(示出为通信70)。如果服务器50不需要事务,服务器50可继续根据调度或算法来操作,并且可例如移到要服务的下一个客户端40。然而,如上文描述的,第一缓冲区58包括要由服务器50完成的事务。客户端40和/或主动访问指针42识别第一缓冲区58准备好服务器50控制,并且可包括例如共享存储器22中第一缓冲区58的位点。
服务器的主动访问指针52然后指向识别的第一缓冲区58,并且继续提供请求的事务(图示为通信72)。当完成服务器50的请求的事务时,服务器50可将缓冲区58设置成例如“响应未决”用于另外的事务或对新的事务设置成可用(未被占用的)。服务器然后可使通信72从第一缓冲区58去耦合,并且可重复上文描述的通信以根据需要或根据调度而服务于额外的客户端40缓冲区36。另外,本发明的实施例可包括优先级指示符,用于由服务器50对特定缓冲区36的服务定优先级。
另外,尽管解释对于服务器50的一个事务请求,理解客户端40可生成这样的事务,其导致列队的多个服务器50请求。不管服务器50如何对多个服务器事务请求作出响应,本发明的实施例可包括这样的实例,其中所有缓冲区36被占据同时客户端40或服务器50试图请求额外事务。这样的情景在图7中图示,其中不存在可用或未被占用46的缓冲区36。在该实例中,例如,客户端对缓冲区36内的数据执行事务,并且所有其他缓冲区36被占用48,从而等待服务器50事务。在该示例中,用于通信的机制规定客户端40、主动访问指针42和/或当前缓冲区36中的至少一个将总是用失效的事务指示对相应的事务请求作出响应直到另外的未被占用46的缓冲区36可用。在该意义上,当事务请求失效时,如果一个或多个缓冲区36变得未被占用46,客户端40可再次尝试执行请求的事务,其例如可在稍后的时间成功完成。从而,机制提供由客户端40请求的多个事务,加上一(即,可选的“附加缓冲区”36),使得甚至客户端40将总是具有对于事务的附加缓冲区36(即使它们是未完成的事务也如此),直到额外缓冲区36可用。在未提供“附加”缓冲区的实施例中,客户端40可不具有缓冲区36来试图执行请求的事务,并且将直到一个或多个缓冲区36变得可用才执行事务。
上文描述的机制可使用任何机器汇编语言事务和/或原子操作来操作而不在超越机器汇编语言的设计级来复制数据,例如不在操作系统级复制数据(例如,“零复制”)。如上文描述的,本发明的实施例的技术效果包括零复制操作通过使用主动访问指针42、52将客户端40和/或服务器50指引到相应缓冲区36(其包括消息数据)而实现,使得消息数据从未被“锁定”或“阻断”被其他客户端40和/或服务器50访问。另外,机器汇编语言的使用允许引用的“原子交换”操作,其中更新在单个原子操作循环中完成,并且从而无法被对数据和/或缓冲区的其他更新所中断,因为其他更新无法在比原子交换更短的操作循环中完成。在该意义上,交换操作保证使引用切换到缓冲区36(绝对成功或失败),并且从而,由于例如交换的中断而没有破坏引用自身的可能。机制跨客户端40和/或进程26、28边界起作用并且不依靠停用中断。
通过利用机器汇编语言指令和基本数据结构(例如,单链列表、基本引用),机制在共享存储器22中使用零复制数据交换在至少一个服务器50与至少一个客户端40之间提供异步进程间数据通信,从而对可访问数据允许“无锁”或“无阻断”而没有复杂的进程优先级配置或“优先级反转”的现象,其中预先访问的较低优先级进程锁定数据并且未“释放”它以用于访问,即使当较高优先级进程请求访问时也如此。事实上,因为使用机器指令的操作趋于“第一个到数据的获胜”,更高优先级进程可总是首先执行它们的操作。另外,机制对于可以在进程级而不只是在线程级执行的可访问数据提供“无等待”访问。
本发明的实施例可通过提供编程应用可编程接口(API)以经由API在操作级(或应用级,等)访问机制而进一步利用上文描述的机构。技术效果是上文描述的实施例提供零复制方法来防止数据锁定、数据阻断和/或优先级反转。
进一步设置并且配置上文描述的机制使得邮件槽32能够对多个客户端40和/或服务器50分配事务请求,即使当事务请求的数量大于预期或规定或以比服务器可以作出响应的更快速率生成时也如此。此外,描述的机制可提供拒绝服务攻击,其中一个或多个客户端试图通过用事务请求饱和目标服务器使得它无法提供规定服务而使得机器或网络资源对它的规定用户不可用。拒绝服务攻击可试图独占服务器50、客户端40和/或缓冲区36资源,其可包括带宽、处理能力或对优先级事务作出响应的能力,或可妨碍规定服务或使其减少,或在最坏情况下,导致目标服务器或资源失效。然而,在上文描述的机制的资源的任何试图独占中,附加缓冲区36的失效事务请求连同服务器50的调度的可选组合将防止这样的拒绝服务攻击,而在没有消耗资源(如上文描述的)并且没有锁定或阻断相应数据的情况下可不出现事务请求。
可在上文的实施例中实现的另外优势是上文描述的实施例防止由非机器语言级的数据复制努力产生的差的系统资源性能。此外,如上文描述的,本发明的实施例通过利用引用和缓冲区而使必需的复制数量减少。上文描述的实施例的另一个优势包括用于覆盖缓冲区中的较旧数据的内置机制,并且从而不需要任何类型的“碎片收集”数据管理方案。此外,从服务器到一个或多个客户端的典型数据共享通过创建全局数据存储并且在例如操作系统级、任何其他互斥或锁定数据保护(例如,数据中断等)(其从处理时间、尤其在数据存储是大的时成本很高)使用信号量(即,访问控制值,例如锁定/解锁指示符)来保护它而实现。这允许如本文描述的更高效且更快速的无锁访问操作。此外,操作系统典型地在进程之间不提供信号量控制,仅在进程内的线程之间提供。
可在上文描述的实施例中实现的其他优势包括邮件槽设计具有使进程保持松散耦合的灵活性、需要很少的协作并且不需要“分阶段启动”(即,进程、客户端和/或服务器可以在任何时间在线)。另外,与不同复制方法相比,上文描述的API的实现可导致对于系统开发的开发成本下降,并且相似硬件上的性能裕度增加。
在还未描述的程度上,各种实施例的不同特征和结构可根据期望彼此结合使用。一个特征可未在实施例中的全部中图示不意在解释它可不在实施例的全部中,而是为了描述的简洁性。从而,不同实施例的各种特征可混合并且根据期望来匹配以形成新的实施例,而无论是否明确描述这些新的实施例。本文描述的特征的所有组合或排列被本公开所涵盖。
该书面描述使用示来公开本发明,其包括最佳模式,并且还使本领域内技术人员能够实践本发明,包括制作和使用任何装置或系统和执行任何包含的方法。本发明的专利范围由权利要求限定,并且可包括本领域内技术人员想到的其他示例。这样的其他示例如果其具有不与权利要求的书面语言不同的结构元件,或者如果其包括与权利要求的书面语言无实质区别的等同结构元件则意在权利要求的范围内。
标号列表
8 | 飞机 | 10 | 机身 |
12 | 左引擎系统 | 14 | 右引擎系统 |
16 | 18 | 线路可替换单元(LRU) | |
20 | 服务器 | 22 | 存储器 |
24 | 数据通信网络 | 26 | LRU进程 |
28 | 服务器进程 | 30 | 数据分配 |
32 | 邮件槽 | 33 | 引用列表 |
34 | 常量地址 | 36 | 多个缓冲区 |
37 | 38 | ||
40 | 客户端 | 42 | 主动访问指针 |
44 | 被占用缓冲区 | 46 | 未被占用缓冲区 |
48 | 50 | 服务器 | |
52 | 主动访问指针 | 54 | 第一客户端 |
55 | 第一可寻址存储器空间 | 56 | 第二客户端 |
57 | 第二可寻址存储器空间 | 58 | 第一缓冲区 |
60 | 第二缓冲区 | 62 | |
64 | 第一通信 | 66 | 第二通信 |
68 | 通信 | 70 | 通信 |
72 | 通信 | 73 | |
74 | 76 | ||
78 | 80 | 单向存储器空间 | |
82 | 可用缓冲区队列 | 84 | 请求缓冲区队列 |
86 | 双向存储器空间 | 88 | 响应缓冲区队列 |
Claims (10)
1.一种通过访问共享存储器(22)中的消息数据而在至少一个客户端(40)与至少一个服务器(50)之间通信的机制,其包括:
所述共享存储器(22)中的数据到至少一个邮件槽(32)内的分配,所述分配通过预定的常量地址(34)和用于执行事务请求的至少一个客户端(40)中的每个的缓冲区组(36)而可访问,并且其中所述缓冲区(36)中的每个可由相应客户端(40)或服务器(50)中的任一个控制;
所述至少一个邮件槽(32)具有识别所述至少一个客户端(40)和所述至少一个服务器(50)的引用;
所述至少一个客户端(40)具有使所述至少一个客户端(40)能够经由客户端控制的缓冲区(36)直接操纵消息数据的主动访问指针(42);以及
所述至少一个服务器(50)具有使所述至少一个服务器(50)能够经由服务器控制的缓冲区(36)直接操纵消息数据的主动访问指针(52);
其中所述主动访问指针(42,52)仅使用原子操作在缓冲区(36)之间分配而不在操作系统级复制数据。
2.如权利要求1所述的机制,其中所述至少一个邮件槽(32)和所述缓冲区组(36)在所述共享存储器(22)的初始化期间预定义。
3.如权利要求1所述的机制,其中至少一个事务分配给单向存储器空间(80),其包括至少可用缓冲区队列(82)和请求缓冲区队列(84)。
4.如权利要求1所述的机制,其中至少一个事务分配给双向存储器空间(86),其包括至少可用缓冲区队列(82)、请求缓冲区队列(84)和响应缓冲区队列(88)。
5.如权利要求1所述的机制,其中缓冲区(36)的数量等于至少相应客户端(40)请求的事务的数量加上一个附加缓冲区(36)。
6.一种用于通过访问共享存储器(22)中的消息数据而在至少一个客户端(40)与一个服务器(50)之间通信的方法,所述方法包括:
将所述共享存储器(22)中的数据分配到至少一个邮件槽(32)内;
指派单个预定地址(34)以访问每个至少一个邮件槽(32);
对所述至少一个客户端(40)中的每个分配多个缓冲区(36),每个缓冲区(36)是客户端可控制或服务器可控制的,缓冲区(36)的数量等于所述相应客户端(40)请求的事务的数量;以及
分配来自客户端控制的缓冲区(36)的客户端(40)主动访问指针(42)来使所述客户端控制的缓冲区(36)的控制变成服务器控制的缓冲区(36),其使所述服务器(50)能够经由服务器(50)主动访问指针(52)来直接操纵所述消息数据;
其中所述消息数据经由到所述缓冲区(36)的主动访问指针(42,52)来访问而不在操作系统级复制所述消息数据。
7.如权利要求6所述的方法,其中将所述数据分配到至少一个邮件槽(32)、指派单个预定地址(34)以及对每个至少一个客户端(40)分配多个缓冲区(36)在所述共享存储器(22)的初始化期间出现。
8.如权利要求6所述的方法,其进一步包括在相应的未被占用客户端控制的缓冲区(36)中发起新的客户端(40)事务请求。
9.如权利要求6所述的方法,其中缓冲区(36)的数量等于至少所述相应客户端(40)请求的事务的数量加上一个附加缓冲区(36)。
10.如权利要求9所述的方法,其中所述新的客户端(40)事务请求在所有相应客户端(40)缓冲区(36)被占用时将失效。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/486325 | 2014-09-15 | ||
US14/486,325 US10560542B2 (en) | 2014-09-15 | 2014-09-15 | Mechanism and method for communicating between a client and a server by accessing message data in a shared memory |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105426258A true CN105426258A (zh) | 2016-03-23 |
CN105426258B CN105426258B (zh) | 2021-04-09 |
Family
ID=54363015
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510584213.8A Active CN105426258B (zh) | 2014-09-15 | 2015-09-15 | 在客户端与服务器之间通信的机制和方法 |
Country Status (7)
Country | Link |
---|---|
US (1) | US10560542B2 (zh) |
JP (1) | JP2016062606A (zh) |
CN (1) | CN105426258B (zh) |
BR (1) | BR102015020596A2 (zh) |
CA (1) | CA2902933A1 (zh) |
FR (1) | FR3025907B1 (zh) |
GB (1) | GB2532843B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109960623A (zh) * | 2017-12-26 | 2019-07-02 | 中国航空工业集团公司西安航空计算技术研究所 | 一种机载分区操作系统仿真器运行时监控方法 |
CN111182041A (zh) * | 2019-12-19 | 2020-05-19 | 苏州浪潮智能科技有限公司 | 一种网络服务器共享缓存区的方法和设备 |
CN112114983A (zh) * | 2020-09-14 | 2020-12-22 | 深圳花儿数据技术有限公司 | 一种基于共享内存的通信方法、装置和设备 |
CN113204573A (zh) * | 2021-05-21 | 2021-08-03 | 珠海金山网络游戏科技有限公司 | 一种数据读写访问系统及方法 |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR3030805B1 (fr) * | 2014-12-19 | 2016-12-23 | Thales Sa | Qualite de service d'un systeme de gestion de vol |
US10417261B2 (en) | 2016-02-18 | 2019-09-17 | General Electric Company | Systems and methods for flexible access of internal data of an avionics system |
DE102016217099B4 (de) | 2016-09-08 | 2019-12-24 | Continental Teves Ag & Co. Ohg | Verfahren zum Verarbeiten von Fahrzeug-zu-X-Nachrichten |
DE102016217100B4 (de) | 2016-09-08 | 2019-12-24 | Continental Teves Ag & Co. Ohg | Verfahren zum Verarbeiten von Fahrzeug-zu-X-Nachrichten |
CN111464621B (zh) * | 2020-03-30 | 2022-06-24 | 四川新网银行股份有限公司 | 分布式系统异步通信中消息发送与接收的数量检测方法 |
US11995922B2 (en) | 2020-07-30 | 2024-05-28 | Ge Aviation Systems Llc | Flight management system and method for reporting an intermitted error |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020144010A1 (en) * | 2000-05-09 | 2002-10-03 | Honeywell International Inc. | Communication handling in integrated modular avionics |
US20040034664A1 (en) * | 2002-08-01 | 2004-02-19 | Oracle International Corporation | Buffered message queue architecture for database management systems with memory optimizations and "zero copy" buffered message queue |
US20060143525A1 (en) * | 2004-12-28 | 2006-06-29 | Frank Kilian | Shared memory based monitoring for application servers |
Family Cites Families (28)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH05224956A (ja) | 1992-02-14 | 1993-09-03 | Nippon Telegr & Teleph Corp <Ntt> | プロセス間メッセージ通信方法 |
JP3489157B2 (ja) | 1993-11-26 | 2004-01-19 | 株式会社日立製作所 | 分散共有メモリシステムおよび計算機 |
US6047391A (en) * | 1997-09-29 | 2000-04-04 | Honeywell International Inc. | Method for strong partitioning of a multi-processor VME backplane bus |
US6519686B2 (en) * | 1998-01-05 | 2003-02-11 | Intel Corporation | Information streaming in a multi-process system using shared memory |
US6341338B1 (en) * | 1999-02-04 | 2002-01-22 | Sun Microsystems, Inc. | Protocol for coordinating the distribution of shared memory |
WO2001013229A2 (en) | 1999-08-19 | 2001-02-22 | Venturcom, Inc. | System and method for data exchange |
US7380039B2 (en) * | 2003-12-30 | 2008-05-27 | 3Tera, Inc. | Apparatus, method and system for aggregrating computing resources |
US7454477B2 (en) * | 2005-05-16 | 2008-11-18 | Microsoft Corporation | Zero-copy transfer of memory between address spaces |
US7589735B2 (en) * | 2005-08-24 | 2009-09-15 | Innovative Solutions & Support (Iss) | Aircraft flat panel display system with graphical image integrity |
US8347373B2 (en) * | 2007-05-08 | 2013-01-01 | Fortinet, Inc. | Content filtering of remote file-system access protocols |
JP2008077325A (ja) * | 2006-09-20 | 2008-04-03 | Hitachi Ltd | ストレージ装置及びストレージ装置に対する設定方法 |
US8055856B2 (en) * | 2008-03-24 | 2011-11-08 | Nvidia Corporation | Lock mechanism to enable atomic updates to shared memory |
FR2938671B1 (fr) * | 2008-11-17 | 2011-06-03 | Sagem Defense Securite | Equipement avionique securise et procede de securisation associe |
US8316368B2 (en) * | 2009-02-05 | 2012-11-20 | Honeywell International Inc. | Safe partition scheduling on multi-core processors |
FR2947359B1 (fr) * | 2009-06-30 | 2011-07-29 | St Microelectronics Grenoble 2 Sas | Procede et dispositif de simulation d'un signal de reinitialisation dans un systeme sur puce simule |
EP2591419B1 (en) * | 2010-07-06 | 2018-10-31 | Saab AB | Simulating and testing avionics |
US9098462B1 (en) * | 2010-09-14 | 2015-08-04 | The Boeing Company | Communications via shared memory |
BR112014031915A2 (pt) * | 2012-06-21 | 2017-06-27 | Saab Ab | método para gerenciar acesso à memória de sistema de controle de aviônica, sistema de controle de aviônica e programa de computador |
US9539155B2 (en) | 2012-10-26 | 2017-01-10 | Hill-Rom Services, Inc. | Control system for patient support apparatus |
EP2743830A1 (en) * | 2012-12-13 | 2014-06-18 | Eurocopter España, S.A. | Flexible data communication among partitions in integrated modular avionics |
US10069779B2 (en) * | 2013-03-25 | 2018-09-04 | Ge Aviation Systems Llc | Method of hybrid message passing with shared memory |
EP2784676A1 (en) * | 2013-03-28 | 2014-10-01 | Eurocopter España, S.A. | DIMA extension health monitor supervisor |
WO2014174340A1 (en) * | 2013-04-22 | 2014-10-30 | Chad Klippert | Aircraft flight data monitoring and reporting system and use thereof |
US9485113B2 (en) * | 2013-10-11 | 2016-11-01 | Ge Aviation Systems Llc | Data communications network for an aircraft |
US9749256B2 (en) * | 2013-10-11 | 2017-08-29 | Ge Aviation Systems Llc | Data communications network for an aircraft |
EP2963619A1 (en) * | 2014-06-30 | 2016-01-06 | Airbus Operations GmbH | Data collection apparatus, data collection system and method for data collection in vehicles |
US9794340B2 (en) * | 2014-09-15 | 2017-10-17 | Ge Aviation Systems Llc | Mechanism and method for accessing data in a shared memory |
US9537862B2 (en) | 2014-12-31 | 2017-01-03 | Vivint, Inc. | Relayed network access control systems and methods |
-
2014
- 2014-09-15 US US14/486,325 patent/US10560542B2/en active Active
-
2015
- 2015-08-26 BR BR102015020596A patent/BR102015020596A2/pt not_active Application Discontinuation
- 2015-09-03 JP JP2015173381A patent/JP2016062606A/ja not_active Ceased
- 2015-09-03 CA CA2902933A patent/CA2902933A1/en not_active Abandoned
- 2015-09-09 FR FR1558362A patent/FR3025907B1/fr active Active
- 2015-09-11 GB GB1516102.9A patent/GB2532843B/en active Active
- 2015-09-15 CN CN201510584213.8A patent/CN105426258B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020144010A1 (en) * | 2000-05-09 | 2002-10-03 | Honeywell International Inc. | Communication handling in integrated modular avionics |
US20040034664A1 (en) * | 2002-08-01 | 2004-02-19 | Oracle International Corporation | Buffered message queue architecture for database management systems with memory optimizations and "zero copy" buffered message queue |
US20060143525A1 (en) * | 2004-12-28 | 2006-06-29 | Frank Kilian | Shared memory based monitoring for application servers |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109960623A (zh) * | 2017-12-26 | 2019-07-02 | 中国航空工业集团公司西安航空计算技术研究所 | 一种机载分区操作系统仿真器运行时监控方法 |
CN109960623B (zh) * | 2017-12-26 | 2022-09-20 | 中国航空工业集团公司西安航空计算技术研究所 | 一种机载分区操作系统仿真器运行时监控方法 |
CN111182041A (zh) * | 2019-12-19 | 2020-05-19 | 苏州浪潮智能科技有限公司 | 一种网络服务器共享缓存区的方法和设备 |
CN112114983A (zh) * | 2020-09-14 | 2020-12-22 | 深圳花儿数据技术有限公司 | 一种基于共享内存的通信方法、装置和设备 |
CN112114983B (zh) * | 2020-09-14 | 2022-04-19 | 深圳花儿数据技术有限公司 | 一种基于共享内存的通信方法、装置和设备 |
CN113204573A (zh) * | 2021-05-21 | 2021-08-03 | 珠海金山网络游戏科技有限公司 | 一种数据读写访问系统及方法 |
CN113204573B (zh) * | 2021-05-21 | 2023-07-07 | 珠海金山数字网络科技有限公司 | 一种数据读写访问系统及方法 |
Also Published As
Publication number | Publication date |
---|---|
US10560542B2 (en) | 2020-02-11 |
GB2532843B (en) | 2018-08-29 |
JP2016062606A (ja) | 2016-04-25 |
GB2532843A (en) | 2016-06-01 |
CA2902933A1 (en) | 2016-03-15 |
CN105426258B (zh) | 2021-04-09 |
US20160080517A1 (en) | 2016-03-17 |
FR3025907B1 (fr) | 2019-07-26 |
BR102015020596A2 (pt) | 2016-03-22 |
GB201516102D0 (en) | 2015-10-28 |
FR3025907A1 (fr) | 2016-03-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105426258A (zh) | 在客户端与服务器之间通信的机制和方法 | |
US11934883B2 (en) | Computer cluster arrangement for processing a computation task and method for operation thereof | |
EP3738045B1 (en) | Distributed partitioned map reduce using a data fabric | |
CN105589754A (zh) | 用于访问共享存储器中的数据的机制和方法 | |
CN103999031B (zh) | 云服务器的虚拟私有存储阵列服务 | |
CN102981929B (zh) | 磁盘镜像的管理方法和系统 | |
US9461944B2 (en) | Dynamic resource allocation for distributed cluster-storage network | |
EP4280067A2 (en) | A metadata control in a load-balanced distributed storage system | |
JP6753999B2 (ja) | 分散データベースシステム及び分散データベースシステムのリソース管理方法 | |
KR20150117258A (ko) | 분산형 컴퓨팅 아키텍쳐 | |
KR20190028210A (ko) | 컨테이너 기반 인공지능 어플리케이션을 배포하는 클라우드 서비스 방법과 시스템 | |
CN110447019B (zh) | 存储器分配管理器及由其执行的用于管理存储器分配的方法 | |
CN111796932A (zh) | 一种gpu资源调度方法 | |
JP6998419B2 (ja) | 制御プログラム | |
US20240160487A1 (en) | Flexible gpu resource scheduling method in large-scale container operation environment | |
JP6694007B2 (ja) | 情報処理装置 | |
JP2022031363A (ja) | 制御プログラム | |
JP6351387B2 (ja) | 情報処理装置、プログラムおよび記録媒体 | |
Fields | PRIMEHPC FX10 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |