《一种程序并发的方法及系统.pdf》由会员分享,可在线阅读,更多相关《一种程序并发的方法及系统.pdf(8页珍藏版)》请在专利查询网上搜索。
1、(10)申请公布号 CN 102650956 A(43)申请公布日 2012.08.29CN102650956A*CN102650956A*(21)申请号 201110043136.7(22)申请日 2011.02.23G06F 9/50(2006.01)(71)申请人蓝盾信息安全技术股份有限公司地址 510665 广东省广州市天河区科韵路16号自编1栋2101(72)发明人柯宗庆 柯宗贵 梁大海(74)专利代理机构北京国枫凯文律师事务所 11366代理人杨思东(54) 发明名称一种程序并发的方法及系统(57) 摘要本发明公开了一种程序并发的方法及系统,涉及计算机软件领域,用以解决现有技术中计。
2、算机程序争用资源的并发运行效率较低的问题。方法包括各并发进程在进入临界区前的步骤:分别获取具有唯一性的时间戳;各并发进程在临界区内的步骤:将获取的时间戳作为本进程所操作子文件的文件名的一部分;各并发进程离开临界区后的步骤:依子文件的文件名所携带的时间戳的先后顺序,将各子文件合并。系统包括:时间戳获取单元、文件名修改单元和合并单元。本发明中由于使用了时间戳,所以以时间戳作为子文件名的一部分后,子文件名必然不会重名,从而可以避免对同一文件资源同时进行操作。因此,对子文件操作的程序段就可以并发的进行而不会造成逻辑错误。(51)Int.Cl.权利要求书1页 说明书3页 附图3页(19)中华人民共和国国。
3、家知识产权局(12)发明专利申请权利要求书 1 页 说明书 3 页 附图 3 页1/1页21.一种程序并发的方法,其特征在于,包括下列步骤:各并发进程在进入临界区前的步骤:分别获取具有唯一性的时间戳;各并发进程在临界区内的步骤:将获取的所述时间戳作为本进程所操作子文件的文件名的一部分;各并发进程离开临界区后的步骤:依子文件的文件名所携带的时间戳的先后顺序,将各子文件合并。2.如权利要求1所述程序并发的方法,其特征在于,所述获取具有唯一性时间戳的方式是对获取时间戳的进程使用PV锁。3.如权利要求1所述程序并发的方法,其特征在于,所述获取具有唯一性时间戳的方式是取时间戳的时间单位与进程并发频率相匹。
4、配。4.如权利要求1所述程序并发的方法,其特征在于,各并发进程在临界区内的步骤中还包括:同一文件的子文件使用相同的前辍,作为子文件的文件名的一部分;以及,各并发进程离开临界区后的步骤中还包括:将具有相同前辍的子文件合并。5.一种程序并发的系统,其特征在于,包括:时间戳获取单元,用于在各并发进程进入临界区前,为每一进程获取具有唯一性的时间戳;文件名修改单元,用于在各并发进程进入临界区后,将获取的所述时间戳作为本进程所操作子文件的文件名的一部分;合并单元,用于在各并发进程离开临界区后,依子文件的文件名所携带的时间戳的先后顺序,将各子文件合并。6.如权利要求5所述程序并发的系统,其特征在于,所述时间。
5、戳获取单元获取具有唯一性时间戳的方式是对获取时间戳的进程使用PV锁。7.如权利要求5所述程序并发的系统,其特征在于,所述时间戳获取单元获取具有唯一性时间戳的方式是取时间戳的时间单位与进程并发频率相匹配。8.如权利要求5所述程序并发的系统,其特征在于,文件名修改单元还将同一文件的子文件以相同的前辍作为子文件的文件名的一部分;以及,合并单元将具有相同前辍的子文件合并。权 利 要 求 书CN 102650956 A1/3页3一种程序并发的方法及系统技术领域0001 本发明涉及计算机软件领域,特别是涉及一种程序并发的方法及系统。背景技术0002 由于直接调用争用资源的并发操作程序可能会引起计算结果的逻。
6、辑错误(其中,对于操作争用资源的程序代码段,称为临界区)。为了避免上述可能出现的逻辑错误,现有技术提供的方案是在进入临界区时进行加锁操作,离开临界区时进行解锁操作,以保证不会同时对同一资源进行读或写的操作,从而避免计算结果的逻辑错误。但是现有技术提供的临界区上锁操作方案(亦称为同步操作)的实质是将并发操作串行化,具体参见图1所示,从而使未取得资源控制权的程序等待已取得控制权的程序,因此其计算机程序争用资源的并发运行效率较低。发明内容0003 本发明提供一种程序并发的方法及系统,用以解决现有技术中计算机程序争用资源的并发运行效率较低的问题。0004 本发明的方法包括下列步骤:各并发进程在进入临界。
7、区前的步骤:分别获取具有唯一性的时间戳;各并发进程在临界区内的步骤:将获取的时间戳作为本进程所操作子文件的文件名的一部分;各并发进程离开临界区后的步骤:依子文件的文件名所携带的时间戳的先后顺序,将各子文件合并。0005 进一步,获取具有唯一性时间戳的方式是对获取时间戳的进程使用PV锁,或者取时间戳的时间单位与进程并发频率相匹配。0006 进一步,各并发进程在临界区内的步骤中还包括:同一文件的子文件使用相同的前辍,作为子文件的文件名的一部分;以及,各并发进程离开临界区后的步骤中还包括:将具有相同前辍的子文件合并。0007 本发明的系统包括:时间戳获取单元,用于在各并发进程进入临界区前,为每一进程。
8、获取具有唯一性的时间戳;文件名修改单元,用于在各并发进程进入临界区后,将获取的时间戳作为本进程所操作子文件的文件名的一部分;合并单元,用于在各并发进程离开临界区后,依子文件的文件名所携带的时间戳的先后顺序,将各子文件合并。0008 进一步,时间戳获取单元获取具有唯一性时间戳的方式是对获取时间戳的进程使用PV锁,或者取时间戳的时间单位与进程并发频率相匹配。0009 进一步,文件名修改单元还将同一文件的子文件以相同的前辍作为子文件的文件名的一部分;以及,合并单元将具有相同前辍的子文件合并。0010 本发明中由于使用了时间戳,所以以时间戳作为子文件名的一部分后,子文件名必然不会重名,从而可以避免对同。
9、一文件资源同时进行操作。因此,对子文件操作的程序段就可以并发的进行而不会造成逻辑错误。说 明 书CN 102650956 A2/3页4附图说明0011 图1为现有并发处理过程示意图;0012 图2为本发明实施例中的方法步骤流程图;0013 图3为本发明实施例中的系统结构示意图;0014 图4为本发明实施例中的发处理过程示意图。具体实施方式0015 为了充分利用计算机的性能,改进传统方法对争用文件资源的并发程序的性能,本发明实施例提供了一种程序并发的方法,参见图2所示,包括下列步骤:0016 S101、各并发进程在进入临界区前,分别获取具有唯一性的时间戳。0017 具体的,可利用系统时钟获取时间。
10、戳。获取时间戳的程序(即进程,不再赘述)可以通过足够小的时间单位作为时间戳,以保证时间戳的唯一性。对于系统底层无法提供足够高精度的时间戳或多处理器的计算机,可以仅对获取时间戳的程序使用PV锁来保证时间戳的唯一性。0018 上述PV锁,即P操作和V操作是不可中断的程序段,称为原语。P、V原语中P是荷兰语的Passeren,相当于英文的pass,V是荷兰语的Verhoog,相当于英文中的incremnet。各操作系统都提供了PV锁的P和V的操作接口,又称为互斥锁。0019 S102、各并发进程在临界区内,将获取的时间戳作为本进程所操作子文件的文件名的一部分。0020 具体的,先参照现有技术的处理方。
11、式,将一个文件拆分成若干子文件,各并发进程将在临界区内分别操作上述子文件。本步骤中,还将获取的时间戳作为本进程所操作子文件的文件名的一部分,用于避免重名。0021 为了便于S103步骤中完成合并操作,本步骤中还可将同一文件的子文件使用相同的前辍,作为子文件的文件名的一部分。0022 S103、各并发进程离开临界区后,依子文件的文件名所携带的时间戳的先后顺序,将各子文件合并。0023 若步骤S102中进行了增加前缀的操作,则可将具有相同前辍的子文件依子文件的文件名所携带的时间戳的先后顺序合并,便于完成合并操作。0024 本发明还提供了一种程序并发系统的实施例,参见图3所示,包括:时间戳获取单元2。
12、01、文件名修改单元202和合并单元203。0025 其中,时间戳获取单元201用于在各并发进程进入临界区前,为每一进程获取具有唯一性的时间戳。具体的,可利用系统时钟获取时间戳。获取时间戳的程序(即进程,不再赘述)可以通过足够小的时间单位作为时间戳,以保证时间戳的唯一性。对于系统底层无法提供足够高精度的时间戳或多处理器的计算机,可以仅对获取时间戳的程序使用PV锁来保证时间戳的唯一性。0026 文件名修改单元202用于在各并发进程进入临界区后,将获取的时间戳作为本进程所操作子文件的文件名的一部分。具体的,先参照现有技术的处理方式,将一个文件拆分成若干子文件,各并发进程将在临界区内分别操作上述子文。
13、件。文件名修改单元202将获取的时间戳作为本进程所操作子文件的文件名的一部分,用于避免重名。文件名修改单元说 明 书CN 102650956 A3/3页5202还可将同一文件的子文件使用相同的前辍,作为子文件的文件名的一部分,以便于合并操作。0027 合并单元203用于在各并发进程离开临界区后,依子文件的文件名所携带的时间戳的先后顺序,将各子文件合并。合并单元203还可将具有相同前辍的子文件依子文件的文件名所携带的时间戳的先后顺序合并,便于完成合并操作。0028 为了体现本发明的有益效果,以下带入具体数值进行对比说明。计算的前提条件:取得时间戳的程序段按2毫秒算,处理文件资源的临界区程序段的处。
14、理过程按100毫秒算,3个并发进程。0029 由于现有的处理过程实质是将并发操作串行化,让未取得资源控制权的程序等待已取得控制权的程序,因此耗时为每一并发操作所需时间之和,因此完成3个并发的操作耗时将会是300毫秒。0030 由于本发明的处理过程实质是并发操作并行化,具体可参见图所示,因此耗时则会是2毫秒X3+100毫秒,共106毫秒。程序的运行时间相比传统方法可提高:(300-106)/30064.7。可见,大幅提高了计算机程序争用资源的并发运行效率。0031 显然,为了便于完成合并操作,在同一文件的第一个子文件的文件名中增加标识,以标明起始位置,以及在同一文件的最后一个子文件的文件名中增加标识,以标明终止位置,之后参照起始位置和终止位置完成文件合并的方案,都应在本发明保护范围之内。本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。说 明 书CN 102650956 A1/3页6图1说 明 书 附 图CN 102650956 A2/3页7图2图3说 明 书 附 图CN 102650956 A3/3页8图4说 明 书 附 图CN 102650956 A。