本章节目录
1. 进程的概念
1.1 进程的定义
1.允许并发执行的程序在某个数据集合上的运行过程
2.进程是由正文段、用户数据段和进程控制块共同组成的执行环境。
其中,正文段是指存放被执行的机器指令。用户数据段是指存放用户数据。进程控制块指存放进程的运行环境。
1.2 进程的特征
1.并发性。多个进程实体能在一段时间间隔内同时运行。并发性是进程和现代操作系统的重要特征。
2.动态性。进程是实体的执行过程,其过程是动态的(创建进程、获得CPU、执行指令、运行中止)
3.独立性。独立运行和资源调度的基本单位。
4.异步性。进程的执行时断时续,无法预知何时执行,何时停止。
5.结构特征。进程实体包括用户正文段、用户数据段、进程控制块。
1.3 进程控制块
定义:进程控制块是进程实体的一部分,是操作系统中最重要的数据结构。
进程控制块中记录了操作系统所需要的、用于描述进程及控制进程运行所需的全部信息。主要包含:进程标识符信息、处理机状态信息、进程调度信息、进程控制信息。
- 进程标识符信息:用于唯一表示一个进程
- 处理机状态信息:包含通用寄存器、指令计数器、程序状态字、用户栈指针
- 进程调度信息:包括进程状态信息、进程优先级和进程调度所需的其他信息
- 进程控制信息:包括程序和数据的地址、进程同步和通信机制、资源清单、链接指针
1.4 程序和进程的比较
1.4.1 程序的定义
具有独立功能的一组指令的集合
1.4.2 进程的定义
允许并发执行的程序在某个数据集合上的运行过程
1.4.3 程序的执行顺序
1.顺序执行。先进入内存的程序先运行,后面的程序依次排队等候。
顺序执行的特点:顺序性、封闭性、可再现性
2.并发执行。在同一时间间隔内运行多个程序。一个程序执行结束前,可以同时执行其他程序。
并发执行又分为宏观并行和微观串行:
- 宏观并行:用户可以看到多个程序在同时运行
- 微观串行:任意时刻一个CPU上只有一个程序在被执行
并发执行的特点有:
- 间断性:程序在CPU上执行时,是时断时续的
- 失去封闭性:系统的状态不再是只对正在执行的程序可见
- 不可再现性:同一个程序在输入相同的情况下多次运行,可能出现不同的结果
1.4.4 程序和进程的区别
1.程序是静态的、永久的、程序是一组指令的集合
2.进程是动态的、暂时的,进程则是包含了正文段、用户数据段和进程控制块的实体
1.4.5 程序和进程之间的联系
1.进程是程序的一次执行
2.一个程序可以对应多个进程
3.同一个程序可以在不同的数据集合上运行,构成不同的进程
1.5 进程的状态
分为就绪态、执行态、阻塞态三种状态。下面用一个概念图来展示一下进程状态间的联系。
根据进程的调度策略,某一进程会被选中或者落选。被选中的从就绪状态进入到执行状态。
等待某一事件,可能是在申请资源时出现了故障,进而从执行态进入到了阻塞态。
等待事件发生,顺利申请到资源后,进程状态由阻塞态进入到就绪态。
1.6 进程的组织
1.6.1 链接方式
把系统中具有相同状态的进程控制块PCB用其中的链接字连接成一个队列。
例如
执行指针:PCB1(正在执行中的进程)
就绪队列指针:PCB2、PCB3、PCB4
阻塞队列指针:PCB5、PCB6、PCB7
1.6.2 索引方式
系统根据所有进程的状态,建立索引表,索引表中的每个表项指向一个PCB物理块
1.6.3 进程队列
把具有相同状态的进程控制块用队列组织起来。
2.进程的控制
进程的控制分为:创建、阻塞、唤醒、终止
2.1 进程的创建
2.1.1 何时需要创建新进程
用户登录、作业调度、提供服务、应用请求
2.1.2 创建新进程的步骤
1.申请空白PCB
2.为新进程分配资源
3.初始化进程控制块
4.将新进程置入到就绪队列
2.2 进程的阻塞
2.2.1 进程阻塞的场景
1.请求系统服务
2.启动某种操作
3.新数据尚未到达
4.无新工作可做
2.2.2 进程阻塞的过程
1.将进程的状态改为阻塞状态
2.将进程置入到相应的阻塞队列
3.转到进程调度程序,从就绪队列中选择进程为其分配CPU