首页 百科知识 1.5.3进程同步

1.5.3进程同步

时间:2022-10-15 百科知识 版权反馈
【摘要】:在计算机中有许多资源一次只能允许一个进程使用,如果多个进程同时使用这些资源,则有可能造成系统的混乱,这些资源被称为临界资源。如果一进程已进入到临界区使用临界资源,另一进程企图进入临界区使用同一临界资源的进程便必须等待,直到前一进程退出临界区为止。临界资源空闲时,应允许一个请求进行临界区的进程立即进入自己的临界区,以便有效地利用资源。

1.5.3 进程同步

进程同步是指对多个相关进程在执行次序上进行协调,它的目的是使系统中诸进程之间能有效地共享资源和相互合作,从而使程序的执行具有可再现性。用来实现同步的机制称为同步机制。

1.两种形式的制约关系

在多道程序的环境下,进程之间存在着以下两种形式的制约关系:

(1)直接相互制约。这种制约主要源于进程合作。例如,有一输入进程A通过单缓冲向计算进程B提供数据。当该缓冲空时,计算进程B因不能获得所需数据而阻塞,当进程A把数据送入缓冲时,便将B唤醒;反之,进程A因不能再向缓冲中投放数据而阻塞,当进程B将缓冲内数据取走时应唤醒A。

(2)间接相互制约。这种制约主要源于资源共享。例如,有两个进程A和B,如果在进程A提出打印请求时,系统已将打印机分配给进程B,则进程A阻塞;一旦进程B将打印机释放,才能使进程A由阻塞转为就绪状态。

2.临界资源和互斥

在计算机中有许多资源一次只能允许一个进程使用,如果多个进程同时使用这些资源,则有可能造成系统的混乱,这些资源被称为临界资源。如打印机,多个进程同时使用一台打印机,将使其输出结果交织在一起,难于区分;又如共享变量,多个进程同时使用一个共享变量,会使其结果具有不可再现性。

在每个进程中,访问临界资源的那段代码称为临界区。

为了使多个进程能有效地共享临界资源,并使程序的执行具有可再现性,系统必须保证他们互斥地使用临界资源,即保证它们互斥地进入自己的临界区。如果一进程已进入到临界区使用临界资源,另一进程企图进入临界区使用同一临界资源的进程便必须等待,直到前一进程退出临界区为止。不难看出,互斥的实质就是同步,或者说,互斥是同步的一种特殊形式。

3.同步机制应遵循的规则

用来实现互斥的同步机制必须遵循下述四条规则:

(1)空闲让进。临界资源空闲时,应允许一个请求进行临界区的进程立即进入自己的临界区,以便有效地利用资源。

(2)忙则等待。当临界资源正被访问时,其他要求进入临界区的进程必须等待,以保证对临界资源的互斥使用。

(3)有限等待。任何要求访问临界资源的进程应能在有限的时间内进入自己的临界区,以免“死等”。

(4)让权等待。不能进入临界区的进程应立即释放CPU,以免“忙等”。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈