• 四川郎酒股份有限公司获第十二届人民企业社会责任奖年度环保奖 2019-05-13
  • 银保监会新规剑指大企业多头融资和过度融资 2019-05-12
  • 韩国再提4国联合申办世界杯 中国网友无视:我们自己来 2019-05-11
  • 中国人为什么一定要买房? 2019-05-11
  • 十九大精神进校园:风正扬帆当有为 勇做时代弄潮儿 2019-05-10
  • 粽叶飘香幸福邻里——廊坊市举办“我们的节日·端午”主题活动 2019-05-09
  • 太原设禁鸣路段 设备在测试中 2019-05-09
  • 拜耳医药保健有限公司获第十二届人民企业社会责任奖年度企业奖 2019-05-08
  • “港独”没出路!“梁天琦们”该醒醒了 2019-05-07
  • 陈卫平:中国文化内涵包含三方面 文化复兴表现在其中 2019-05-06
  • 人民日报客户端辟谣:“合成军装照”产品请放心使用 2019-05-05
  • 【十九大·理论新视野】为什么要“建设现代化经济体系”?   2019-05-04
  • 聚焦2017年乌鲁木齐市老城区改造提升工程 2019-05-04
  • 【专家谈】上合组织——构建区域命运共同体的有力实践者 2019-05-03
  • 【华商侃车NO.192】 亲!楼市火爆,别忘了买车位啊! 2019-05-03
    • / 13
    • 下载费用:30 金币  

    重庆时时彩多宝开户: 共享内存中的关键数据的处理方法及处理器.pdf

    关 键 词:
    共享 内存 中的 关键 数据 处理 方法 处理器
      专利查询网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    摘要
    申请专利号:

    CN201110116702.2

    申请日:

    2011.05.06

    公开号:

    CN102163164A

    公开日:

    2011.08.24

    当前法律状态:

    授权

    有效性:

    有权

    法律详情: 授权|||著录事项变更IPC(主分类):G06F 9/54变更事项:申请人变更前:华为数字技术有限公司变更后:北京华为数字技术有限公司变更事项:地址变更前:100085 北京市海淀区上地信息路3号变更后:100085 北京市海淀区上地信息路3号|||实质审查的生效IPC(主分类):G06F 9/54申请日:20110506|||公开
    IPC分类号: G06F9/54 主分类号: G06F9/54
    申请人: 华为数字技术有限公司
    发明人: 董雪松; 胡士辉
    地址: 100085 北京市海淀区上地信息路3号
    优先权:
    专利代理机构: 深圳市深佳知识产权代理事务所(普通合伙) 44285 代理人: 彭愿洁;李文红
    PDF完整版下载: PDF下载
    法律状态
    申请(专利)号:

    CN201110116702.2

    授权公告号:

    102163164B|||||||||

    法律状态公告日:

    2014.06.25|||2013.03.20|||2011.10.05|||2011.08.24

    法律状态类型:

    授权|||著录事项变更|||实质审查的生效|||公开

    摘要

    本发明实施例公开了一种共享内存中关键数据的处理方法,采用在进程访问共享内存前存储进程注册的修复回调函数指针,在进程准备修改共享内存中的关键数据之前记录关键数据的原始值,在进程访问共享内存时异常退出导致共享内存中的关键数据被损坏后,修复共享内存中的关键数据。本发明提供的关键数据的处理方法,避免了共享内存中的关键数据被损坏后导致整个共享内存中的数据被全部丢弃,提高了共享内存的可靠性。本发明实施例还提供相应的处理器。

    权利要求书

    1.共享内存中的关键数据的处理方法,其特征在于,包括:在用户态存储进程注册的修复回调函数的指针后,进程进入共享内存,所述修复回调函数的指针用于在修复共享内存中的已被修改的关键数据时调用修复回调函数;在所述进程准备修改共享内存中的关键数据之前,跟踪记录所述关键数据的原始值,所述关键数据是共享内存中用于数据连接的数据;当进程退出共享内存通过陷阱机制进入内核态后,若进程的标志位指示所述进程使用过所述共享内存,将所述进程送回到用户态,所述陷阱机制就是进程异常退出共享内存后由用户态进入内核态的一段程序,所述标志位用于指示所述进程是否使用过所述共享内存;当有所述跟踪记录的关键数据的原始值,确认到所述共享内存中的关键数据已被所述进程修改,所述已被修改的关键数据需要修复后,使用所述修复回调函数的指针调用所述修复回调函数,使用所述修复回调函数将所述关键数据的原始值对应的写回到共享内存中已被修改的关键数据中去。2.根据权利要求1所述的共享内存中的关键数据的处理方法,其特征在于,在所述进程准备修改共享内存中的关键数据之前,跟踪记录所述关键数据的原始值的步骤之后包括:在所述进程退出共享内存并通过陷阱机制进入内核态后,根据所述进程携带的标志位判断所述进程是否使用过所述共享内存。3.根据权利要求1所述的共享内存中关键数据的处理方法,其特征在于,还包括:当所述标志位指示的是所述进程未使用过所述共享内存时,终止所述进程。4.根据权利要求2所述的共享内存中的关键数据的处理方法,其特征在于,在所述将所述进程送回到用户态的步骤后包括:根据所述跟踪记录的关键数据的原始值的有无,判断所述共享内存中的关键数据是否被修改。5.根据权利要求4所述的共享内存中关键数据的处理方法,其特征在于,还包括:当无所述跟踪记录的关键数据的原始值,确认到所述关键数据没有被修改,所述共享内存中的关键数据不需要修复后,将所述进程送回到内核态。6.根据权利要求5所述的共享内存中的关键数据的处理方法,其特征在于,在确认到所述共享内存中的关键数据没有被修改,将所述进程送回到内核态后包括:在所述进程被送回到内核态后,终止所述进程;在所述共享内存中已被修改的关键数据被修复后,包括:将所述进程送回到内核态;在所述进程被送回到内核态后,终止所述进程。7.根据权利要求1~6任意一项所述的共享内存中关键数据的处理方法,其特征在于,所述在所述进程准备修改关键数据之前,跟踪记录共享内存中的关键数据的原始值包括:建立一个包含内存地址字段和初始值字段的数据跟踪列表,所述关键数据的原始值包括关键数据的内存地址和关键数据的初始值;在所述进程准备修改关键数据之前,将所述关键数据的内存地址和关键数据的初始值对应的记录到所述数据跟踪列表的内存地址字段和初始值字段;所述将所述关键数据的原始值对应的写回到共享内存中被修改的关键数据是指根据所述关键数据的内存地址,将所述关键数据的初始值写回到对应的所关键数据的内存地址下。8.一种处理器,其特征在于,包括:存储单元,用于存储进程注册的修复回调函数的指针,所述修复回调函数的指针用于在修复共享内存中的已被修改的关键数据时调用修复回调函数;跟踪记录单元,用于在所述进程准备修改共享内存中的关键数据之前,跟踪记录所述关键数据的原始值,所述关键数据是共享内存中用于数据连接的数据;送回单元,用于当进程退出共享内存通过陷阱机制进入内核态后,若进程的标志位指示所述进程使用过所述共享内存,将所述进程送回到用户态,所述陷阱机制就是进程异常退出共享内存后由用户态进入内核态的一段程序,所述标志位用于指示所述进程是否使用过所述共享内存;调用修复单元,用于当有所述跟踪记录的关键数据的原始值,确认到所述共享内存中的关键数据已被所述进程修改,所述已被修改的关键数据需要修复后,使用所述修复回调函数的指针调用所述修复回调函数,使用所述修复回调函数将所述关键数据的原始值对应的写回到共享内存中已被修改的关键数据中去。9.根据权利要求8所述的处理器,其特征在于,还包括:判断单元,用于在所述跟踪记录单元在所述进程准备修改共享内存中的关键数据之前,跟踪记录所述关键数据的原始值后,在所述进程退出共享内存并通过陷阱机制进入内核态后,根据所述进程携带的标志位判断所述进程是否使用过所述共享内存;和终止单元,用于当根据所述标志位判断所述进程未使用过所述共享内存时,终止所述进程。10.根据权利要求9所述的处理器,其特征在于,包括:所述判断单元,进一步用于在所述送回单元将所述进程送回到用户态后,根据所述跟踪记录的关键数据的原始值的有无,判断所述共享内存中的关键数据是否被修改;和所述送回单元,进一步用于当无所述跟踪记录的关键数据的原始值,确认到所述关键数据没有被修改,所述共享内存中的关键数据不需要修复后,将所述进程送回到内核态。11.根据权利要求10所述的处理器,其特征在于,包括:所述终止单元,进一步用于在所述送回单元将所述进程送回到内核态后,终止所述进程。12.根据权利要求8~11任意一项所述的处理器,其特征在于,包括:所述跟踪记录单元,进一步用于建立一个包含内存地址字段和初始值字段的数据跟踪列表,所述关键数据的原始值包括关键数据的内存地址和关键数据的初始值,在所述进程准备修改关键数据之前,将所述关键数据的内存地址和关键数据的初始值对应的记录到所述数据跟踪列表的内存地址字段和初始值字段;所述调用修复单元,用于将所述关键数据的原始值对应的写回到共享内存中被修改的关键数据是指根据所述关键数据的内存地址,将所述关键数据的初始值写回到对应的所关键数据的内存地址下。

    说明书

    共享内存中的关键数据的处理方法及处理器

    技术领域

    本发明涉及通信技术领域,具体涉及共享内存中的关键数据的处理方法及处理器。

    背景技术

    随着嵌入式系统软件规模的不断扩大,为了提高系统的可靠性,业界大都采用基于多进程的操作系统(如linux,freebsd)代替单进程多线程的操作系统(如vxworks)。在采用多进程系统之后,马上面临一个系统性能瓶颈——进程间通信的问题;进程间通信就是在不同进程之间传播或交换信息。目前业界普遍采用共享内存的方式来处理进程间通信的问题。共享内存就是被多个进程共享的一块物理内存。如果多个进程都把该共享内存映射到自己的地址空间,这些进程就可以直接访问该共享内存,通过共享内存进行通信。例如,两个不同进程A、B共享内存的意思是,同一块物理内存被映射到进程A、B各自的进程地址空间。进程A可以即时看到进程B对共享内存中数据的更新,进程B向共享内存中写,进程A从共享内存中读,通过这种方式实现两个进程间的信息交换。

    进程访问共享内存是在用户态进行的,若进程访问共享内存时异常退出就会通过陷阱机制进入内核态。

    共享内存中的数据分为两种,一种为关键数据,一种为负载数据。在共享内存中,数据多是以链表等形式存在的,其中链表的指针就是关键数据,也就是说关键数据是用于连接数据的一种数据。在进程修改共享内存中的数据时,只要关键数据不被破坏,就可以保证整体数据没有损坏。因此,共享内存中的数据被损坏也就指共享内存中的关键数据被损坏。

    目前业界对共享内存中的关键数据损坏后的恢复的还没有解决方法。当共享内存中的关键数据损坏后,就直接丢掉整个共享内存中的数据。

    发明内容

    本发明实施例提供一种共享内存中的关键数据的处理方法及处理器,该技术方案可在共享内存中的关键数据被异常退出的进程修改后修复共享内存中的关键数据。

    共享内存中的关键数据的处理方法,包括:

    在用户态存储进程注册的修复回调函数的指针后,进程进入共享内存,所述修复回调函数的指针用于在修复共享内存中的已被修改的关键数据时调用修复回调函数;

    在所述进程准备修改共享内存中的关键数据之前,跟踪记录所述关键数据的原始值,所述关键数据是共享内存中用于数据连接的数据;

    当进程退出共享内存通过陷阱机制进入内核态后,若进程的标志位指示所述进程使用过所述共享内存,将所述进程送回到用户态,所述陷阱机制就是进程异常退出共享内存后由用户态进入内核态的一段程序,所述标志位用于指示所述进程是否使用过所述共享内存;

    当有所述跟踪记录的关键数据的原始值,确认到所述共享内存中的关键数据已被所述进程修改,所述已被修改的关键数据需要修复后,使用所述修复回调函数的指针调用所述修复回调函数,使用所述修复回调函数将所述关键数据的原始值对应的写回到共享内存中已被修改的关键数据中去。

    一种处理器,包括:

    存储单元,用于存储进程注册的修复回调函数的指针,所述修复回调函数的指针用于在修复共享内存中的已被修改的关键数据时调用修复回调函数;

    跟踪记录单元,用于在所述进程准备修改共享内存中的关键数据之前,跟踪记录所述关键数据的原始值,所述关键数据是共享内存中用于数据连接的数据;

    送回单元,用于当进程退出共享内存通过陷阱机制进入内核态后,若进程的标志位指示所述进程使用过所述共享内存,将所述进程送回到用户态,所述陷阱机制就是进程异常退出共享内存后由用户态进入内核态的一段程序,所述标志位用于指示所述进程是否使用过所述共享内存;

    调用修复单元,用于当有所述跟踪记录的关键数据的原始值,确认到所述共享内存中的关键数据已被所述进程修改,所述已被修改的关键数据需要修复后,使用所述修复回调函数的指针调用所述修复回调函数,使用所述修复回调函数将所述关键数据的原始值对应的写回到共享内存中已被修改的关键数据中去。

    本发明实施例采用在进程访问共享内存前存储进程注册的修复回调函数指针,在进程准备修改共享内存中的关键数据之前记录关键数据的原始值,在进程访问共享内存时异常退出导致共享内存中的关键数据被损坏后,修复共享内存中的关键数据。本发明提供的关键数据的处理方法,避免了共享内存中的关键数据被损坏后导致整个共享内存中的数据被全部丢弃,提高了共享内存的可靠性。

    附图说明

    图1是本发明实施例中关键数据处理方法的第一实施例示意图;

    图2是本发明实施例中关键数据处理方法的第二实施例示意图;

    图3A是本发明方法应用场景实施例被修改前的链表示意图;

    图3B是本发明方法应用场景实施例的数据跟踪列表示意图;

    图3C是本发明方法应用场景实施例被修改后的链表示意图;

    图3D是本发明方法应用场景实施例被修复后的链表示意图;

    图4是本发明实施例中处理器的第一实施例示意图。

    具体实施方式

    本发明实施例提供一种共享内存中关键数据的处理方法,可以因进程异常退出导致共享内存中的关键数据被损坏后,修复共享内存中的关键数据。本发明实施例还提供相应的处理器。以下分别进行详细说明。

    请参阅图1,本发明实施例中关键数据的处理方法的第一实施例,包括:

    101、存储进程注册的修复回调函数的指针;

    进程在初始化时定义修复回调函数,并将修复回调函数的指针注册给处理器,处理器存储修复回调函数的指针,修复回调函数的指针用于在修复关键数据时调用修复回调函数。

    102、在进程准备修改共享内存中的关键数据前,跟踪记录共享内存中的关键数据的原始值;

    关键数据是共享内存中用于数据连接的数据,例如,链表的指针就是关键数据;

    若进程进入共享内存,准备修改共享内存中的关键数据,在进程修改关键数据之前记录关键数据的原始值,若进程不准备修改共享内存中的关键数据,则不记录共享内存中关键数据的原始值。

    103、在所述进程退出共享内存通过陷阱机制进入内核态后,根据所述进程携带的标志位判断所述共享内存是否被所述进程使用;

    陷阱机制就是进程异常退出共享内存后由用户态进入内核态的一段程序,通过陷阱机制退出的进程一定是异常退出的进程,标志位用于指示所述进程是否使用过共享内存;若所述标志位指示的是所述进程使用过所述共享内存,执行步骤104,若所述标志位指示的是所述进程未使用过所述共享内存,执行步骤108。

    104、将所述进程送回到用户态;

    105、根据所述跟踪记录的关键数据的原始值的有无,判断所述共享内存中的关键数据是否需要修复;

    若有跟踪记录的关键数据的原始值,则判断出所述共享内存中的关键数据已被进程修改,需要进行修复,执行步骤106,若无跟踪记录的关键数据的原始值,则判断出所述关键数据没被进程修改,不需要修复,执行步骤107。

    106、使用所述修复回调函数的指针调用所述修复回调函数,使用所述修复回调函数将所述关键数据的原始值对应的写回到共享内存中已被进程修改的关键数据中去;

    将步骤102跟踪记录的关键数据的原始值,对应的写回到共享内存中已被进程修改的关键数据中去,完成关键数据的修复;

    在关键数据修复完成后,将异常退出的进程送回到内核态,在内核态终止该异常退出的进程。

    107、将所述进程送回到内核态;

    在步骤105中判断出共享内存中的关键数据不需要修复,意味着共享内存中的关键数据如果没被异常退出的进程修改,将该异常退出的进程送回到内核态,终止该进程。

    108、终止所述进程;

    在步骤103中如果标志位指示的是异常退出的进程没有使用所述共享内存,在内核态直接终止所述异常退出的进程。

    本实施例提供的共享内存中关键数据的处理方法,在进程访问共享内存前存储进程注册的修复回调函数指针,在进程修改共享内存中的关键数据之前记录关键数据的原始值,在进程访问共享内存时异常退出导致共享内存中的关键数据被损坏后,修复共享内存中的关键数据。与现有技术相比,本发明实施例的关键数据的处理方法避免了共享内存中的关键数据被损坏后导致整个共享内存中的数据被全部丢弃,提高了共享内存的可靠性。

    可选地,在上述实施例中,步骤103可省略,步骤104修改为当进程退出共享内存通过陷阱机制进入内核态后,若进程的标志位指示所述进程使用过所述共享内存,将所述进程送回到内核态;步骤108修改为当所述标志位指示的是所述进程未使用过所述共享内存时,终止所述进程。

    可选地,上述实施例中,还可以将步骤105省略,步骤106修改为在有关键数据的原始值时,得知共享内存中的关键数据已被所述进程修改,使用所述修复回调函数的指针调用所述修复回调函数,使用所述修复回调函数将所述关键数据的原始值对应的写回到共享内存中已被进程修改的关键数据中去;步骤107修改为当无所述跟踪记录的关键数据的原始值,确认到所述关键数据没有被修改,所述共享内存中的关键数据不需要修复后,将所述进程送回到内核态。

    在第一实施例基础上,本发明提供的共享内存中的关键数据的处理方法的第二实施例包括:

    201、建立一个包含内存地址字段和初始值字段的数据跟踪列表,将被修改前的关键数据的原始值对应的记录到数据跟踪列表中;

    关键数据的原始值包括关键数据的内存地址和关键数据的初始值,在记录关键数据的原始值之前,建立一个包含内存地址字段和初始值字段的数据跟踪列表,记录关键数据时,将关键数据的内存地址记录到数据跟踪列表的内存地址字段,将关键数据的初始值记录到数据跟踪列表的初始值字段。数据跟踪列表是栈式结构,在修改每个关键数据之前,将每个关键数据的原始值依次记录到数据跟踪列表中,先要被进程修改的关键数据的原始值将先被保存

    202、判断出共享内存中的关键数据已被进程修改;

    203、使用修复回调函数,将数据跟踪列表中记录的关键数据的原始值写回到已被进程修改的关键数据中去;

    当发现数据跟踪列表中有关键数据的内存地址和关键数据的初始值,就可确认共享内存中的关键数据需要修复。

    根据步骤201数据跟踪列表中记录的关键数据的内存地址,将关键数据的内存地址对应的关键数据的初始值写回到已被进程修改的关键数据中去,完成关键数据的修复,修复关键数据时,后被修改的关键数据,修复时将优先被修复。

    本实施例提供的共享内存中关键数据的处理方法,在第一实施例基础上,通过在进程修改关键数据之前建立一个数据跟踪列表,将被修改前的关键数据的内存地址和初始值对应的记录到数据跟踪列表中的内存地址字段和初始值字段,在修复关键数据时,根据内存地址字段的关键数据的内存地址,将关键数据的初始值写回到被进程修改的关键数据中去,实现共享内存中关键数据的修复。与现有技术相比,本发明实施例的关键数据的处理方法避免了共享内存中的关键数据被损坏后导致整个共享内存中的数据被全部丢弃,提高了共享内存的可靠性。

    可选地,上述实施例中,步骤202可以省略,步骤203修改为在确认共享内存中的关键数据已被修改后,使用修复回调函数,将数据跟踪列表中记录的关键数据的原始值写回到已被进程修改的关键数据中去。

    为便于理解,下面以一具体的应用场景对上述实施例中描述的关键数据的处理方法进行详细描述,具体的:

    参阅图3A和3B,以链表为例,选取链表中的三个节点,第一节点301,第二节点302和第三节点303,第一节点301和第二节点302通过各自的指针双链相连,节点的指针就是链表的关键数据,第三节点303独立于第一节点301和第二节点302之外。

    进程将修复回调函数指针注册给处理器后,准备访问共享内存,进程进入共享内存,在进程修改节点中的指针之前记录关键数据的原始值,进程将要把第三节点303插入到第一节点301和第二节点302中间,在进程修改第一节点301的关键数据n之前,建立数据跟踪列表,记录第一节点301的关键数据n的内存地址node301->n和第一节点301的关键数据n的初始值Node302,在第一节点301的关键数据n与第三节点303的关键数据p建立双链连接后,记录第二节点302的关键数据p的内存地址node302->p和第二节点302的初始值Node301,在进程修改第二节点时异常退出共享内存通过陷阱机制进入内核态。

    参阅图3C,在进程异常退出后,第一节点301和第三节点303的双链结构也已经修改完整,第二节点302和第三节点303只有单链,另外一条链还没来得及修改,进程就已经退出,由用户态进入内核态。

    进程携带的标志位指示异常退出的进程使用过共享内存,将异常退出的进程送回到用户态。根据关键数据跟踪列表中记录的第一节点301和第二节点302的原始值,判断出第一节点和第二节点的关键数据需要修复,使用修复回调函数的指针调用修复回调函数,使用修复回调函数,根据数据跟踪列表中记录的第二节点302的关键数据p的内存地址node302->p,将第二节点302的初始值Node301写回到第二节点302的关键数据p中,修复第二节点302。然后根据第一节点301中的关键数据n的内存地址node301->n将第一节点301的关键数据n的初始值Node302写回到第一节点301中的关键数据n中,修复第一节点301。

    参阅图3D,被修复后的链表示意图,第一节点301和第二节点302与被修改前相同,依然处于双链链接状态,第三节点303依然独立与第一节点301和第二节点302之外。

    在链表修复后,异常退出的进程被送回到内核态,终止该进程。

    上述以链表为例对本发明的关键数据处理方法进行的介绍,采用在进程访问共享内存前存储进程注册的修复回调函数指针,并记录关键数据的原始值,在进程访问共享内存时异常退出导致共享内存中的关键数据被损坏后,修复共享内存中的关键数据的处理方法。与现有技术相比,本发明实施例的关键数据的处理方法避免了共享内存中的关键数据被损坏后导致整个共享内存中的数据被全部丢弃,提高了共享内存的可靠性。

    下面介绍本发明实施例中的处理器,请参阅图4,本发明实施例中的处理器包括:

    存储单元401,用于存储进程注册的修复回调函数的指针,所述修复回调函数的指针用于在修复共享内存中的已被修改的关键数据时调用修复回调函数;

    跟踪记录单元402,用于在所述进程准备修改共享内存中的关键数据之前,跟踪记录所述关键数据的原始值,所述关键数据是共享内存中用于数据连接的数据;

    判断单元403,用于在所述跟踪记录单元402在所述进程准备修改共享内存中的关键数据之前,跟踪记录所述关键数据的原始值后,在所述进程退出共享内存并通过陷阱机制进入内核态后,根据所述进程携带的标志位判断所述进程是否使用过所述共享内存。

    送回单元404,用于当进程退出共享内存通过陷阱机制进入内核态后,若进程的标志位指示所述进程使用过所述共享内存,将所述进程送回到用户态,所述陷阱机制就是进程异常退出共享内存后由用户态进入内核态的一段程序,所述标志位用于指示所述进程是否使用过所述共享内存;

    调用修复单元405,用于当有所述跟踪记录的关键数据的原始值,确认到所述共享内存中的关键数据已被所述进程修改,所述已被修改的关键数据需要修复后,使用所述修复回调函数的指针调用所述修复回调函数,使用所述修复回调函数将所述关键数据的原始值对应的写回到共享内存中已被修改的关键数据中去;

    所述送回单元404,用于当无所述跟踪记录的关键数据的原始值,确认到所述关键数据没有被修改,所述共享内存中的关键数据不需要修复后,将所述进程送回到内核态;

    终止单元406,用于当所述标志位指示的是所述进程未使用过所述共享内存时,终止所述进程。

    所述判断单元403,进一步用于在所述送回单元404将所述进程送回到用户态后,根据所述跟踪记录的关键数据的原始值的有无,判断所述共享内存中的关键数据是否被修改。

    所述终止单元406,进一步用于在所述送回单元404将所述进程送回到内核态后,终止所述进程。

    所述跟踪记录单元402还用于建立一个包含内存地址字段和初始值字段的数据跟踪列表,将共享内存中关键数据的内存地址和关键数据的初始值对应的存储在数据跟踪列表的内存地址字段和初始值字段。

    所述关键数据的原始值包括关键数据的内存地址和关键数据的初始值;

    所述跟踪记录单元402,进一步用于建立一个包含内存地址字段和初始值字段的数据跟踪列表,所述关键数据的原始值包括关键数据的内存地址和关键数据的初始值,在所述进程准备修改关键数据之前,将所述关键数据的内存地址和关键数据的初始值对应的记录到所述数据跟踪列表的内存地址字段和初始值字段;

    所述调用修复单元405,用于将所述关键数据的原始值对应的写回到共享内存中被修改的关键数据是指根据所述关键数据的内存地址,将所述关键数据的初始值写回到对应的所关键数据的内存地址下。

    在存储单元401存储进程注册的修复回调函数的指针后,跟踪记录单元402记录共享内存中关键数据的原始值,在进程异常退出共享内存后,判断单元403根据进程携带的标志位判断该进程是否使用过共享内存,若该进程使用过共享内存,送回单元404将该进程送回到用户态,判断单元403根据关键数据的原始值的尤物,判断共享内存中的关键数据是否需要修复,若需要修复,调用修复单元405调用存储单元401中的修复回调函数指针,使用修复回调函数指针调用修复回调函数,将跟踪记录单元402中记录的关键数据的原始值写回到被修改的关键数据中去。本发明实施例可在进程访问共享内存时异常退出导致共享内存中的关键数据被损坏后,修复共享内存中的关键数据,避免了整个共享内存中的数据被丢弃,提高了共享内存的可靠性。

    可选地,在上述处理器的实施例中,判断单元403可省略,送回单元404用于在进程退出共享内存通过陷阱机制进入内核态,进程的标志位指示所述进程使用过所述共享内存后,将所述进程送回到用户态。

    上述实施例中,判断单元403省略后,调用修复单元405用于在402跟踪记录单元有记录关键数据的原始值时,得知共享内存中的关键数据已被所述进程修改,使用所述修复回调函数的指针调用所述修复回调函数,使用所述修复回调函数将所述关键数据的原始值对应的写回到共享内存中已被进程修改的关键数据中去。

    本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:ROM、RAM、磁盘或光盘等。

    以上对本发明实施例所提供的共享内存中的关键数据的处理方法以及处理器进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

    关于本文
    本文标题:共享内存中的关键数据的处理方法及处理器.pdf
    链接地址://www.4mum.com.cn/p-5868221.html
    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    [email protected] 2017-2018 www.4mum.com.cn网站版权所有
    经营许可证编号:粤ICP备17046363号-1 
     


    收起
    展开
  • 四川郎酒股份有限公司获第十二届人民企业社会责任奖年度环保奖 2019-05-13
  • 银保监会新规剑指大企业多头融资和过度融资 2019-05-12
  • 韩国再提4国联合申办世界杯 中国网友无视:我们自己来 2019-05-11
  • 中国人为什么一定要买房? 2019-05-11
  • 十九大精神进校园:风正扬帆当有为 勇做时代弄潮儿 2019-05-10
  • 粽叶飘香幸福邻里——廊坊市举办“我们的节日·端午”主题活动 2019-05-09
  • 太原设禁鸣路段 设备在测试中 2019-05-09
  • 拜耳医药保健有限公司获第十二届人民企业社会责任奖年度企业奖 2019-05-08
  • “港独”没出路!“梁天琦们”该醒醒了 2019-05-07
  • 陈卫平:中国文化内涵包含三方面 文化复兴表现在其中 2019-05-06
  • 人民日报客户端辟谣:“合成军装照”产品请放心使用 2019-05-05
  • 【十九大·理论新视野】为什么要“建设现代化经济体系”?   2019-05-04
  • 聚焦2017年乌鲁木齐市老城区改造提升工程 2019-05-04
  • 【专家谈】上合组织——构建区域命运共同体的有力实践者 2019-05-03
  • 【华商侃车NO.192】 亲!楼市火爆,别忘了买车位啊! 2019-05-03
  • 股票融资融券怎么操作 股票投资分析报告 近期股票行情大盘走势 南昌股票配资公司 股票质押 诺安股票基金净值 中国股票推荐网 股票配资广告 同花顺手机炒股软件 黑马股票推荐4月19日黑马股票推荐一览 炒股的人 股票行情日线图中如何分析支撑线和阻力线 南宁股票配资公司 今日美国股票指数 上证指数000001新浪财经网查询 股票融资风险