进程同步:
进程同步:在多道程序环境下,进程是并发执行的,不同进程之间存在着不同的相互制约关系。
进程同步的概念:把异步环境下的一组并发进程因直接制约而互相发送消息、进行互相合作、互相等待,使得各进程按一定的速度执行的过程称为进程间的同步。具有同步关系的一组并发进程称为合作进程,合作进程间互相发送的信号称为消息或事件。
进程间制约关系:
(1)资源共享关系:
1.互斥共享方式
2.同时共享方式
(2)相互合作关系
进程互斥:
1.进程互斥概念:
两个或两个以上的进程,不能同时进入关于同一组共享变量的临界区域,否则可能发生与时间有关的错误,这种现象被称作进程互斥· 也就是说,一个进程正在访问临界资源,另一个要访问该资源的进程必须等待。
临界资源:一个时间段内只允许一个进程使用的资源称为临界资源
2.临界资源的互斥访问的四个部分:
1.进入区
2.临界区
3.退出区
4.剩余区
3.为实现进程互斥,所有的同步机制应该遵循四大准则:
进程互斥的软件实现方法:
1.单标志法:
该算法可以实现“在同一时刻最多只允许一个进程访问临界区”
缺点:该算法先让P0进入访问区,再有P1进入,然后轮流访问。若P0一开始不进行访问,P1只能卡在就绪中,只能等P0访问结束后才能进行访问,若P0一直不访问,则P1只能一直等待(这时候CPU处于空闲阶段)。违背了“空闲让进”的原则。
2.双标志先检查法:
该算法先检查各进程的的选择意愿,再进行选择性进入。
缺点:可能两进程同时想进入临界区,违反了“忙则等待”的原则。
3.双标志后检查法:
缺点:违背了“空闲让进”和“有限等待”的原则。
4.Peterson算法:
缺点:未遵循“让权等待”的原则。但相比与前几种算法,是很好的。但依然不够完美。
小结:
进程互斥的硬件实现方法:
1.中断屏蔽方法:
缺点:不适用于多处理机,只适用于操作系统的内核进程。
2.TestAndSet指令:
TS指令,有的地方称为TestAndSetLock指令,也称TSL指令。
缺点:不满足“让权等待”原则,暂时无法进入临界区的进程会占用CPU并循环执行TSL指令,从而导致“忙等”。
3.Swap指令:
Swap指令是用硬件实现的。
小结:
呼呼呼,文章好长呀,又写了好长时间,不过整理好了就很开心,希望自己可以不断努力,加油,追梦人。