第三章 进程管理
第 3章 进程管理
3.1 进程的概念
3.2 进程的状态
3.3 进程的描述和管理
3.4 进程控制
第三章 进程管理
3.1 进程的概念
进程是操作系统中最基本、最重要的概念。
为什么引入进程的概念呢?
多道程序系统所带来的更复杂的环境中,程序具有
了 并行性, 制约性 和 动态性 的特征。
而原来的程序概念是静态的,不能反映并行的特征。
所以为了刻画系统内部出现的情况,描述系统内部
各作业的活动规律,引入了“进程”这个概念
第三章 进程管理
3.1 进程的概念
进程如何反应系统的并行、制约、动态的特征
呢?
定义:“进程是具有独立功能的程序关于某个数据
集合的一次运行活动”( 1978年全国操作系统会议)
进程和程序的区别,
程序是一组指令的有序集合,是静态的;而进程是程序的
执行,是动态的。
程序是可以永远存在的;而进程是有生命过程的。
进程的组成包括程序和数据。
一个程序可以包括多个进程,一个进程也可以包含多个程
序。
第三章 进程管理
3.1 进程的概念
进程的特征
进程的动态性:创建、调度、执行、暂停、撤消、
消亡等过程
进程的并发性:这是引入进程的主要目的。
进程的独立性:进程一个拥有资源的饿独立单位,
是一个可以独立调度与分派的基本单位。
进程的异步性:进程按各自独立、不可预见的速度
运行。这可能导致程序执行的不可再现性 — 进程同
步。
进程具有结构特征:进程实体是有由程序段、数据
段、及进程的控制块三部分组成的。
第三章 进程管理
3.2 进程的状态
进程在存在过程中,由于多个并行进程
的制约性和动态性,状态会发生变化。
进程的基本状态,
运行状态:进程正在处理器上运行使得状态;
就序状态:进程获得了除处理器之外的一切
资源,等待使用处理器的状态;
阻塞状态:也称等待状态,进程为了等待某
一事件发生而暂时停止运行的状态。
第三章 进程管理
3.2 进程的状态
进程状态转换图
Ne w
Re a dy Runni ng
E nd
Bl oc k e d
S us pe nd
E v e nt W a i t
Re s um e
E v e nt O c c ur s
Di s pa t c h
T i m e out
A dm i t
Re l e a s e
Ki l l e d
第三章 进程管理
3.2 进程的状态
进程的挂起和解除挂起状态
一些系统有“挂起”和“解除挂起”进程的
功能,使用挂起功能的主要原因有,
用户在检查自己作业的中间执行情况和中间结果
时,可以暂时要求挂起进程。
系统出现故障时,暂时挂起进程。
系统资源不足时,可以暂时挂起一部分进程。
第三章 进程管理
3.2 进程的状态
具有挂起状态的进
程状态转换图
Admit
Running
Ready
Suspend
ExitReady
Blocked
Dispatch
Timeout
Event
Wait
Event
Occurs
Release
Blocked
Suspend
Suspend
New
Event
Occurs
Activate
Suspend
Activate
A
d
m
i
t
Suspend
第三章 进程管理
3.3 进程的描述和管理
进程的描述
多道程序系统中,同时有许多进程存在,操
作系统为了对这些进程进行管理和控制,必
须采用一种数据结构来描述每一个进程。这
种数据结构就是进程控制块( PCB:Process
Control Block)
第三章 进程管理
3.3 进程的描述和管理
PCB描述的信息内容
进程标识符
进程名称
进程的优先级
进程的状态
现场保护区
进程协调信号量
进程通信信息
进程所需参数
进程对应执行程序的地址
外部标识符,用户访问
该进程时使用。
内部表示符,由系统分
配的一个唯一整数。
存放与进程调度有关
的信息:状态、优先
级、调度算法、事件
等。 主要保存处理机状态:
通用寄存器 GR、指令
计数器 PC、程序状态字
PSW、栈指针等寄存器
的值。
进程控制信息,
程序和数据的
地址、进程同
步与通信机制、
资源清单、链
接指针等。
第三章 进程管理
3.3 进程的描述和管理
PCB的作用
操作系统根据 PCB来对并发进程执行的进程
实施控制和管理。
保存进程的 ID、进程状态、优先级。
现场保存与恢复
根据 PCB对进程实施调度。
进程产生:操作系统为该进程创建一个 PCB
进程结束:操作系统回收该进程的 PCB
第三章 进程管理
3.3 进程的描述和管理
进程管理
由于 PCB是系统中进程的唯一实体,所以进
程管理实际上就是对 PCB的管理
所有进程的 PCB都组织在同一个链表中
同一状态的进程其 PCB成一链表,多个状态对应
多个不同的链表(如就序进程链表、等待进程链
表等)
所有相同状态的进程按优先数排成一个或多个队

第三章 进程管理
Running
Ready
Blocked
Idling
PCB 1
PCB 2
PCB 3
PCB 4
PCB 5
PCB 6
PCB 7
PCB 8
PCB 9
链表方式
第三章 进程管理
Running
Ready
Blocked
PCB 1
PCB 2
PCB 3
PCB 4
PCB 5
PCB 6
PCB 7
PCB 8
PCB 9
Ready索引表
Blocked索引表
索引方式
第三章 进程管理
3.4 进程控制
进程控制原语
进程创建原语
进程撤销原语
进程阻塞原语
进程唤醒原语
进程挂起原语
解除挂起原语
进程调度原语
第三章 进程管理
3.4 进程控制
A
B C
D E F G H
I J
父进程 (Parent Process)
子进程 (Progeny Process)
祖先 (Ancestor)
进程的创建与终止
当子进程创建时子进程继承父进程所拥有的资源;当子进程
撤消时将从父进程那里继承的资源归还给父进程。
第三章 进程管理
进程创建过程
创建进程请求
OS
调用创建进程原语
Creat()
申请 PCB,
分配进程 ID
为进程分配资源
初始化 PCB
将进程放进 Ready队列
产生新进程事件,
用户登录:当合法用户
登录时
作业调度:批处理系统,
把一个作业调度执行时。
提供服务:当系统收到
服务请求时。
应用请求:当应用本身
需要并发进程时。 为新进程分配一个唯一
的进程 ID,并申请一个空
白的 PCB。
为进程的程序代码、
数据用户栈分配内存
空间。 ( 1)将系统分配的进程 ID、父进程 ID写入
PCB。
( 2)将程序计数器指
向程序的入口地址、
栈指针指向栈顶。
( 3)设置进程状态、
优先级等。
第三章 进程管理
进程的撤销
引发进程的
终止事件
OS
调用进程终止原语
Destroy()
从 PCB集中检索出
该进程的 PCB
读出进程的状态
在 Running状态:终止执
行、设置调度状态为真。
有子进程:终止所有的子
孙进程。
将进程拥有的资源归还给
父进程
把对应的 PCB设成空
三大类,
1、正常结束;
2、异常结束,
( 1)越界错误;( 2)保护错;
( 3)特权指令;( 4)非法指
令;( 5)运行超时;( 6)等
待超时;( 7)算术溢出;
(8)I/O故障;
3、外界干扰,
( 1) OS/操作员终止;
( 2)父进程请求;
( 3)父进程终止。
第三章 进程管理
3.4 进程控制
进程堵塞与唤醒
进程出现某事件
无法继续执行
调用 Block()原语
停止进程的执行
状态 Running →Blocked
把 PCB插入到 Blocked队列
保留处理机的状态
转调度程序
进行新的调度
1、请求系统服务
2、启动某种操作
3、新数据没有达到
4、无新的工作可做
进程堵塞
第三章 进程管理
3.4 进程控制
进程堵塞与唤醒
进程唤醒
所期望的事件出现
调用唤醒原语
Wakeup()
从堵塞队列移出
在 PCB中把
Blocked→Ready
把进程插入到
就绪队列
如 I/O完成、期望的
数据到达、有新的
任务要执行等等。
第三章 进程管理
3.4 进程控制
进程挂起与解挂
挂起
出现挂起事件
调用挂起原语
suspend() 正在执行?
置成静止就绪
活动堵塞?
置成静止堵塞
活动就绪?
置成静止就绪
把进程驻
留到外存
第三章 进程管理
3.4 进程控制
进程挂起与解挂
解挂 发生激活事件
检查内存空间
调用激活原语
Active()
把进程从外存调
入到内存
检查进程状态
静止就绪?
置成活动就绪
静止堵塞?
置成活动堵塞
第三章 进程管理
3.4 进程控制
进程调度
根据一定算法,从
Ready队列中选择一
个进程
把处理机分配给
该进程
更新进程的 PCB
撤消正在运行
的进程
更新该进程的 PCB
保护现场 进程体转换 恢复现场
第三章 进程管理
3.4 进程控制
操作系统与进程
操作系统如何得到对处理器的控制?
操作系统以什么方式运行?
第三章 进程管理
3.4 进程控制
操作系统与进程
操作系统如何得到对处理器的控制?
中断(时钟中断,I/O中断、存储访问故障中断、
访问管理程序中断)
“操作系统是以中断驱动的”
处理器在执行用户进程和操作系统程序的时候,
所处的状态是不同的,需要引起处理器模式开关。
第三章 进程管理
3.4 进程控制
操作系统与进程
操作系统以什么方式运行?
非进程的内核方式
在用户进程内部执行
操作系统进程
第三章 进程管理
进程管理
存储器管理 设备管理
资源管理
中断处理
原语 时钟
操作 管理
支撑
硬件
如系统调用、键盘
命令输入、进程调
度、设备驱动、文
件操作等。
时间片轮转调
度、截止时间
控制、最长时
间控制等
原语:由若干条指令构成、
用于完成一定功能的一个过
程。
原子操作:一个操作中的所
有动作要么不做、要么全部
完成。
进程的调度、分派、
创建、撤消等。
内存分配与回收、
内存保护与对换、
虚拟内存管理等。
设备驱动程序:缓和
CPU与 I/O不匹配的矛盾,
实现设备分配和设备的
独立性等。
O S内核
第三章 进程管理
课后思考题
Page 57
3.1
3.3
3.8
下周三讨论