第二章进程描述与控制

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

程序顺序执行、并发执行特征比较
程序的顺序执行
1 顺序性 2 封闭性 3可再现性
程序的并发执行
1 间断性 2 失去封闭性 3 不可再现性
进程的定义
进程有许多各式各样的定义
(1)进程是可以并发执行的计算部分 (2)进程是一个独立的可以调度的活动 (3)进程是一个抽象的实体,当它执行某个任务时,
将要分配和释放各种资源 (4)行为的规则叫程序,程序在处理机上执行的活动
进程上下文
上文:
– 已执行过的进程指令\数据在寄存器和栈中的内容
正文
– 正在执行的
下文
– 待执行的进程指令\数据在寄存器和栈中的内容
机器指令与寄存器
通过DEBU了解机器指令理解寄存器
C程序
汇编程序
int a = 3; a=a+1; b=a+2;
mov [010B], 3
mov ax, [010B] add ax, 1 mov [010B], ax mov ax, [010B] add ax, 2 mov [010D], ax
CPU现场保护的必要性
CPU
AX
BX
C…X
mov ax, 3 add ax, 1 mov [010B], ax
进程A
mov ax, 5 add ax, bx mov [020C], ax
进程B
Process Control Block (PCB进程控制块)
OS为了管理、控制进程,设置 PCB,存储进程相关信息
同一语句的“读集”和“写集”也可能相 同(交集不为空)
例如计数语句: x=x+1 读集和写集相同 R(x=x+1)=W(x=x+1)={x}
例:下述四条语句
S1: a=x + y
S1
S2: b=z + 1
S3: c=a + b
S3
S4
S4: w=c + 6
S2
R(S1)={x,y} W(S1)={a}; R(S2)={z} W(S2)={b}; R(S3)={a,b} W(S3)={c}; R(S4)={c} W(S4)={w};
– Process number 进程标识符 – Process state 进程现行状态 – Program counter 程序计数器 – CPU registers 寄存器值 – CPU scheduling information调度
信息 – Memory-management information
进程和程序的区别
动态性, 进程的实质是程序的一次执行过程,它由“创建” 而产生,由“调度”而执行,因得不得资源而暂停执行,最 后由“撤销”而消记亡,是有一定的生命期,而程序只是 指令的集合,本身无运行的含义,是静态的。
并发性,并发性是进程的重要特征,引入进程的目的正 是为了使其程序和其它程序并发执行;而程序(没有建 立进程)是不能并发执行的。
若两个程序P1和P2能满足下述条件,它们 便能并发执行,否则不能
R(P1)∩W(P2) ∪ R(P2)∩W(P1) ∪ W(P1) ∩W(P2)={ } 即
① R (P1)∩W(P2)={ } ② W(P1)∩R (P2)={ } ③ W(P1)∩W(P2)={ } 同时成立
例1
若有两条语句P1:c=a-b和P2:w=c+1,判断 它们是否可以并发执行? 解:它们的“读集”和“写集”分别为
进程和资源的关系
P1 处理机
P2
Pn
虚拟内存 计算机资源
I/O I/O I/O 内存
操作系统的控制结构
为掌握每一个进程和资源的当前状态信息, OS 为每个被管理的对象建立并维护一张信息表,称
为操作系统控制表,包括
– 内存表 – 输入/输出表 – 文件表 – 进程表
进程的主要组成部分
进程控制块(PCB) 程序 数据 系统栈
若有两条语名P1: c=a+b; P2:x=x+1; 则它们的读集与写为:
R(P1)={ a, b } W(P1)={ c }
R(P2)={ x }
W(P2)={ x }
P1的读集与写集的交集为空;P2的读集与写集的交集非空;
R(P1)∩W(P1)={ } R(P2) ∩W(P1)={ x }
Bernstein条件
存储管理信息 – Accounting information记帐信息 – I/O status information I/O状态信息,
如打开的文件
进程控制块的组织形式:链接方式
进程控制块的组织形式:索引方式
进程在各队列间迁移
方块表示队列,圆圈表示资源
CPU Switch From Process to Process
挂起功能的引入
对换的需要
– 为缓解内存紧张的情况,将内存中处于阻塞状态的 进程换至外存上,使进程处于一种有别于阻塞状态 的新状态。
系统负荷调节的需要
– 系统中负荷过重,资源数目相对不足时需要挂起一 部分进程以调整系统负荷。
终端用户的需要
– 用户检查自己作业执行情况和中间结果时,因同预 期结果不符而要求挂起进程以便进行检查和改正。
– 硬件资源:CPU、输入输出设备,存储器 – 软件资源:各种例行程序、各种共享的数据 – 多道程序环境下执行程序的道数>计算机系统中CPU
的个数
– 单CPU中,则由N-1道程序处在等待CPU的状态 – 输入输出设备有限将导致这些设备被共享、内存有
限将导致内存被共享
程序并发执行可分为两种:
多道程序系统的程序执行环境变化所引起的多 道程序的并发执行
(1)N=N+1在print(N)和N=0之前,此时得到的N值分别为
(2)Nk+=N1+,1k在+p1ri,nt0(N)和N=0之后,此时得到的N值分别为
(3为)Nk,=N+01,在 pr1int(N)和N=0之间,此时得到的N值分别
k, k+1, 0
5.程序并发执行的条件
1966年,Bernstein(伯恩斯坦)提出了相邻语句 P1,P2可以并发执行的条件。
(其中S2必须在a被赋值以后才能执行;同样S3也只能在b 被赋值 以后才能执行)
2、 程序顺序执行时的特征
顺序性
– 处理机的操作,严格按照程序所规定的顺序执行, 即只有前一操作结束后,才能执行后继操作。
封闭性(失去交换性)
– 程序是在封闭的环境下运行的。即程序在运行时, 它独占全机资源,因而机内各资源的状态(除初始 状态外),只有程序才能改变它。程序一旦开始运 行,其执行结果不受外界因素的影响。
可再现性
– 只要程序执行时的环境和初始条件都相同,不论它 是从头到尾的不停顿的执行,还是“走走停停”地 执行,都将获得相同的结果。
3.wenku.baidu.com多道程序的并发执行
– 计算机能够同时处理多个具有独立功能的程序(批 处理系统,分时系统、实时系统、网络与分布式系 统)。这样的执行环境具有三个特点:
• 独立性 • 随机性 • 资源共享
由于资源有限,多道程序的并发执行总是伴随着资 源的共享与竞争,制约了各道程序的执行速度。
在某道程序段中,包含着一部分可以同时执行 或顺序颠倒执行的代码
例如:read(a); read(b);
既可以同时执行,也可以颠倒次序执行,同时执行 不会改变顺序程序所具有的逻辑行为,可采用并发 执行来充分利用资源。
程序并发执行
一组逻辑上相互独立的程序或程序段在执行 过程中,其执行时间在客观上相互重叠,即一 个程序段的执行尚未结束,另一个程序段的执 行已经开始的这种执行方式。
程序的并发执行
I1
I2
I3
I4
C1
C2
C3
C4
P1
P2
P3
P4
程序并发执行时的前驱图
4.程序并发执行时的特征
间断性
– 程序在并发执行时,由于它们共享资源或为完成某 一项任务而合作,致使在并发程序之间存在相互制 约的关系。(I、C、P是三个相互合作的程序,当计 算程序完成Ci-1的计算后,如果输入程序I尚未完成 对Ii的处理,则计算程序无法进行Ci处理,致使计算 程序在停运行。)
R(P1)={a,b}; W(P1)={c} R(P2)={c} ; W(P2)={w} R(P1)∩W(P2)={ } R(P2)∩W(P1)={c} 所以:两条语句不能并发执行。
同一语句的“读集”和“写集”的交集是 空集。
R(c=a-b)∩W(c=a-b)={ }
R(w=c+1)∩W(w=c+1)={ }
如果并发执行的各程序段中语句或指令满足 Bernstein的条件,则认为并发执行不会对执行 结果的封闭性和可再现性产生影响。
定义程序读集与写集符号
R(Pi)={a1,a2,···,am}
表示程序Pi在执行期间需引用的变量的集合,称Pi的读集;
W(Pi)={b1,b2,···,bm}
表示程序Pi在执行期间需改变的变量的集合,称Pi的写集;
称为进程。 (5)一个进程是一系列逐一执行的操作,而操作的确
切含义则有赖于以何种详尽程度来描述进程。
我国对进程的定义
进程:一个具有独立功能的程序关于某个数据 集合的一次运行过程。
– 在处理机上的执行过程和分配资源的基本单位 – 在这里,程序指一组操作序列,而数据集则是接受
程序规定操作的一组存储单元的内容。
– 占有CPU.
阻塞(Blocked/Waiting)
– 进程因为等待某事件的发生(如I/O完成),不能 继续执行.
进程3种状态间的转换
就绪->执行 执行->就绪 执行->阻塞 阻塞->就绪
进程基本状态图diagram of process state
进程创建
进程撤消
事件发生
进程调度 等待事件
失去封闭性
– 程序在并发执行时,是多个程序共享系统中的各种 资源,因而这些资源的状态将由多个程序来改变, 致使程序的运行失去了封闭性。
4.程序并发执行时的特征(续)
不可再现性
– 程序在并发执行时,由于失去了封闭性,也导致失去了可再现 性。
– 例如:有两个循环程序A和B,它们共享一个变量N。程序A 每执行一次时都要做N=N+1操作;程序B每执行一次时,都 要做print(N)操作,然后再将N置成“0”,程序A和B以不同 的速度运行。(假定某时刻变量N的值为k)
第二章进程描述与控制
进程的基本概念 Process Concept
进程的引入 进程的定义和特征 进程的基本状态及其转换 具有挂起功能的进程状态及其转换
I1
C1
P1
I2
C2
P2
程序顺序执行时的前驱图
对于一个程序段中的多条语句来说,也有一个执行顺序 的问题。如果对于下述三条语句的程序段: S1: a=x+y S2: b=a-5 S3: C=b+1
独立性,是指进程一个能独立运行、独立分配资源和独 立调度的基本单位;凡未建立进程的程序,都不能作为 一个独立的单位参加运行。
异步性,各进程各自以独立的、不可预知的速度向前推 进。
进程的三种基本状态 (Process State)
就绪 (Ready):
– 万事具备,只欠东风(被执行).
执行 (Running)
进程的5种状态
活动就绪 (Ready_Active) 静止就绪 (Ready_Static) 执行 (Running) 活动阻塞(Blocked_A) 静止阻塞(Blocked_S)
进程5种状态间的转换图
进程描述
操作系统的控制结构 进程的结构描述 PCB的结构 PCB的组织形式
相关文档
最新文档