操作系统-进程管理

进程状态转换图

进程被指定为几种状态:

1、运行态:这个进程需要的所有资源都已经准备好了,并且给予了CPU资源,这个时候这个进程就属于运行态

2、就绪态:这个进程所有的资源都准备好了,但是还缺少CPU资源.

3、等待态:除了缺少CPU资源,还缺少其他资源,比如和外设的交互或者用户的指令.

 前趋图

通过前趋图可以清楚的认识到任务的先后顺序,哪些任务需要先做,哪些任务需要在完成某些任务的前提下才能做,哪些任务可以并行完成

进程的同步与互斥

 互斥:该资源同一时间只允许一个进程去使用,当一个进程使用该资源时,其他进程需要等待.

 同步:有速度匹配的要求,当俩个进程有一个速度快的,当进度比速度慢的进度快一段后,速度快的要等待那个速度慢的

生产者将产品放入市场,市场满了之后无法再向其中放入产品,这就是互斥,只有当消费者消费了该产品,市场不是满足的,生产者再生产物品放入市场,生产者需要等待消费者先购买产品才能再将产品放入市场,这就是同步

PV操作

 

 当信号量s大于0时,信号量代表当前可用资源的数量,当小于0时,信号量的绝对值代表等待使用该资源的进程数目

P操作是通行操作,用于判断是否有资源来执行进程,如果已没有可用资源,就先将进程放入进程等待队列中,有可用资源就直接继续执行

V操作是释放操作,用于判断进程队列中是否有等待执行进程,如果有等待进程,就调用进程等待队列中的进程,否则继续执行

 

 PV操作是为了解决并发进程中可能会引发的错误异常问题,实现多个进程的同步和互斥功能.

PV操作例题:

 Sn:是书店能够容纳购书者数量的信号量.

当购书者进入书店时,要考虑书店的容量,所以在进入时,增加一个P(Sn)操作,来判断书店中是否还有容量供购书者进入,当购书者离开书店的时候,增加一个V(Sn)操作,使代表书店容量的信号量自加1,如果这时候有等待进入书店的购书者则唤醒他,进入书店.

付款时,要考虑到收银员资源有没有被使用,所以要考虑同步关系,在a1处填入V(S1),而在收银员进程b1处填入P(S1),当购书者进程到付款的时候,唤醒收银员进程,来付款.而在付款的时候,购书者又需要等待收银者进程收费完毕才能离开书店,所以a2处需要填上P(S2),先阻塞购书者进程,在b2处填写V(S2),当收银员收费完毕后,唤醒购书者进程,继续离开书店.

PV操作和前趋图

 

 这题有个简单的办法,将箭头依次从上到下,从左到右,标上S1、S2、S3、S4,直线的开始端填上V(S)操作,直线结束端(即箭头端)填上P(S)操作,然后依次填入需要填空的部分,

原文地址:https://www.cnblogs.com/youjunhui/p/15364226.html