CN103853529A - 并发程序设计中减少临界区保护机制开销的优化方法 - Google Patents

并发程序设计中减少临界区保护机制开销的优化方法 Download PDF

Info

Publication number
CN103853529A
CN103853529A CN201410060571.4A CN201410060571A CN103853529A CN 103853529 A CN103853529 A CN 103853529A CN 201410060571 A CN201410060571 A CN 201410060571A CN 103853529 A CN103853529 A CN 103853529A
Authority
CN
China
Prior art keywords
critical section
condition
critical
optimization method
code
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
CN201410060571.4A
Other languages
English (en)
Other versions
CN103853529B (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.)
Beijing Shenzhou Aerospace Software Technology Co.,Ltd.
Original Assignee
BEIJING SHENZHOU AEROSPACE SOFTWARE 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 BEIJING SHENZHOU AEROSPACE SOFTWARE TECHNOLOGY Co Ltd filed Critical BEIJING SHENZHOU AEROSPACE SOFTWARE TECHNOLOGY Co Ltd
Priority to CN201410060571.4A priority Critical patent/CN103853529B/zh
Publication of CN103853529A publication Critical patent/CN103853529A/zh
Application granted granted Critical
Publication of CN103853529B publication Critical patent/CN103853529B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Devices For Executing Special Programs (AREA)

Abstract

本发明公开了一种并发程序设计中减少临界区保护机制开销的优化方法,其特征在于:所述优化方法是:基于源代码的优化并发程序中,临界区里的代码在满足一定条件的情况下,访问共享资源时,省去CSenter和CSexit操作,减少了同步机制带来的不必要开销。作为一种优化的技术方案,所述临界区里的代码满足的一定条件包括条件1和条件2。本发明利用“至多一次”原则,来减少实现粗颗粒原子操作开销的并发程序设计中减少临界区保护机制开销的优化方法。

Description

并发程序设计中减少临界区保护机制开销的优化方法
技术领域
本发明属于软件开发中并发程序的设计和优化领域,具体地说,涉及一种并发程序设计中减少临界区保护机制开销的优化方法。
背景技术
随着多核处理器技术的迅速发展,在软件开发领域,并发编程技术越来越成为人们关注的焦点。为了有效的利用具有强大处理功能的CPU,我们须要设计出可以并发执行的软件。在并发编程中,一个经常需要解决的问题就是资源竞争,也就是指多个线程对某个共享资源进行混乱的操作,导致整个系统处理过程进入混乱的状态。比如,系统中有2个线程(t1和t2)可以对资源R进行访问,如果t1在修改资源R的过程中被打断,接着t2开始执行,t2访问R,这时R的状态将不是t1修改后,或者修改前的状态,而是一个混乱状态。这就是一个典型的资源竞争导致的系统紊乱情况。通常的解决方法是,在每个线程中,把对共享资源的访问的操作放在临界区里,确保最多只有一个线程访问共享资源,而且每个线程对共享资源的访问操作是粗粒原子操作。临界区的实现往往依靠一些同步机制,比如互斥锁、信号量等等。
用CSenter表示要求进入临界区,用CSexit表示退出临界区,则可以用CSenter和CSexit操作来避免资源竞争带来的问题。
这样的设计使得t1对R的访问不会被t2对R的访问所干扰。临界区的设计确保了并发程序中,如果有若干个线程要求进入临界区的情况下,一次只允许一个线程进入。同时,也确保任何时候,进入临界区里的线程不能多于一个。
然而,实现进入和退出临界区的操作是有开销的。对CSenter和CSexit操作的实现,往往依靠互斥锁和信号量等同步机制,这些同步机制的开销与它们的具体实现情况相关,即使是使用了高效的实现方法,同步机制给并发程序带来的开销仍然是难以预计的,因为这里涉及了操作系统调度和线程上下文切换带来的开销。
目前的解决方法是在汇编指令中寻找实现细颗粒原子操作的方法。比如,依靠CAS原子操作,即Compare&Swap,来实现无锁的互斥。CAS操作是特殊的汇编指令,现在很多CPU都提供这样的原子操作。另一种方法是对需要互斥保护的汇编指令上锁,比如在x86平台上使用intel的lock前缀对一些特定的指令实现细粒的原子操作。这些优化技术的实现往往基于与平台相关的特殊汇编指令和机制,却无法从源代码本身来展开。并且,这些基于与平台相关汇编指令的操作,完全取决于硬件的实现,使用它们取代锁机制的“无锁方法”是有弊端的。在轻度和中度争用的情况下可以提高程序性能,但是如果线程频繁的执行这些操作,所引发的缓存失效,会使操作被延迟,从而不能达到优化的目的。简单概括的说,因为程序性能取决于执行的频率,使用平台相关的原子指令的“无锁方法”所带来的副作用严重破坏了并发程序的可伸缩性。
发明内容
本发明要解决的技术问题是克服上述缺陷,提供一种利用“至多一次”原则,来减少实现粗颗粒原子操作开销的并发程序设计中减少临界区保护机制开销的优化方法。
为解决上述问题,本发明所采用的技术方案是:
一种并发程序设计中减少临界区保护机制开销的优化方法,其特征在于:所述优化方法是:基于源代码的优化并发程序中,临界区里的代码在满足一定条件的情况下,访问共享资源时,省去CSenter和CSexit操作,减少了同步机制带来的不必要开销。
作为一种优化的技术方案,所述临界区里的代码满足的一定条件包括条件1和条件2;
条件1:对需要访问的共享资源的读和写的操作必须是硬件实现的原子操作,也就是说,执行对共享资源的读和写的操作的机器指令是原子指令;
条件2:在临界区里至多有一个临界引用。临界引用,也属于共享资源,是指表达式中引用的被其它线程修改的变量。
作为一种优化的技术方案,所述优化方法的具体实施步骤如下:
1)、确定并发程序中需要保护的临界区,比如n个临界区,用CS1,…,CSn来分别代表临界区1,…,临界区n,每个临界区由一个抽象语法树来表示;
2)、对临界区代码进行扫描,也就是遍历相应的抽象语法树,并且计算临界引用X的值在每个临界区的使用次数;
3)、如果CS1…CSn都满足条件2,并且这个临界引用X满足条件1,则可以省略CS1…CSn的临界区进入和退出操作,即CSenter和CSexit。
由于采用了上述技术方案,与现有技术相比,本发明是一种基于源代码的优化并发程序的方法,即临界区里的代码在满足一定条件的情况下,访问共享资源时可以省去CSenter和CSexit操作,因此减少了同步机制带来的不必要开销。
本发明利用“至多一次”原则,来减少实现粗颗粒原子操作开销的并发程序设计中减少临界区保护机制开销的优化方法。
具体实施方式
实施例:
一种并发程序设计中减少临界区保护机制开销的优化方法,具体实施步骤如下:
1)、确定并发程序中需要保护的临界区,比如n个临界区,用CS1,…,CSn来分别代表临界区1,…,临界区n,每个临界区由一个抽象语法树来表示;
2)、对临界区代码进行扫描,也就是遍历相应的抽象语法树,并且计算临界引用X的值在每个临界区的使用次数;
3)、如果CS1…CSn都满足条件2,并且这个临界引用X满足条件1,则可以省略CS1…CSn的临界区进入和退出操作,即CSenter和CSexit。
由于采用了上述技术方案,与现有技术相比,本发明是一种基于源代码的优化并发程序的方法,即临界区里的代码在满足一定条件的情况下,访问共享资源时可以省去CSenter和CSexit操作,因此减少了同步机制带来的不必要开销。
本发明是利用“至多一次”原则,来减少并发程序中实现粗颗粒原子操作开销的优化方法。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

Claims (3)

1.一种并发程序设计中减少临界区保护机制开销的优化方法,其特征在于:所述优化方法是:基于源代码的优化并发程序中,临界区里的代码在满足一定条件的情况下,访问共享资源时,省去CSenter和CSexit操作,减少了同步机制带来的不必要开销。
2.根据权利要求1中所述的并发程序设计中减少临界区保护机制开销的优化方法,其特征在于:所述临界区里的代码满足的一定条件包括条件1和条件2;
条件1:对需要访问的共享资源的读和写的操作必须是硬件实现的原子操作,也就是说,执行对共享资源的读和写的操作的机器指令是原子指令;
条件2:在临界区里至多有一个临界引用。
3.根据权利要求2中所述的并发程序设计中减少临界区保护机制开销的优化方法,其特征在于:所述优化方法的具体实施步骤如下:
1)、确定并发程序中需要保护的临界区,临界区的数目为n个,用CS1,…,CSn来分别代表临界区1,…,临界区n,每个临界区由一个抽象语法树来表示;
2)、对临界区代码进行扫描,也就是遍历相应的抽象语法树,并且计算临界引用X的值在每个临界区的使用次数;
3)、如果CS1…CSn都满足条件2,并且这个临界引用X满足条件1,则可以省略CS1…CSn的临界区进入和退出操作,即CSenter和CSexit。
CN201410060571.4A 2014-02-21 2014-02-21 并发程序设计中减少临界区保护机制开销的优化方法 Active CN103853529B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410060571.4A CN103853529B (zh) 2014-02-21 2014-02-21 并发程序设计中减少临界区保护机制开销的优化方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410060571.4A CN103853529B (zh) 2014-02-21 2014-02-21 并发程序设计中减少临界区保护机制开销的优化方法

Publications (2)

Publication Number Publication Date
CN103853529A true CN103853529A (zh) 2014-06-11
CN103853529B CN103853529B (zh) 2017-03-01

Family

ID=50861233

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410060571.4A Active CN103853529B (zh) 2014-02-21 2014-02-21 并发程序设计中减少临界区保护机制开销的优化方法

Country Status (1)

Country Link
CN (1) CN103853529B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107562523A (zh) * 2017-09-04 2018-01-09 北京国华世纪电子科技有限公司 一种多任务嵌入式系统共享数据管理方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030014463A1 (en) * 2001-07-04 2003-01-16 Atsushi Togawa Task management system
CN102662747A (zh) * 2012-04-23 2012-09-12 深圳市融创天下科技股份有限公司 一种线程访问临界区的方法、系统和终端设备

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030014463A1 (en) * 2001-07-04 2003-01-16 Atsushi Togawa Task management system
CN102662747A (zh) * 2012-04-23 2012-09-12 深圳市融创天下科技股份有限公司 一种线程访问临界区的方法、系统和终端设备

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
张选芳等: "《操作系统教程Linux版》", 31 December 2013 *
张选芳等: "《软件技术基础》", 31 December 2013, article "临界区管理", pages: 105 - 106 *
毛玉萃等: "《操作系统教程Linux版》", 31 December 2013, article "临界区与进程互斥", pages: 206 - 210 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107562523A (zh) * 2017-09-04 2018-01-09 北京国华世纪电子科技有限公司 一种多任务嵌入式系统共享数据管理方法

Also Published As

Publication number Publication date
CN103853529B (zh) 2017-03-01

Similar Documents

Publication Publication Date Title
US10409611B2 (en) Apparatus and method for transactional memory and lock elision including abort and end instructions to abort or commit speculative execution
EP3362898B1 (en) Method for efficient task scheduling in the presence of conflicts
US20080163183A1 (en) Methods and apparatus to provide parameterized offloading on multiprocessor architectures
US9086902B2 (en) Sending tasks between virtual machines based on expiration times
US9542191B2 (en) Hardware profiling mechanism to enable page level automatic binary translation
DE112013005368T5 (de) Prozessoren, verfahren und systeme für echtzeit-befehlsverfolgung
Li et al. Warp-consolidation: A novel execution model for gpus
US9405937B2 (en) Method and apparatus for securing a dynamic binary translation system
CN109328341B (zh) 识别引起远程事务执行中止的存储的处理器、方法和系统
US9141540B2 (en) Garbage collection of interned strings
US20170187805A1 (en) Systems, Methods, and Apparatuses for Range Protection
EP3114564B1 (en) Transactional memory support
CN104281540A (zh) 原子地更新多处理器系统中的共享存储器的系统及方法
CN105975349A (zh) 一种线程锁的优化方法
Aji et al. Haggis: turbocharge a MapReduce based spatial data warehousing system with GPU engine
DE112017004837T5 (de) Systeme und Verfahren zum Differenzieren von Funktionsleistung nach Eingabeparametern
CN103853529A (zh) 并发程序设计中减少临界区保护机制开销的优化方法
DE112018003988T5 (de) Zwischenclusterkommunikation von live-in-registerwerten
Mohamedin et al. Managing resource limitation of best-effort HTM
JP5389899B2 (ja) オペレーティング・システム高速実行コマンド
Mohamedin et al. On designing numa-aware concurrency control for scalable transactional memory
US10853078B2 (en) Method and apparatus for supporting speculative memory optimizations
DE112017004783T5 (de) Mapping von sicherheitsrichtlinien-gruppenregistern
CN110764880B (zh) 一种基于原子操作的三态控制方法
Zhang et al. Brief announcement: on enhancing concurrency in distributed transactional memory

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C53 Correction of patent of invention or patent application
CB03 Change of inventor or designer information

Inventor after: Cui Xiaolei

Inventor after: Li Shangjie

Inventor after: Liu Shu

Inventor after: Liu Dapeng

Inventor after: Chen Xingyu

Inventor after: Wang Jing

Inventor after: Li Yuming

Inventor after: Wei Ming

Inventor before: Cui Xiaolei

Inventor before: Li Shangjie

Inventor before: Liu Shu

Inventor before: Liu Dapeng

Inventor before: Chen Xingyu

COR Change of bibliographic data

Free format text: CORRECT: INVENTOR; FROM: CUI XIAOLEI LI SHANGJIE LIU SHU LIU DAPENG CHEN XINGYU TO: CUI XIAOLEI LI SHANGJIE LIU SHU LIU DAPENG CHEN XINGYU WANG JING LI YUMING WEI MING

C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
CP01 Change in the name or title of a patent holder
CP01 Change in the name or title of a patent holder

Address after: 100094 No. 28, Yongfeng Road, Beijing, Haidian District

Patentee after: Beijing Shenzhou Aerospace Software Technology Co.,Ltd.

Address before: 100094 No. 28, Yongfeng Road, Beijing, Haidian District

Patentee before: BEIJING SHENZHOU AEROSPACE SOFTWARE TECHNOLOGY Co.,Ltd.