临界资源:一次只允许一个进程(或线程)使用的共享资源,如共享变量、共享文件、打印机等。
临界区:进程中访问临界资源的代码段。同一时刻只允许一个进程处于临界区。
do {
进入区; // 检查并设置标志,请求进入临界区
临界区; // 访问临界资源
退出区; // 清除临界区使用标志
剩余区; // 其他代码
} while(true);
| 准则 | 含义 | 违反后果 |
|---|---|---|
| 空闲让进 | 临界区空闲时允许进入 | 浪费资源 |
| 忙则等待 | 临界区忙时其他进程等待 | 最基本要求 |
| 有限等待 | 保证有限时间内进入 | 进程饥饿 |
| 让权等待 | 不能进入时释放 CPU | 忙等浪费 CPU |
↑ 以上为站内 HTML 相对链接(纯网页可浏览);本页右上「在 Obsidian 中打开」跳回源笔记。