1. 进程的定义
进程:
- 进程是一个程序及其数据在处理机上顺序执行时所发生的活动。
- 进程是进程实体的运行过程,是系统进行资源分配和调度的一个独立单位。
- 动态性
- 程序段、数据段、PCB三部分组成了进程实体(进程映像)
- 一般情况下把进程实体简称为进程。如创建进程,就是创建进程实体中的PCB;而撤销进程,实质上就是撤销进程实体中的PCB
- PCB是进程存在的唯一标志
2. 进程的组成
进程(进程实体)由程序段、数据段、PCB三部分组成。
2.1 程序段
程序代码存放于此
2.2 数据段
程序运行时使用、产生的运算数据。
如:全局变量、局部变量、宏定义的常量等存放于此。
2.3 PCB(进程控制块或进程描述符)
操作系统通过PCB来管理进程,因此PCB中应该包含OS对其进行管理所需的各种信息。
3. 进程的组织
注意:
- 进程的组成讨论的是一个进程内部由哪些部分构成
- 进程的组织讨论的是多个进程之间的组织方式
4. 进程的特征
- 动态性
- 进程是程序的一次执行过程
- 动态地产生、变化、消亡
- 多态性是最基本特征
- 并发性
- 内存中有多个进程实体
- 各进程可以并发执行
- 独立性
- 能独立运行
- 独立获得资源
- 独立接受调度
- 进程是资源分配、接收调度的基本单位!
- 异步性
- 各进程按各自独立的、不可预知地速度向前推进
- 异步性会导致并发程序执行结果的不确定性
- OS要提供“进程同步机制”来解决异步问题
- 结构性
- 每个进程都会配置一个PCB
- 结构上看,进程由程序段、数据段、PCB组成
5. 进程的状态
三种基本状态:
- 运行态:
- 占有CPU,并在CPU上运行。
- 单核处理机情况下每个时刻只能有一个进程处于运行态。
- 就绪态:
- 已经具备运行条件,但由于没有空闲的CPU而暂时不能运行。
- 即进程已经拥有了除处理机之外所有需要的资源,一旦获得处理机,马上进入运行态开始运行。
- 阻塞态:
- 因等待某一事件而暂时不能运行。如等待OS分配打印机、等待读磁盘操作的结果等。
另外两种状态:
- 创建态:
- 进程正在被创建,OS为进程分配资源、初始化PCB
- 终止态(结束态):
- 进程正在从系统中撤销,OS会回收进程拥有的资源、撤销PCB
6. 进程状态间的切换
详细过程:
7. 进程控制
进程控制的主要功能是对系统中的所有进程实施有效的管理,它具有创建新进程、撤销已有进程、实现进程状态转换等功能。
如何实现进程控制?
用原语实现进程控制。
原语:
- 特点:执行期间不允许中断。
- 原子操作:这种不可被中断的操作。
- 原语采用“关中断指令”和“开中断指令”实现。
- 原语运行在核心态。
原语需要做的事情
- 更新PCB中的信息
- 所有的进程控制原语一定都会修改进程状态标志
- 剥夺当前运行进程的CPU使用权必然要保存其运行环境
- 某进程开始运行前必然要恢复其运行环境
- 将PCB插入合适的队列
- 分配/回收资源
进程的创建
创建原语:无 -> 创建态 -> 就绪态
进程的终止
撤消原语:就绪态 / 阻塞态 / 运行态 -> 终止态 -> 无
进程的阻塞和唤醒
阻塞原语:运行态 -> 阻塞态
唤醒原语:阻塞态 -> 就绪态
注意:进程由何时阻塞,就应由何事唤醒。二者成对出现。
进程的切换
切换原语:运行态 -> 阻塞态 / 就绪态;
就绪态 -> 运行态