操作系统之进程管理(1)

1、关于进程

1.1、进程的定义

​ 程序就是一系列指令序列的集合,程序运行时,程序代码存放在内存中的程序段中,程序处理的数据(变量)放在数据段中。

​ 为了提高计算机资源的利用率,引入了多道程序技术。引入多道技术后,内存中可以同时存放多个程序,系统为每个运行的程序配置一个PCB(进程控制块),用来描述进程的各种信息(如程序代码和数据放在哪里)。

​ 进程是程序的一次执行过程,是动态的。进程是系统进行资源分配和调度的一个独立单位,是资源分配的最小单位。创建进程时新建PCB并分配PID,进程结束后撤销PCB。进程存在的唯一标志是PCB。

操作系统之进程管理(1)

1.2、进程的组成

进程(进程实体)由程序段、数据段和PCB三部分组成。其中操作系统所需要的信息都在PCB中。注意,当进程进程切换时,要把cpu寄存器中的状态保持起来,放在PCB中,以便切换回来能正常运行;程序运行所需要的信息在程序段和数据段中。

形象的总览图如下:

操作系统之进程管理(1)

进程由PCB、程序段和数据段三部分组成,具体需要负责的职能如下:

操作系统之进程管理(1)

其中PCB的具体细节如下图所示:

操作系统之进程管理(1)

1.3、进程的组织方式

分为链接方式索引方式

链接方式:按照进程状态将PCB分为多个队列,操作系统持有指向各个队列的指针

索引方式:按照进程状态,分别建立索引表。操作系统持有指向各个索引表的指针

操作系统之进程管理(1)

操作系统之进程管理(1)

操作系统之进程管理(1)

1.4、进程的特征

进程和程序截然不同!!!

进程是程序的执行过程!是动态的

进程具有独立性(资源分配,调度的独立单位),并发性,异步性,结构性(PCB+程序段+代码段)

操作系统之进程管理(1)

总结:

进程是进程实体的运行过程,是资源分配和调度的独立单位,PCB是进程存在的唯一标志,PCB中含有操作系统所需的关于进程的全部信息。

2、进程的状态与转换

2.1、进程状态

进程的三种基本状态:运行态、就绪态和阻塞态。

运行态:占有CPU、并在CPU上运行

就绪态:已经具备运行条件(除了CPU其他所有的资源都准备好了),但没有空闲的CPU,因此暂时不能运行

阻塞态:因为等待某一个事件而暂时不能运行。(等待操作系统分配打印机、等待磁盘的读写等,CPU是最昂贵的资源,应该将其他资源分配到位,才能得到CPU的服务)

进程两种状态:创建态和终止态。

其中创建态就是操作系统需要完成创建进程,操作系统为该进程分配所需的内存空间等系统资源,并为其创建和初始化PCB(如为进程分配PID

操作系统之进程管理(1)

进程的终止态就是操作系统需要完成撤销进程相关的工作,完成将分配给进程的资源回收,撤销进程PCB等工作。进程运行结束或者由于bug导致进程无法继续执行下去,比如数组越界错误等,需要撤销进程,

操作系统之进程管理(1)

2.2、进程状态的转换

操作系统之进程管理(1)

进程状态转换的完整表示如下:

进程被创建后,处于就绪态,处于就绪态的进程可以被处理机调度而进入运行态,处于运行态的进程可能由于时间片用尽或被其它进程抢占处理机而进入就绪态。

阻塞态只能是运行态主动发出系统调用请求资源而进入的,就绪态的进程不能转为阻塞态。

阻塞态的进程得到资源分配后进入就绪态,不能直接进入运行态。

运行态的进程运行结束或意外退出后进入终止态。

操作系统之进程管理(1)