1.进程的定义和特征
1.1进程的定义
为了使参与并发执行的每个程序(含数据)都能独立运行,在操作系统中必须为之配置一个专门的数据结构,称为进程控制块(Process Control Block,PCB)
这样,由程序段、相关的数据段和PCB三部分便构成了进程实体(又称进程映像)。进程实体简称为进程。
创建进程:创建进程实体中的PCB。撤销进程:撤销进程的PCB
典型的定义:
①进程是程序的一次执行
②进程是一个程序机器数据在处理机上顺序执行时所发生的活动
③进程是具有独立功能的程序在一个数据集合上运行的过程,他是程序进行资源分配和调度的一个独立单位
1.2进程的特征
(1)动态性:由创建而产生,由调度而执行,由撤销而消亡
(2)并发性:多个进程实体同存于内存中且能在一段时间内同时运行
(3)独立性:进程实体是一个能独立运行、独立获得资源和独立接受调度的基本单位
(4)异步性:进程按各自独立的、不可预知的速度向前推进
2.进程的基本状态和转换
2.1进程的三种基本状态
(1)就绪(ready)状态:进程已处于准备好运行的状态,即进程已分配到除cpu以外的所有必要资源后,只要再获得cpu,便可立即执行
(2)执行(running)状态:进程已获得cpu,其程序正在执行。在单处理机系统中,只有一个进程处于执行状态,而在多处理机系统中,有多个进程处于执行状态。
(3)阻塞(block)状态:正在执行的进程由于发生某事件(如I/O请求、申请缓冲区失败等)暂时无法继续执行时的状态,即进程的执行受到阻塞。此时引起进程调度,OS把处理机分配给另一个就绪进程,让受阻进程处于暂停状态,这种暂停状态就叫阻塞。
2.2三种基本状态的转换
2.3创建状态和终止状态
(1)创建状态
创建进程时因所需的资源尚不能得到满足,比如系统尚无足够的内存使进程装入其中,此时创建工作尚未完成,进程不能被调度运行,把此时进程所处的状态称为创建状态。
创建进程的过程,creat()原语
首先由进程申请一个空白PCB
为该进程分配运行时所必须的资源,如代码段、数据段、栈段需要的内存
初始化进程控制块
把该进程转入就绪状态并插入就绪队列
(2)终止状态
当一个进程到达了自然结束点,或是出现了无法克服的错误,或是被操作系统终结,或是被其他有终止权的进程终结,它将进入终止状态
进入终止态的进程不能再执行,但在操作系统中仍然保留一个记录,其中保存状态码和一些计时统计数据供其他进程收集
终止状态,Terminate()原语
检索被终止进程PCB,读取进程状态
若正处于执行状态,立即终止执行并设置调度标志为真,以指示调度新进程
终止子孙进程
资源归还
等待其他进程提取相关信息
PCB清零并将空白PCB返还系统
3.挂起操作和进程状态的转换
挂起操作作用域某个进程时,该进程将被挂起,意味着此时该进程处于静止状态。
如果该进程正在执行,他将暂停执行。若原本处于就绪状态,则该进程此时暂不接受调度。
与挂起操作对应的操作是激活操作。
3.1挂起(Suspend)操作的引入
(1)终端用户的需要
(2)父进程请求
(3)负荷调节的需要
(4)操作系统的需要
3.2引入挂起操作后三个进程状态的转换
(1)活动就绪→静止就绪,进程处于未被挂起的就绪状态,即活动就绪状态,表示为Readya,可接受调度。用Suspend挂起后,转为静止就绪状态,Readys,不再被调度。
(2)活动阻塞→静止阻塞,blockeda→blockeds,静止阻塞的进程在其所期待的事件出现后,将从静止阻塞变为静止就绪readys状态。
(3)静止就绪→活动就绪,用激活原语Active,Readys→Readya
(4)静止阻塞→活动阻塞
3.3引入挂起操作后五个进程状态的转换
(1)NULL→创建
(2)创建→活动就绪
(3)创建→静止就绪
(4)执行→终止
4.进程管理中的数据结构
4.1操作系统中用于管理控制的数据结构
有内存表,设备表,文件表和进程表,进程表又称为进程控制块PCB
4.2PCB的作用
略
4.3PCB中的信息
(1)进程标识符
外部标识符,内部标识符
(2)处理机状态
通用寄存器、PC、PSW、用户栈指针寄存器
(3)进程调度信息
进程状态、进程优先级、进程调度所需的其他信息、事件
(4)进程控制信息
程序和数据地址
进程同步通信机制
资源清单、链接指针
4.4进程控制块的组织方式
(1)线性方式:将系统中所有的PCB组织在一张线性表中,将该表的首地址存放在内存的一个专用区域。实现简单,开销小,但每次查找时需要扫描整张表,因此适合进程数目不多的系统
(2)链接方式:把具有相同状态进程的PCB分别通过PCB中的链接字链接成一个队列,以形成就绪队列、若干个阻塞队列和空白队列等
(3)索引方式:根据所有进程状态的不同,建立几张索引表,把各索引表在内存的首地址记录在内存的一些专用单元中。在每个索引表的表目中,记录具有相应状态的某个PCB在PCB表中的地址。