1) process concurrency
流程并发
2) concurrent program flow graph
并发程序流图
3) concurrent program
并发程序
1.
A Granularity Analysis Approach to Concurrent Programs Execution;
并发程序执行的一种粒度分析方法
2.
Model checking Java concurrent programs
对Java并发程序进行模型检测
3.
This paper attempts to generate test cases for concurrent programs based on event graph.
通过事件图来产生用于并发程序的测试用例。
4) concurrency process
并发进程
1.
Method of deadlock detection for concurrency process of distributed system based on Petri net;
基于Petri网的分布式系统并发进程的死锁检测
2.
The concurrency process has an obvious characteristic of asynchronous and concurrency,and Petri net is a very good tool on depicting asynchronous and concurrent system.
并发进程具有明显的异步并发性,而Petri网是描述异步并发系统的有效工具,但是目前将Petri网用于并发进程控制问题的研究还几乎没有。
5) concurrent programs
并发程序
1.
Based on tIRG,dependences in concurrent programs are analyzed globally and a new dependence graph called MSDG,which vertex is a 2-tuple composed of program state and statement,is constructed.
针对多线程共享变量通信机制,本文在提出一种新的并发程序表示—线程交互可达图(tIRG)的基础上,从全局分析并发程序的依赖关系,构建了以程序状态和语句二元组为节点的并发程序依赖图(MSDG)。
2.
Multithreaded concurrent programs are finding wide application, which brings more detrimental data race errors.
多线程并发程序的广泛使用带来了更多的数据竞争错误·传统的数据竞争静态检测由于对并发语义和别名信息的保守分析会导致很多假错误·因此,提出了一个精确有效的静态检测框架:分析应用了精确的别名分析并静态模拟了访问事件发生序;为提高分析效率,检测算法提出了一个以对象为中心,结合Escape分析缩小检测范围的检测算法并配合设计了压缩的别名等价类表示·检测框架在一个静态Java编译器JTool上做了实现,对于测试程序取得了很好的分析结果
3.
FSP is a kind of process algebra notation that can be used to describe formal specifications of concurrent programs.
FSP是一类描述并发程序形式化规约的进程代数记法。
6) concurrent process
并发过程
1.
Researches on isolation for the concurrent process correctness are commonly separated from the coupling metric connotation of service computing.
服务计算作为Internet分布式计算的一种高层模式近年受到广泛的关注,但人们对刻画其计算环境特征的耦合性度量的认识仍然停留在词语的层次,针对并发过程正确性的有关隔离性的讨论普遍与服务计算的松耦合性内涵相分离。
补充资料:并发程序设计
由若干个可同时执行的程序模块组成程序的程序设计方法。这种可同时执行的程序模块称为进程。进程由数据和有关的语句序列组成。组成一个程序的多个进程可以同时在多台处理器上并行执行,也可以在一台处理器上夹插执行。采用并发程序设计可以使外围设备和处理器并行工作,缩短程序执行时间,提高计算机系统的效率。例如,在一个单处理器系统中,从磁盘读入数据经加工后打印输出,不采用并发程序设计时,解决这个问题的程序是循环地执行读入一批数据,然后,加工打印输出。执行这个程序时,磁盘机、处理器和打印机顺序执行输入、加工和输出操作。虽然计算机的外围设备和处理器可以并行操作,但执行上述程序时它们只能串行工作。如果采用并发程序设计,解决上述问题的程序由以下两个进程组成。①读盘进程:循环地执行读入一批数据,加工后送入输出缓冲区;②打印进程:循环地执行从缓冲区取出数据打印输出。在打印进程执行打印输出时只需要打印机,而不需要磁盘机和处理器。因此,在打印进程启动打印机后,在打印机输出的过程中可以启动读盘进程输入和加工数据。执行这个程序时,处理器、磁盘机和打印机并行工作,能缩短程序执行的时间,提高计算机系统的效率。
发展过程 60年代初期出现的多道程序设计是并发程序设计的萌芽。在一个多道程序设计系统中,一个计算机系统可以同时接受多个用户程序,并让它们交替占用处理器运行。当一道程序因为等待外围设备而暂时不能运行时,就启动另一道程序运行,而各道程序之间没有关系。因此,多道程序设计能提高计算机系统的效率,但并不能缩短一道程序的执行时间。在出现多道程序设计时,人们尚不清楚并发这个概念和由此产生的如死锁等问题。60年代初期出现的许多多道程序设计系统,根本没有考虑死锁问题。因此,这些系统都有不同程度的错误和隐患。1968年,E.W.代克斯特拉设计的操作系统T.H.E.,首次系统地表明了并发程序设计的概念和有关问题。他注意到并发进程访问公共变量的问题,提出用PV操作解决公共变量问题。此外,他还采用层次结构方法防止死锁。然而,T.H.E.系统是用汇编语言编写的。到70年代,人们才开始将并发程序设计的概念引入程序设计语言中,先后出现并发PASCAL、MODULA-II和ADA等程序设计语言。与此同时,还开展了防止死锁、死锁检测和同步机制的研究,提出银行算法、按序分配等防止死锁的算法和管程等同步机制。到80年代,并发程序设计的研究已逐渐完善,应用也日益广泛。
基本内容 并发程序设计的主要研究内容有:同步机制、死锁的预防和检测,以及并发程序设计语言。
同步 在并发程序设计中,将加工后的数据送入缓冲区和从缓冲区取出数据打印输出必须依次进行。在数据送入缓冲区前不能打印输出,在缓冲区内的数据没有打印输出完毕时不能输入;否则,一批数据可能被重复打印或者一批数据还没有打印输出就被新送入的数据冲掉。因此,对"送入缓冲区"和"从缓冲区取出数据"两个操作必须加以约制,以保证它们依次执行,否则就会发生错误。
产生这个问题的原因是两个进程都要访问缓冲区,也就是说它们有一个公共变量。在并发程序设计中,各进程对公共变量的访问必须加以约制,这种约制称为同步。进程的同步是通过同步机制实现的。现已有多种同步机制,具有代表性的是PV操作和管程。
PV操作是最早提出的同步操作。PV操作的名称来源于荷兰字prolagen(企图降低)和verhogen(升起)。PV操作是作用于信号量上的原语。所谓原语是指其执行是不会被打断的,即一个进程在执行PV操作时,不会强行地被打断而让处理器去执行另一个进程。PV操作的定义是:执行P操作P(S)时,信号量S之值减1,若结果不为负数,见P(S)执行完毕;否则,执行P操作的进程暂时停止。等待释放。执行V操作V(S)时,信号量S之值加1,若结果不大于 0,则释放一个等待释放的进程。有了PV操作后,上例中的问题就即可解决。
1973年,C.A.R.霍尔提出的管程是另一种重要的同步机制。管程是指一组公共数据同与其有关的操作的集合。只有引用管程中的操作才能访问管程中的数据。一个进程引用管程中的操作时,只有在管程中的各操作均不处于活动状态时才被响应。当管程中的一个操作被引用后,它就成为活动状态。当管程中一个操作已执行完毕或在执行中处于等待状态时,它就不是活动状态。管程将公共数据同与其有关的操作集中在一起,使得并发程序设计易于理解,程序正确性也容易保证。因此,管程有助于同步机制从PV操作向前发展。它是并发程序设计趋于成熟的标志之一。
死锁 进程因争夺资源而无休止地相互等待称为死锁。例如,进程P1占有了绘图机而申请行式打印机,进程P2占有了行式打印机而申请绘图机。它们都因为申请不到资源而永远等待,这就是死锁。解决死锁问题有两种途径:一是预防死锁,设计各种资源调度算法,防止死锁发生;另一种途径是检测死锁,当死锁发生时能及时发现并进行排除。
语言 要有效地采用并发程序设计,必须提供并发程序设计语言。并发程序设计语言的主要特征,是引入了进程概念。因此,用它编写的程序包含若干可同时执行的进程。此外,并发程序设计语言还提供实现进程同步和通信的手段。
参考书目
P.B.汉森著,杨芙清等编译:《并发程序的系统结构》,国防工业出版社,北京,1982。(Per Brinch Hansen,The Architecture of Concurrent Programs, Prentice Hall,Englewood Cliffs,New Jersey,1977.
发展过程 60年代初期出现的多道程序设计是并发程序设计的萌芽。在一个多道程序设计系统中,一个计算机系统可以同时接受多个用户程序,并让它们交替占用处理器运行。当一道程序因为等待外围设备而暂时不能运行时,就启动另一道程序运行,而各道程序之间没有关系。因此,多道程序设计能提高计算机系统的效率,但并不能缩短一道程序的执行时间。在出现多道程序设计时,人们尚不清楚并发这个概念和由此产生的如死锁等问题。60年代初期出现的许多多道程序设计系统,根本没有考虑死锁问题。因此,这些系统都有不同程度的错误和隐患。1968年,E.W.代克斯特拉设计的操作系统T.H.E.,首次系统地表明了并发程序设计的概念和有关问题。他注意到并发进程访问公共变量的问题,提出用PV操作解决公共变量问题。此外,他还采用层次结构方法防止死锁。然而,T.H.E.系统是用汇编语言编写的。到70年代,人们才开始将并发程序设计的概念引入程序设计语言中,先后出现并发PASCAL、MODULA-II和ADA等程序设计语言。与此同时,还开展了防止死锁、死锁检测和同步机制的研究,提出银行算法、按序分配等防止死锁的算法和管程等同步机制。到80年代,并发程序设计的研究已逐渐完善,应用也日益广泛。
基本内容 并发程序设计的主要研究内容有:同步机制、死锁的预防和检测,以及并发程序设计语言。
同步 在并发程序设计中,将加工后的数据送入缓冲区和从缓冲区取出数据打印输出必须依次进行。在数据送入缓冲区前不能打印输出,在缓冲区内的数据没有打印输出完毕时不能输入;否则,一批数据可能被重复打印或者一批数据还没有打印输出就被新送入的数据冲掉。因此,对"送入缓冲区"和"从缓冲区取出数据"两个操作必须加以约制,以保证它们依次执行,否则就会发生错误。
产生这个问题的原因是两个进程都要访问缓冲区,也就是说它们有一个公共变量。在并发程序设计中,各进程对公共变量的访问必须加以约制,这种约制称为同步。进程的同步是通过同步机制实现的。现已有多种同步机制,具有代表性的是PV操作和管程。
PV操作是最早提出的同步操作。PV操作的名称来源于荷兰字prolagen(企图降低)和verhogen(升起)。PV操作是作用于信号量上的原语。所谓原语是指其执行是不会被打断的,即一个进程在执行PV操作时,不会强行地被打断而让处理器去执行另一个进程。PV操作的定义是:执行P操作P(S)时,信号量S之值减1,若结果不为负数,见P(S)执行完毕;否则,执行P操作的进程暂时停止。等待释放。执行V操作V(S)时,信号量S之值加1,若结果不大于 0,则释放一个等待释放的进程。有了PV操作后,上例中的问题就即可解决。
1973年,C.A.R.霍尔提出的管程是另一种重要的同步机制。管程是指一组公共数据同与其有关的操作的集合。只有引用管程中的操作才能访问管程中的数据。一个进程引用管程中的操作时,只有在管程中的各操作均不处于活动状态时才被响应。当管程中的一个操作被引用后,它就成为活动状态。当管程中一个操作已执行完毕或在执行中处于等待状态时,它就不是活动状态。管程将公共数据同与其有关的操作集中在一起,使得并发程序设计易于理解,程序正确性也容易保证。因此,管程有助于同步机制从PV操作向前发展。它是并发程序设计趋于成熟的标志之一。
死锁 进程因争夺资源而无休止地相互等待称为死锁。例如,进程P1占有了绘图机而申请行式打印机,进程P2占有了行式打印机而申请绘图机。它们都因为申请不到资源而永远等待,这就是死锁。解决死锁问题有两种途径:一是预防死锁,设计各种资源调度算法,防止死锁发生;另一种途径是检测死锁,当死锁发生时能及时发现并进行排除。
语言 要有效地采用并发程序设计,必须提供并发程序设计语言。并发程序设计语言的主要特征,是引入了进程概念。因此,用它编写的程序包含若干可同时执行的进程。此外,并发程序设计语言还提供实现进程同步和通信的手段。
参考书目
P.B.汉森著,杨芙清等编译:《并发程序的系统结构》,国防工业出版社,北京,1982。(Per Brinch Hansen,The Architecture of Concurrent Programs, Prentice Hall,Englewood Cliffs,New Jersey,1977.
说明:补充资料仅用于学习参考,请勿用于其它任何用途。
参考词条