1.进程的描述
1.1进程的定义和特征
1.1.1 进程的定义
较典型的进程定义有:
(1) 进程是程序的一次执行。
(2) 进程是一个程序及其数据在处理机上顺序执行时所发生的活动。
(3) 进程是程序在一个数据集合上运行的过程,它是系统进行资源分配和调度的一个独立单位。
(4) 进程是进程实体的运行过程,是系统进行资源分配和调度的一个独立单位。
(5) 进程是一个具有一定独立功能的程序关于某个集合的一次运行活动。(我国78年庐山研讨会)
1.1.2 进程同程序的比较:
- 进程是动态的,程序是静态的:程序是有序代码的集合;进程是程序的执行。通常进程不可在计算机之间迁移;而程序通常对应着文件、静态和可以复制。
- 进程是暂时的,程序是永久的:进程是一个状态变化的过程,是有一定生命期的;而程序可以作为一种软件资料长久保存。
进程与程序的组成不同:进程是由程序和数据、进程控制块三部分组成的。 - 进程与程序的对应关系:同一程序同时运行于若干个数据集合上,它将属于若干个不同的进程。也就是说同一程序可以对应多个进程;一个进程的执行也可以涉及到一个或几个程序(调用)。
1.1.3 进程的特征:
- 结构特征:由程序段、数据段、进程控制块三部分组成(进程实体);
- 动态性:进程的实质是程序的一次执行过程;
- 并发性:多个进程可同存于内存中,能在一段时间内同时运行;
- 独立性:独立运行的基本单位,独立获得资源和调度的基本单位;
- 异步性:各进程按各自独立的不可预知的速度向前推进。
1.2 进程的基本状态及转换
1.2.1 进程的三种基本状态
- 就绪状态:进程已获得除 CPU 以外的所有必要资源,只要得到 CPU,便可立即执行。
- 执行状态:进程已得到 CPU,其程序正在 CPU 上执行。
- 阻塞状态:正在执行的进程因某种事件(如 I/O 请求)的发生而暂时无法继续执行,只有等相应事件完成后,才能去竞争 CPU。
1.2.2 三种基本状态的转换
1.2.3 进程的五种状态转换模型
1.3 引入挂起的进程七种状态转换模型
1.4进程管理中的数据结构
1.4.1 进程的组成
Process Control Block 是灵魂,进程存在的唯一标志。
程序:描述了进程要完成的功能,是进程执行时不可修改的部分。
数据:进程执行时用到的数据(用户输入的数据、常量、静态变量)
工作区:参数传递、系统调用时使用的动态区域(堆栈区)。
1.4.2 进程控制块(Process Control Block, PCB )
进程控制块的作用是使一个在多道程序环境下不能独立运行的程序(含数据),成为一个能独立运行的基本单位,一个能与其它进程并发执行的进程。或者说,OS是根据PCB来对并发执行的进程进行控制和管理的。
- 进程与PCB是一一对应的。
- PCB应常驻内存。
1.4.3 进程控制块中的信息
1.4.4 进程控制块的组织方式
在一个系统中通常有许多的PCB,称为PCB集合。
1)单一队列方式
所有进程的PCB通过链表组成一个单一队列,适用于进程数目不多的系统。
2) 链接方式
相同状态的进程PCB组成一个链表,不同状态对应多个不同的链表。
3)索引方式
对具有相同状态的进程,分别设置各自的PCB索引表,表明PCB在PCB表中的地址。