CN101093450A - 一种多cpu互斥的方法 - Google Patents

一种多cpu互斥的方法 Download PDF

Info

Publication number
CN101093450A
CN101093450A CN 200610021196 CN200610021196A CN101093450A CN 101093450 A CN101093450 A CN 101093450A CN 200610021196 CN200610021196 CN 200610021196 CN 200610021196 A CN200610021196 A CN 200610021196A CN 101093450 A CN101093450 A CN 101093450A
Authority
CN
China
Prior art keywords
data structure
shared data
mutual exclusion
buffer zone
operated
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
Application number
CN 200610021196
Other languages
English (en)
Other versions
CN101093450B (zh
Inventor
王成飞
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
MAIPU (SICHUAN) COMMUNICATION TECHNOLOGY Co Ltd
Original Assignee
MAIPU (SICHUAN) COMMUNICATION TECHNOLOGY Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by MAIPU (SICHUAN) COMMUNICATION TECHNOLOGY Co Ltd filed Critical MAIPU (SICHUAN) COMMUNICATION TECHNOLOGY Co Ltd
Priority to CN2006100211968A priority Critical patent/CN101093450B/zh
Publication of CN101093450A publication Critical patent/CN101093450A/zh
Application granted granted Critical
Publication of CN101093450B publication Critical patent/CN101093450B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明涉及一种多CPU访问共享资源的互斥方法。本发明克服现有技术中***开销受制于读操作对共享数据结构互斥访问的问题,提出一种读操作不用通过互斥机制,象独占资源一样直接访问的方法。本发明的技术方案是,一种多CPU互斥的方法,包括:a.确定共享数据结构的基本信息单位,并确定每一个基本信息单位有唯一一个指针指向它;b.***执行写操作之前,先在缓冲区中填写好待操作的完整的信息;c.***通过修改指针的一条指令将以上待操作信息提交到共享数据结构的相应位置;d.读操作直接访问共享数据结构。本发明的有益效果是,应用于写操作远少于读操作的***中,不需要和其它任务进行互斥,读操作可以直接进行,提高***性能。

Description

一种多CPU互斥的方法
技术领域
本发明涉及操作***领域,尤其涉及通信设备操作***中多CPU访问共享资源的互斥方法。
背景技术
在采用共享内存的多CPU、多核单CPU的通信产品中,如路由表、流表等数据表属于共享资源,一般访问这些数据表的开销是***的主要开销。另外***对以上共享数据表的操作中,写操作的频率远小于读操作,例如1秒钟内可能只有一次写操作,这里的写操作包括添加、删除,修改等操作;但处理报文的读操作就可能有上百万次。特别是在vCPU较多的***中,绝大多数vCPU主要处理业务报文的转发,对路由表、流表等数据表的查找操作占***开销的大部分,***性能对操作速度很敏感,所以共享资源的互斥机制是影响***性能的比较关键的因素。传统的互斥机制是利用“信号量”或“读写锁”来实现的,但“信号量”或“读写锁”互斥操作的***开销都很大。如果共享资源数据表有多个写操作任务,那么即使这些写操作的任务间用信号量来互斥,由于写操作很少,不会引起太多的***资源开销,但是对于读操作如果采用以上的互斥机制,则容易造成***资源的极大消耗。
发明内容
本发明要解决的技术问题是,克服现有技术中***开销受制于读操作对共享数据结构互斥访问的问题,提出一种读操作不用通过互斥机制,直接象独占资源一样直接访问的方法。
本发明所采用的技术方案是,提供一种多CPU互斥的方法,包括:
a、确定共享数据结构的基本信息单位,并确定每一个基本信息单位有唯一一个指针指向它;
b、***执行写操作之前,先在缓冲区中填写好待操作的完整信息;
c、***通过修改指针的一条指令将以上待操作信息提交到共享数据结构的相应位置;
d、读操作直接访问共享数据结构。
进一步的,以上步骤a中的指针,所占的字节数小于等于CPU内存总线位宽。
进一步的,以上步骤b中,在缓冲区中填写好待操作的完整信息,包括如下步骤:
b1、复制共享数据结构中写操作的关联信息到缓冲区;
b2、在缓冲区中根据***需求修改关联信息;
b3、生成最后待操作的完整的信息。
有益效果:本技术方案应用于写操作远少于读操作的***中,不需要和其它任务进行互斥,读操作可以直接进行,通过写操作指令的自然原子性,保证了读操作访问共享资源的准确性,特别是vCPU较多的通信产品中,对于路由表、流表等多个CPU频繁访问的操作,应用本技术方案***性能可以得到较大改善。
附图说明
图1-图3是本发明具体实施例中共享数据的操作示意图。
具体实施方式
本实施方式中,***将一共享资源数据表组织成树形,确定写操作涉及的该共享树的相关节点组成的子树为一个基本信息单位。针对该共享资源数据表,当要完成表项的添加、删除等写操作时,可能需要修改树的多个节点,这些节点必须构成一棵子树,如果不构成子树,则需要被分割成多个子树,将它们的割点也添加进来直到形成子树,最终这棵子树对于本次操作来说就是一个完整的基本信息单位。并确定1个小于CPU内存总线位宽的指针指向该子树,这样由一条指令来完成写操作。
当添加一条表项时,***先查前缀索引树,找出已有的前缀放入缓冲区中;为最后几级节点分配索引块并填写好,形成一棵子树;修改最后一级已有的前缀对应的指针,使它指向已填写好的子树。
当要修改表项时:拷贝要修改的节点或子树到缓冲区;在缓冲区中修改拷贝的副本;用修改完成的副本替换原共享资源数据表的子树,只需修改父节点指向它的指针,释放被替换的子树。
为了避免某读操作任务进入路由表时因为意外而挂起时,而另一写操作任务已经将以上读操作任务要访问地址的信息改写,***可以设置在一段时间t内,不能修改被删除或被释放节点、表项或区块的存储信息。时间段t的确定:在最坏情况下,可以确定为CPU访问一个表项所需要的时间,例如,表项的IP前缀树分4级,则时间段t为访问3级索引所需要的最长时间。将删除的表项放到延迟释放队列中;延迟时间t到后,将表项放到空闲队列中可被重新分配。由于访问3级索引表的时间很短且不会被中断,当被释放表项的存储空间被重新分配信息时,可以保证在最坏情况下都已查找完成。
实施例:
在如图1所示路由表的共享树结构中,要完成路由表一个添加操作,确定该添加操作涉及子树1中所包含的全部节点。确定了需要修改的子树1后,不能在原节点上直接修改;需要将待修改的子树1拷贝一个副本子树2。如图2所示,子树2就是子树1拷贝出来的副本,然后在子树2上修改。完成全部修改后,将对应子树1的父节点的指向子树1的指针修改为指向子树2,如图3所示。通过延迟释放的机制,过一段时间t后,释放子树1的全部节点。

Claims (3)

1.一种多CPU互斥的方法,其特征在于,包括:
a.确定共享数据结构的基本信息单位,并确定每一个基本信息单位有唯一一个指针指向它;
b.***执行写操作之前,先在缓冲区中填写好待操作的完整信息;
c.***通过修改指针的一条指令将以上待操作信息提交到共享数据结构的相应位置;
d.读操作直接访问共享数据结构。
2.根据权利要求1所述多CPU互斥的方法,其特征在于:所述步骤a中,所述指针所占的字节数小于等于CPU内存总线位宽。
3.根据权利要求1所述多CPU互斥的方法,其特征在于:所述步骤b中,在缓冲区中填写好待操作的完整信息,包括如下步骤:
b1.复制共享数据结构中写操作的关联信息到缓冲区;
b2.在缓冲区中根据***需求修改关联信息;
b3.生成最后待操作的完整的信息。
CN2006100211968A 2006-06-19 2006-06-19 一种多cpu互斥的方法 Expired - Fee Related CN101093450B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2006100211968A CN101093450B (zh) 2006-06-19 2006-06-19 一种多cpu互斥的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2006100211968A CN101093450B (zh) 2006-06-19 2006-06-19 一种多cpu互斥的方法

Publications (2)

Publication Number Publication Date
CN101093450A true CN101093450A (zh) 2007-12-26
CN101093450B CN101093450B (zh) 2011-06-22

Family

ID=38991726

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2006100211968A Expired - Fee Related CN101093450B (zh) 2006-06-19 2006-06-19 一种多cpu互斥的方法

Country Status (1)

Country Link
CN (1) CN101093450B (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101872335A (zh) * 2010-03-05 2010-10-27 杭州海康威视数字技术股份有限公司 Cpu控制台重定向方法、***及cpu
CN102325091A (zh) * 2011-10-17 2012-01-18 迈普通信技术股份有限公司 内存释放方法和路由***
CN101770403B (zh) * 2008-12-30 2012-07-25 北京天融信网络安全技术有限公司 一种多核平台上控制***配置并发与同步的方法
CN103309840A (zh) * 2013-07-08 2013-09-18 天津汉柏汉安信息技术有限公司 一种新建连接的方法及其装置
CN104216767A (zh) * 2014-09-18 2014-12-17 东软集团股份有限公司 多线程之间访问共享数据的方法及装置
CN107562523A (zh) * 2017-09-04 2018-01-09 北京国华世纪电子科技有限公司 一种多任务嵌入式***共享数据管理方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5924098A (en) * 1997-06-30 1999-07-13 Sun Microsystems, Inc. Method and apparatus for managing a linked-list data structure

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101770403B (zh) * 2008-12-30 2012-07-25 北京天融信网络安全技术有限公司 一种多核平台上控制***配置并发与同步的方法
CN101872335A (zh) * 2010-03-05 2010-10-27 杭州海康威视数字技术股份有限公司 Cpu控制台重定向方法、***及cpu
CN101872335B (zh) * 2010-03-05 2012-11-21 杭州海康威视数字技术股份有限公司 Cpu控制台重定向方法、***及cpu
CN102325091A (zh) * 2011-10-17 2012-01-18 迈普通信技术股份有限公司 内存释放方法和路由***
CN102325091B (zh) * 2011-10-17 2014-09-17 迈普通信技术股份有限公司 内存释放方法和路由***
CN103309840A (zh) * 2013-07-08 2013-09-18 天津汉柏汉安信息技术有限公司 一种新建连接的方法及其装置
CN104216767A (zh) * 2014-09-18 2014-12-17 东软集团股份有限公司 多线程之间访问共享数据的方法及装置
CN104216767B (zh) * 2014-09-18 2017-10-31 东软集团股份有限公司 多线程之间访问共享数据的方法及装置
CN107562523A (zh) * 2017-09-04 2018-01-09 北京国华世纪电子科技有限公司 一种多任务嵌入式***共享数据管理方法

Also Published As

Publication number Publication date
CN101093450B (zh) 2011-06-22

Similar Documents

Publication Publication Date Title
CN1517885B (zh) 关于利用原子性更新的中央高速缓冲存储器的方法和***
CN1318956C (zh) 软件构件插件程序结构的***和方法
TW440769B (en) Parallel file system and method for granting byte range tokens
US5734902A (en) Communication system for maintaining data consistency among replicated shared objects
CN100454311C (zh) 基于sql的数据同步方法及装置
CN102117338B (zh) 一种数据库缓存的方法
WO2023082537A1 (zh) 一种基于拟态数据库的网络操作***设计方法
CN101819577A (zh) 维护文件***客户端目录高速缓存的方法、***和装置
CN100456264C (zh) 一种磁盘空间管理方法及***
CN103390041A (zh) 一种基于中间件提供数据服务的方法和***
CN107256196A (zh) 基于闪存阵列的支持零拷贝的缓存***及方法
CN101510176B (zh) 通用操作***对cpu二级缓存访问的控制方法
CN105103136B (zh) 共享和受管的存储器统一访问
CN102103497A (zh) 有限状态机执行装置和方法、在应用中的建立和使用方法
JP2013037718A (ja) メモリページ管理
CN101765831A (zh) 数据库不一致的处理方法
CN101093450A (zh) 一种多cpu互斥的方法
CN100424699C (zh) 一种属性可扩展的对象文件***
EP3494493B1 (en) Repartitioning data in a distributed computing system
CN106570113B (zh) 一种海量矢量切片数据云存储方法及***
CN103218176A (zh) 数据处理方法及装置
CN103890856A (zh) 支持内存储数据结构的可移位存储器
CN101610197A (zh) 一种缓冲区管理方法及其***
JPWO2004036432A1 (ja) データベースのアクセラレーター
CN110020272A (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
CP02 Change in the address of a patent holder

Address after: No. 1, No. 288 building, 610041 floor, Maipu Sichuan province Chengdu Tianfu Avenue, 17 floor

Patentee after: MAIPU COMMUNICATION TECHNOLOGY Co.,Ltd.

Address before: 610041 Sichuan city of Chengdu province high tech Zone nine Hing Road No. 16 building, Maipu

Patentee before: MAIPU COMMUNICATION TECHNOLOGY Co.,Ltd.

CP02 Change in the address of a patent holder
CP02 Change in the address of a patent holder

Address after: 610041 nine Xing Xing Road 16, hi tech Zone, Sichuan, Chengdu

Patentee after: MAIPU COMMUNICATION TECHNOLOGY Co.,Ltd.

Address before: 610041, 17 floor, maple building, 1 building, 288 Tianfu street, Chengdu, Sichuan.

Patentee before: MAIPU COMMUNICATION TECHNOLOGY Co.,Ltd.

CP02 Change in the address of a patent holder
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20110622

CF01 Termination of patent right due to non-payment of annual fee