第五章考点
5.1并发的原理
- 需要互斥同步的原因
- 对资源的共享与竞争,结果依赖于指令执行顺序,使得一个进程的执行可能影响其他进程的执行结果。并发执行使得错误出现具有不可再现性
- 某些进程需要等到另一进程结束发出信号后才可以启动。
- 并发进程间的三种交互关系:资源竞争(不知道对方的存在),通过共享的合作(间接知道对方的存在),通过通信的合作(直接知道对方的存在)
- 互斥的要求
- 强制互斥
- 有限等待
- 有空让进
- 让权等待
- 互斥
- 硬件支持
- 中断禁止(适用于单CPU系统)
- 不适用于多CPU
- 长时间关中断导致串行执行进程、会导致系统执行效率低
- 不应该由用户关中断(关中断是需要保护的特权指令)
- 专用机器指令:两种机器指令(原子指令)
- 忙等导致CPU效率低
- 可能饥饿
- 可能死锁(低优先级的可以访问临界区但是没有CPU时间,因为CPU被高优先级的抢占了)
- 中断禁止(适用于单CPU系统)
- 硬件支持
- 信号量
- 不要求忙等的同步互斥工具
- 一个信号量表示一种资源,信号量的值表示该种资源的可用数量
- 只能被下面两个原语访问
- semWait(s) , P(s), wait(s)
- semSignal(s) V(s), signal(s)
- 用于互斥时,s初值为1
用于同步时,s初值>=0
-
- semWait、semSignal含义
- semWait(s):本进程请求分配一个资源
- semSignal(s):本进程释放一个资源
- 必须成对出现
- 同步的semWait(s1)应出现在互斥的semWait(s2)后
- semWait、semSignal含义