CN105978997A - 数据传输方法和系统 - Google Patents
数据传输方法和系统 Download PDFInfo
- Publication number
- CN105978997A CN105978997A CN201610473409.4A CN201610473409A CN105978997A CN 105978997 A CN105978997 A CN 105978997A CN 201610473409 A CN201610473409 A CN 201610473409A CN 105978997 A CN105978997 A CN 105978997A
- Authority
- CN
- China
- Prior art keywords
- data
- memory section
- common memory
- topic name
- data receiver
- 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
- 238000000034 method Methods 0.000 title claims abstract description 195
- 230000005540 biological transmission Effects 0.000 title claims abstract description 95
- 230000008569 process Effects 0.000 claims description 153
- 238000012546 transfer Methods 0.000 claims description 20
- 230000002159 abnormal effect Effects 0.000 claims description 8
- 238000013507 mapping Methods 0.000 claims description 7
- 238000001514 detection method Methods 0.000 claims description 2
- 230000005856 abnormality Effects 0.000 abstract 1
- 230000006854 communication Effects 0.000 description 14
- 238000004891 communication Methods 0.000 description 13
- 230000007246 mechanism Effects 0.000 description 7
- 238000010586 diagram Methods 0.000 description 6
- 230000006870 function Effects 0.000 description 6
- 238000004590 computer program Methods 0.000 description 4
- 238000000151 deposition Methods 0.000 description 4
- 208000010877 cognitive disease Diseases 0.000 description 3
- 238000002955 isolation Methods 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 230000004888 barrier function Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000001568 sexual effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- 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/06—Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
-
- 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/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1095—Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
-
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
-
- 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
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05D—SYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
- G05D1/00—Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
- G05D1/02—Control of position or course in two dimensions
- G05D1/021—Control of position or course in two dimensions specially adapted to land vehicles
- G05D1/0231—Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means
- G05D1/0246—Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means using a video camera in combination with image processing means
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Software Systems (AREA)
- Traffic Control Systems (AREA)
- Information Transfer Between Computers (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请公开了数据传输方法和系统。该方法的一具体实施方式包括:数据发送方接收数据传输指令,数据传输指令包括:指示数据接收方所需的待传输数据的类型的话题名称;创建话题名称对应的共享内存段。实现了数据发送方和数据接收方在独立的内存空间运行,当需要传输数据时,根据任意传输需求即可创建相应的共享内存段用于数据传输,当传输完成或出现异常时,释放共享内存段。一方面,减少了数据传输系统在数据传输时的冗余操作,提升数据传输性能。另一方面,数据发送方与数据接收方之间的数据传输过程与数据发送方或数据接收方执行的其他操作彼此独立,提升了数据传输系统的稳定性。
Description
技术领域
本申请涉及计算机领域,具体涉及数据传输领域,尤其涉及数据传输方法和系统。
背景技术
在系统(例如自动驾驶控制系统)的运行过程中,确保系统中多个进程之间保持高效、安全的通信是确保系统稳定性、安全性的重中之重。目前,通常采用的多进程的通信方式包括:1)基于Socket连接的消息通信机制;2)基于多进程的指针通信机制。
然而,对于基于Socket连接的消息通信机制,传输之前的数据处理、传输过程中的内存复制和旧消息丢弃重传会造成高时延、低吞吐量、CPU负载占用高等问题,造成无法满足诸如自动驾驶控制系统对实时性要求极高的需求。对于多进程的指针通信机制,由于需要将在独立的存储空间中运行的发送或接收程序节点以进程的方式加载到同一个进程中,消息以指针的方式传递,造成多进程之间的交互和管理对的系统稳定性带来了不可预知的风险,同时无法实现对资源的隔离和单独管理。
发明内容
本申请提供了数据传输方法和系统,用于解决上述背景技术部分存在的技术问题。
第一方面,本申请提供了数据传输方法,该方法包括:数据发送方接收数据传输指令,数据传输指令包括:指示数据接收方所需的待传输数据的类型的话题名称;创建话题名称对应的共享内存段,以使得数据发送方与数据接收方利用共享内存段传输待传输数据。
第二方面,本申请提供了数据传输系统,该系统包括:数据发送方和数据接收方;其中,数据发送方用于接收数据传输指令,数据传输指令包括:指示数据接收方所需的待传输数据的类型的话题名称;创建话题名称对应的共享内存段,以使得数据发送方与数据接收方利用共享内存段传输待传输数据。
本申请提供的数据传输方法和系统,通过数据发送方接收数据传输指令,数据传输指令包括:指示数据接收方所需的待传输数据的类型的话题名称;创建话题名称对应的共享内存段,以使得数据发送方与数据接收方利用共享内存段传输待传输数据。实现了数据发送方和数据接收方在独立的内存空间运行,当需要传输数据时,根据任意传输需求即可创建相应的共享内存段用于数据传输,当传输完成或出现异常时,释放共享内存段。一方面,减少了数据传输系统在数据传输时的冗余操作,提升数据传输性能。另一方面,数据发送方与数据接收方之间的数据传输过程与数据发送方或数据接收方执行的其他操作彼此独立,提升了数据传输系统的稳定性。
附图说明
通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:
图1示出了可以应用于本申请的数据传输方法或系统的示例性系统架构;
图2示出了根据本申请的数据传输方法的一个实施例的流程图;
图3示出了根据本申请的数据传输方法的一个示例性原理图;
图4示出了根据本申请的数据传输系统的一个实施例的结构示意图;
图5示出了适于用来实现本申请实施例的数据传输系统的计算机系统的结构示意图。
具体实施方式
下面结合附图和实施例对本申请作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释相关发明,而非对该发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与有关发明相关的部分。
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。
图1示出了可以应用本申请的数据传输方法或系统的实施例的示例性系统架构100。
如图1所示,系统架构100可以包括:数据发送方101、多个数据接收方102、共享内存段103。数据发送方101、数据接收方102利用共享内存段103传输数据。数据发送方101、数据接收方102可以为运行于同一系统中的进程。以自动驾驶汽车控制系统为例,数据发送方101可以用于采集数据,例如数据发送方为传感器处理程序。数据接收方102可以用于处理数据,例如数据接收方为决策和控制程序。
请参考图2,其示出了根据本申请的数据传输方法的一个实施例的流程200。该方法包括以下步骤:
步骤201,数据发送方接收数据传输指令。
在本实施例中,数据传输指令包括:指示数据接收方所需的待传输数据的类型的话题名称。数据发送方可以为数据发送进程,数据接收方可以为数据接收进程。
以数据发送方与数据接收方为自动驾驶控制系统中的两个进程为例,其中一个进程为数据发送进程,用于通过摄像头采集自动驾驶汽车当前行驶在的道路上的路况图像。另外一个进程为数据接收进程,用于对路况图像进行分析识别障碍物。数据发送进程可以提供采集到的路况图像,数据接收进程需要接收数据发送进程采集到的路况图像进行分析识别障碍物。可以将数据发送进程与数据接收进程之间的待传输数据的类型即路况图像称之为话题名称。
在本实施例的一些可选的实现方式中,还包括:主进程接收数据发送进程发送的发布请求,发布请求包括话题名称;将数据发送进程的标识与话题名称对应存储。
在本实施例的一些可选的实现方式中,还包括:主进程接收数据接收进程发送的订阅请求,订阅请求包括话题名称;将数据接收进程的标识与话题名称对应存储;建立数据发送进程和数据接收进程的对应关系;向数据发送进程发送包含话题名称的数据传输指令。
在本实施例中,数据发送进程可以发布话题名称,数据接收进程可以订阅数据发送进程发布的话题名称。在本实施例中,可以预先设置一个主进程,当数据发送进程需要发布话题名称时,由主进程接收数据发送进程发送的发布请求,该发布请求中包含话题名称。主进程可以将该数据发送进程的标识与该话题名称对应存储,从而完成该话题名称的发布。当数据接收进程需要该话题名称对应的类型的数据时,可以向主进程发送包含该话题名称的订阅请求,主进程可以根据订阅请求中的话题名称,确定数据接收进程需要该话题名称对应的类型的数据。主进程可以讲数据接收进程的标识与该话题名称对应存储,从而完成该话题名称的订阅。可以由主进程建立发布该话题名称的数据发送进程与订阅该话题名称的数据接收进程的对应关系。
以数据发送进程与数据接收进程为自动驾驶系统中的进程为例,数据发送进程可以用于通过摄像头采集自动驾驶汽车当前行驶在的道路上的路况图像,数据接收进程可以用于对路况图像进行分析识别障碍物。数据发送进程和数据接收进程之间的话题名称可以为传输的数据的类型即路况图像。数据发送进程可以发布该话题名称,当数据接收进程需要对摄像头采集的路况图像进行分析而识别障碍物时,可以订阅该话题名称。
在本实施例中,可以在通过主进程建立发布话题名称的数据发送进程和订阅话题名称的数据接收进程的对应关系之后,由主进程向数据发送进程发送包含话题名称的数据传输指令,从而可以触发数据发送进程创建用于在数据发送进程和数据接收进程之间传输话题名称对应的类型的数据的共享内存段。
步骤202,创建话题名称对应的共享内存段。
在本实施例中,数据接收方在通过步骤201接收输入的数据传输指令之后,可以根据传输请求中的话题名称,创建话题名称对应的共享内存段,使得数据发送方与数据接收方可以利用话题名称对应的共享内存段传输待传输数据。例如,在linux操作系统中,可以调用linux操作系统提供的创建共享内存段的接口创建共享内存段。在本实施例中,可以将话题名称与共享内存段的标识对应存储。从而使得每一个话题名称可以对应一个共享内存段。
在本实施例中,利用共享内段进行数据传输的数据发送方与数据接收方可以为多个。多个数据发送方和数据接收方可以对应一个话题名称。多个数据发送方可以将待传输数据写入话题名称对应的共享内存段,多个数据接收方可以从话题名称对应的共享内存段读取待传输数据。
在本实施例的一些可选的实现方式中,还包括:数据发送进程、数据接收进程将共享内存段在各自对应的存储空间中进行内存映射。
在本实施例中,当数据发送方为数据发送进程,数据接收方为数据接收进程时,在创建了用于在数据发送进程和数据接收进程之间传输数据的话题名称对应的共享内存段之后,数据发送进程和数据接收进程可以分别将该共享内存段在各自对应的存储空间中进行内存映射。从而,在数据发送进程和数据接收进程将共享内存段在各自对应的存储空间中进行内存映射之后,数据发送进程和数据接收进程可以将数据写入到共享内存段中或从共享内存段中读取数据。
在本实施例的一些可选的实现方式中,还包括:数据发送进程调用预设共享内存段操作接口将待传输数据写入共享内存段;数据接收进程调用预设共享内存段操作接口从共享内存段中读取待传输数据。
在本实施例中,可以针对每一个数据发送进程和数据接收进程,预先设置共享内存段操作接口。预先设置的共享内存段操作接口可以以插件形式分别嵌入到数据发送进程和数据接收进程中。从而,当数据发送进程和数据接收进程需要利用共享内存段传输数据时,可以利用该共享内存段操作接口将待传输数据写入话题名称对应的共享内存段中或从话题名称对应的共享内存段中读取待传输数据。
在本实施例的一些可选的实现方式中,还包括:检测数据发送进程和数据接收进程传输待传输数据是否完成或出现异常;当传输待传输数据完成或出现异常时,向数据发送进程、数据接收进程发送释放指令,以使数据发送进程、数据接收进程释放话题名称对应的共享内存段。
在本实施例中,在数据发送进程与数据接收进程通过共享内存段传输数据时,可以检测数据发送进程和数据接收进程传输待传输数据是否完成或出现异常。当检测到数据发送进程与数据接收进程传输待传输数据完成或出现异常时,数据发送进程和数据接收进程可以释放话题名称对应的共享内存段,即可以去除数据发送进程和数据接收进程的存储空间与共享内存段的映射关系。
在本实施例中,每一个进程可以称之为一个程序节点。数据发送进程可以称之为发送程序节点。数据接收进程可以称之为接收程序节点。发送程序节点和接收程序节点通过话题名称对应的共享内存段传输数据,从而在发送程序节点和接收程序节点之间传输数据时,无需程序节点对数据进行预处理和冗余的内存复制操作。同时,为每个程序节点提供独立的运行容器,从而在无需增加系统中的硬件资源的基础上,基于共享内存的高效消息通信机制传输数据。使得各个程序节点之间的数据传输更加高效和可靠,进而减少诸如自动驾驶汽车控制系统中的进程间通信的时延、并且减轻系统的负载。
请参考图3,其示出了根据本申请的数据传输方法的一个示例性原理图。
在图3中,示出了主程序节点、共享内存段、发送程序节点、接收程序节点。共享内存段和话题名称可以一一对应,对于任何一个话题名称,均可以动态申请一个话题名称对应的共享内存段。发送程序节点与接收程序节点之间可以通过话题名称对应的共享内存段传输数据。
各个程序节点均有独立的运行空间,该独立的运行空间可以称之为程序节点容器。每个程序节点运行在各自的程序节点容器中,维护自己的成员变量和成员方法,在数据传输中使用的资源,从申请到使用再到释放都对其他程序节点透明。
发送程序节点可以发布话题名称,接收程序节点可以订阅话题名称。可以由主程序节点完成话题名称的发布和订阅,从而建立起发布话题名称的发送程序节点和订阅话题名称的接收程序节点之间的对应关系。
发送程序节点可以创建用于与数据接收进程之间传输数据的共享内存段。然后,可以将共享内存段与话题名称进行绑定。发送程序节点可以根据发布的话题名称,在发布的话题名称对应的共享内存段写入数据,接收程序节点可以根据订阅的话题名称,在订阅的话题名称对应的共享内存段读取数据。
发送程序节点和接收程序节点根据发布或者订阅的话题名称找到动态分配的话题名称对应的共享内存段后,首先需要分别在各自的资源隔离池中进行内存映射,然后才能对该共享内存段进行写入数据或读取数据操作,从而确保资源隔离和数据安全。在完成数据传输或系统遇到异常时,发送程序节点和接受程序节点会释放之前映射的共享内存段,以方便对失效共享内存段进行及时有效的回收。
共享内存段可以提供写入数据和读取数据的接口。发送程序节点和接收程序节点根据话题名称挂载共享内存段后,无需关心具体细节,直接调用相应接口即可完成数据的在共享内存段中的正确写入或读取操作。
发送程序节点和接收程序节点从共享内存段中写入或读取数据时,是将数据写入到共享内存块中或从共享内存块中读取数据。共享内存块和程序节点传输的数据可以为一一对应的,共享内存块中存储的数据的数据类型可以为预定义的数据类型,也可以为用户自定义的数据类型。共享内存块可以用于记录目前正在写入数据的程序节点的数目和正在读取数据的程序节点的数目,并在写入或读取数据完毕后自动修改对应数值。
为了方便管理和操作共享内存段中的各个共享内存块,可以共享内存段中设置一个区域,用于存储共享内存段的基本信息及各个共享内存块的信息。共享内存段的基本信息可以包括话题名称,共享内存块索引等。此外,还可以在共现内存段中存储各个共享内存块的基本信息,使得发送程序节点和接收程序节点能够高效寻址,按序写入和读取数据,这些共享内存块的基本信息包括共享内存块的序号,当前读写状态等。
可以预先设置对共享内存段进行操作的共享内存段操作接口,该接口可以插件形式加载到发送程序节点和接收程序节点中。可以将以插件形式加载到发送程序节点和接收程序节点中的共享内存段操作接口称之为程序节点插件,发送程序节点和接收程序节点可以利用该程序节点插件完成内存映射和对共享内存段进行写入或读取操作。各个程序节点可以根据传输数据量的大小和要求,通过插件的方式自由选择使用基于共享内存的通信机制或其他传输方案。从而,为程序节点之间使用基于共享内存通信机制进行数据传输提供了一种简单的迁移方案。
请参考图4,作为对上述各图所示方法的实现,本申请提供了一种数据传输系统的一个实施例,该实施例与图2所示的方法实施例相对应。
如图4所示,本实施例的数据传输系统400包括:数据发送方401和数据接收方402;其中,数据发送方401用于接收数据传输指令,数据传输指令包括:指示数据接收方所需的待传输数据的类型的话题名称;创建话题名称对应的共享内存段,以使得数据发送方与数据接收方利用共享内存段传输待传输数据。
在本实施例的一些可选的实现方式中,数据发送方401为数据发送进程,数据接收方402为数据接收进程,数据传输系统400还包括:主进程;其中,主进程用于接收数据发送进程发送的发布请求,发布请求包括话题名称;将数据发送进程的标识与话题名称对应存储。
在本实施例的一些可选的实现方式中,主进程进一步用于:接收数据接收进程发送的订阅请求,订阅请求包括话题名称;将数据接收进程的标识与话题名称对应存储;建立数据发送进程和数据接收进程的对应关系;向数据发送进程发送数据传输指令。
在本实施例的一些可选的实现方式中,数据发送进程进一步用于:调用预设共享内存段操作接口将待传输数据写入共享内存段;数据接收进程进一步用于:调用预设共享内存段操作接口从共享内存段中读取待传输数据。
在本实施例的一些可选的实现方式中,数据传输系统400还包括:存储单元(未示出),用于在共享内存段对应的存储空间中存储属性信息,属性信息包括:话题名称、共享内存段中的共享内存块的索引。
在本实施例的一些可选的实现方式中,数据发送进程进一步用于:在创建话题名称对应的共享内存段之后,将共享内存段在数据发送进程对应的存储空间进行映射;数据接收进程进一步用于:在创建话题名称对应的共享内存段之后,将共享内存段在数据接收进程对应的存储空间进行映射。
在本实施例的一些可选的实现方式中,数据传输系统400还包括:检测单元(未示出),用于检测数据发送进程和数据接收进程传输待传输数据是否完成或出现异常;当传输待传输数据完成或出现异常时,向数据发送进程、数据接收进程发送释放指令,以使数据发送进程、数据接收进程释放共享内存段。
图5示出了适于用来实现本申请实施例的数据传输系统的计算机系统的结构示意图。
如图5所示,计算机系统500包括中央处理单元(CPU)501,其可以根据存储在只读存储器(ROM)502中的程序或者从存储部分508加载到随机访问存储器(RAM)503中的程序而执行各种适当的动作和处理。在RAM503中,还存储有系统500操作所需的各种程序和数据。CPU501、ROM 502以及RAM503通过总线504彼此相连。输入/输出(I/O)接口505也连接至总线504。
以下部件连接至I/O接口505:包括键盘、鼠标等的输入部分506;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分507;包括硬盘等的存储部分508;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分509。通信部分509经由诸如因特网的网络执行通信处理。驱动器510也根据需要连接至I/O接口505。可拆卸介质511,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器510上,以便于从其上读出的计算机程序根据需要被安装入存储部分508。
特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括有形地包含在机器可读介质上的计算机程序,所述计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分509从网络上被下载和安装,和/或从可拆卸介质511被安装。
附图中的流程图和框图,图示了按照本申请各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,所述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
作为另一方面,本申请还提供了一种非易失性计算机存储介质,该非易失性计算机存储介质可以是上述实施例中所述设备中所包含的非易失性计算机存储介质;也可以是单独存在,未装配入终端中的非易失性计算机存储介质。上述非易失性计算机存储介质存储有一个或者多个程序,当所述一个或者多个程序被一个设备执行时,使得所述设备:数据发送方接收数据传输指令,所述数据传输指令包括:指示数据接收方所需的待传输数据的类型的话题名称;创建所述话题名称对应的共享内存段,以使得数据发送方与数据接收方利用所述共享内存段传输待传输数据。
作为另一方面,本申请还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施例中所述装置中所包含的计算机可读存储介质;也可以是单独存在,未装配入终方中的计算机可读存储介质。所述计算机可读存储介质存储有一个或者一个以上程序,所述程序被一个或者一个以上的处理器用来执行描述于本申请的方法。
以上描述仅为本申请的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本申请中所涉及的发明范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离所述发明构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本申请中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。
Claims (14)
1.一种数据传输方法,其特征在于,所述方法包括:
数据发送方接收数据传输指令,所述数据传输指令包括:指示数据接收方所需的待传输数据的类型的话题名称;
创建所述话题名称对应的共享内存段,以使得数据发送方与数据接收方利用所述共享内存段传输待传输数据。
2.根据权利要求1所述的方法,其特征在于,数据发送方为数据发送进程,数据接收方为数据接收进程;以及
所述方法还包括:
主进程接收数据发送进程发送的发布请求,所述发布请求包括所述话题名称;
将所述数据发送进程的标识与所述话题名称对应存储。
3.根据权利要求2所述的方法,其特征在于,在数据发送方接收数据传输指令之前,所述方法还包括:
主进程接收数据接收进程发送的订阅请求,所述订阅请求包括所述话题名称;
将所述数据接收进程的标识与所述话题名称对应存储;
建立所述数据发送进程和所述数据接收进程的对应关系;
向所述数据发送进程发送所述数据传输指令。
4.根据权利要求3所述的方法,其特征在于,在创建所述话题名称对应的共享内存段之后,所述方法还包括:
所述数据发送进程调用预设共享内存段操作接口将所述待传输数据写入所述共享内存段;
所述数据接收进程调用预设共享内存段操作接口从所述共享内存段中读取所述待传输数据。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
在所述共享内存段对应的存储空间中存储属性信息,所述属性信息包括:所述话题名称、共享内存段中的共享内存块的索引。
6.根据权利要求5所述的方法,其特征在于,在创建所述话题名称对应的共享内存段之后,所述方法还包括:
所述数据发送进程、数据接收进程将所述共享内存段在各自对应的存储空间中进行内存映射。
7.根据权利要求6所述的方法,其特征在于,所述方法还包括:
检测数据发送进程和数据接收进程传输待传输数据是否完成或出现异常;
当传输待传输数据完成或出现异常时,向所述数据发送进程、数据接收进程发送释放指令,以使所述数据发送进程、数据接收进程释放所述共享内存段。
8.一种数据传输系统,其特征在于,所述数据传输系统包括:数据发送方和数据接收方;
其中,数据发送方用于接收数据传输指令,所述数据传输指令包括:指示数据接收方所需的待传输数据的类型的话题名称;创建所述话题名称对应的共享内存段,以使得数据发送方与数据接收方利用所述共享内存段传输待传输数据。
9.根据权利要求8所述的数据传输系统,其特征在于,所述数据发送方为数据发送进程,所述数据接收方为数据接收进程,所述数据传输系统还包括:主进程;
其中,主进程用于接收数据发送进程发送的发布请求,所述发布请求包括所述话题名称;将所述数据发送进程的标识与所述话题名称对应存储。
10.根据权利要求9所述的数据传输系统,其特征在于,所述主进程进一步用于:接收数据接收进程发送的订阅请求,所述订阅请求包括所述话题名称;将所述数据接收进程的标识与所述话题名称对应存储;建立所述数据发送进程和所述数据接收进程的对应关系;向所述数据发送进程发送所述数据传输指令。
11.根据权利要求10所述的数据传输系统,其特征在于,所述数据发送进程进一步用于:调用预设共享内存段操作接口将所述待传输数据写入所述共享内存段;所述数据接收进程进一步用于:调用预设共享内存段操作接口从所述共享内存段中读取所述待传输数据。
12.根据权利要求11所述的数据传输系统,其特征在于,所述数据传输系统还包括:
存储单元,用于在所述共享内存段对应的存储空间中存储属性信息,所述属性信息包括:所述话题名称、共享内存段中的共享内存块的索引。
13.根据权利要求12所述的数据传输系统,其特征在于,所述数据发送进程进一步用于:在创建所述话题名称对应的共享内存段之后,将所述共享内存段在数据发送进程对应的存储空间进行映射;所述数据接收进程进一步用于:在创建所述话题名称对应的共享内存段之后,将所述共享内存段在数据接收进程对应的存储空间进行映射。
14.根据权利要求13所述的数据传输系统,其特征在于,所述数据传输系统还包括:
检测单元,用于检测数据发送进程和数据接收进程传输待传输数据是否完成或出现异常;当传输待传输数据完成或出现异常时,向所述数据发送进程、数据接收进程发送释放指令,以使所述数据发送进程、数据接收进程释放所述共享内存段。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610473409.4A CN105978997A (zh) | 2016-06-24 | 2016-06-24 | 数据传输方法和系统 |
US15/281,268 US10152277B2 (en) | 2016-06-24 | 2016-09-30 | Data transmission method and system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610473409.4A CN105978997A (zh) | 2016-06-24 | 2016-06-24 | 数据传输方法和系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN105978997A true CN105978997A (zh) | 2016-09-28 |
Family
ID=57019814
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610473409.4A Pending CN105978997A (zh) | 2016-06-24 | 2016-06-24 | 数据传输方法和系统 |
Country Status (2)
Country | Link |
---|---|
US (1) | US10152277B2 (zh) |
CN (1) | CN105978997A (zh) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107085542A (zh) * | 2017-05-05 | 2017-08-22 | 深圳慧昱教育科技有限公司 | Ipc通信方法和服务器 |
CN108011913A (zh) * | 2016-12-29 | 2018-05-08 | 北京车和家信息技术有限责任公司 | 数据传输方法、车机显示装置、车辆多媒体设备及系统 |
CN109194736A (zh) * | 2018-08-30 | 2019-01-11 | 百度在线网络技术(北京)有限公司 | 消息去重方法、装置、电子设备、介质和无人车 |
CN110069346A (zh) * | 2019-04-26 | 2019-07-30 | 杭州迪普科技股份有限公司 | 多进程间资源共享方法、装置、电子设备 |
CN110489246A (zh) * | 2019-08-12 | 2019-11-22 | 北京中科寒武纪科技有限公司 | 数据传输与内存管理方法、装置以及相关产品 |
CN111988557A (zh) * | 2019-05-22 | 2020-11-24 | 上汽通用汽车有限公司 | 车载视频传输方法和车载视频传输系统 |
CN112286466A (zh) * | 2020-11-18 | 2021-01-29 | 合肥沛睿微电子股份有限公司 | 电子装置及空间复用方法 |
CN112463400A (zh) * | 2020-10-30 | 2021-03-09 | 中国电子科技集团公司第五十二研究所 | 一种基于共享内存的实时数据分发方法及装置 |
CN112749025A (zh) * | 2020-12-30 | 2021-05-04 | 深兰人工智能(深圳)有限公司 | 基于共享内存的数据分发方法及装置 |
CN113438008A (zh) * | 2021-04-20 | 2021-09-24 | 北京控制工程研究所 | 一种适用于姿轨控系统多机容错架构的多机时标仿真方法 |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11792307B2 (en) | 2018-03-28 | 2023-10-17 | Apple Inc. | Methods and apparatus for single entity buffer pool management |
US10846224B2 (en) * | 2018-08-24 | 2020-11-24 | Apple Inc. | Methods and apparatus for control of a jointly shared memory-mapped region |
CN109587261A (zh) * | 2018-12-18 | 2019-04-05 | 芜湖智久机器人有限公司 | 一种agv数据传输系统、传输方法 |
US11558348B2 (en) | 2019-09-26 | 2023-01-17 | Apple Inc. | Methods and apparatus for emerging use case support in user space networking |
US11477123B2 (en) | 2019-09-26 | 2022-10-18 | Apple Inc. | Methods and apparatus for low latency operation in user space networking |
US11829303B2 (en) | 2019-09-26 | 2023-11-28 | Apple Inc. | Methods and apparatus for device driver operation in non-kernel space |
US11606302B2 (en) | 2020-06-12 | 2023-03-14 | Apple Inc. | Methods and apparatus for flow-based batching and processing |
US11775359B2 (en) | 2020-09-11 | 2023-10-03 | Apple Inc. | Methods and apparatuses for cross-layer processing |
US11954540B2 (en) | 2020-09-14 | 2024-04-09 | Apple Inc. | Methods and apparatus for thread-level execution in non-kernel space |
US11799986B2 (en) | 2020-09-22 | 2023-10-24 | Apple Inc. | Methods and apparatus for thread level execution in non-kernel space |
US11882051B2 (en) | 2021-07-26 | 2024-01-23 | Apple Inc. | Systems and methods for managing transmission control protocol (TCP) acknowledgements |
US11876719B2 (en) | 2021-07-26 | 2024-01-16 | Apple Inc. | Systems and methods for managing transmission control protocol (TCP) acknowledgements |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2011026313A1 (zh) * | 2009-09-02 | 2011-03-10 | 中国银联股份有限公司 | 一种用于异构数据库之间数据复制的系统及方法 |
CN103197979A (zh) * | 2012-01-04 | 2013-07-10 | 阿里巴巴集团控股有限公司 | 一种用于实现在进程间进行数据交互访问的方法及其装置 |
CN104346227A (zh) * | 2013-07-23 | 2015-02-11 | 比亚迪股份有限公司 | 用于can总线的数据分发方法和装置 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3003418B2 (ja) * | 1992-09-25 | 2000-01-31 | 株式会社日立製作所 | プロセッサ間データ通信方法 |
US8611919B2 (en) * | 2002-05-23 | 2013-12-17 | Wounder Gmbh., Llc | System, method, and computer program product for providing location based services and mobile e-commerce |
US20040034869A1 (en) * | 2002-07-12 | 2004-02-19 | Wallace Michael W. | Method and system for display and manipulation of thematic segmentation in the analysis and presentation of film and video |
US20080027895A1 (en) * | 2006-07-28 | 2008-01-31 | Jean-Christophe Combaz | System for searching, collecting and organizing data elements from electronic documents |
EP2641188B1 (en) * | 2010-11-16 | 2018-07-11 | Tibco Software Inc. | Locking and signaling for implementing messaging transports with shared memory |
US20160036945A1 (en) * | 2013-04-16 | 2016-02-04 | Nokia Corporation | Signal transmission |
-
2016
- 2016-06-24 CN CN201610473409.4A patent/CN105978997A/zh active Pending
- 2016-09-30 US US15/281,268 patent/US10152277B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2011026313A1 (zh) * | 2009-09-02 | 2011-03-10 | 中国银联股份有限公司 | 一种用于异构数据库之间数据复制的系统及方法 |
CN103197979A (zh) * | 2012-01-04 | 2013-07-10 | 阿里巴巴集团控股有限公司 | 一种用于实现在进程间进行数据交互访问的方法及其装置 |
CN104346227A (zh) * | 2013-07-23 | 2015-02-11 | 比亚迪股份有限公司 | 用于can总线的数据分发方法和装置 |
Cited By (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108011913A (zh) * | 2016-12-29 | 2018-05-08 | 北京车和家信息技术有限责任公司 | 数据传输方法、车机显示装置、车辆多媒体设备及系统 |
CN108011913B (zh) * | 2016-12-29 | 2021-08-20 | 北京车和家信息技术有限责任公司 | 数据传输方法、车机显示装置、车辆多媒体设备及系统 |
CN107085542A (zh) * | 2017-05-05 | 2017-08-22 | 深圳慧昱教育科技有限公司 | Ipc通信方法和服务器 |
CN109194736B (zh) * | 2018-08-30 | 2021-04-27 | 百度在线网络技术(北京)有限公司 | 消息去重方法、装置、电子设备、介质和无人车 |
CN109194736A (zh) * | 2018-08-30 | 2019-01-11 | 百度在线网络技术(北京)有限公司 | 消息去重方法、装置、电子设备、介质和无人车 |
US11050814B2 (en) | 2018-08-30 | 2021-06-29 | Baidu Online Network Technology (Beijing) Co., Ltd. | Method, device and vehicle for message deduplication |
CN110069346A (zh) * | 2019-04-26 | 2019-07-30 | 杭州迪普科技股份有限公司 | 多进程间资源共享方法、装置、电子设备 |
CN110069346B (zh) * | 2019-04-26 | 2021-07-23 | 杭州迪普科技股份有限公司 | 多进程间资源共享方法、装置、电子设备 |
CN111988557A (zh) * | 2019-05-22 | 2020-11-24 | 上汽通用汽车有限公司 | 车载视频传输方法和车载视频传输系统 |
CN111988557B (zh) * | 2019-05-22 | 2022-09-13 | 上汽通用汽车有限公司 | 车载视频传输方法和车载视频传输系统 |
CN110489246A (zh) * | 2019-08-12 | 2019-11-22 | 北京中科寒武纪科技有限公司 | 数据传输与内存管理方法、装置以及相关产品 |
CN110489246B (zh) * | 2019-08-12 | 2022-06-07 | 中科寒武纪科技股份有限公司 | 数据传输与内存管理方法、装置以及相关产品 |
CN112463400A (zh) * | 2020-10-30 | 2021-03-09 | 中国电子科技集团公司第五十二研究所 | 一种基于共享内存的实时数据分发方法及装置 |
CN112463400B (zh) * | 2020-10-30 | 2024-10-11 | 中国电子科技集团公司第五十二研究所 | 一种基于共享内存的实时数据分发方法及装置 |
CN112286466A (zh) * | 2020-11-18 | 2021-01-29 | 合肥沛睿微电子股份有限公司 | 电子装置及空间复用方法 |
CN112286466B (zh) * | 2020-11-18 | 2024-05-07 | 合肥沛睿微电子股份有限公司 | 电子装置及空间复用方法 |
CN112749025A (zh) * | 2020-12-30 | 2021-05-04 | 深兰人工智能(深圳)有限公司 | 基于共享内存的数据分发方法及装置 |
CN113438008A (zh) * | 2021-04-20 | 2021-09-24 | 北京控制工程研究所 | 一种适用于姿轨控系统多机容错架构的多机时标仿真方法 |
Also Published As
Publication number | Publication date |
---|---|
US20170371591A1 (en) | 2017-12-28 |
US10152277B2 (en) | 2018-12-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105978997A (zh) | 数据传输方法和系统 | |
US20220159061A1 (en) | Efficient and reliable host distribution of totally ordered global state | |
CN102648455B (zh) | 服务器和流控制程序 | |
CN109194736B (zh) | 消息去重方法、装置、电子设备、介质和无人车 | |
CN106021000A (zh) | 用于机器人操作系统的共享内存管理方法和装置 | |
DE112017003294B4 (de) | Technologien für ein skalierbares Senden und Empfangen von Paketen | |
US7809875B2 (en) | Method and system for secure communication between processor partitions | |
CN106168916B (zh) | 数据传输方法和系统 | |
CN104156255B (zh) | 一种虚拟机迁移方法、虚拟机迁移装置及源物理主机 | |
CN103562895B (zh) | 通过选择性聚合相邻数据单元来便于路由 | |
CN107168777A (zh) | 分布式系统中资源的调度方法以及装置 | |
CN103685578B (zh) | 主从设备的数据传输方法 | |
CN103827842A (zh) | 向控制器存储器空间写入消息 | |
CN110865769B (zh) | 处理读/写请求的方法、网络存储系统及电子设备 | |
CN111651284B (zh) | 一种处理业务数据的方法、装置、系统及存储介质 | |
CN101639789A (zh) | 线程排序技术 | |
CN109376011A (zh) | 虚拟化系统中管理资源的方法和装置 | |
CN109242320B (zh) | 订单分配方法、装置、服务器及存储介质 | |
CN107204908A (zh) | 一种基于通信接口框架的消息发送、接收方法及装置 | |
CN105302766B (zh) | 嵌入式控制器可重新配置的处理器间通信的机构和装置 | |
US20170195262A1 (en) | Method of organizing dialog with the use of fillable forms | |
US10678744B2 (en) | Method and system for lockless interprocessor communication | |
CN103391257A (zh) | 一种报文存储、转发方法、装置及系统 | |
CN109522162A (zh) | 一种数据备份方法、系统、设备及计算机可读存储介质 | |
CN115358716A (zh) | 用车管理方法、装置、电子设备及可读介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20160928 |
|
RJ01 | Rejection of invention patent application after publication |