CN101030135A - 一种在共享内存中存储c++对象的方法及装置 - Google Patents
一种在共享内存中存储c++对象的方法及装置 Download PDFInfo
- Publication number
- CN101030135A CN101030135A CN 200610067532 CN200610067532A CN101030135A CN 101030135 A CN101030135 A CN 101030135A CN 200610067532 CN200610067532 CN 200610067532 CN 200610067532 A CN200610067532 A CN 200610067532A CN 101030135 A CN101030135 A CN 101030135A
- Authority
- CN
- China
- Prior art keywords
- shared drive
- virtual address
- shared
- storing
- cascade
- 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
- 238000000034 method Methods 0.000 title claims abstract description 145
- 230000008569 process Effects 0.000 claims abstract description 105
- 238000003860 storage Methods 0.000 claims description 46
- 238000013507 mapping Methods 0.000 abstract description 2
- 238000010586 diagram Methods 0.000 description 6
- 230000005587 bubbling Effects 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- 230000008859 change Effects 0.000 description 3
- 230000008520 organization Effects 0.000 description 3
- 239000011800 void material Substances 0.000 description 3
- 238000010276 construction Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000002452 interceptive effect Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- FFBHFFJDDLITSX-UHFFFAOYSA-N benzyl N-[2-hydroxy-4-(3-oxomorpholin-4-yl)phenyl]carbamate Chemical compound OC1=C(NC(=O)OCC2=CC=CC=C2)C=CC(=C1)N1CCOCC1=O FFBHFFJDDLITSX-UHFFFAOYSA-N 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 239000012467 final product Substances 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000003760 hair shine Effects 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000012367 process mapping Methods 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
Images
Landscapes
- Memory System Of A Hierarchy Structure (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及一种在共享内存中存储C++对象的方法及装置,所述方法包括A.为刷新或首次申请创建共享内存的进程设置一段共享内存,并将该共享内存的地址映射到所述进程的进程空间的某个虚拟地址上;B.所述进程通过虚拟地址访问共享内存,并将所述虚拟地址存储到该共享内存中,将所述虚拟地址定义为原始虚拟地址;C.将C++对象和/或级联的C++对象存储在共享内存中。所述装置包括:加载或刷新单元和共享内存存储单元以及对象访问单元。本发明以解决目前现有技术中无法实现共享内存中跨进程间交互访问C++对象的问题。
Description
技术领域
本发明涉及操作系统,特别是涉及一种在共享内存中存储C++对象的方法及装置。
背景技术
所述共享内存是UNIX等各种操作系统提供的一种特性,在C/C++语言中通过shmget和shmat(不同的操作系统提供API函数可能有所不同)来返回映射到本进程空间的地址。这样,就可以象操作普通的内存空间一样来操作共享内存。另外,所述共享内存主要用于多进程共享数据,是进程间通信(IPC)的一种方式,允许一个或多个进程通过同时出现在它们虚拟地址空间中的内存来通信。因为数据不需要在客户端与服务器之间复制,因此,共享内存是一种最快的IPC。
每个使用共享内存的进程必须通过系统调用将其连接到虚拟内存上,所述虚拟内存的页面出现在每个进程的页表中,这时进程会创建新的虚拟内存管理结构体(vm_area_struct)来描叙该共享内存。进程可以决定该共享内存在其虚拟地址空间的位置。因此,在不同的进程中,该共享内存映射的位置可以是不同的。新的vm_area_struct结构将被放到由共享内存描述符(shmid_ds)指向的vm_area_struct链表中。通过前结构体指针(vm_next_shared)和后结构体指针(vm_prev_shared)指针将它们连接起来。也就是说,在一台主机上的同一段共享内存,对于在该主机上运行不同的进程,其映射到该进程空间的地址是不同的。
所有访问该共享内存的进程,必须访问一个相同的信号量,通过信号量来保证该共享内存中存储的数据的安全性。
目前,现有技术中在共享内存中存储C++对象的方法主要通过下述方法来实现。
请参考图1,是一种现有在共享内存中存储C++对象的示意图,其实现的原理为:一组相同的对象(struct A)在共享内存中的顺序存储,且每个对象(Struct A)在共享内存中的占用空间是相同的。
由上公开的技术方案可知,这种方法对于同一段共享内存,映射到不同的进程中的地址是不同的。也就是说,该方法直接存储类似的结构体,而无法存储真正的包含C++指针属性的结构体,即便保存了含有指针属性的结构体,另一个进程在引用该对象的指针属性时,也会造成指针非法访问。
还请参考图2,是另一种在共享内存中存储C++对象的示意图,其实现的原理为:首先,通过索引数组来存取共享内存中存储的对象(比如,struct A、B、C...),且可以有多个索引数组(比如struct Idx),所述索引数组的每个成员也是一个struct。其中,所述struct Idx包括:对象类型、个数、指向对象(比如struct A、B、C...)的偏移以及搜索键。而所述struct Idx可以用多种算法(比如折半查找、冒泡查找等)来快速访问真正关心的数据(struct A、B、C...)。而所述对象(struct A、B、C...)在共享内存中以顺序的方式存储,是用户真正关心的数据,每个对象在共享内存中的占用空间可以是不相同的。
该方案虽然比方法一有所进步,即可以通过良好地设计结构体来实现对象之间的关联。但是,不同的进程在存取共享内存中的数据时,均需要通过索引数组中的偏移、个数等信息来访问共享内存存储的对象,而实现起来比较复杂。由此可见,该技术方案同上述方法一的缺点基本相同,即:存储的对象(结构体)不能包括指向在该共享内存中存储其他对象的指针属性(或数组指针属性),因为指针指向的值,只有在进程中才有意义,因此,即便存储了包括指针属性(或数组指针属性)的对象,另一个进程在引用该对象的指针属性(或数组指针属性)时,也会造成非法访问。即在不同进程之间,无法透明访问共享内存中存储真正的C++对象。
发明内容
本发明解决的技术问题是提供一种在共享内存中存储C++对象的方法及装置,以解决目前现有技术中无法实现共享内存中跨进程间交互访问C++对象和/或级联的C++对象的问题。
为解决上述问题,本发明提供一种在共享内存中存储C++对象的方法,所述方法包括步骤:
A、为刷新或首次申请创建共享内存的进程设置一段共享内存,并将该共享内存的地址映射到所述进程的进程空间的某个虚拟地址上;
B、所述进程通过虚拟地址访问共享内存,并将所述虚拟地址存储到该共享内存中,将所述虚拟地址定义为原始虚拟地址;
C、将C++对象和/或级联的C++对象存储在共享内存中。
所述方法还包括:客户进程通过重载C++类的成员引用操作符来访问存储在共享内存中的C++对象和/或级联的C++对象。
访问C++对象的地址为:指针值与共享内存映射到访问者所在进程的虚拟地址减去原始虚拟地址的差之和。
步骤B中,所述将虚拟地址存储到该共享内存中的过程具体为:将映射的访问共享内存的虚拟地址存储到共享内存中的某个固定位置上。
步骤C中将C++对象和/或级联的C++对象分别通过指针相连的方式存储在共享内存中。
通过数据加载或刷新进程将C++对象和/或级联的C++对象分别通过指针相连的方式存储在共享内存中。
所述存储的C++对象和/或级联的C++对象之间可以连续或不连续,且存储的每个对象所占用的空间取决于该对象是否包括数组指针属性和数组指针的个数。
另外,本发明还提供一种在共享内存中存储C++对象的装置,所述装置包括:加载或刷新单元和共享内存存储单元,其中,
所述加载或刷新单元,用于为刷新或首次申请创建共享内存的进程设置一段共享内存,并将该共享内存的地址映射到所述进程的进程空间的某个虚拟地址上,通过该虚拟地址访问共享内存,并将所述虚拟地址存储到该共享内存存储单元中;
所述共享内存存储单元,与加载或刷新单元相连,用于存储C++对象和/或级联的C++对象。
所述装置还包括:
对象访问单元,用于通过重载C++类的成员引用操作符来访问共享内存存储单元中的C++对象和/或级联的C++对象。
与现有技术相比,本发明具有以下有益效果:本发明在共享内存中存储真正的C++对象,可以将应用中共用的、基础的C++对象和/或级联的C++对象放入共享内存,所有需要使用该对象的进程就象访问在自己进程内创建的C++对象和/或级联的C++对象一样,这样在用C++实现大规模的OOP应用时,减少了应用开发难度,缩短了开发周期;特别是在主机上运行多个相同应用或服务进程时,减少对主机物理内存的使用;本发明所述技术方案对数据库类的应用,将共用的、访问频繁的字典参数放入共享内存中,减少对数据库的存取压力,加快访问速度。
附图说明
图1是现有技术中在共享内存中存储C++对象的一种示意图;
图2是现有技术中在共享内存中存储C++对象的另一种示意图;
图3是本发明在共享内存中存储C++对象的方法的流程图;
图4是本发明所述在共享内存中存储C++对象的方法的一实施例;
图5是本发明所述在共享内存中存储C++对象的方法的又一实施例;
图6是本发明所述在共享内存中存储C++对象的装置的示意图;
图7是本发明所述在共享内存中存储C++对象的装置的一实施例。
具体实施方式
本发明的核心是操作系统首先为运行在主机上的进程设置该进程所需要的共享内存,所述共享内存的定义是由内核出于在多进程间交换信息的目的而留出的一块内存区(段),如果权限设置恰当,每个要访问该内存的进程都可以将它映像到自己私有的地址空间中,如果一个进程更新了段中的数据,那么其他进程立即会看到更新,由一个进程创建的段也可以由另一个进程读写。并将该共享内存的地址映射到进程空间的一个虚拟地址,该存储C++对象和/或级联的C++对象到共享内存的进程通过该虚拟地址访问所设置的共享内存;同时,该进程将该虚拟地址存储到设置的共享内存中,这个存储到共享内存中的地址定义为原始虚拟地址;通过重载C++的成员引用方法(比如:C++类的成员引用操作符)来实现其他进程对存储在该共享内存中的C++对象的透明的访问。也就是说,所有要使用该对象的进程就象访问在自己进程内新建的C++对象一样,特别是在用C++实现大规模的OOP应用时,减少应用开发的难度,缩短开发周期。
下面结合附图对本发明做进一步的说明。
请参阅图3,为本发明所述在共享内存中存储C++对象的方法的流程图。所述方法包括步骤:
步骤S11:设置刷新或首次申请创建共享内存的进程所需的共享内存,并将该共享内存的地址映射到所述进程的进程空间的某个虚拟地址上;
步骤S12:所述进程通过虚拟地址访问共享内存,并将该虚拟地址存储到该共享内存中,将所述虚拟地址定义为原始虚拟地址;
步骤S13:将C++对象和/或级联的C++对象存储在共享内存中。
在本发明所述技术方案中,运行在主机上的进程先向操作系统申请需要的共享内存,操作系统才为其分配相应的共享内存资源,并将其映射到自己进程空间所在的一个虚拟地址,所述进程通过该虚拟地址访问所申请的共享内存;同时,该进程将所述虚拟地址存储到申请的共享内存中,存储在共享内存的这个地址就定义为原始虚拟地址;通过重载C++的成员引用方法(即C++类的成员引用操作符)来实现其他进程对存储在该共享内存中的C++对象的透明访问。也就是说,本发明对于运行的进程都通过映射在自己进程空间的虚拟地址访问相同的一段共享内存,在该共享内存中的固定位置存储着原始虚拟地址,对于不同的进程,都能正确地取得该原始虚拟地址;再将C++对象和/或级联的C++对象装载于该共享内存中,其中,所述C++对象中包括指针或指针数组成员属性,所述指针指向其他在共享内存中存储的C++对象和/或级联的C++对象,各C++对象和/或级联的C++对象通过指针相连;进程通过映射到自己地址空间的虚拟地址访问共享内存,并通过访问共享内存以访问装载于该共享内存中的C++对象和/或级联的C++对象。其具体的实现过程还请参考图4。
如图4所示,为本发明所述共享内存中C++对象的存储方法的一实施例,其实现原理为:
第一步,先确定共享内存中的原始虚拟地址,该原始虚拟地址是数据加载进程在将C++对象加载到该共享内存时,首先要将共享内存映射到本进程空间的某个地址,该地址就定义为原始虚拟地址,并且将该地址存储在共享内存中的某个固定的位置。当其它进程从共享内存中存取对象时,通过C++的重载机制,重载访问共享内存中C++类的成员引用操作符(即operator[‘.’、‘->’])来实现C++语义上的对象访问。所述重载访问的原理主要是:存取对象地址等于指针值与访问者所在进程映射的共享内存地址减去原始虚拟地址的差之和。其公式为:对象地址=指针值+(访问者所在进程映射的共享内存地址-原始虚拟地址)。
第二步,通过一个或多个索引数组来存取共享内存中存储的对象A,所述索引数组一般包括:存取对象的大小Size、多个存储的对象struct Idx等。也就是说,索引数组的每个成员也是一个struct,每个成员包括:指向对象A的指针,及搜索键,可以通过多种算法(比如折半查找、冒泡查找等)来快速访问真正关心的数据(比如对象A)。其中所述折半查找、冒泡查找等算法对于本领域的技术人员来已是公知技术,在此不再赘述。
第三步,通过索引数组存储类A对象是顺序存储一类C++对象的方式,每个对象占用的空间可以相同,也可以不同,这取决于该对象是否包含数组指针属性,及数组指针的个数。数组指针的指针个数决定了类对象的存储空间占用,个数多的占用空间多。
第四步,对于C++的一个对象在共享内存中的存储组织结构,其所有的属性在共享内存中的存储是连续的,与其在应用进程中的存储是相同的。其中,该对象的属性,可以包含有指针属性或数组指针属性,其类型是任意的C++类型,包括基础类型与应用程序自己字义的类型等。如图中所示:类A对象的属性1为int,属性2为char[20],属性3为类c,属性4为Void**(所述Void**为指向指针的指针),属性n为int等。
第五步,描述的是类A对象的数组指针属性的成员指针Void*所指向的类B对象,单个类B对象的存储与类A对象的存储方式类似,在此不再详细的描述。
上述存储C++对象的过程中从第三步到第五步是递归的,其结束条件是不包含数组指针属性的对象,也就是说,不会再通过该对象去访问其他对象。
由上述实现过程可知,本发明在共享内存中存储真正的C++对象的方法,可以供所有访问该共享内存的进程透明地访问该C++对象,其中,所述访问该共享内存的进程,在其本身的进程空间内映射的共享内存的地址可以相同或者不同;并且该C++对象最大的特点是可以包括指针属性或指针数组属性,指针或其成员指针指向其他在共享内存中存储的C++对象,这个过程是递归的,直到不包括指针属性或指针数组属性的C++对象为止。
为了能清楚的描述本发明,请再参考图5,为本发明所述方法的一个应用实例。
数据刷新进程根据应用的需要将数据库的变更更新到共享内存中,这个更新的过程会影响到共享内存的存储结构的变更;客户进程(包括客户进程1、2、3等)通过某种算法(所述算法可以是折半查找、冒泡查找等),找到自己需要的对象,比如图中所示:客户进程1找到类A对象1,客户进程2找到类A对象2,客户进程3找到类A对象3等;不同的对象其所包括的子对象是不同的,数目可以为0...n个,但是,在不同的时刻,共享内存中的对象的关联关系是变化的,即依赖于数据库中的数据的关联关系。如图所示,在时刻1时,类A对象1的子对象包括类B对象1,类A对象2的子对象包括类B对象2和类B对象3等;在时刻2时(如图中虚线所示),类A对象1的子对象包括类B对象1和类B对象2,类A对象2的子对象包括类B对象3等。
因此,客户进程在访问数据库中的变更信息时,不需要直接访问数据库,可通过自己所使用的对象在共享内存中与其他对象的关联关系的变更,来实时获知数据库中的变更信息。
由上述步骤可知,本实施例的特点为:通过一个数据刷新进程将数据库中共用的数据根据应用的需要刷新到共享内存中,客户进程在使用该数据时,不需要访问数据库,直接访问共享内存即可正确的访问到需要的对象,即访问到所使用的数据;其中客户进程对共享内存的访问是非常快速的,且可以有较大的并发数;此外,客户进程在访问共享内存中的数据时,就象访问在自己进程空间创建的对象一样,加快了访问的速度。由此可见,本发明所述方案可以应用于实时的、数据库类的、面向对象的大型C++类应用。
另外,本发明还提供一种在共享内存中存储C++对象的装置,所述装置的结构示意图详见图6。所述装置包括:加载或刷新单元11和共享内存存储单元12,其中,所述加载或刷新单元11,用于为刷新或首次申请创建共享内存的进程设置一段共享内存,并将该共享内存的地址映射到所述进程的进程空间的某个虚拟地址上,通过该虚拟地址访问共享内存存储单元12,并将所述虚拟地址存储到该共享内存存储单元12中;所述共享内存存储单元12,与加载或刷新单元相连11,用于存储C++对象和/或级联的C++对象。所述装置在上述基础上可以增加对象访问单元或对象存取单元13,所述对象访问单元用于通过重载C++类的成员引用操作符来访问共享内存存储单元12中的C++对象和/或级联的C++对象;所述对象存取单元,用于通过一个或多个索引数组来存取共享内存存储单元12中存储的C++对象和/或级联的C++对象。其中所述索引数组本身也是一个C++对象。
所述装置中各个单元的具体过程与上述方法的实现过程相同,具体详见上述,在此不再赘述。
下面结合图7来说明本发明所述装置的应用实施。
如图7所示,操作系统根据进程的需要为其分配的共享内存的存储区域,即其享内存存储区域。该共享内存存储区域是独立的,由操作系统提供的,可同时供该主机上多个进程共同访问的物理存储区域,其映射在不同的进程中的虚拟地址可以是不同的,是由操作系统的特性决定的;共享内存加载或刷新进程,该共享内存加载或刷新进程主要用于将需要的数据以C++对象(比如图中所示的C++对象A、C++对象B、C++对象C、C++对象D)的方式存储到所申请的共享内存存储区域或对该共享内存存储区域的数据进行刷新;客户进程,是使用这些数据的进程,访问该共享内存中的C++对象,就象访问在自己进程空间内生成的对象一样地进行访问,且最关键的是此类C++对象可以包含指针或数组指针属性,并通过指针或数组指针属性关联访问存储在共享内存中的其他C++对象。本发明所述技术方案主要时提供一种借助于共享内存实现跨进程交互访问C++对象的能力,其主要应用于使用C++语言开发的应用系统。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (10)
1、一种在共享内存中存储C++对象的方法,其特征在于,包括步骤:
A、为刷新或首次申请创建共享内存的进程设置一段共享内存,并将该共享内存的地址映射到所述进程的进程空间的某个虚拟地址上;
B、所述进程通过虚拟地址访问共享内存,并将所述虚拟地址存储到该共享内存中,将所述虚拟地址定义为原始虚拟地址;
C、将C++对象和/或级联的C++对象存储在共享内存中。
2、根据权利要求1所述在共享内存中存储C++对象的方法,其特征在于,所述方法还包括:客户进程通过重载C++类的成员引用操作符来访问存储在共享内存中的C++对象和/或级联的C++对象。
3、根据权利要求2所述在共享内存中存储C++对象的方法,其特征在于,访问C++对象的地址为:指针值与共享内存映射到访问者所在进程的虚拟地址减去原始虚拟地址的差之和。
4、根据权利要求1所述在共享内存中存储C++对象的方法,其特征在于,步骤B中,所述将虚拟地址存储到该共享内存中的过程具体为:将映射的访问共享内存的虚拟地址存储到共享内存中的某个固定位置上。
5、根据权利要求1所述在共享内存中存储C++对象的方法,其特征在于,步骤C中将C++对象和/或级联的C++对象分别通过指针相连的方式存储在共享内存中。
6、根据权利要求5所述在共享内存中存储C++对象的方法,其特征在于,通过数据加载或刷新进程将C++对象和/或级联的C++对象分别通过指针相连的方式存储在共享内存中。
7、根据权利要求1、5或6所述在共享内存中存储C++对象的方法,其特征在于,所述存储的C++对象和/或级联的C++对象之间可以连续或不连续,且存储的每个对象所占用的空间取决于该对象是否包括数组指针属性和数组指针的个数。
8、一种在共享内存中存储C++对象的装置,其特征在于,包括:加载或刷新单元和共享内存存储单元,其中,
所述加载或刷新单元,用于为刷新或首次申请创建共享内存的进程设置一段共享内存,并将该共享内存的地址映射到所述进程的进程空间的某个虚拟地址上,通过该虚拟地址访问共享内存,并将所述虚拟地址存储到该共享内存存储单元中;
所述共享内存存储单元,与加载或刷新单元相连,用于存储C++对象和/或级联的C++对象。
9、根据权利要求8所述在共享内存中存储C++对象的装置,其特征在于,所述装置还包括:
对象访问单元,用于通过重载C++成员引用算法来访问共享内存存储单元中的C++对象和/或级联的C++对象。
10、根据权利要求8或9所述在共享内存中存储C++对象的装置,其特征在于,所述C++对象和/或级联的C++对象的连接方式为指针相连。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2006100675322A CN100454241C (zh) | 2006-02-28 | 2006-02-28 | 一种在共享内存中存储c++对象的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2006100675322A CN100454241C (zh) | 2006-02-28 | 2006-02-28 | 一种在共享内存中存储c++对象的方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101030135A true CN101030135A (zh) | 2007-09-05 |
CN100454241C CN100454241C (zh) | 2009-01-21 |
Family
ID=38715510
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2006100675322A Expired - Fee Related CN100454241C (zh) | 2006-02-28 | 2006-02-28 | 一种在共享内存中存储c++对象的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN100454241C (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102200930A (zh) * | 2011-05-26 | 2011-09-28 | 华为数字技术有限公司 | 同步变量映射方法及装置、同步变量释放方法及同步变量删除方法 |
CN103197979A (zh) * | 2012-01-04 | 2013-07-10 | 阿里巴巴集团控股有限公司 | 一种用于实现在进程间进行数据交互访问的方法及其装置 |
CN104572313A (zh) * | 2013-10-22 | 2015-04-29 | 华为技术有限公司 | 一种进程间的通信方法及装置 |
CN105094790A (zh) * | 2014-05-22 | 2015-11-25 | 腾讯科技(深圳)有限公司 | 一种基于标准化结构体的应用程序的运行方法和系统 |
CN106339258A (zh) * | 2016-08-10 | 2017-01-18 | 西安诺瓦电子科技有限公司 | 可编程逻辑器件与微处理器共享内存的管理方法及装置 |
CN107229530A (zh) * | 2017-06-29 | 2017-10-03 | 上海联影医疗科技有限公司 | 进程间的通信方法、存储介质以及计算机设备 |
CN110096453A (zh) * | 2019-04-11 | 2019-08-06 | 北京华三通信技术有限公司 | 数据处理方法及装置 |
CN110727514A (zh) * | 2019-10-12 | 2020-01-24 | 北京无线电测量研究所 | 一种基于索引队列的内存管理方法以及嵌入式设备 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR2762418B1 (fr) * | 1997-04-17 | 1999-06-11 | Alsthom Cge Alcatel | Procede de gestion d'une memoire partagee |
US6684305B1 (en) * | 2001-04-24 | 2004-01-27 | Advanced Micro Devices, Inc. | Multiprocessor system implementing virtual memory using a shared memory, and a page replacement method for maintaining paged memory coherence |
CN1282926C (zh) * | 2002-07-23 | 2006-11-01 | 华为技术有限公司 | 一种对利用共享内存对象记录普通进程异常退出的定位方法 |
CN1331070C (zh) * | 2004-02-21 | 2007-08-08 | 华为技术有限公司 | 数据通信的方法及设备 |
-
2006
- 2006-02-28 CN CNB2006100675322A patent/CN100454241C/zh not_active Expired - Fee Related
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102200930A (zh) * | 2011-05-26 | 2011-09-28 | 华为数字技术有限公司 | 同步变量映射方法及装置、同步变量释放方法及同步变量删除方法 |
CN103197979A (zh) * | 2012-01-04 | 2013-07-10 | 阿里巴巴集团控股有限公司 | 一种用于实现在进程间进行数据交互访问的方法及其装置 |
CN103197979B (zh) * | 2012-01-04 | 2017-05-03 | 阿里巴巴集团控股有限公司 | 一种用于实现在进程间进行数据交互访问的方法及其装置 |
CN104572313A (zh) * | 2013-10-22 | 2015-04-29 | 华为技术有限公司 | 一种进程间的通信方法及装置 |
CN104572313B (zh) * | 2013-10-22 | 2018-03-13 | 华为技术有限公司 | 一种进程间的通信方法及装置 |
CN105094790A (zh) * | 2014-05-22 | 2015-11-25 | 腾讯科技(深圳)有限公司 | 一种基于标准化结构体的应用程序的运行方法和系统 |
CN105094790B (zh) * | 2014-05-22 | 2019-05-07 | 腾讯科技(深圳)有限公司 | 一种基于标准化结构体的应用程序的运行方法和系统 |
CN106339258B (zh) * | 2016-08-10 | 2019-10-18 | 西安诺瓦星云科技股份有限公司 | 可编程逻辑器件与微处理器共享内存的管理方法及装置 |
CN106339258A (zh) * | 2016-08-10 | 2017-01-18 | 西安诺瓦电子科技有限公司 | 可编程逻辑器件与微处理器共享内存的管理方法及装置 |
CN107229530A (zh) * | 2017-06-29 | 2017-10-03 | 上海联影医疗科技有限公司 | 进程间的通信方法、存储介质以及计算机设备 |
CN110096453A (zh) * | 2019-04-11 | 2019-08-06 | 北京华三通信技术有限公司 | 数据处理方法及装置 |
CN110096453B (zh) * | 2019-04-11 | 2020-01-03 | 北京华三通信技术有限公司 | 数据处理方法及装置 |
CN110727514A (zh) * | 2019-10-12 | 2020-01-24 | 北京无线电测量研究所 | 一种基于索引队列的内存管理方法以及嵌入式设备 |
Also Published As
Publication number | Publication date |
---|---|
CN100454241C (zh) | 2009-01-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101030135A (zh) | 一种在共享内存中存储c++对象的方法及装置 | |
EP2973018B1 (en) | A method to accelerate queries using dynamically generated alternate data formats in flash cache | |
US5842226A (en) | Virtual memory management for a microkernel system with multiple operating systems | |
CN1279441C (zh) | 用于确定热门的调用者-被调用者关系和对应的调用者/被调用者对的方法 | |
US7107299B2 (en) | Method and apparatus for managing large numbers of objects having the same property | |
US20100223606A1 (en) | Framework for dynamically generating tuple and page classes | |
Hawthorn et al. | Performance analysis of alternative database machine architectures | |
US9852180B2 (en) | Systems and methods of accessing distributed data | |
CN1949220A (zh) | 网络社区动态目录的构建系统和方法 | |
US20160147670A1 (en) | Page cache device and method for efficient mapping | |
CN113157692B (zh) | 一种关系型内存数据库系统 | |
JP2018513454A (ja) | カラム・ストアにおける挿入およびポイント・クエリ・オペレーションの効率的パフォーマンス | |
US20140223100A1 (en) | Range based collection cache | |
Lan et al. | A lightweight time series main-memory database for IoT real-time services | |
Park et al. | KV-CSD: A hardware-accelerated key-value store for data-intensive applications | |
Diwase et al. | Survey report on memory allocation strategies for real time operating system in context with embedded devices | |
US10303687B2 (en) | Concurrent processing of data sources | |
CN116956164A (zh) | 基于wasm技术的全高层大气激光雷达数据处理方法 | |
CN118519964A (zh) | 数据处理方法、装置、计算机程序产品、设备及存储介质 | |
Lu et al. | A survey of mapreduce based parallel processing technologies | |
Fitch et al. | Using the active storage fabrics model to address petascale storage challenges | |
CN113918603A (zh) | 散列缓存生成方法、装置、电子设备及存储介质 | |
Chang et al. | DMMX: Dynamic memory management extensions | |
Yoshimura et al. | Column cache: Buffer cache for columnar storage on hdfs | |
CN1622056A (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 | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20090121 Termination date: 20130228 |