如果这篇博客对您有用的话,可以给我点个赞吗,这对我很重要,谢谢!❤️
文章目录
2.1.1 进程的定义、组成、组织方式和特征
知识总览
2.1.1.1 进程的定义
在讲述进程之前,我们首先要了解一个概念:程序
。
程序实际上就是一个指令序列;早期的计算机那时候只支持单道程序,也就是说,在一个程序传入内存的时候,CPU供他使用,内存供他使用,I/O设备也供他使用。
在这个阶段中,内存属于某一个程序。内存中存放的东西分为两类:一种是
程序段
,一种是数据段
;程序段就是这个程序的代码,而程序里所包含的数据就处于数据段内(如变量、常量)。
引入多道程序技术后;同一时刻内内存中可以放入多道程序,各个程序中的代码、运算程序存放的位置不同。操作系统如果想要在内存中找到各程序的存放位置,那就需要引进
进程
的概念了。
为了方便操作系统管理,完成各程序并发执行,人们引入了进程、进程实体的概念。系统为每个运行的程序配置一个数据结构,称为进程控制块(PCB)
,用来描述进程的各种信息(如程序代码的存放位置)。
2.1.1.2 进程的定义
程序段、数据段、PCB三部分组成了进程实体(进程映像)
。一般情况下,我们把进程实体就简称为进程
;所谓创建进程,实质上就是创建进程实体中的PCB;而撤销进程,实质上就是撤销进程实体中的PCB。也就是说,PCB是进程存在的唯一标志。
从不同的角度,进程可以有不同的定义,比较传统典型的定义有:
- 进程是程序的一次执行过程。
- 进程是一个程序及其数据在处理机上顺序执行时
所发生的活动
。 - 进程是具有独立功能的程序在数据集合上
运行的过程
,它是系统进行资源分配和调度的一个独立单位。
三个定义无不在反映一件事:进程是动态的。
引入进程实体的概念后,我把可以把进程定义为:进程是进程实体的运行过程,是系统进行资源分配和调度的一个独立单位。严格来说,进程和进程实体并不一样,进程实体是静态的,而进程是动态的。除非题目专门考查二者区别,否则我们通常认为进程实体就是进程。因此我们也可以说“进程是由程序段、数据段、PCB三部分组成。”
2.1.1.3 进程的组成
从内存的视角来看,进程由如图所示的三部分组成:
从PCB的角度看,PCB由如图所示的结构构成:
- 进程标识符PID用于进程创建时,操作系统用区分不同的进程,其类似于身份证号。当进程被创建的时候,操作系统就会为该进程分配一个唯一的、不重复的ID。
- 用户标识符UID用于标识进程所属的用户是谁。
- 其余的东西后面会细讲这里不多说。
- 处理器相关信息主要是指一些寄存器的值。当进程切换时,我们需要把
进程当前的运行情况
记录下来保存在PCB中,比如程序计数器的值表示了当前程序执行到哪一句。
从进程的组成来看:
2.1.1.4 进程的组织
在一个系统中,通常有数十、数百乃至数千个PCB。为了对他们加以有效的管理,应当用适当的方式把这些PCB组织起来。
需要注意的是,进程的组成讨论的是一个进程内部由哪些部分构成的问题,而进程的组织讨论的是多个进程之间的组织方式问题。
从进程的组织方式来看,分为两类,分别如下:
2.1.1.5 链接方式
链接方式的工作流程如下图,这里不过多赘述。
2.1.1.6 索引方式
索引方式的工作流程如下图,这里不过多赘述。
2.1.1.7 进程的特征
进程和程序是两个截然不同的概念,相比于程序,进程拥有以下特征: