进程的状态与转换
进程的控制
定义:实现进程状态的转换
通过原语实现。原语通过开中断和关中断来实现保证原语的执行是原子性的。
相关的原语有:
- 进程的创建
- 进程的终止
- 进程的阻塞
- 进程的唤醒
- 进程的切换
定义
为了方便OS 的管理,完成程序的并发执行,进入了进程、进程实体的概念
进程实体:
由PCB、程序段、数据段组成。
其中PCB是系统为每一个程序分配的一个数据结构,称为进程控制块(PCB),用来描述进程的各种信息(如程序代码的存放位置),操作系统通过PCB来管理进程,因此PCB中包含着操作系统管理进程的各种信息。
进程:
PCB、程序段、数据段组成了进程实体。一般情况下,我们就把进程实体称为进程。创建进程就是创建进程实体中的PCB,而撤销进程实体就是删除PCB。
注意:PCB是进程存在的唯一标志。
从不同的角度,进程可以有不同的定义:
- 进程是程序执行一次的过程
- 进程是一个程序及数据在处理机上执行时所发生的活动
- 进程是具有独立功能的程序在数据集上运行的过程,他是操作系统资源分配调度的独立单位
- 进程是进程实体的运行过程,是系统资源分配和调度的独立单位。
组成
PCB的构成
进程标识PID: 是由操作系统分配的唯一ID
各种寄存器值:当进程切换的时候,会把当前进程的情况进行记录,这些记录就会保存到PCB中,如程序计数器等。
进程的组成
组织方式
在一个系统中,通常有数百上千个的PCB。为了能让他们加以有效的管理,应该用适当的方式把这些PCB组织起来。
进程的组织方式有两种:
链接方式:按照进程的状态将PCB分为多个队列,操作系统持有指向各个队列的指针。如执行指针,就绪队列指针,阻塞队列指针,阻塞队列指针等
索引方式:根据进程状态的不同,建立几张索引表,操作系统持有指向各个索引的指针。类似于链接方式,只不过指针指向的是不同索引表,如就绪索引表,阻塞索引表等,
特征
动态性:进程执行一次的过程是动态产生、变化和消亡的
并发性:内存中有多个进程实体,各个进程可以并发的执行
独立性:进程是独立运行、获得资源、独立接受调度的基本单位
异步性:各个进程以独立的、不可预知的速度向前推进。操作系统要提供“进程同步机制”来解决异步问题
结构性:每个进程都会配置一个PCB。结构上看,进程由程序段、数据段、PCB组成