01 进程的组成与状态

什么是进程

进程(Process)是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础。在早期面向进程设计的计算机结构中,进程是程序的基本执行实体;在当代面向线程设计的计算机结构中,进程是线程的容器。程序是指令、数据及其组织形式的描述,进程是程序的执行实体。

进程的组成

在UNIX系统中进程由以下三部分组成:

进程控制块PCB

为了描述控制进程的运行,系统中存放进程的管理和控制信息的数据结构称为进程控制块(PCB Process Control Block),它是进程实体的一部分,是操作系统中最重要的记录性数据结构。它是进程管理和控制的最重要的数据结构,每一个进程均有一个PCB,在创建进程时,建立PCB,伴随进程运行的全过程,直到进程撤消而撤消。

PCB一般包括:

1.程序ID(PID、进程句柄):它是唯一的,一个进程都必须对应一个PID。PID一般是整形数字

2.特征信息:一般分系统进程、用户进程、或者内核进程等

3.进程状态:运行、就绪、阻塞,表示进程现的运行情况

4.优先级:表示获得CPU控制权的优先级大小

5.通信信息:进程之间的通信关系的反映,由于操作系统会提供通信信道

6.现场保护区:保护阻塞的进程用

7.资源需求、分配控制信息

8.进程实体信息,指明程序路径和名称,进程数据在物理内存还是在交换分区(分页)中

9.其他信息:工作单位,工作区,文件信息等

程序段

是进程中能被进程调度程序在CPU上执行的程序代码段。

数据段

一个进程的数据段,可以是进程对应的程序加工处理的原始数据,也可以是程序执行后产生的中间或最终数据。

进程的状态

进程是程序的一次执行,在这个执行过程中,有时进程正在被CPU处理,有时有需要等待CPU,可见进程的状态是会有各种变化,为了方便对各个进程的管理,操作系统需要将进程合理地划分为几种状态。

创建态

操作系统为新进程分配资源、创建PCB

就绪态

进程已经具备运行条件,但由于没有空闲CPU,暂时不能运行

运行态

进程占有CPU,并在CPU上运行

阻塞态

进程因等待某一事件而暂时不能运行

终止态

操作系统回收进程的资源、撤销PCB

注意:单核处理机环境下,每一时刻最多只有一个进程处于运行态(双核环境下可以同时有两个进程处于运行态)

进程状态间的转换

创建态-->就绪态 系统完成创建进程相关的工作

就绪态-->运行态 获取到CPU资源,爱上执行

运行态-->就绪态 时间片到,或CPU被其他高优先级的进程抢占

运行态-->阻塞态 等待系统资源分配,或等待某事件发生(主动行为)

阻塞态-->就绪态 资源分配到位,等待的事件发生(被动行为)

运行态-->终止态 进程运行结束,或运行过程中遇到不可修复的错误

进程的组织方式

在一个系统中,通常有数十、数百乃至数千个进程。为了能对他们加以有效的管理,应当用适当的方式把这些进程信息组织起来。

链接方式

按照进程状态将PCB分为多个队列,操作系统持有指向各个队列的指针。

索引方式

按照进程状态将PCB分为多张索引表,操作系统持有指向各个索引表的指针。

posted @ 2021-02-08 20:34  数大招疯-公众号同名  阅读(364)  评论(0编辑  收藏  举报