文章目录
一、知识总览
二、进程的定义
1. 程序
程序:就是一个指令序列。
单道程序:程序的代码放在程序段内,程序运行过程处理的数据放在数据段内(如变量)
多道程序:内存中同时放入多道程序,各个程序的代码、运算数据存放的位置不同。为了方便操作系统管理,完成各程序并发执行,引入了进程、进程实体的概念。
系统为每个运行的程序配置一个数据结构,称为进程控制块(PCB),用来描述进程的各种信息(如程序代码存放位置)。
2. 进程实体
PCB、程序段、数据段三部分构成了进程实体(进程映像)。一般情况下,我们把进程实体就简称为进程,例如:所谓创建进程,实际上是创建进程实体中的PCB;而撤销进程,实质上就是撤销进程实体中的PCB。
PCB是进程存在的唯一标志。
3. 进程的定义
从不同角度,进程可以由不同的定义,比较传统典型的定义有:
- 进程是程序的一次执行过程。
- 进程是一个程序及其数据在处理机上顺序执行时所发生的活动。
- 进程是具有独立功能的程序在数据集合上运行的过程,他是系统进行资源分配和调度的一个独立单位。
即:进程具有动态性。
引入进程实体的概念后,可把进程定义为:
- 进程是进程实体的运行过程,是系统进程资源分配和调度的一个独立单位。
4. 进程和进程实体
严格来说,进程实体和进程并不一样,进程实体是静态的,进程则是动态的。(在考研题目中除专门考查二者区别,均可以认为进程实体就是进程。因此可以说“进程由程序段、数据段、PCB三部分组成”)。
三、进程的组成
1. 组成
进程(进程实体) 由程序段、数据段、PCB三部分组成。
2. 程序段
程序代码即存放在程序段中。
3. 数据段
程序运行时使用、产生的运算数据。如全局变量、局部变量、宏定义的常量,就存放在数据段内。
4. PCB
操作系统通过PCB来管理进程,因此PCB中应该包含操作系统对其进行管理所需的各种信息。
4.1 进程描述信息:
- 进程标识符PID:当进程被创建时,操作系统会为该进程分配一个唯一的、不重复的ID,用于区分不同的进程(类似于身份证号)。
- 用户表示符UID:标识这个进程所属的用户是谁。
4.2 进程控制和管理信息
- 进程当前状态
- 进程优先级
4.3 资源分配清单:
- 程序段指针
- 数据段指针
- 键盘
- 鼠标
4.4 处理机相关信息
- 各种寄存器值:当进程切换时需要把进程当前的运行情况记录下来保存在PCB中,如程序计数器的值表示当前程序执行到哪一句。
5. 小结
- 进程的管理者(操作系统)所需的数据都在PCB中。
- 程序本身的运行所需的数据都在数据段和程序段中。
四、进程的组织
在一个系统中,通常有数十、数百乃至数千个PCB。为了能对他们加以有效的管理,应该用适当的方式把这些PCB组织起来。
进程的组成讨论的是一个进程内部由哪些部分构成的问题,而进程的组织讨论的是多个进程之间的组织方式问题。
1. 链接方式
执行指针:指向当前处于运行状态(执行态)的进程。由于单CPU计算机中,同一时刻只会有一个进程处于运行态,故执行指针指向的就只有一个进程。
就绪队列指针:指向当前处于就绪态的进程。通常会把优先级高的进程放在队头。
阻塞队列指针:指向当前处于阻塞态的进程,很多操作系统还会根据阻塞原因不同,再分为多个阻塞队列。
2. 索引方式
索引方式与链接方式很类似。这些指针指向的是一个索引表,而不是一个队列的头。索引表的各个表项会指向处于该状态的各个进程所对应的PCB操作系统。操作系统会为不同状态的进程建立不同的索引表,各个索引表的表项指向处于这个状态的各个进程的PCB。
3. 小结
五、进程的特征
1. 动态性
进程是程序的一次执行过程,是动态地产生、变化和消亡的。动态性是进程最基本的特征。
2. 并发性
内存中有多个进程实体,各进程可并发执行。
3. 独立性
进程是能独立运行、独立获得资源、独立接受调度的基本单位。进程是资源分配、接受调度的基本单位。
4. 异步性
各进程按各自独立的、不可预知的速度向前推进,操作系统要提供“进程同步机制”来解决异步问题。异步性会导致并发程序执行结果的不确定性。
5. 结构性
每个进程都会配置一个PCB。结构上看,进程由数据段、程序段、PCB组成。
6. 小结
六、总结
- PCB是进程存在的唯一标志。
- 进程的管理者(操作系统)所需的数据都在PCB中。
- 程序本身的运行所需的数据在程序段、数据段中。