一、基本概念
1.临界区
进程中访问临界资源的一段需要互斥执行的代码
2.进入区
3.退出区
清除“正在访问临界区”
4.剩余区
代码中的其余部分
二、临界区的访问规则
1.空闲则入
没有进程在临界区时,任何进程可以进入
2.忙则等待
有进程在临界区时,其他进程均不能进入临界区
3.有限等待
等待进入临界区的进程不能无限等待下去
4.让权等待
不能进入临界区的进程,应释放CPU
三、临界区的实现方法
1.禁用中断
没有中断,没有上下文切换,因此没有并发
进入临界区
离开临界区
缺点:
禁用中断后,进程无法被停止
临界区可能很长
2.软件方法:Pererson算法
满足两个线程之间互斥的经典的基于软件的解决方法
软件方法的分析:
3.更高级的抽象方法
3.1 锁:抽象的数据结构
使用锁来控制临界区的访问
3.2 原子操作指令
现代CPU体系都提供一些特殊的原子操作指令
测试和置位指令
交换指令
原子操作指令锁的特征:
优点
缺点
四、同步方法总结
锁是一种高级的同步抽象方法
常用的三种同步实现方法
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!