2.1.1 操作系统之进程的定义、特征、组成、组织
1进程的定义
**程序的概念
- 早期的计算机是单道处理系统,所以没有引入了进程的概念,计算机内存中也只能同时运行一个程序,当前运行的这个程序也会占有计算机所有的资源
- 内存中存储的数据也就是这个程序的数据,不需要特别的去分辨是不是其他程序的数据
- 所谓程序就是指令序列,是静态的
进程的概念
- 因为引入了多道批技术,所以我们的内存中就不止一个程序的数据,而且也不是一个程序占有了所有的资源,这里就会涉及到资源的分配问题和找到相应程序的数据问题,所以引入了进程
- 进程的引入,就是为了能让程序能够并发的执行
进程和程序的区别
- 程序的静态的,进程是动态的
- 进程有独立性,能并发的执行,程序不能并发的执行
- 二者无一一对应的关系,但是程序和进程有密切的关系,进程不能脱离具体程序而虚设,程序规定了相应的进程的要完成的动作
- 进程异步运行,会相互制约,程序不具备
- 组成不同,进程包含PCB和程序段和数据段 程序只包含数据段和程序段
- 程序是一个包含了所有指令和数据的静态实体。本身除占用磁盘的存储空间外,并不占用系统如CPU、内存等运行资源。进程由程序段、数据段和PCB构成,会占用系统如CPU、内存等运行资源。
- 一个程序可以启动多个进程来共同完成。
进程的定义
- 进程是程序的一次执行过程——动态性
- 进程实体:程序段,数据段,PCB三个部分组成了进程实体。进程是进程实体的运行过程,是系统进行资源分配和调度的一个独立单位
- PCB是进程存在的唯一标志,进程的创建实质就是创建PCB,撤销进程实质就是撤销进程的PCB
2进程的特征
- 动态性的进程最基本的特征
3进程的组成
- 程序段存储的就是程序运行的代码
- 数据段存储的是程序在运行时候需要使用的,产生的运算数据,如全局变量,局部变量。宏定义的常量等
- 其中最重要的部分就是PCB(程序控制块)
- PCB中记录了操作系统所需的,用来描述进程的当前情况以及控制进程运行的全部信息
- PCB的作用是使一个在多道程序环境下不能独立运行的程序,成为一个能够独立运行的基本单位,一个能与其他进程并发执行的进程
- 也就是说OS是通过PCB来对并发执行的进程进行控制和管理的
- 例如,当OS要调度某进程执行时,要从该进程的PCB中查处其现行状态及优先级;在调度到某进程后,要根据其PCB中所保存的处理机状态信息,设置该进程恢复运行的现场,并根据其PCB中的程序和数据的内存始址,找到其程序和数据;
进程在执行过程中,当需要和与之合作的进程实现同步,通信或者访问文件时,也都需要访问PCB;
当进程由于某种原因而暂停执行时,又须将器断点的处理机环境保存在PCB中。
可见,在进程的整个生命期中,系统总是通过PCB对进程进行控制的,即系统是根据进程的PCB而不是任何别的什么而感知到该进程的存在的。
所以说,PCB是进程存在的唯一标志。
PCB的组成
- 每个进程都有一个唯一的标识号,类似身份号码——PID
- 进程归属哪一个用户——UID 主要是为了共享和保护服务的
- 描述当前进程的状态——进程当前状态 作为CPU分配调度的依据
- 进程的优先级——描述进程抢占处理机的优先级 优先级较高的可以优先获得处理机
- 处理机的相关信息——当我们的进程状态的切换的时候,处理机的状态信息都必须保存在相应的PCB中,以便后期进程重新执行能够从断点继续执行
进程的组织
- 因为系统中可能有很多个进程,所以需要对其进行有效的管理
线性方式
- 将系统中的所有的PCB都组织在一张线性表中,将该表的首地址存放在内存的一个专用地址区域中,但是查找PCB的时候需要扫描整个表
链接方式
- 将具有相同状态的进程的PCB分别通过PCB的链接字链接组成一个队列
- 单CPU的计算机中,同一个时刻只会有一个进程处于运行态
- 对于阻塞队列可以根据阻塞的事件不同分为不同的阻塞队列
索引方式
- 根据进程的状态不同,建立几张索引表,把各个索引表的首地址记录在内存的专用单元,在每个索引表中,记录相应状态的某个PCB在PCB表中的位置