2.2进程的状态及组成-爱代码爱编程
2.2.1进程的基本状态
1.三种进本状态
(1)运行状态
运行进程数<=处理机个数,无进程自动执行空闲进程
(2)就绪状态
获得除处理机之外的所有必要资源。一般有多个,队列按优先级排序。
(3)阻塞状态
进程由于等待输入输出操作或某个同步事件而暂停运行时被称为阻塞状态。不能参与竞争处理机,一般情况下,系统会根据进程等待事件的原因不同,将进程排成多个队列。
2.三种基本状态的转换
3.创建状态和退出状态
创建状态:操作系统在创建进程时有以下活动
- 为进程分配PCB结构,填写相关内容
- 为进程分配进程组,连接进程的父子关系
- 为进程分配所需的资源
- 为进程建立地址空间
- 填写有关管理内存的表格
- 等待加载程序等
退出状态:进程正常或异常结束(如地址越界、非法指令等),操作系统将其从运行状态中移出,回收资源。
并不立即撤销,将相关数据传递给其他进程。
2.2.2进程的挂起状态
1.引入挂起状态的原因
(1)内外存对换的需求
缓和内存紧张,将内存中处于阻塞状态下的进程换至外存,进入挂起。
(2)用户调试程序的需要
当用户调试自己的程序时,希望运行的程序暂停,以便对进程的额地址空间进行读写。
- 若处于运行状态,则暂停运行,进入挂起。
- 若处于就绪状态,则暂时不能被调度,进入挂起。
(3)实时系统中调节负载的需要
当实时系统的负载过重时,避免对实时任务的控制和处理,系统将把优先级较低的进程挂起。
2.进程状态的转换
2.2.3进程控制块
1.进程映像
进程的组成
在CPU上执行的一系列程序和对相应数据进行的操作体现了进程的活动。
- ●进程控制块PCB
- 描述进程本身的特性、进程的状态、进程的调度信息以及对资源的占有情况等,反应了进程的动态特征。
- ●程序段
- 描述了进程本身的功能。
- ●数据段
- 程序操作的一组存储单元,程序操作的对象。由程序相关联的全程变量、局部变量和定义的常量等数据结构组成。
- ●堆栈
- 一段系统存储单元,用于保存程序调用时的参数、过程调用地址和系统调用地址。
2.进程控制块的作用
使程序能成为独立运行的单位,并可和其他进程并发执行。
实体的一部分,操作系统中最重要的数据结构。
常驻内存。
3.进程控制块中的内容
4.进程控制块的组织
常用的组织方式:链接方式
把具有相同状态的控制块链接在一起,其中阻塞队列根据阻塞的原因不同有若干个。