《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 进程的实体
- 3.2.3 进程控制
- 3.3 进程状态和进程控制
- 3.3.1 进程调度的功能
- 3.3.2 进程调度性能标准
- 3.3.3 进程调度方式
- 3.3.4 进程调度算法
- 3.4 进程的同步和互斥
- 3.4.1 几个概念
- 3.4.2 进程同步和互斥的区别
- 3.4.3 进程同步遵循原则
3 进程管理
3.1 基础
3.1.1 进程执行
单道程序
- 按照某种先后顺序逐步进行。
- 顺序性、封闭性、可再现性。
多道程序
- 交替执行。
- 失去程序封闭性
- 不可再现性
3.1.2 进程定义
角度 | 定义 |
---|---|
概念上 | 进程是执行程序的示例,是正在执行的程序。 |
内核角度 | 进程承担系统资源(CPU时间、内存)的实体。 |
3.1.3 进程特征
特征 | 说明 | |
---|---|---|
动态性 | 基本特征 | 程序的一个执行过程,运动中的程序。 |
并发性 | 基本特征 | 建立进程的程序是可并发执行的。 |
异步性 | 基本特征 | 并发程序相互制约。 |
独立性 | 在一个数据集上,作为一个基本单位,具有独立性。 | |
结构性 | 每个进程都由其相对应的数据结构及某独立表项。进程(程序、数据、PCB) |
3.1.4 利弊
利:多道程序并行执行,改善了系统资源的利用率,提高了系统的吞吐量
弊:空间和时间开销增大
3.2 进程状态和进程控制
3.2.1 进程的状态和转换
进程生命周期五种种状态:新建态、就绪、阻塞、运行、终止态
3.2.2 进程的实体
进程控制块(Process Control Block - PCB)包含
结构 | 说明 |
---|---|
程序 | 进程运行时对应的执行代码 |
数据集合 | 运行时必须的数据资源 |
进程数据结构 | 记录进程存在,保持进程所需的数据集合,完成进程控制的重要结构。 |
3.2.3 进程控制
进程控制任务: 控制进程的状态的变化, 使进程执行有序进行,实现对系统中全部进程的有效管理。进程控制是由进程使用操作系统提供的一组系统调用来实现的,且这些系统调用都具有原语的性质,故也称为进程控制原语。
原语: 是执行一定功能的程序段,它的执行不可中断,好像执行一条指令一样。原语具有原子操作性,即一个操作的所有动作,要么全做,要么全不做。这种原子性通过屏蔽中断来实现。
原语类型 | 功能 |
---|---|
创建原语(create) | 为被创建的进程建立一个 PCB,并填入相应的初始项。 |
撤销原语(destroy) | 收回被撤销的进程占用的所有资源,并撤销它的 PCB。 |
阻塞原语(block) | 将进程有执行状态或其他状态转为阻塞状态。 |
唤醒原语(wakeup) | 由“发现者”进程将处于阻塞状态的进程有阻塞状态变为就绪状态。(发现者进程与被唤醒的进程之间存在制约关系,或者是监视事件发生地系统进程) |
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 的时间(剥夺、非剥夺);
调度算法 | 详细 |
---|---|
先进先出(FIFO) | a. 按照进程进入就绪队列的先后次序来分配处理机 b. 非剥夺方式调度方法 c. 优缺点 |
2. 短执行进程优先(SCBF) | a. 按照就绪队列中的进程预期执行时间的长短来分配处理机 b. 剥夺方式调度方法 c. 优缺点 |
3. 优先级调度(最常用) | a. 按照就绪队列中的进程的优先级的高低来分配处理机(优先权:静态、动态) b. 剥夺/非剥夺方式调度方法c. 优缺点 |
4. 时间片轮转法 | 系统将所有就绪进程按到达时间的先后顺序排成一个队列,依次轮流调度各个进程,调度算法从队列头选择一个进程执行,且仅执行一个时间片,当时用完一个时间片后,释放 CPU,并加入到就绪队列尾部,等待继续调度。 难点和关键:时间片的长短的选择。 |
5. 多级队列反馈调度算法 |
3.4 进程的同步和互斥
进程间存在两种形式的制约关系:
a. 直接相互制约:进程合作——同步关系(进程的推进速度之间的制约;进程间通信)
b. 间接相互制约:资源共享——互斥关系
3.4.1 几个概念
概念 | 含义 |
---|---|
临界资源 | 一次仅允许一个进程使用的资源(硬件、软件)。 |
临界区 | 访问这段临界资源的那段程序。 |
进程互斥 | 多个进程在共享临界资源时的相互制约关系。 |
进程同步 | 系统中有多个进程共同完成一项任务,这些进程之间存在着直接制约关系,每一个进程要依赖于其他进程所产生的结果才能继续运行。共同完成一个任务的若干进程称为合作进程。 |
3.4.2 进程同步和互斥的区别
进程同步 | 进程互斥 |
---|---|
互斥进程在单独运行时都可以得到正确结果 | 同步进程不能单独运行。 |
互斥进程不规定执行先后顺序 | 同步进程必须按照严格的顺序执行。 |
互斥进程不知道对方的存在 | 同步进程不仅知道其他进程的存在,而且还要通过与其它进程的通信来达到相互的协调。 |
3.4.3 进程同步遵循原则
1) 空闲让进
2) 忙则等待
3) 有限等待:避免‘死等’(死锁)
4) 让权等待:退出临界区,立即释放处理机,让位给等待进程。避免‘忙等’。