进程管理
顺序执行:
在进程结束之后进行v操作,s从0变为1,在进程结束之前进行p操作,若s=0,说明上一个进程结束可以进行本进程。
一个箭头就是一个前驱关系要设置一个信号量,并且信号量的初值为0。
并发执行:
并发执行的问题:
由于共享变量,会造成类似数据库并发执行中丢失修改的问题。
三态模型:
相当于吃完早餐坐校车去学校,阻塞态为没吃早餐,就绪态为吃好早餐在等校车,运行态是吃好早餐坐上校车了。CPU等同于校车,运行态的进程结束,就绪态的进程就可以获得CPU进入进行态。
进程间的通信
PV主要是进行同步与互斥操作。
mutex初始值为1,保证每次只能有一个进程进行。
s1表示可以把n件产品放入缓存区,互斥信号量s代表一次只能允许一个进程访问缓存区,s2代表缓存区中可取产品的数量,初始值为0。
死锁:
进程资源图:
进程的化简:非阻塞的进程进行完后释放资源,通过运行顺序可以让所有进程运行。说明是可化简并且非死锁的。
进程不可化简非死锁的状态:分别占用资源并且等待申请资源。一个进程都不能进行也不释放资源。
线程与线程之间不可见。
状态位为0则不能淘汰(不能淘汰不在内存中的),状态位为1且访问位为0,刚才没被访问过则以后被访问过的概率小,状态位为1且访问位为1,修改位为0则淘汰掉。
处理的时候读写头仍然在旋转读写。
优化:
索引从0开始编号
转自b站up主zst-2001