作者:一号小蘑菇妖 | 来源:互联网 | 2023-06-11 16:54
同步,互斥
与异步相对,让进程按照一定顺序执行
-
互斥的要素
- 临界区被访问时,另一个想访问的进程只能等待
- 一个进程等待的时间是有限的
- 一个进程等待时,应释放CPU,不能忙等
- 临界区空闲时应能让一个进程访问
-
互斥的软件实现
-
单标志法
![在这里插入图片描述](https://img8.php1.cn/3cdc5/12759/978/ba04f48aace3da65.png)
-
缺点
- 只能交替进行,一个去干别的,另一个就要歇菜
- 双标志先检查法
-![在这里插入图片描述](https://img8.php1.cn/3cdc5/12759/978/c73d0aa0f42e3dbf.png)
缺点 - 双标志后检查法
![在这里插入图片描述](https://img8.php1.cn/3cdc5/12759/978/15f5c003c55ad156.png)
- 缺点
- peterson算法
- 缺点
- 另一个没有进入临界的进程还是占用CPU,忙等
-
互斥硬件实现
- 中断屏蔽
- 优点
- 缺点
- 是特权指令,随便给出会有危险
- 不适合多处理机,关中断只能对一个处理机有效
- TS指令
- 用硬件实现这样一个过程 (上锁,检查,这个过程不可以被打断)
- swap逻辑上相同
- 优点
- 缺点
bool TestAndSet( bool *lock)
{bool old;old = *lock;*lock = false;return old;
}
![在这里插入图片描述](https://img8.php1.cn/3cdc5/12759/978/11a1f455baacf079.png)
![在这里插入图片描述](https://img8.php1.cn/3cdc5/12759/978/cbc6822214191fbc.png)
- & 取一个变量的地址; * 取一个指针所指向的内存单元储存的内容