进程间的相互影响:

两种制约关系:

    间接相互制约关系:主要源于资源共享,表现为

进程A---打印机资源---进程B(互斥)

     直接相互制约关系:主要源于进程合作,表现为

进程A写缓冲---进程B读缓冲(有序)

进程同步

 主要任务:      使并发执行的诸进程之间能有效地共享资源相互合作,从而使程序的执行具有可再现性

 临界资源:

一次仅允许一个进程访问的资源

  互斥和有序‘

互斥:在操作系统中,当一个进程进入临界区使用临界资源时,另一个进程必须等待,直到占用临界资源的进程退出临界区,我们称进程之间的这种相互制约关系为“互斥”

同步:多个相互合作的进程,在一些关键点上可能需要互相等待或互相交换信息,这种相互制约关系称为进程同步关系。可理解为“有序”。

   临界区

每个进程中访问临界资源的那段代码叫临界区。为了正确同步,对临界区的代码要增加控制

                                                            

 

同步机制应遵循的原则:

   

 空闲让进:资源使用最基本原则

 忙则等待:保证互斥

 有限等待:合适时被唤醒防止死等

 让权等待:能主动释放CPU防止忙等

   硬件同步机制

    (1)关中断

     (2)  Test-and-Set指令

     (3)利用Swap指令

 

注:硬件指令机械操作可保证锁开、关操作不被打断;适用于任意数目的进程。但等待要耗费CPU时间,不能实现“让权等待”,从等待进程中随机选择一个进入临界区,有的进程可能一直选不上,难以实现较为复杂的进程同步问题。