第二章进程管理1.docx
《第二章进程管理1.docx》由会员分享,可在线阅读,更多相关《第二章进程管理1.docx(30页珍藏版)》请在冰豆网上搜索。
第二章进程管理1
第二章进程管理与通信
2.1程序的顺序执行和并发执行
一、前趋图
无循环有向图,用来表示各程序段语句或进程之间的执行顺序
S1:
a:
=x+y前趋图
S3
S2:
b:
=a-5
S3:
c=b+1
P35图2-1
②
⑤
①③⑦
⑥
S3
④
改错。
补充P35图21(b)
——不是前趋图(此处有循环)
注:
前趋图不是程序流程图
二、程序的顺序执行
机器执行的顺序严格按照程序所规定的顺序执行
例.输入(I)、计算(C)、打印(P)顺序运行:
P2
C2
I2
P1
特征:
·顺序性
·封闭性
·可再现性
三、程序的并发执行
1、什么叫并发执行
并发(concurrence):
指两个或多个事件在同一段时间发生。
并行(Parallel):
指两个或多个事件在同一时刻发生
S1
例1.S1:
a:
=x+2
S3
S4
S2:
b:
=y+4
S3:
c:
=a+b
S2
S4:
d:
=c+6
S1,S2可以并发执行
例2.读、计算、打印并发运行
I4
I3
I2
I1
C4
C2
C1
C3
P4
P3
P2
P1
并发环境下运行程序的优点
·充分利用资源,提高运行效率
·计算和传输可以并行
·传输和控制并行
2、并发运行实例
例1.同时运行文字处理程序、图像处理程序、表格程序
例2.客户/服务器计算模式中的多任务:
同时传送多条信息
3、并发执行的过程
例。
程序A,B,C共驻内存用户区中,
OK
内存
程序计数器
20K
50K()90k()190K()
+6+6
35K
分派程序
50K()
80K
进程A
90K()
进程B
190K()
190K
进程C
α+0
α+1
α+2
α+3
α+4
α+5
α+6
α+7
α+8
α+9
α+10
α+11
(a)进程A的轨迹。
β+0
β+1
β+2
β+3
(b)进程B的轨迹
γ+0
γ+1
γ+2
γ+3
γ+4
γ+5
γ+6
γ+7
γ+8
γ+9
γ+10
γ+11
(c)进程C的轨迹。
α=进程A的起始地址β=进程B的起始地址γ=进程C的起始地址
CPU每执行6条指令产生一个时间中断,转到另一个程序执行,这样轮流执行程序A,B,C,由操作系统中处理器分配程序(分派程序)负责CPU的切换
进程混合执行过程:
图中,δ+0,δ+1,δ+2,δ+3,δ+4,δ+5指令为分派程序(操作系统中处理器分配程序),用来完成处理器切换工作。
程序A
1α+0
2α+1
3α+2
4α+3
5α+4
6α+5
---------超时
分派程序
17δ+0
18δ+1
19δ+2
20δ+3
21δ+4
22δ+5
分派程序
41δ+0
42δ+1
43δ+2
44δ+3
45δ+4
46δ+5
分派程序
7δ+0
8δ+1
9δ+2
10δ+3
11δ+4
12δ+5
程序C
23γ+0
24γ+1
25γ+2
26γ+3
27γ+4
28γ+5
----------超时
程序C
47γ+6
48γ+7
49γ+8
50γ+9
51γ+10
52γ+11
---------超时
程序B
13β+0
14β+1
15β+2
16β+3
------I/O请求
分派程序
29δ+0
30δ+1
31δ+2
32δ+3
33δ+4
34δ+5
程序A
35α+6
36α+7
37α+8
38α+9
39α+10
40α+11
----------超时
可以看出,CPU交替运行程序A,B,C和操作系统中的分派程序
4、并发执行的特性(P37)
·间断性:
并发程序运行通常“走走停停”
·失去封闭性:
并发程序共享资源,资源状态受其它程序影响
·不可再现性:
条件相同,结果可能不同
例3.反映“不可再现性”示例
用Parbegin和Parend把并发程序“括”起来
VarN:
Integer
BeginN:
=0;
Parbegin
ProgramA:
ProgramB:
BeginBegin
repeatrepeat
┆┆
a1:
N:
=N+1;b1:
Print(N)
┆b2:
N:
=0;
untilfalse┆
Enduntilfalse
End
Parend
End
此处可并发执行的程序A,程序B在单CPU上运行,可能被轮流执行,
极端情况下,可能使结果难以预测。
设N的初值为n,A,B运行切换顺序如下:
①a1b1b2:
N=n+1,打印:
n+1,N=0
②b1b2a1:
打印n,N=0,N=1
③b1a1b2:
打印n,N=n+1,N=0
2.2进程的描述
一、进程的引入
向题:
并发执行的程序如何被处理机“交替”运行,
每次被切换后程序如何才能继续运行?
什么时候会切换到另一个程序运行?
为此:
OS必须跟踪(记录)每个程序的运行情况,如为每个运行的程序保存一些数据:
切换时的程序计数器、寄存器、变量当前值等。
引入进程概念,OS控制进程(运行的程序)执行
最简单的运行的程序(进程)模型由两种状态构成:
运行、非运行。
分派
运行
非运行
进入退出
暂停
(a)状态转换图
退出
分派
处理器
进程队列
进入
暂停
(b)进程队列图
二、进程的定义
1.进程(Process):
是一个具有独立功能的程序在一个数据集合上的一次动态执行过程。
2.进程与程序的区别与联系
·进程是动态的,程序是静态。
·进程是暂时的,程序是永久的。
·进程的组成包括程序、数据和进程状态信息。
·进程与程序的密切关系:
·一个程序可以对应多个进程,如一个编辑程序可以对应多个进程同时运行。
·一个进程可以包括多个程序,进程可以创建其它进程(父子进程)。
3.进程的特征
·动态性:
进程的状态在生命周期中改变
由创建而产生;由调度而执行;因得不到资源而暂停执行;由撤消而消亡。
·并发性:
多个进程同时运行
·独立性:
各进程互相独立运行,不能互相影响。
·异步性:
各进程各自独立的,以不可知的速度向前推进,“异步”指各进程执行速度可以互相没有关系
·结构特征:
进程地址空间的结构划分:
代码段、数据段、进程控制块,这三部分称进程映像
三、OS管理与并发相关的问题
1.OS必须能跟踪大量活跃的进程——进程控制块
2.OS必须为每个活跃的进程分配资源。
包括处理机时间、内存空间、I/O设备、文件等。
进程是分配资源的单位。
3.OS必须保护每个进程的数据和物理资源不被其它进程侵犯。
4.进程执行的结果与其他并发进程执行的相对速度无关。
四、进程的基本状态和状态转换
1.五种基本状态模型(P41)一个进程在某一时刻只能处在一种状态。
·执行态:
进程正在处理机上运行(进程已获得CPU)―――单CPU只有一个进程处在执行态。
·就绪态:
进程已获得除CPU外的所有其他必要的资源―――可以有多个进程处在就绪态
·阻塞态(睡眠态,等待态):
进程由于等待I/O操作或其他条件发生而暂停执行的状态―――可以有多个进程处在阻塞态。
·创建态:
进程刚创建,尚未进入就绪队列中。
·终止态:
进程已正常或异常结束,但尚未撤消。
2.状态转换
·执行→就绪:
中断(时钟),高优先权抡占,进程被动放弃。
·执行→阻塞:
I/O请求或等待事件,进程主动放弃。
·就绪→执行:
调度程序选择。
·阻塞→就绪:
I/O完成或事件发生、被唤醒。
结束
新进程
时钟中断
接纳完成
执行
就绪
进程调度
I/O完成或事件发生I/O请求或等待某事件
阻塞
图2-5进程的五种基本状态
3.具有挂起状态的进程转换图―――“挂起”表示让进程暂时静止
执行
请求I/O
挂起
激活(解挂)
活动
就绪
静止
就绪
挂起
释放
活动
阻塞
静止
阻塞
激活释放
挂起
图2-6具有挂起状态的进程状态图
(1)引入挂起状态的理由
·终端用户暂停自己的进程
·父进程需求:
如到某个阶段暂时挂起某个子进程
·对换的需要
·OS的需要
(2)挂起状态不等于阻塞状态:
挂起状态通常不缺乏资源
(3)挂起状态到其它状态的转换(P43)
·活动就绪→静止就绪:
被挂起
·活动阻塞→静止阻塞:
被挂起
·静止就绪→活动就绪:
静止就绪进程被激活
·静止阻塞→活动阻塞:
静止阻塞进程被激活
·静止阻塞→活动就绪:
阻塞原因的事件发生但未被激活
五、进程控制块PCB(processcontrolBlock)
1.PCB的作用
·OS记录进程情况的数据结构—-OS使用(用户不能直接使用)
·OS根据PCB的信息对进程进行管理和控制
·PCB是进程实体的一部分
·PCB是进程存在的唯一标志
2.PCB的组成(P44)
·进程标识信息:
·进程调度信息
·进程运行现场信息
·其他信息
3.PCB的组织方式
基本队列:
运行队列(单CPU只有一个进程),就绪队列,阻塞队列,空闲队列
丙0
丁
丁运行就绪运行
丙就绪运行
乙就绪运行
阻塞
甲就绪运行就绪
时间片
(1)链接方式
空闲队列指针
PCB1
4
PCB2
3
PCB3
0
PCB4
8
PCB5
PCB6
7
PCB7
9
PCB8
0
PCB9
┆
图2-7PCB链接队列示意图
运行进程:
5
就绪进程:
1,4,8
阻塞进程:
2,3
(2)索引方式
阻塞表指针
就绪索引表
3
4
阻塞索引表
7
6
5
PCB1
PCB2
PCB3
PCB4
PCB5
PCB6
PCB7
图2-8按索引方式组织PCB
六、进程映象(进程的物理组成)
用·用户数据:
程序数据(局部全局变量、常量)
户·用户程序:
代码
进·用户栈:
存放过程调用的参数,返回地址等
程·进程控制块
进程标识
进程状态信息
进程控制信息
用户栈
私有用户地址空间
(程序、数据)
共享地址空间
进程标识
进程状态信息
进程控制信息
用户栈
私有用户地址空间
(程序、数据)
共享地址空间
进程标识
进程状态信息
进程控制信息
用户栈
私有用户地址空间
(程序、数据)
共享地址空间
进程1进程2进程n
图2虚拟内存中的用户进程
七、操作系统控制结构
为了管理进程和资源,操作系统必须掌握每一个进程和资源的当前状态信息,操作系统为每个被管理者建立并维护一些信息表(数据结构)
·内存表:
用来跟踪主存和辅(虚拟)存
·I/O表:
管理I/O设备
·文件表:
提供当前文件存在的信息
进程1
·进程表:
——管理CPU
内存
设备
文件
进程
内存表
I/O表
文件表
进程1
进程2
┇
进程n
进程表
进程n
2.3操作系统内核
一、处理机的执行状态
CPU指令系统有两类指令.
.特权指令:
允许操作系统使用,不允许一般用户使用
(如修改程序状态字;设置中断屏蔽:
启动I/O设备;清内存;设置时钟等)
.非特权指令:
用户均可用的
·管态(系统态,核心态):
处在管态下可以执行全部指令(包括特权指令),使用所有资源,并具有改变处理机状态的能力。
一般指操作系统内核程序运行时所处的状态。
特权指令是不允许一般用户使用,只能由OS使用的指令
·目态(用户态):
处理机执行用户程序(除操作系统外的一切程序。
包括其它系统程序。
处在目态下只能执行非特权指令。
一般是用户程序运行时的状态。
区分系统态和用户态的原因是为了区别OS和用户态程序享用资源的权限,这样做的目的是为了保证OS的安全。
(这两种状态时可转换的)
二、中断
1.中断的引进
主机对外设的管理方式:
(1)程序查询方式
CPU启动外设后,要了解I/O工作何时结束,CPU反复执行“查询指令”,直到I/O工作完成。
I/O查询
采集I/O设备状态
I/O设备准备就绪
是
主机与I/O设备交换数据
此方式是:
在I/O设备工作期间,CPU将处于反复查询状态(等待)。
故实际上CPU效率很低。
(2)中断控制方式
当I/O设备完成I/O操作:
(为新的I/O操作做好准备时,由硬件向CPU出发信号(设置中断位),CUP转而执行中断服务程序,然后返回执行原来的主程序)。
主程序
CPU工作
启动外设
CPU工作中断请求I/O操作结束
CPU响
应中断中断服务(OS)
程序入口
CPU工作返回
主程序实现数据交换
中断控制方式使得在I/O设备工作时,CPU无需反复查询I/O设备工作状态,可以继续执行原来的程序(或其它程序),当I/O设备完成I/O操作产生中断,CPU才处理该中断,这样大大提高了CPU运行效率。
2.中断的定义
所谓中断是指CPU对系统中发生的异步事件的响应。
异步事件是指无一定时序关系的随机发生的事件。
“中断”指当异步事件发生后,打断了处理机对当前程序的执行,而转去处理该异步事件,直到处理完该异步事件后,再转回原程序的中断点继续执行。
3.中断的类型(中断源:
引起中断发生的事件)
中断寄存器:
记录中断,中断寄存器的内容称中断字
·外中断:
中断信号来自处理机以外的硬部件,如I/O中断,时钟中断。
·内中断:
中断信号来自处理机内部的硬部件
·访管中断:
由执行系统调用(访管)指令引起
·硬件故障中断:
如电源失效,奇偶校验错,寻址错。
·程序性中断:
如非法指令,算术溢出,地址越界
中断事件又分为:
意外事件:
事先未想到的如硬件故障。
随机事件:
事先知道会发生,但不知发生的确切时间,如I/O中断。
4.中断的处理
中断响应具体做法:
CPU在执行每条指令后扫描中断寄存器,查看有无中断请求。
如果没有,则运行下一条指令;如果有中断请求,则通过交换中断向量引出(进入)中断处理程序.具体实现:
·硬件中断机构:
由硬件设置中断位软、硬件结合
软件中断处理:
OS的中断处理程序
·CPU响应中断时间:
通常是在两条指令执行之间
·中断处理过程:
①保护被中断的现场于内存相应的保留区中。
②分析中断源,根据中断类型转而执行相应的中断处理程序。
③恢复被中断的程序的现场,继续原来的执行。
中断要保护的程序现场包含:
·断点:
被中断程指令的下一条指令地址
·CPU中通用寄存器的内容,含有现行程序的中间结果
·处理机的程序状态字PSW
包含程序运行时机器的状态(核心态/用户态)中断屏蔽码,与程序运行有关的信息。
新PSW
老PSW
机器状态位中断屏蔽PC(程序计数器)
中断屏蔽
现行PSW寄存器
●中断处理的硬件操作为:
·将处理机的PSW压入堆栈
·按中断向量地址(包括中断处理程序的IP)取出中断处理程序的程序状态字,放入处理机的PSW寄存器中。
·中断处理程序处理各种中断——软件(OS)
5.多级中断和中断屏蔽
当同时有多个中断请求时,CPU接受中断优先级为最高的那个中断,而暂不处理中断优先级较低的中断。
系统通常按中断源的“紧急程度”分成不同优先级的中断。
中断屏蔽:
是指在CPU运行的程序不希望在其执行过程中被别的事件所中断,这种情况称中断屏蔽。
中断屏蔽可在PSW中设置中断屏蔽位以屏蔽某些指定的中断类型:
·若某类中断屏蔽位被设置,则不响应这类中断
·若PSW中中断屏蔽位未被设置,则可接受(其中断级别)高于运行程序的中断优先级的那些中断。
·不可屏蔽中断:
不能不响应的中断
中断是现代计算机系统中基本设施之一,它起着通讯联络作用,
协调系统对各种外部事件的响应处理.中断是实现多道程序的必要条件.
三、时钟和时钟管理
1.时钟的作用
·内部定时:
如分时系统的时间片轮转用的间隔时钟;定时唤醒某些需要执行的事件。
·分析比较:
计算机系统运行时间,用户运行时间等。
·统计:
计算使用各种设备的时间。
2.物理时钟:
由脉冲电路产生脉冲数对时钟寄存器进行加1(或减1)产生时钟。
3.虚时钟:
由内存单元构成,记录进程的一些时间参数(如运行时间,昂贵设备使用时间)。
正向时钟和逆向时钟。
四、原语操作:
原语:
一段OS的程序
原语:
原子操作(AtomicOperation),一个操作中的所有动作,要么全做,要么全不做,即不可分割的操作。
原语操作由若干条指令所构成,用于完成一定功能的过程。
OS中一些基本操作是利用原语操作实现的,如对进程控制进程同步等都是原语操作。
原语操作可以通过屏蔽中断方式实现。
五、操作系核心(内核)
OS的核心是指最底层的模块组成的部分,包括:
·与底层硬件设备相关的模块,如设备驱动程序
·运行频率较高的模块,包括:
中断处理、时钟管理、原语操作
·OS的公共模块
OS其它
OS核心
硬件
2.4进程控制原语
一、创建进程原语(P48)
1.何时创建进程
·分时系统用户登录时
·批处理系统作业调度选中某一作业为其创建进程
·用户进程执行系统调用(如I/O服务),系统创建一个I/O进程来完成。
·用户父进程创建子进程
2.进程树
A
一个进程总是由系统进程或另一个进程创建的,创建进程的称为父进程,被创建的为子进程。
进程树表示了这种父子关系。
C
B
E
H
G
F
D
K
M
L
J
I
3.创建进程原语的操作(P49)
·申请空白的PCB,分配唯一的内部标识符
·初始化PCB
·为新进程申请资源
·插入就绪队列——有的系统不是立即将新进程插入
二、进程终止原语
1.引起进程终止的事件
·正常运行结束
·异常结束,如P49中,越界错、非法指令等
·外界干预,强制性停止
2.终止进程操作
中止进程执行,回收进程占用的资源
三、进程的阻塞与唤醒原语
1.引起进程阻塞和唤醒的事件
(1)引起进程阻塞的事件
·请求系统服务不能得满足时(如资源已被占用)
·启动某种操作,操作未结束时(如I/O操作)
·等待其他进程的数据(或消息)
·等待新任务
阻塞是进程主动行动,进程通过调用阻塞原语把自己阻塞。
(2)引起进程唤醒的事件
·资源回收时
·操作结束时
·其他进程发送数据后
·新任务到来时
进程唤醒是其它进程调用唤醒原语进行
2.阻塞原语操作
·停止进程执行
·改变进程状态为阻塞
·放入阻塞队列——有时按不同原语构成不同队列
·调用CPU调度程序、调度另一个进程运行
3.唤醒原语操作
·把被唤醒的进程从阻塞队列撤出
·改变进程状态为就绪
·插入就绪队列
四、再理解状态转换图
运行
I/O请求
等待事件进程调度
就绪
阻塞
事件发生I/O
请求完成
例:
用户进程A,用户进程B的并发运行过程
用户进程A程序如下:
定义数组L[1…10000]
┆
计算L[i]
┆
阻塞→打印L转系统调用打印进程
┆传送数组首地址和传输个数→打印机打印
┆启动打印机,打印结束产生中断信号,
打印结束的中断处理
唤醒进程甲。
其它
进程B就绪运行运行
中断
打印进程运行打印结束处理
进程A运行阻塞就绪
五、进程的挂起和激活
·挂起情况:
用户进程请求将自己挂起
父进程将子进程挂起
·处于任何状态的进程都可能被挂起
执行
挂起
活动
阻塞
静止
阻塞
静止
就绪
就绪
挂起
·挂起操作:
主要是改变该进程的状态
根据挂起前的状态决定挂起后的状态
·激活操作:
改变该进程的状态
根据激活前的状态决定激活后的状态
2.5系统运行过程
一、OS内核处理流程
·内核的运行是由接收一个中断开始(由中断接管CPU运行权)
·内核是一组程序模块,以程序方式运行(不是以进程方式运行)
内核运行流程图
用户程序
用
户
态
发现中断源
硬
件
装配中断源
完
成
交换程序状态字
产生中断处理程序运行
强迫中断事件
自愿中断事件
操
保护现场
保护现场
作
分析中断源
系
统
分析参数
内
核
原语
完
I/O中断处理
外中断处理
校验中断处理
程序性
中断处理
成
原语处理
广义指令处理
系统调用
还有中断源吗
进程调度
用
户用户程序
态
二、内核运行的特点
·内核是由中断驱动
·内核的执行是连续的——不是以进程方式
·内核在屏蔽中断状态下执行(优先级)
·内核可以使用特权指令
三、虚拟机的特点
内核和裸机组成了一台虚拟机,进程或模块在虚拟机上运行,它比裸机功能更强大,具有以下特征:
·虚拟机为每个进程提供一个虚处理机。
·虚拟机没有中断,因而进程或模块无需处理中断。
·虚拟机为进程或模块提供了功能较强的指令系统。
即进程能够使用机器的非特权指令,广义指令(系统调用)和原语所组成的指令系统。
四、关于进程的再认识
·进程(线程)是唯一并发执行的单位,又是一个资源分配的单位,调度的单位(线程可能是调度单位)
·进程与程序的区别
进程程序
有状态无状态
有优先级无优先级
有队列无队列
可并发运行不能并发运行
补充习题
2.1程序在顺序执行和并发执行时,分别具有哪些特性
教材习题:
P603781112131415
思考题
1.如果系统中有n个进程,运行的进程最多几个,最少几个;就绪进程最多几个最少几个;等待进程最多几个,最少几个。
2.有没有这样的状态转换,为什么?
阻塞—>运行;就绪—>阻塞