进程同步:
定义:进程之间这种相互合作、协同工作的关系称为进程的同步。
简单来说就是:多个相关进程在执行次序上的协调。
制约关系:直接制约
进程互斥:
临界资源:也称独占资源,是指在一段时间内只允许一个进程访问的资源。例如打印机,磁带机,也可以是进程共享的数据、变量等。
定义:当多个进程因为争夺临界资源而互斥执行称为进程的互斥。
制约关系:间接制约。
临界资源处理不当带来的问题
1.执行结果错误
临界区:与临界资源操作相关的程序段。
2.死锁
在并发系统中,程序执行结果的正确性不仅取决于自身的正确性,还与其在执行过程中能否正确的与其他进程实施同步或互斥有关。必须对临界资源的访问进行控制。
互斥解决方案:
*关中断法(开关中断指令)
也称为硬件锁,是实现互斥最简单的方法
做法:每个进程在进入临界区后先关中断,屏蔽其他请求,在离开之前再开中断。
优点:实现简单
缺点:中断被关闭后,CPU不再响应任何外部事件,此时进程将会独占CPU,直至开启中断,如果中断关闭时间过长,会造成严重后果,因此把开关中断的权利交给用户进程是很不明智地的。
*镜变量法(测试和设置指令)
做法:设置一个共享(锁)变量W,初值为0.当一个进程想进入其他临界区时,它首先测试这把锁。如果锁的值为0,则进程将其置为1并进入临界区。若锁已经为1,则进程等待直到变为0.于是,0就表示临界区内没有进程,1表示已经有某个进程进入了临界区。
同步机制应遵循下述四条准则
*空闲让进
*忙则等待
*有限等待
*让权等待