第二章进程管理1.docx

上传人:b****2 文档编号:23116999 上传时间:2023-04-30 格式:DOCX 页数:30 大小:26.18KB
下载 相关 举报
第二章进程管理1.docx_第1页
第1页 / 共30页
第二章进程管理1.docx_第2页
第2页 / 共30页
第二章进程管理1.docx_第3页
第3页 / 共30页
第二章进程管理1.docx_第4页
第4页 / 共30页
第二章进程管理1.docx_第5页
第5页 / 共30页
点击查看更多>>
下载资源
资源描述

第二章进程管理1.docx

《第二章进程管理1.docx》由会员分享,可在线阅读,更多相关《第二章进程管理1.docx(30页珍藏版)》请在冰豆网上搜索。

第二章进程管理1.docx

第二章进程管理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.有没有这样的状态转换,为什么?

阻塞—>运行;就绪—>阻塞

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 表格模板 > 合同协议

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1