深入理解操作系统[2]:进程及其状态

版权声明:xueliangwang https://blog.csdn.net/ShyLoneGirl/article/details/84030598

1. 进程基本概念

进程的定义 : 进程实体的运行过程,是系统进行资源分配和调度的一个独立单位。
-------1. 进程是程序的一次执行;
-------2. 进程是一个程序及其数据在处理机上顺序执行时所发生的活动;
-------3.进程是程序在一个数据集合上运行的过程,它是系统进行资源分配和调度的一个独立单位。

进程的特征

1-进程的结构特性
在这里插入图片描述

2-动态性(进程最基本的特征
进程的生命周期:由创建而产生,由调度而执行,由撤销而消亡

3-并发性
多个进程实体同存于内存中,且能在一段时间内同时运行。

4-独立性
在传统的 OS 中,独立性是指进程实体是一个能独立运行、独立分配资源和独立接受调度的基本单位。凡未建立 PCB 的程序都不能作为一个独立的单位参与运行。

5-异步性
进程按各自独立的、 不可预知的速度向前推进,或说进程实体按异步方式运行。

2. 进程与程序

程序顺序执行的特征
1-顺序性:处理器的操作严格按照程序规定的顺序;
2-封闭性:程序是在封闭的环境下执行的,即程序运行时独占全机资源,资源的状态(除初始状态外)只有本程序才能改变它。不受外界因素影响;
3-可再现性:只要环境和初始条件相同,程序重复执行总能得到相同的结果。

程序并发执行的特征
1-间断性:共享,合作,制约导致:执行-暂停-执行;
2-失去封闭性:程序执行受到其他程序的影响;
3-不可再现性。

进程与程序的关系
(1)进程是一个动态概念,程序是一个静态概念。
(2)进程具有并行特征,程序没有。
(3)进程是竞争资源的基本单位
(4)一个程序对应多个进程,一个进程为多个程序服务。

3. 进程的三状态模型

1-就绪状态
进程已经分配了除了处理器以外的所有资源,只要获得处理器就可以进入执行状态。(这样的进程可能有多个,通常排成就绪队列)。
2-执行状态
已经获得CUP,正在运行。在单处理器系统中只有一个进程处于执行状态,多处理器系统中由多个处于执行状态。
3-阻塞状态
正在执行的进程由于发生了某事件而暂停无法继续执行,放弃处理器而进入的状态,(通常由请求IO,申请缓存而引起)。

在这里插入图片描述

引入‘挂起’

1-由终端用户请求;
2-由父进程请求(有时父进程希望挂起自己的某个子进程,以便考查和修改该子进程,或者协调各子进程间的活动);
3-负荷调节需要(主要说实时系统);
4-操作系统需要。

引入挂起后出现9种转换关系

在这里插入图片描述

4. 进程的五状态模型

在三状态模型的基础上又引入创建状态与终止状态。

4-创建状态

创建一个进程一般要通过两个步骤:
-----首先,为一个新进程创建 PCB,并填写必要的管理信息(此刻处于新建态);
-----其次,把该进程转入就绪状态并插入就绪队列之中。
对于处于创建状态的进程,获得了其所必需的资源,以及对其PCB初始化工作完成后,进程状态便可由创建状态转入就绪状态。

5-终止状态

进程的终止也要通过两个步骤:
-----首先等待操作系统进行善后处理,
-----然后将其 PCB 清零,并将 PCB 空间返还系统。

未引入挂起时,
在这里插入图片描述

引入挂起后,
在这里插入图片描述

5. 进程控制块 PCB

1- PCB是操作系统中最重要的记录型结构
2- 操作系统用PCB对并发进程进行管理和控制;
3- PCB是进程存在的唯一标志,它常驻内存
4- 操作系统专门开辟PCB区将所有的CB组织成若干链表或队列。

PCB内部信息

1- 进程标识符
-------内部标识符:唯一的数字编号,给OS用;
-------外部标识符:字母数字组成,给用户使用。

2- 处理器状态
-------1-通用寄存器:8-32个,暂存信息用;
-------2-指令寄存器:要访问的下一条的指令地址;
-------3-程序状态字:条件码,执行方式(系统态/用户态?),中断屏蔽标志(是否允许被中断?),
-------4-用户栈指针:用户进程拥有的系统栈,存放过程和系统调用参数及调用地址。

3- 进程调度信息
-------1-进程状态;
-------2-进程优先级;
-------3-调度算法相关信息;
-------4-事件(进程由执行状态转变为阻塞状态所等待发生的事件,阻塞原因)。

4- 进程控制信息
-------1-程序和数据的地址;
-------2-进程同步和通信机制;
-------3-资源清单;
-------4-链接指针。

PCB的组织方式

链接方式把具有同一状态的 PCB,用其中的链接字链接成一个队列。这样,可以形成就绪队列、若干个阻塞队列和空白队列等。

在这里插入图片描述

索引方式根据所有进程的状态建立几张索引表。例如,就绪索引表、阻塞索引表等,并把各索引表在内存的首地址记录在内存的一些专用单元中。在每个索引表的表目中,记录具有相应状态的某个 PCB 在 PCB 表中的地址。

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/ShyLoneGirl/article/details/84030598