操作系统自学系列(六)
知识总览:
单标志法:
两个进程交替地访问临界区,修改标志位turn,代码如下:
int turn=0;
while(turn!=0);
critical section;
turn =1;
remainder sesction;
缺点:违背了“空闲让进”的原则
双标志先检查法:
缺点:并发进程具有异步性;检查和上锁两件事若是原子操作就没有问题,否则有可能同时访问临界资源。
双标志后检查法:
把上锁放在了前面,但是也有问题:可能都不能访问:
peterson算法:
先主动让给对方,可以解决问题:
总结:
进程互斥的硬件实现方法:
知识总览:
中断屏蔽:
开中断和关中断两个指令,两个都是内核态的指令,不能直接给用户使用:
testandset指令:
硬件指令:
不满足让全等待原则
swap:
总结: