第3章进程管理(1)
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
对于一个程序段中的多条语句来说,也有一个 执行顺序的问题。如果对于下述三条语句的程 序段: S1: a:=x+y S2: b:=a-5 S3: C:=b+1 (其中S2必须在a被赋值以后才能执行;同样S3 也只能在b被赋值 以后才能执行)
8
程序顺序执行时的特征
(1) 顺序性 处理机的操作,严格按照程序所规定的顺序 执行,即只有前一操作结束后,才能执行后继操作。 (2) 封闭性(失去交换性) 程序是在封闭的环境下运行的。即程序在运行 时,它独占全机资源,因而机内各资源的状态(除 初始状态外),只有程序才能改变它。程序一旦开 始运行,其执行结果不受外界因素的影响。 (3) 可再现性 只要程序执行时的环境和初始条件都相同,不 论它是从头到尾的不停顿的执行,还是“走走停停” 地执行,都将获得相同的结果。
25
3.2.2 进程的结构特征
进程的静态描述:由三部分组成 PCB、有关程序段和该程序段对其进行操作的数 据结构集。 各部分的作用: 1 进程控制块:用于描述进程情况及控制进程运行所 需的全部信息。 2 程序段:是进程中能被进程调度程序在 CPU上执行 的程序代码段。 3 数据段:一个进程的数据段,可以是进程对应的程 序加工处理的原始数据,也可以是程序执行后产生 的中间或最终数据。
22
作业和进程的关系 (区别) 1 作业是用户向计算机提交任务的任务实 体。在用户向计算机提交作业之后,系 统将它放入外存中的作业等待队列中等 待执行;而进程则是完成用户任务的执 行实体,是向系统申请分配资源的基本 单位。 2 一个作业可由多个进程组成,且必须至 少由一个进程组成。 3 作业的概念主要用在批处理系统中,而 进程的概念则用在几乎所有的多道系统 中。
20
进程的定义
进程有许多各式各样的定义 (1)进程是可以并发执行的计算部分 (2)进程是一个独立的可以调度的活动 (3)进程是一个抽象的实体,当它执行某个任务时,将 要分配和释放各种资源 (4)行为的规则叫程序,程序在处理机上执行的活动称 为进程。 (5)一个进程是一系列逐一执行的操作,而操作的确切 含义则有赖于以何种详尽程度来描述进程。 进程:一个具有独立功能的程序对某个数据集在处理机 上的执行过程和分配资源的基本单位。 (在这里,程序指一组操作序列,而数据集则是接受程序 21 规定操作的一组存储单元的内容。 )
–程序在并发执行时,是多个程序共享系统中的各 种资源,因而这些资源的状态将由多个程序来改 变,致使程序的运行失去了封闭性。
14
不可再现性
–程序在并发执行时,由于失去了封闭性,也导致失去了可再 现性。 例如:有两个循环程序A和B,共享一个变量N。 程序A: N:=N+1; 程序B: print(N); N=0 ; (假定某时刻变量N的值为n) (1) N:=N+1在print(N)和N:=0之前,此时得到的 N值分别为n+1,n+1,0 (2)N:=N+1在print(N)和N:=0之后,此时得到的N 值分别为 n, 0, 1 (3) N:=N+1在 print(N)和N:=0之间,此时得到的 N值分别为 n, n+1, 0
结 点:表示一个语句、程序段、进程 有向边:表示结点间的偏序关系(前驱关系)
→={(Pi , Pj)|Pi must complete before Pj may start} 若(Pi , Pj) ∈→,可写成 Pi →Pj,称 Pi是 Pj的直接前驱,而 Pj是Pi的直接后继。
3
2
5
1
3 6
7
9
三、 多道程序系统中,程序执行环境的变化
计算机能够同时处理多个具有独立功能的程序(批处理系统, 分时系统、实时系统、网络与分布式系统)。这样的执行环 境具有三个特点: 独立性 随机性 资源共享 硬件资源:CPU、输入输出设备,存储器 软件资源:各种例行程序、各种共享的数据 多道程序环境下执行程序的道数>计算机系统中CPU的个数 单CPU中,则有N-1道程序处在等待CPU的状态 输入输出设备有限将导致这些设备被共享、内存有限将导致 内存被共享
29
PCB表: 系统把所有PCB组织在一起,并把它们放在 内存的固定区域,就构成了PCB表 PCB表的大小决定了系统中最多可同时存在 的进程个数,称为系统的并发度
30
PCB的组织方式
常用的组织方式有两种:链接方式、索引方式。 1、 链接方式: 具有相同状态的PCB,用其中的链接字,链接 成一个队列。这样就可以形成就绪队列、若 干个阻塞队列和空白队列等。对其中的就绪 队列常按照进程优先权的大小排列,把优先 权高的进程的PCB排在队列前面。
13
程序并发执行时的特征
间断性
–程序在并发执行时,由于它们共享资源或为完成 某一项任务而合作,致使在并发程序之间存在相 互制约的关系。(I、C、P是三个相互合作的程序, 当计算程序完成Ci-1的计算后,如果输入程序I尚 未完成对Ii的处理,则计算程序无法进行Ci处理, 致使计算程序暂停运行。)
失去封闭性
28
3.进程调度信息
在PCB中还存放了一些与进程调度和进程兑换有关的 信息。 (1)进程状态。指明进程当前的状态,作为进 程调度和对换时的依据。 (2)进程优先级。用于描述进程使用处理机的 优先级别的一个整数,优先级高的进程优先获得 处理机。 (3)进程调度所需要的其他信息。(进程已等 待CPU的时间总和、进程已执行的时间总和) (4)事件。这是进程由执行状态转变为阻塞状 态所等待发生的事件。(阻塞原因)
6
S4
二、 程序的顺序执行
一个较大的程序通常都是由若干个程序段 组成。在程序执行时,必须按照某种先后 次序逐个执行,仅当前一操作执行完后, 才能执行后继操作。 例如:在进行计算时,总是先输入用户 的程序和数据,然后才能计算,计算完成 后再将结果打印出来。
7
I1
C1
P1
I2
C1
P2
程序顺序执行时的前驱图
27
2、处理机状态信息
处理机状态信息主要是由处理机各种寄存器中的内 容所组成。 通用寄存器。又称为用户可视寄存器,可被用户程 序访问,用于暂存信息。 指令寄存器。存放要访问的下一条指令。 程序状态字PSW。其中含有状态信息。(条件码、 执行方式、中断屏蔽标志等) 用户栈指针。每个用户进程有一个或若干个与之相关 的系统栈,用于存放过程和系统调用参 数及调用地址。栈指针指向该栈的栈顶。
17
例:若有两条语句C=a-b和W=c+1,判断它们是否 可以并发执行? 解:它们的“读集”和“写集”分别为 R(C:=a-b)={a,b};R(W:=c+1)={c} W(C:=a-b)={c} ;W(W:=c+1)={w} R(C:=a-b)∩W(W:=c+1)={Φ } R(W:=c+1)∩W(C:=a-b)={c} 所以:两条语句不能并发执行。
4 存在下面的前驱关系: P1 → P2, P1 → P3,P1 → P4, P2 → P5, P3 → P5, P4 → P6,P5 → P7, P6 → P7
或表示为: P={P1,P2,P3,P4,P5,P6,P7} →={(P1,P2),(P1,P3),(P1,P4),(P2,P5),(P3,p5),(P4,P6),(P5,P7), (P6,P7)} 4
18
程序的顺序执行、程序的并发执行特征比较 程序的顺序执行 1 顺序性 2 封闭性 3 可再现性 程序的并发执行 1 间断性 2 失去封闭性 3 不可再现性
19
3.1.2 进程的引入
多道程序系统的特点是并行性。为了充分利 用系统资源,在主存中同时存放多道作业运 行,所以各作业之间是并行的 各程序由于同时存在于主存中,它们之间必 定会存在相互依赖,相互制约的关系。 (间 接制约关系、直接制约关系) 在多道程序系统所带来的复杂环境中,程序 具有了并行、制约、动态的特性,原来的程 序概念,难以刻画系统中的情况了。 –程序本身完全是静态的概念 –程序概念也反映不了系统中的并行特性
注意:前驱图中不存在循环。 S2 S3 , S3 S2 显然这种前驱关系是不可能满足的,S3的执 行要依赖于S2的执行结果,S2的执行结果又要 依赖于S3的执行结果,这种程序是不可能执行 下去的。
5
例:下述四条语句的程序段画出前驱图 S1: a:=x+2 S2: b:=y+4 S3: c:=a+b S4: d:=c+6 S1 S3 S2
第三章 进程管理
1
主要内容
3.1 进程的基本概念 3.2 进程的描述 3.3 进程的基本状态 3.4 进程控制 3.5 实例研究:UNIX SVR4的进程管理 3.6 进程同步 3.7 死锁 3.8 线程
2
3.1 进程的基本概念
3.1.1
程序的并发执行
一、前驱图(Procedence Graph) 是一个有向无循环图。用来描述程序各部分间的依赖 关系或一个大的计算各子部分间的因果关系。 • 前趋图中的元素:
15
程序并发执行的条件
1966年,Bernstein提出了相邻语句S1, S2可以并发执行的条件。
如果并发执行的各程序段中语句或指令满足 Bernstein的三个条件,则认为并发执行不会对 执行结果的封闭性和可再现性产生影响。
16Байду номын сангаас
将程序中任一语句Si划分为两个变量的集合R(Si) 和W(Si)其中 R(Si)={a1,a2,……am}是语句Si在执行其间必须 对其进行读写的变量 W(Si)={b1,b2,……bn}是语句Si在执行其间 必须对其进行修改,访问的变量 如果对于语句S1和S2,有 ① R(S1)∩W(S2)={Φ } ② W(S1)∩R(S2)={Φ } ③W(S1) ∩W(S2)={Φ }同时成立 即:R(S1)∩W(S2) ∪W(S1)∩R(S2)∪W(S1) ∩W(S2)={Φ }则语句S1和S2是可以并发执行的。
23
3.2 进程的描述 3.2.1 进程的特征
1.动态性
动态性是进程最基本的特征。
2. 并发性
指多个进程实体,同时存于内存中,能在一段时间内 同时运行。并发性是进程的重要特征,同时也成为 OS 的重要特征。引入进程的目的也是为了使该进程 的程序能和其它进程的程序并发执行。
24
3.独立性 进程实体是一个能独立运行的基本单位, 同时也是系统中独立获得资源和独立调度的 基本单位。没有建立进程的程序,不能作为 一个独立的单位参加运行。 4.异步性 进程按各自独立的、不可预之的速度向前 推进 5.结构特性 从结构上看,进程是由程序段、数据段及 进程控制块三部分组成。
比较进程和程序的区别: 1 进程是一个动态的概念,进程的实质是程序的一 次执行过程,动态性是进程的基本特征,同时进 程是有一定的生命期的;而程序只是一组有序指 令的集合,本身并无运动的含义,是静态的。 2 并发性,并发性是进程的重要特征,引入进程的 目的正是为了使其程序和其它程序并发执行;而 程序(没有建立进程)是不能并发执行的。 3 独立性,是指进程一个能独立运行、独立分配资 源和独立调度的基本单位;凡未建立进程的程序, 都不能作为一个独立的单位参加运行。 4 不同的进程可以包含同一个程序,同一个程序在 执行中也可以产生多个进程。
10
四、程序的并发执行
I1 I2 I3 I4
C1
C2
C3
C4
P1
P2
P3
P4
程序并发执行时的前驱图
11
在上图中存在下属的前驱关系: Ii Ci ,Ii Ii+1,Ci Pi,Ci Ci+1, Pi Pi+1 Ii+1和Ci及Pi-1是可以并发执行的。
12
程序并发执行: 一组逻辑上相互独立的程序或程序段在 执行过程中,其执行时间在客观上相互重叠, 即一个程序段的执行,尚未结束,另一个程 序段的执行已经开始的这种执行方式。 即 时间段的并行。
26
进程控制块中的信息
进程控制块中主要包括四个方面用于描述和控制进程 运行的信息。
1.进程标识符信息
进程标识符用于唯一的标识一个进程。 外部标识符。由创建者提供,通常是由字母、数 字组成,往往是用户(进程)访问该进程使用。如: 计算进程、打印进程、发送进程、接收进程等。 内部标识符:为了方便系统使用而设置的。在所 有的OS中,都为每一个进程赋予一个唯一的整数,作 为内部标识符。通常就是一个进程的符号,为了描述 进程的家族关系,还应该设置父进程标识符以及子进 程标识符。还可以设置用户标识符,来指示该进程由 哪个用户拥有。