《Linux操作系统原理分析《Linux操作系统原理分析之进程管理1》》(3)
3 进程管理
3.1 基础
3.1.1 进程执行
单道程序
- 按照某种先后顺序逐步进行。
- 顺序性、封闭性、可再现性。
多道程序
- 交替执行。
- 失去程序封闭性
- 不可再现性
3.1.2 进程定义
3.1.3 进程特征
3.1.4 利弊
利:多道程序并行执行,改善了系统资源的利用率,提高了系统的吞吐量
弊:空间和时间开销增大
3.2 进程状态和进程控制
3.2.1 进程的状态和转换
进程生命周期五种种状态:新建态、就绪、阻塞、运行、终止态
3.2.2 进程的实体
进程控制块(Process Control Block - PCB)包含
3.2.3 进程控制
进程控制任务: 控制进程的状态的变化, 使进程执行有序进行,实现对系统中全部进程的有效管理。进程控制是由进程使用操作系统提供的一组系统调用来实现的,且这些系统调用都具有原语的性质,故也称为进程控制原语。
原语: 是执行一定功能的程序段,它的执行不可中断,好像执行一条指令一样。原语具有原子操作性,即一个操作的所有动作,要么全做,要么全不做。这种原子性通过屏蔽中断来实现。
3.3 进程状态和进程控制
进程调度:又称处理机调度。操作系统进程管理的核心任务是为了多个进程合理地分配处理机资源。
3.3.1 进程调度的功能
进程调度的主要功能是:
(1) 记录当前进程的情况,如进程名、指令计数器、状态寄存器及所有通用寄存器等现场信息,将这些信息记录在它的进程控制块中。
(2) 根据一定的调度算法,确定就绪队列中哪一个进程能获得处理机,以及占有多长时间
(3) 回收和分配处理机。当前进程转入适当的状态后,系统回收处理机,然后把处理机分配给调度算法选中的下一个进程。
3.3.2 进程调度性能标准
面向用户的指标:周转时间短、响应时间快、截止时间的保证、优先权准则。
1. 响应时间:从用户提出请求,到系统首次产生响应所经历的时间。(常用于分时 OS)
2. 周转时间:(批处理系统)从用作业提交给系统开始,到作业完成为止。
作业周转时间:外存+内存+处理器+I/O
进程周转时间:内存+处理器+I/O,进程从第一次进入就绪队列开始,到进程运行完毕所经历的时间。
带权周转时间:作业的周转时间与系统为他提供的实际服务时间之比。
3. 截止时间:(实时系统):某任务必须开始执行的最迟时间。
4. 运行时间:处理器+I/O,指进程获得处理器,处于 CPU-I/O 的执行期
例:P1,P2,P3 单独运行时间 21,6,3
当运行方向为:P1,P2,P3。周转时间分别为:21,27,30。平均周转时间为 26;
当运行方向为:P3,P2,P1。周转时间分别为:3,9,30。 平均周转时间为 14;
面向系统的指标:系统的吞吐量高、处理机的利用率好、各类资源的平衡利用
3.3.3 进程调度方式
1. 非剥夺方式:不能从正在运行的进程夺走处理器控制权,除非它运行完毕或因某种原因
阻塞。
2. 剥夺方式:按某种原则,将正在运行的进程强撤销,并将处理器分配给其他就绪进程。
剥夺原则:1)优先级原则;2)短进程优先原则;3)时间片原则;4)强制性剥夺
3.3.4 进程调度算法
解决的两个问题:
a. 选择方式:选择哪个进程(随算法不同而不同);
b. 调度方式:选中它以后,如何给它分配 CPU,及其占用 CPU 的时间(剥夺、非剥夺);
3.4 进程的同步和互斥
进程间存在两种形式的制约关系:
a. 直接相互制约:进程合作——同步关系(进程的推进速度之间的制约;进程间通信)
b. 间接相互制约:资源共享——互斥关系
3.4.1 几个概念
3.4.2 进程同步和互斥的区别
3.4.3 进程同步遵循原则
1) 空闲让进
2) 忙则等待
3) 有限等待:避免‘死等’(死锁)
4) 让权等待:退出临界区,立即释放处理机,让位给等待进程。避免‘忙等’。