CN101770403A - 一种多核平台上控制系统配置并发与同步的方法 - Google Patents
一种多核平台上控制系统配置并发与同步的方法 Download PDFInfo
- Publication number
- CN101770403A CN101770403A CN200810241122A CN200810241122A CN101770403A CN 101770403 A CN101770403 A CN 101770403A CN 200810241122 A CN200810241122 A CN 200810241122A CN 200810241122 A CN200810241122 A CN 200810241122A CN 101770403 A CN101770403 A CN 101770403A
- Authority
- CN
- China
- Prior art keywords
- system configuration
- timer
- clone
- tos
- control system
- 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
Images
Abstract
本发明公开了一种多核平台上控制系统配置并发与同步的方法,在TOS控制系统修改用于互斥修改的系统配置的对象实例时,只是先把修改后的用于互斥修改的系统配置的对象实例复制为临时系统配置的对象实例,在此过程中TOS转发系统还是用未修改的用于共享访问的系统配置一直在处理转发数据包,在系统配置复制完成后,TOS控制系统将临时系统配置和用于共享访问的系统配置的指针交换,在交换完成后,等待一个RCU周期,TOS转发系统即可使用新的用于共享访问的系统配置,这个过程是平滑过度的,本发明使得多核系统能够安全、快速、并行的访问共享资源。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种多核平台上控制系统配置并发与同步的方法。
背景技术
随着CPU的换代升级,多核CPU已经进入到了商用阶段,在PC市场及网络设备市场均占有了一席之地。这就要求各个厂商需要在新的多核平台上开发产品或者将以前的软件移植到多核平台上来提升自身产品的竞争力。
在多核平台上,对于一些共享资源的并发访问问题是整个体系结构中的关键技术。在现有技术中,对于多核平台上的共享资源的并发访问大多是基于下面一些锁(或它们的变形)的保护来实现的,具体包括:
读写锁(rwlock):对于同一资源可以同时上多个读锁,从而可以并行执行这些代码;对于同一资源在同一时间只能上一个写锁,不能并行访问要保护的资源。
自旋锁(spin_lock):如果上锁不成功,就一直等下去,直到上锁成功为止。它是一种互斥锁,在同一时间只能有一个访问者能够获得自旋锁。
RCU(Read-Copy Update)锁:一种读-拷贝修改的锁,它是基于其原理命名的。对于被RCU保护的共享数据结构,读者不需要获得任何锁就可以访问它,但写者在访问它时首先拷贝一个副本,然后对副本进行修改,最后使用一个回调(callback)机制在适当的时机把指向原来数据的指针重新指向新的被修改的数据。等待适当时机的这一时期称为grace period(RCU周期),而CPU发生了上下文切换称为经历一个quiescent state(静止状态,在这个时期这个CPU读到的数据保持一致性),RCU周期就是所有CPU都经历一次静止状态所需要的等待的时间。垃圾收集器就是在静止状态之后调用写者注册的回调函数来完成真正的数据修改或数据释放操作的。RCU实际上是一种改进的读写锁,读者在访问被RCU保护的共享数据期间不能被阻塞,这是RCU机制得以实现的一个基本前提,也就说当读者在引用被RCU保护的共享数据期间,读者所在的CPU不能发生上下文切换,自旋锁和读写锁都需要这样的前提。写者在访问被RCU保护的共享数据时不需要和读者竞争任何锁,只有在有多于一个写者的情况下需要获得某种锁以与其他写者同步。
目前在大型的系统中往往需要综合运用上面的几种锁来实现共享资源的并发访问。综合使用上面几种锁来实现共享资源的并发访问有以下几个不足之处:
1)效率低,使用锁就有开销,如果有大量需要保护的资源那么锁的开销就会很大;
2)实现复杂,对于一个大型的操作系统,若使用锁来保护的资源很复杂,则很容易出现死锁,锁嵌套等问题;
3)不适合移植系统,多核CPU是近几年才大量商用的,对于那些从以前单核系统的移植项目来说,使用锁来保护以前那些从未考虑过并发的资源是非常困难的。
TOS(topsec operating system,TOPSEC操作系统)系统的系统配置主要包括资源对象和策略对象,他们是由用户配置添加的,在内存中维护来对转发的数据进行匹配,并可以保存在存储介质上。TOS控制系统主要用于对系统配置进行维护,包括增加、删除、修改系统配置,由于控制系统对系统配置是互斥访问的,所以这些操作不会出问题。TOS转发系统分别运行在多个核上,主要用于读取系统配置并对转发的数据进行匹配,运行在多个核上的转发系统对系统配置是读共享的,它们之间也不会出问题。因此需要解决的是TOS控制系统和TOS转发系统之间对系统配置的并发访问的问题。然而由于TOS控制系统和TOS转发系统是由以前在单核平台上开发的TOS系统移植到多核平台上得到的,因此并不能采用上述通过综合运用几种锁的方式来实现系统配置的并发访问。
发明内容
本发明提供一种多核平台上控制系统配置并发与同步的方法,用以实现TOS控制系统和TOS转发系统对系统配置的并发访问。
本发明所述技术方案如下:
一种多核平台上控制系统配置并发与同步的方法,包括步骤:
A、TOS控制系统在启动时加载用于互斥修改的系统配置,并初始化临时系统配置的基地址和用于共享访问的系统配置的基地址;
B、在用户操作系统配置时,若用户命令是修改命令,则TOS控制系统通过互斥信号完成对用于互斥修改的系统配置的对象实例的修改,在修改完成后,启动克隆定时器并释放互斥信号,若在预设时间间隔内没有接收到新的修改命令,克隆定时器执行;
C、所述克隆定时器获得互斥信号后,将用于互斥修改的系统配置的对象实例复制为临时系统配置的对象实例,复制完成后释放互斥信号;
D、所述克隆定时器将临时系统配置的指针与共享访问的系统配置的指针交换。
具体地,所述步骤D中,在指针交换完成后,经过一个RCU周期后所述克隆定时器释放临时系统配置中的对象实例。
进一步地,所述步骤B中,若用户命令是读取命令,则TOS控制系统在获得互斥信号后读取用于互斥修改的系统配置,将其显示给用户,在显示完成后释放互斥信号。
具体地,所述步骤B具体包括步骤:
B1、在接收到修改命令后,TOS控制系统获得互斥信号,判断克隆定时器是否已启动,若是,则删除克隆定时器并将该克隆定时器的状态记录到本地,否则,将直接将该定时器的状态记录到本地;
B2、TOS控制系统按照接收到的修改命令对用于互斥修改的系统配置的对象实例进行相应的修改,若修改完成或本地记录的克隆定时器的状态为启动状态,则启动新的克隆定时器并释放互斥信号;
B3、若在预设时间间隔内TOS控制系统没有接收到新的修改命令,则克隆定时器执行,否则返回步骤B1。
进一步地,所述步骤D后还包括步骤:
在指针交换完成后,经过一个RCU周期后,TOS转发系统通过所述用于共享访问的系统配置的基地址访问更新后的系统配置的对象实例。
较佳地,所述预设时间间隔为1秒。
具体地,所述用于互斥修改的系统配置和用于共享访问的系统配置存储于内存中。
本发明有益效果如下:
采用本发明所述技术方案后,在TOS控制系统修改用于互斥修改的系统配置的对象实例时,只是先把修改后的用于互斥修改的系统配置的对象实例复制为临时系统配置的对象实例,在此过程中TOS转发系统还是用未修改的用于共享访问的系统配置一直在处理转发数据包,在系统配置复制完成后,TOS控制系统将临时系统配置和用于共享访问的系统配置的指针交换一下,在交换完成后,等待一个RCU周期,TOS转发系统就可以使用新的用于共享访问的系统配置了,这个过程是平滑过度的。本发明使得多核系统能够安全、快速、并行的访问共享资源,TOS转发系统不需要任何互斥开销就可以并行访问用于共享访问的系统配置。
附图说明
图1为本发明所述多核平台上控制系统配置并发与同步的方法的流程图。
具体实施方式
本发明的主要技术构思是:在内存中存储两份系统配置(如防火墙配置),一份是用于互斥修改的系统配置(FW_CONFIG),另一份是用于共享访问的系统配置(CLONG_CONFIG)。在TOS控制系统修改FW_CONFIG的对象实例后,只是先把修改后的FW_CONFIG的对象实例复制为临时系统配置(TMP_CONFIG)的对象实例,在此过程中TOS转发系统还是用未修改的CLONG_CONFIG一直在处理转发数据包,在系统配置复制完成后,TOS控制系统将TMP_CONFIG和CLONG_CONFIG的指针交换一下,在交换完成后,等待一个RCU周期,TOS转发系统就可以使用新的CLONG_CONFIG了,这个过程是平滑的过度的,使得多核系统能够安全、快速、并行的访问共享资源。
下面将结合附图对本发明的具体实现过程予以进一步详细的说明。
请参阅图1,该图为本发明所述多核平台上控制系统配置并发与同步的方法的流程图,其具体实现过程如下:
步骤10、TOS控制系统在启动时加载FW_CONFIG,并初始化TMP_CONFIG的基地址和CLONG_CONFIG的基地址。
具体地,本发明实现过程中,TOS转发系统是通过CLONE_CONFIG的基地址访问系统配置的,因此只有TMP_CONFIG的基地址和CLONE_CONFIG的基地址保持不变,才能保证TOS转发系统能够正确访问系统配置。
步骤11、在用户操作系统配置时,TOS控制系统判断接收到的用户命令是修改命令还是读取命令,若是读取命令,执行步骤12,若是修改命令,执行步骤13。
步骤12、TOS控制系统获得一个互斥信号,读取FW_CONFIG并将其显示给用户,在显示完成后释放互斥信号。
步骤13、TOS控制系统获得一个互斥信号,判断克隆定时器是否已启动,若是,执行步骤14,否则,执行步骤15。
本步骤中,克隆定时器启动时,其状态值为1,克隆定时器未启动时,其状态值为0。
步骤14、TOS控制系统删除克隆定时器并将该克隆定时器的状态值1记录到本地变量state中,执行步骤16。
步骤15、TOS控制系统将克隆定时器的状态值0记录到本地变量state中,执行步骤16。
步骤16、TOS控制系统按照接收到的修改命令对内存中的FW_CONFIG的对象实例进行相应的修改,若修改完成后或本地记录的变量state为1,则启动新的克隆定时器并释放互斥信号。
步骤17、判断在新的克隆定时器启动后的预设时间间隔内TOS控制系统是否接收到了新的修改命令,若是,则返回步骤13,否则,执行步骤18。
具体地,所述预设时间间隔可以为1秒。
步骤18、TOS控制系统中的克隆定时器执行,在获得一个互斥信号后,将FW_CONFIG的对象实例复制为TMP_CONFIG的对象实例,复制完成后释放互斥信号。
步骤19、TOS控制系统中的克隆定时器将TMP_CONFIG的指针与CLONG_CONFIG的指针交换。
在指针交换完成后,经过一个RCU周期后克隆定时器释放TMP_CONFIG的对象实例,此时,TOS转发系统即可通过CLONG_CONFIG的基地址访问更新后的系统配置的对象实例。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (7)
1.一种多核平台上控制系统配置并发与同步的方法,其特征在于,包括步骤:
A、TOS控制系统在启动时加载用于互斥修改的系统配置,并初始化临时系统配置的基地址和用于共享访问的系统配置的基地址;
B、在用户操作系统配置时,若用户命令是修改命令,则TOS控制系统通过互斥信号完成对用于互斥修改的系统配置的对象实例的修改,在修改完成后,启动克隆定时器并释放互斥信号,若在预设时间间隔内没有接收到新的修改命令,克隆定时器执行;
C、所述克隆定时器在获得互斥信号后,将用于互斥修改的系统配置的对象实例复制为临时系统配置的对象实例,复制完成后释放互斥信号;
D、所述克隆定时器将临时系统配置的指针与共享访问的系统配置的指针交换。
2.如权利要求1所述的方法,其特征在于,所述步骤D中,在指针交换完成后,经过一个RCU周期后所述克隆定时器释放临时系统配置中的对象实例。
3.如权利要求1或2所述的方法,其特征在于,所述步骤B中,若用户命令是读取命令,则TOS控制系统在获得互斥信号后读取用于互斥修改的系统配置,将其显示给用户,在显示完成后释放互斥信号。
4.如权利要求1或2所述的方法,其特征在于,所述步骤B具体包括步骤:
B1、在接收到修改命令后,TOS控制系统获得互斥信号,判断克隆定时器是否已启动,若是,则删除克隆定时器并将该克隆定时器的状态记录到本地,否则,将直接将该定时器的状态记录到本地;
B2、TOS控制系统按照接收到的修改命令对用于互斥修改的系统配置的对象实例进行相应的修改,若修改完成或本地记录的克隆定时器的状态为启动状态,则启动新的克隆定时器并释放互斥信号;
B3、若在预设时间间隔内TOS控制系统没有接收到新的修改命令,则克隆定时器执行,否则返回步骤B1。
5.如权利要求1所述的方法,其特征在于,所述步骤D后还包括步骤:
在指针交换完成后,经过一个RCU周期后,TOS转发系统通过所述用于共享访问的系统配置的基地址访问更新后的系统配置的对象实例。
6.如权利要求1所述的方法,其特征在于,所述预设时间间隔为1秒。
7.如权利要求1所述的方法,其特征在于,所述用于互斥修改的系统配置和用于共享访问的系统配置存储于内存中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2008102411224A CN101770403B (zh) | 2008-12-30 | 2008-12-30 | 一种多核平台上控制系统配置并发与同步的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2008102411224A CN101770403B (zh) | 2008-12-30 | 2008-12-30 | 一种多核平台上控制系统配置并发与同步的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101770403A true CN101770403A (zh) | 2010-07-07 |
CN101770403B CN101770403B (zh) | 2012-07-25 |
Family
ID=42503280
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2008102411224A Active CN101770403B (zh) | 2008-12-30 | 2008-12-30 | 一种多核平台上控制系统配置并发与同步的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101770403B (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102012718A (zh) * | 2010-11-15 | 2011-04-13 | 中兴通讯股份有限公司 | 多核系统中定时器的实现方法及多核系统 |
CN102609313A (zh) * | 2012-01-13 | 2012-07-25 | 汉柏科技有限公司 | 多核系统资源延迟回收锁的实现方法及系统 |
CN104079526A (zh) * | 2013-03-25 | 2014-10-01 | 北京百度网讯科技有限公司 | 支持实时策略加载的流量过滤防攻击方法与系统 |
CN104424142A (zh) * | 2013-08-26 | 2015-03-18 | 中兴通讯股份有限公司 | 一种多核处理器系统中访问共享资源的方法与装置 |
CN110069221A (zh) * | 2019-04-30 | 2019-07-30 | 北京华三通信技术有限公司 | 数据释放方法及装置 |
CN112929278A (zh) * | 2021-02-24 | 2021-06-08 | 深圳市吉祥腾达科技有限公司 | 一种网络通信设备多核并行快速转发数据包的方法及系统 |
CN115454653A (zh) * | 2022-11-10 | 2022-12-09 | 南京翼辉信息技术有限公司 | 一种基于嵌入式实时操作系统的rcu实现方法 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7139791B1 (en) * | 2000-07-13 | 2006-11-21 | International Business Machines Corporation | Apparatus and method for providing access to a data stream by a plurality of users at a same time |
CN101093450B (zh) * | 2006-06-19 | 2011-06-22 | 迈普通信技术股份有限公司 | 一种多cpu互斥的方法 |
CN100489814C (zh) * | 2007-08-01 | 2009-05-20 | 杭州华三通信技术有限公司 | 一种共享缓存系统及实现方法 |
CN101246466B (zh) * | 2007-11-29 | 2012-06-20 | 华为技术有限公司 | 多核系统中共享内存的管理方法和装置 |
-
2008
- 2008-12-30 CN CN2008102411224A patent/CN101770403B/zh active Active
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102012718A (zh) * | 2010-11-15 | 2011-04-13 | 中兴通讯股份有限公司 | 多核系统中定时器的实现方法及多核系统 |
CN102012718B (zh) * | 2010-11-15 | 2014-12-10 | 中兴通讯股份有限公司 | 多核系统中定时器的实现方法及多核系统 |
CN102609313A (zh) * | 2012-01-13 | 2012-07-25 | 汉柏科技有限公司 | 多核系统资源延迟回收锁的实现方法及系统 |
WO2013104230A1 (zh) * | 2012-01-13 | 2013-07-18 | 汉柏科技有限公司 | 多核系统资源延迟回收锁的实现方法及系统 |
CN102609313B (zh) * | 2012-01-13 | 2014-04-02 | 汉柏科技有限公司 | 多核系统资源延迟回收锁的实现方法及系统 |
CN104079526A (zh) * | 2013-03-25 | 2014-10-01 | 北京百度网讯科技有限公司 | 支持实时策略加载的流量过滤防攻击方法与系统 |
CN104424142A (zh) * | 2013-08-26 | 2015-03-18 | 中兴通讯股份有限公司 | 一种多核处理器系统中访问共享资源的方法与装置 |
CN104424142B (zh) * | 2013-08-26 | 2019-09-10 | 南京中兴新软件有限责任公司 | 一种多核处理器系统中访问共享资源的方法与装置 |
CN110069221A (zh) * | 2019-04-30 | 2019-07-30 | 北京华三通信技术有限公司 | 数据释放方法及装置 |
CN110069221B (zh) * | 2019-04-30 | 2020-03-06 | 北京华三通信技术有限公司 | 数据释放方法及装置 |
CN112929278A (zh) * | 2021-02-24 | 2021-06-08 | 深圳市吉祥腾达科技有限公司 | 一种网络通信设备多核并行快速转发数据包的方法及系统 |
CN112929278B (zh) * | 2021-02-24 | 2022-07-22 | 深圳市吉祥腾达科技有限公司 | 一种网络通信设备多核并行快速转发数据包的方法及系统 |
CN115454653A (zh) * | 2022-11-10 | 2022-12-09 | 南京翼辉信息技术有限公司 | 一种基于嵌入式实时操作系统的rcu实现方法 |
CN115454653B (zh) * | 2022-11-10 | 2023-02-24 | 南京翼辉信息技术有限公司 | 一种基于嵌入式实时操作系统的rcu实现方法 |
Also Published As
Publication number | Publication date |
---|---|
CN101770403B (zh) | 2012-07-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101770403B (zh) | 一种多核平台上控制系统配置并发与同步的方法 | |
CN100481009C (zh) | 根据客户软件的特许级向虚拟机转移的系统、装置和方法 | |
CN100383739C (zh) | 嵌入式操作系统镜像启动的启动优化方法 | |
CN101495976B (zh) | 用于直接更新软件事务存储器的方法和系统 | |
CN101631328B (zh) | 一种对共享资源互斥访问的同步方法、装置和网络设备 | |
CN102024015A (zh) | 用于批量删除数据库系统的数据记录的方法 | |
CN109947767A (zh) | 多重租赁数据库系统中的系统共享类型 | |
CN101416168B (zh) | 阵列比较和交换操作 | |
US20080256137A1 (en) | Method and system for data processing with data replication for the same | |
CN101765831A (zh) | 数据库不一致的处理方法 | |
CN109343979A (zh) | 一种配置管理方法及系统 | |
CN102521028B (zh) | 一种分布式环境下的事务内存系统 | |
CN102467488A (zh) | 一种文字处理文档异步加载的方法 | |
JP2007316691A (ja) | トランザクション処理装置、トランザクション処理方法 | |
CN101645003A (zh) | 软件移植方法及装置 | |
CN102597972B (zh) | 虚拟计算机系统、区域管理方法 | |
CN102135894A (zh) | 一种多核在线补丁方法和装置 | |
US7194486B2 (en) | Method and system for data processing with data replication for the same | |
CN101086717B (zh) | 存储瞬态信息的系统和方法 | |
EP2329367B1 (en) | Performing an in-place update of an operating storage device | |
CN104636260A (zh) | 一种用于计费业务的数据管理方法及系统 | |
CN100393042C (zh) | 一般化管理网络处理器用表的系统和方法 | |
US11449241B2 (en) | Customizable lock management for distributed resources | |
CN101853269B (zh) | 分布数据更新的一致性处理方法 | |
CN111723250A (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 |