进程同步机制的主要任务,是对多个相关进程在执行次序上进行协调,使并发执行的诸进程之间能按照一定的规则(或时序)共享系统资源,并能很好地相互合作,从而使程序的执行具有可再现性。
1.两种形式的制约关系
当一个进程进入临界区使用临界资源时,另一个进程必须等待,当占用临界资源的进程退出临界区后,另一进程才允许去访问此临界资源。
如 A、B 共享打印机,若A申请打印时,打印机已分配给B,则A只能阻塞,等B释放后再改为就绪,又称为"互斥"。为了保证这些进程能有序地运行,对于系统中的这类资源,必须由系统实施统一分配,即用户在要使用之前,应先提出申请,而不允许用户进程直接使用。
是指为完成某种任务而建立的两个或多个进程,这些进程因为需要在某些位置上协调它们的工作次序而等待、传递信息所产生的制约关系。进程间的直接制约关系源于它们之间的相互合作。
如进程A向B提供数据,当输入缓冲空时,B不能得到数据而阻塞;一旦进程A将数据送入缓冲区,进程B 就被唤醒。反之当缓冲满时A无法写入而阻塞,仅当进程B取走缓冲数据时,才唤醒进程A。
2.临界资源与临界区
进程在运行过程中,一般会与其他进程共享资源,而有些资源的使用具有排他性。把同时仅允许一个进程使用的资源称为临界资源。许多物理设备都属于临界资源,如打印机、绘图机等。
人们把在每个进程中访问临界资源的那段代码称为临界区。
为了保证临界资源的正确使用,我们可以把临界资源的访问过程分成4部分。这4部分都属于要访问临界资源的进程,是进程中的一部分代码。
3.同步机制应遵循的规则
无
登录后开始许愿
加油