本系列为个人复习软考中级测试中的一些知识点记录;
记录的时候参考了不少其他的人的文章;
如有错误还请指点,如有侵权请联系我说明。
本文记录进程相关的概念和PV操作
概念:程序的执行过程(动态状态)。
(这是一个狭义的概念,关于进程的概念还有很多种说法,这是我理解的一种说法。)
(1)动态性:是一个动态的执行过程。
(2)并发性:多个进程在同一时间段内并发执行。
(3)独立性:进程是一个独立单位,可以独立运行、独立获得资源和独立调度。
(4)异步性:进程按各自独立的、不可预知的速度向前推进。(走走停停)
(5)结构特征:进程=程序+数据+进程控制块(PCB)。
(1)三种基本状态:
· 运行状态:进程占用CPU,程序正在执行。
· 就绪状态:进程等待CPU。
· 阻塞状态:进程由于等待其它资源暂时无法执行。
(2)五种基本状态
· 运行状态:进程占用CPU,程序正在执行。
· 就绪状态:进程等待CPU。
· 阻塞状态:进程由于等待其它资源暂时无法执行。
· 创建状态:创建一个进程。
· 终止状态:清零PCB,将空白的PCB返还系统。
PCB,存放进程的管理和控制信息的数据结构,用来描述进程的基本情况和运行的信息。
(有点类似于每个人的个人档案)
多个程序在同一时间间隔内同时处于运行状态,但是在同一时刻只有一个程序可以处于运行状态。
一个整数,用来表示资源的数目。
(1)P操作:S-1
S ≥ 0:进程继续。
S<0:进程被阻塞,等待信号量。
(2)V操作:S+1
S>0:进程继续。
S ≤ 0:从信号量的等待队列中唤醒一个正在等待的进程。
假设有五个物品(五个进程),从左到右分别为物品1,物品2,物品3,物品4,物品5;有三个盒子(三个可用资源,即S=3),如图:
(说明:为了方便叙述,将物品进行了排列,放入盒子的同时也加入了具体的位置和顺序,只要符合PV操作的规则,是可以不用按顺序随便放的。)
第一步:放入一个物品1 → 进行了一次P操作 → S-1 → S=2 ≥ 0 → 进程继续
将物品1放入第一个盒子中,此时没有放入盒子的物品有4个(4个进程),剩余的盒子有2个(2个可用资源)
第2步:放入一个物品2 → 进行了一次P操作 → S-1 → S=1 ≥ 0 → 进程继续
将物品2放入第2个盒子中,此时没有放入盒子的物品有3个(3个进程),剩余的盒子有1个(1个可用资源)
第3步:放入一个物品3 → 进行了一次P操作 → S-1 → S=0 ≥ 0 → 进程继续
将物品3放入第3个盒子中,此时没有放入盒子的物品有2个(2个进程),剩余的盒子有0个(0个可用资源)
第4步:放入一个物品4 → 进行了一次P操作 → S-1 → S=-1 < 0 → 进程阻塞,等待信号量
将物品4放入盒子中,此时没有空余的盒子可以放,所以物品4放入了等待队列,此时剩余的物品有1个,剩余的盒子有0个(0个可用资源)
第5步:放入一个物品5 → 进行了一次P操作 → S-1 → S=-2 < 0 → 进程阻塞,等待信号量
将物品5放入盒子中,此时没有空余的盒子可以放,所以物品5放入了等待队列,此时剩余的物品有0个,剩余的盒子有0个(0个可用资源)
第6步:取出一个物品3 → 进行了一次V操作 → S+1 → S=-1 ≤ 0 → 唤醒一个进程
将物品3从盒子中拿出,此时有一个空余的盒子可以放,所以物品4放入了盒子当中,此时剩余的盒子有0个(0个可用资源),等待队列有一个物品
(注意:有两步操作,拿出一个,放入一个,所以还是没有空余的盒子)
第7步:取出一个物品2 → 进行了一次V操作 → S+1 → S=0 ≤ 0 → 唤醒一个进程
将物品2从盒子中拿出,此时有一个空余的盒子可以放,所以物品5放入了盒子当中,此时剩余的盒子有0个(0个可用资源),等待队列没有物品
(注意:有两步操作,拿出一个,放入一个,所以还是没有空余的盒子)
后续步骤:取出一个物品 → 进行了一次V操作 → S+1 → S=1 > 0 → 进程继续 ( X 3)
后续就是将盒子里的三个物品分别取出,每次取出空盒子都增加1,直到取完,空盒子数量为3。
总结:
1、要注意两个操作的四个节点的意思。
2、当有 n个并发进程,m 个可用资源,采取PV操作时,信号量S的取值范围为:-(n-m)~m
1、
(2018.软件评测师(上午))假设系统有n(n≥6)个并发进程共享资源R,且资源R的可用数为3。若采用PV操作,则相应的信号量S的取值范围应为:-(n-3)~3
分析:
有3个可用资源,所以S=3(S的最大数值)
当n=6时,3个资源占用完后,后面没有资源可以占用的进程执行P操作并进入等待队列,当三个进程都进入等待队列时S=0-3=-3(前3个资源一直被占用的情况下)(S的变化:3,2,1,0,-1,-2,-3)
当n时,S = 0-(n-3)=-(n-3)(前3个资源一直被占用的情况下)(S的变化:3,2,1,0,-1,-2,-3,-4,…,-(n-3))
2、
(2018.软件评测师(上午))若一个单处理器的计算机系统中同时存在3个并发进程,则同一时刻允许占用处理器的进程数:最多为1个。
分析:
多个程序在同一时间间隔内同时处于运行状态,但是在同一时刻只有一个程序可以处于运行状态。
1、进程—百度百科
2、PV操作—百度百科
3、PCB—百度百科
4、并发—百度百科
5、并行—百度百科
6、《计算机操作系统(第四版)》