文章目录
进程
进程描述
进程的定义
进程是一个具有一定独立功能的程序在一个数据集合上的一次动态执行过程。
- 进程是程序的一次运行
- 进程是一个程序及其数据在处理机上顺序执行时所发生的活动
- 进程是具有独立功能的程序在一个数据集合上运行的过程,它是系统进行资源分配和调度的一个单位
进程的组成
一个进程包括了正在运行的一个程序的所有状态信息:
- 程序的代码
- 程序处理的数据
- 程序计数器中的值,指示下一条将运行的指令
- 一组通用的寄存器的当前值,堆、栈
- 一组系统资源,如打开的文件等。
因此,可以从三个方面去理解进程:
- 该进程在执行什么程序
- 该进程在操作哪些数据
- 该进程的状态
进程映像是进程在内存中的体现:
进程和程序的联系
程序是进程产生的基础;
程序的每次执行构成了不同的进程;
进程是程序功能的体现;
通过多次执行,一个程序可以对应多个进程;
通过调用关系,一个进程也可以包含多个程序。
进程和程序的区别
程序是动态地,程序是静态的:程序是有序代码的集合,进程是程序的执行,进程由内核态和用户态。
进程是暂时的,程序是永久的:进程是一个状态变化的过程,程序可以永久保存。
进程和程序的组成不同:进程的组成包括程序、数据和进程控制块PCB。
进程的特点
进程的特征也可以理解为进程和程序的区别。进程相对于程序除了有程序没有的PCB,还有以下几种特性:
动态性
可动态地创建、切换、结束进程。
进程的实质是程序的执行过程,进程有一定的生命周期,由创建而产生,由调度而执行,由撤销而消亡。
并发性
多个进程是可以并发执行而相互之间不受影响的。
并发和并行的区别:并发是一段时间内,多个进程交替执行;并行是同一时刻,多个程序同时执行。
独立性
独立性是指不同进程的工作相互不影响,进程实体是一个能够独立运行、独立获得资源和独立接受调度的基本单位。
制约性
因访问共享数据 / 资源或进程同步而产生制约。
异步性
异步性是指进程按照各自独立的、不可预知的速度向前推荐。
进程控制块(PCB)
简介
进程控制块(PCB)用来描述进程,操作系统为每个进程都维护了一个PCB,用来保存于该进程有关的状态信息。
PCB是进程存在的唯一标志。
对进程的管理实际上就是对PCB的管理。创建进程即为进程生成一个PCB;终止进程即回收进程的PCB;进程的组织管理即对PCB的组织管理。
可以将PCB想象成一下模型:
组成
PCB主要包含四方面的内容:
进程标识符
进程标识符用于唯一的标志一个进程
- 外部标识符,即进程名
- 内部标识符,即进程号
- 用户标识
- 父进程标识
处理机状态
也称为处理机的上下文,保存进程的运行现场信息。主要由处理机的各种寄存器中的内容组成的:
- 通用寄存器,用户程序可以使用的数据、地址等寄存器
- 控制和状态寄存器,如程序状态字PS,程序计数器PC
- 用户栈指针,过程调用/系统调用/中断处理和返回时需要用到它
进程控制信息
-
程序和数据的地址,内外存的首地址
-
调度和状态信息,用于操作系统调度进程并占用处理机使用。
-
进程间通信信息,为支持进程间的与通信相关的各种标识、信号、信件等,这些信息保存在接收方的PCB中。
-
存储管理信息,包含由指向本晋城映像存储空间的数据结构
-
进程所用资源,说明由进程打开、使用的系统资源,如打开的文件等
-
有关数据结构连接信息,进程可以连接到一个进程队列中,或连接到相关的其他进程的PCB中。链接指针,即下一个PCB的首地址
-
进程同步和通信机制
PCB的组织方式
一般来说,系统将所有的PCB组织在一起,并将他们放到内存的固定区域,构成PCB表。
PCB表的大小决定了系统中最多可同时存在的进程的个数。
线性方式
将系统中所有的PCB都组织在一张线性表中,将该表的首地址存放在内存的一个专用该区域中。
链接方式
将具有同一状态的PCB链接形成一个队列,这样就可以形成若干队列,如空白队列、就绪队列、等待队列等,优先级高的PCB排到前面。