总览
什么是进程同步
例子1
异步:比如两个并发进程,一个进程快运行结束了,另一个进程才运行到中间部分。速度不可预知,并且不会管另一个进程运行到哪里了,自己独立推进运行
如果要实现某个进程的某条指令在另一个进程的某条指令之前执行,那么需要使用到进程同步
例子2
什么是进程互斥
对临界资源的互斥访问的逻辑
- 进入区(Entry Section):这部分的代码负责检查是否可以进入临界区。如果条件允许,即没有其他进程正在访问临界资源,那么将设置一个标志,这个标志表明当前有进程正在访问临界资源,从而阻止其他进程同时进入。
- 临界区(Critical Section):这是实际访问临界资源的代码段。在这个区域内,进程将独占临界资源,执行必要的操作。
- 退出区(Exit Section):一旦进程完成了对临界资源的访问,它将执行退出区的代码。这部分代码的作用是解除之前设置的标志,即“解锁”,这样其他等待访问临界资源的进程就能够进入。
- 剩余区(Remainder Section):这部分代码执行非临界资源的操作,不涉及对临界资源的访问。
互斥访问原则
忙等待:占用处理机但啥事没做
小结
进程同步:直接制约关系
进程互斥:间接制约关系