文章目录
- 1 概述
- 1.1 三态模型
- 1.2 五态模型
- 2 进程间的通信
- 2.1 信号量机制 S
- 2.2 PV 操作
- 3 扩展
- 3.1 常考题
1 概述
1.1 三态模型
状态 | 描述 |
---|---|
运行 | 获得 CPU,正在执行 |
就绪 | 获得除 CPU 外的所有资源 |
阻塞 | 也称 “等待”,执行中的进程由于某种原因不能继续执行,从而放弃 CPU,处于等待状态 |
1.2 五态模型
相比于三态模型,五态模型,多个 “新建” 和 “终止”
2 进程间的通信
2.1 信号量机制 S
- 信号量(Semaphore,S):一种特殊的变量,相当于 计数器
- 信号量是一个整数
- S > 0 时,表示当前可用 资源的个数
- S < 0 时,表示等待使用该资源的 进程个数
- S 取值范围: [ − ( n − m ) , m ] [-(n-m) , m] [−(n−m),m],其中 n:进程数,m:资源数
- − ( n − m ) -(n-m) −(n−m):对应( S < 0 )
- m m m:对应( S > 0)
- 说明: 信号量的值仅能由 PV 操作来改变
2.2 PV 操作
- P 操作:使 S = S - 1,若 S >= 0,则该进程 继续执行,否则进入 等待队列,即为 申请资源(箭头指入)。
- V 操作:使 S = S + 1,若 S <= 0,则 唤醒 等待队列中的一个进程,即为 释放资源(箭头指出)。
P:荷兰语 Passeren,表示 通过(申请资源)
V:荷兰语 Vrijgeven,表示 释放(释放资源)
3 扩展
3.1 常考题
【例题1】以下进程状态转换,不会发送的转换是()的转换。
A.就绪到运行
B.运行到就绪
C.等待到运行
D.运行到等待
参考答案:C
记忆:就绪 与谁交互都可以,等待 只能到 就绪
【例题2】假设系统有 n 个进程共享资源 R,且资源 R 的可用数为 3,其中 n ≥ 3 n\geq3 n≥3。若采用 PV 操作,则信号量 S 的取值范围应为()
A.-1 ~ n-1
B.-3 ~ 3
C.-(n-3) ~ 3
D.-(n-1) ~ 1
参考答案:C