4.2 内容精要
在并发环境下,系统中存在多个进程,其中一个进程或许会受到其他进程的影响,同时与这些进程成为协作关系。这种影响关系可能包括互斥、同步和通信。
4.2.1 进程的并发性
为了消除CPU与I/O之间的相互等待,提出了并发(concurrency)技术。操作系统中引入并发程序设计技术后,程序内部的顺序特性和外部的顺序特性消失。对于一个进程而言,它的所有指令可能按照顺序执行,也可能不按顺序执行;对于多个进程而言,所有进程是交叉执行的。
1.并发
在一定时间内,有两个或者两个以上的程序在计算机系统中同处于开始执行,但尚未结束的状态(一个程序结束之前,另一个已经开始执行,并且次序不是事先确定的),并且在同一个处理机上运行,但在任意时刻只有一个程序在处理机上运行。
并发的实质是一个处理机在多个程序之间的多路复用,是程序之间的并发、CPU与I/O之间的并行。
2.并发进程
系统中存在一组可同时执行的进程,这些进程都已经开始执行,但又没有结束,称这些进程为并发进程。
并发进程可能是相关的(称为相交进程、合作进程或互斥进程),也可能是无关的(称为无关进程或不相交进程)。相交进程是指多个并发进程在逻辑上有某种联系。无关进程指在逻辑上无任何联系的进程。并发进程的主要特征包括:
(1)交叉执行
并发进程的执行对应某一种交叉,不同的交叉可能会导致不同的计算结果。
(2)执行结果的不可再现性
交叉的随机性、进程执行的速度不能由进程本身或操作系统来控制,所以并发程序执行的结果是不确定的,与其执行的相对速度有关。
(3)间断性
并发进程的执行是间断性的,与自身原因和进程调度策略有关。
(4)制约性(相互作用)
并发程序之间存在着制约关系,这些制约关系在某些情况下限制了程序的运行速度。通常将并发进程之间的制约关系分为两类:直接制约和间接制约。