进程
1.为什么要引入进程
为了使程序在多道程序环境下能够并发执行,并对并发执行的程序加以控制和描述。
2. 进程的定义
进程是具有独立功能的可并发执行的程序在一个数据集上的运行过程,是系统进行资源分配和调度的基本单位。
3.程序和进程的区别与联系
- 进程是程序的一次执行是一个动态的概念而程序是完成某个功能的指令序列是一个静态的概念。
进程可以说是程序的运行实体,没有程序也不会有进程。
- 进程是系统进程资源分配和调度的一个独立单位,程序不是。
- 程序可以作为一个软件资源长期保存而进程是程序的一次执行过程。进程是临时的、有生命的,他由创建而产生,完成任务后则被撤销。
- 进程是有结构的。 由程序、数据和进程控制块三部分组成。
4. 进程的特征
- 动态性: 进程是进程实体的执行过程,它的动态性表现在“由创建而产生,由调度而执行,因为得不到资源所以暂停执行,因为撤销而消亡”
- 并发性: 指多个进程实体同时存在于内存中,并且能在一段时间内同时运行。
- 独立性: 指进程实体是一个能独立运行的基本单位,同时也是系统中独立获得资源和独立调度的基本单位。
- 异步性: 指进程按各自独立的、不可预知的速度向前推进,进程按异步方式运行
- 结构特征: 从结构上看进程实体由程序段、数据段及进程控制块三部分组成。
5. 进程的基本状态和转换
进程的三种状态
- 就绪状态 :只差处理机资源,获得处理机资源即可运行
- 执行状态 :进程已经获得了处理机,正在执行; 单处理机系统中只能有一个进程处于执行状态,多处理机系统中可能有多个进程处于执行状态。
- 阻塞状态 :进程因为发生某种事件(如I/O请求,申请缓存空间等)而暂停执行时的状态。
三种状态的转换
进程的挂起状态
为什么需要挂起状态?
挂起 —> 将进程有内存调入到外存
- 终端用户的需要 :终端用户在自己的程序运行期间有发现可疑问题时,往往希望是自己的进程静止下来。
- 父进程的需要 : 父进程常常需要考察和修改子进程或者当要协调各子进程间的活动时要挂起自己的子进程。
- 操作系统的需要 :操作系统有时需要挂起某些进程,检查运行中资源的使用情况及进行记账,以便改善系统运行的性能。
- 对换的需要 :为了缓解内存紧张的情况,将内存中处于阻塞状态的进程换至外存上。
- 负荷条件的需要 :当实时系统中的负荷较重可能影响到对实时任务的控制时,可由系统把一些不重要或不紧迫的程序挂起,以保证系统仍然能正常运行。
引入挂起状态后的进程转换图
6. 进程控制块(PCB)
什么是进程控制块
进程控制块是进程实体的一部分,是操作系统中最重要的数据结构,记录了操作系统所需的、用于描述进程情况及控制进程运行所需的全部信息。
进程控制的作用
-
使一个多道程序环境下不能独立运行的程序(含数据),成为一个能独立运行的基本单位,一个能与其他进程并发执行的进程。
-
系统总是通过其PCB对进程进行控制
-
进程控制块PCB是进程存在的唯一标志。
进程控制块中的信息
- 进程标识符信息
- 外部标识符 : 由用户(进程)在访问该进程时使用,通常由创建者提供,由字母、数字组成。
- 内部标识符 : 为方便系统使用而设置。 在所有的操作系统中都为每一个进程赋予一个唯一的整数作为内部标识符,通常就是一个进程的序号,为了描述进程的家族关系,还应设置父进程标识符及子进程标识符。
- 处理机状态信息
处理机状态主要是由处理机各种寄存器中的内容组成,处理机在运行时,许多信息都放在寄存器中。当处理机被中断时,这些信息被存在中断进程的PCB中,以便该进程重新执行时能从断点顺序执行。
存放处理机状态信息的寄存器包括
- 通用寄存器
- 指令计数器
- 程序状态字PSW
- 用户栈指针
- 进程调度信息
- 进程状态
- 进程优先级
- 进程调度所需要的其他信息
- 事件 :指进程由执行状态变为阻塞状态所等待发生的事件,即阻塞原因
-
进程控制信息
-
程序和数据的地址
-
进程同步和通信机制
-
资源清单 : 是一张列出了除处理机外的进程所需的全部资源及已经分配到该进程的资源清单
进程控制快的组织方式
- 链接方式
把具有相同状态的进程控制块PCB链接成一个队列
- 索引方式
系统根据所有进程的状态建立几张索引表
7.进程控制
进程控制的主要任务是创建和撤销进程以及实现进程的状态转换。
操作系统内核
通常将一些与硬件紧密相关的模块,诸如中断处理程序、各种常用设备的驱动程序以及运行频率较高的模块,都安排在紧靠硬件的软件层次并使它们常驻内存,以便提高操作系统的运行效率,并对他们加以特殊的保护,这一部分成为操作系统的内核。
进程的创建
为描述进程之间的创建关系引入“进程图”
进程图是用于描述进程家族关系的有向树。
为什么要了解进程之间的家族关系?
- 进程可以继承父进程所拥有的资源
- 当子进程撤销时,应将父进程那里获得的资源全部还给父进程
- 当撤销父进程是,也必须同时撤销其所有的子进程
引起进程创建的事件: 1. 用户登录 2.作业调度 3.提供服务 4. 应用请求
进程的创建过程
- 申请空白进程控制块
- 为新进程分配资源
- 初始化进程控制块
- 将新进程插入就绪队列
引起进程终止的事件 1. 正常结束 2.异常结束 3.外界干预
引起进程阻塞和唤醒的事件(阻塞是主动行为,唤醒是被动行为):1.请求系统服务2.启动某种操作3.新数据尚未到达4.无新工作可做
学习资料 : 操作系统 第四版 刘振鹏 张明 王煜著