第二章 进程的描述与控制及线程基本知识
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
进程控制的几个过程
创建、撤消进程以及完成进 程各状态之间的转换。由具有特 定功能的原语完成。
进程创建原语 进程撤消(终止)原语 阻塞原语 唤醒原语 挂起原语 激活原语
2.3.2 进程的创建
A
1. 进程图(Process Graph) B
C
进程图是一棵有向
树(如下图),结点代
表进程。一棵树表
D
E
F
序是相对长久的; • 程序可作为软件资源长期保存,进程只是一次执
行过程,是暂时的; • 进程具有创建其他进程的功能,而程序没有。
2、进程的特征
• 动态性:进程的实质是程序的一次执行过程, 进程是动态产生,动态消亡的,进程在其生命周期内, 在三种基本状态之间转换
• 并发性:任何进程都可以同其他进程一起向前推进 • 独立性:进程是一个能独立运行的基本单位,同时也
S2→S3, S3→S2 (不能存在循环,不可能满足)
2.1.2 程序的顺序执行及其特征
1. 程序的顺序执行
仅当前一操作(程序段)执行完后,才能执行后继操作。 例如,在进行计算时,总须先输入用户的程序和数据,然后 进行计算,最后才能打印计算结果。
S1: a ∶=x+y;
S2: b ∶=a-5;
I1
• 正常结束 • 异常结束(越界错、保护错、特权指令错、非法
指令、运行超时、I/O故障等) • 外界干预(操作员干预、父进程请求和父进程终
2.1.3 程序的并发执行及其特征
1. 程序的并发执行
I1
I2
I3
I4
C1
C2
C3
C4
P1
P2
P3
P4
Ii→Ci,Ii→Ii+1, Ci→Pi, Ci→Ci+1,Pi→Pi+1
而Ii+1和Ci及Pi-1是重迭的,亦即在Pi-1和Ci以及Ii+1之间,可以 并发执行。
对于具有下述四条语句的程序段进行分析,画出前趋图。
是系统分配资源和调度的独立单位; • 异步性:由于进程间的相互制约,使进程具有执行的
间断性,即进程按各自独立的、不可预知的速度向前 推进
2.2.2 进程的基本状态及转换
1. 进程的三种基本状态
1) 就绪(Ready)状态 2) 3) 阻塞状态
3. 为了管理的需要,引入了另外两种状态:
1)创建状态 为了保证进程的调度必须在创建工作完成后进行,
2. 引起创建进程的事件
(1) 用户登录。 (2) 作业调度。 (3) 提供服务。 (4) 应用请求。
创建原语
• 功能:创建一个 具有指定标识符 进程
• 入口信息:进程 标识符、优先级、 进程开始地址、 初 始 CPU 状 态 、 资 源清单等。
2.3.3 进程的终止
1. 引起进程终止(Termination of Process)
程是进程实体的运行过程,是系统进行资源分配和调度的一个独立单位”。
进程与程序的区别
• 程序是静态的,进程是动态的; • 进程更能真实地描述并发, 是系统分配调度的独
立单位,能与其他进程并发执行,而程序不能; • 进程是由代码、数据和pcb构成,程序只有代码
和数据; • 进程有生命周期,有诞生有消亡,短暂的;而程
C1
P1
I2
C2
P2
S3: c ∶=b+1;
S1
S2
S3
(a) 程序的顺序执行
I:输入操作 C:计算操作 P:打印操作。
(b) 三条语句的顺序执行
习题:试画出下面5条语句的前驱图。
S1: a=5-x S2: b=a*x S3: c=4*x S4: d=c+b S5: e=d+3
S1
S3
S2 S4
S5
→={(Pi, Pj)|Pi must complete before Pj may start}, 如果(Pi, Pj)∈→,可写成Pi→Pj,称Pi是Pj的直接前趋,而称Pj是Pi的直 接后继。在前趋图中,把没有前趋的结点称为初始结点 (Initial Node),把没有后继的结点称为终止结点(Final Node)。
同时为了增加管理的灵活性,OS可以根据系统性能或主 存容量的限制,推迟创建状态进程的提交 ,产生进程的 创建状态。
2)终止状态
➢进程到达自然结束点,出现无法克服的错误,被操作系 统所终结 ➢等待操作系统善后处理,将其PCB清零,将PCB空间返 还系统 ➢进入终止态的进程不能再执行,在操作系统中保留一个 记录,其中保存状态码和一些计时统计数据,供其他进程 收集 ➢其他进程完成了对其信息的提取之后,操作系统将删除 该进程,即将其PCB清零,并将该空白PCB返还系统
线性方式——即将系统中所有的PCB都组织在一张线性表中, 将该表的首址存放在内存的一个专用区域中。该方式实现简 单、开销小,但每次查找时都需要扫描整张表,因此适合进 程数目不多的系统。图2-10示出了线性表的PCB组织方式。
• 图2-10 PCB线性表示意图
按链接方式组织PCB
执 行 指针 就 绪 队列 指 针 阻 塞 队列 指 针 空 闲 队列 指 针
S1: a∶=x+2 S2: b∶=y+4 S3: c∶=a+b S : d∶=c+b
S1
S3
S4
S2
2. 程序并发执行时的特征
1) 间断性:程序并发执行时,由于它们共享资源或程序之间相互合作完 成一项共同任务,因而使程序之间相互制约。
2) 失去封闭性 :程序在并发执行时,多个程序共享资源,因而资源的状 态将由多个程序来改变,致使程序的运行失去了封闭性。
• 内核包括一些与硬件紧密相关的模块、常用设备驱动断处理 • 时钟管理 • 原语操作
原语:是由若干条机器指令所构成,用以 完成特定功能的一段程序 。是原子性操作, 不可分割。
OS内核功能: 2、资源管理功能 • 进程管理 • 存储器管理 • 设备管理
图 2-12 按索引方式组织PCB
2.3 进程控制
进程控制的主要任务: 进程控制是对系统中所有进程从产
生、存在到消亡的全过程实行有效的管 理和控制。进程控制一般是由操作系统 的内核来实现,内核在执行操作时,往 往是通过执行各种原语操作来实现的。
2.3.1操作系统内核
• 内核:加在硬件上的第一层软件,通过执行各种原语 操作来实现各种控制和管理功能,具有创建、撤消、 进程通信、资源管理的功能。
P CB1 4 P CB2 3 P CB3 0 P CB4 8 P CB5 P CB6 7 P CB7 9 P CB8 0 P CB9 1
…
图 2-11 PCB链接队列示意图
按索引方式组织PCB (表)
执行 指针 就绪 表指针 阻塞 表指针
就绪 索引表 阻塞 索引表
P CB1 P CB2 P CB3 P CB4 P CB5 P CB6 P CB7
3) 不可再现性:由于失去了封闭性,也将导致其失去可再现性。
例如,有两个循环程序A和B,它们共享一个变量N。程序A每执行一次时, 都要做N∶=N+1操作;程序B每执行一次时, 都要执行Print(N)操作,然后再 将N置成“0”。程序A和B以不同的速度运行。 可能出现三种情况:
(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。
P={P1, P2, P3, P4, P5, P6, P7, P8, P9} →={ (P1, P2), (P1, P3), (P1, P4), (P2, P5), (P3, P5), (P4, P6), (P4, P7),
(P5, P8), (P6, P8), (P7, P9), (P8, P9)} 应当注意,前趋图中必须不存在循环,但在图2-2(b)中却有着
• 程序的顺序执行:一个具有独立功能的程 序独占处理机,直至得到最终结果的过程 。
2.1.1 前趋图
前趋图(Precedence Graph)是一个有向无循环图,记为 DAG(Directed Acyclic Graph),用于描述进程之间执行的前后 关系。图中的每个结点可用于描述一个程序段或进程,乃至 一条语句;结点间的有向边则用于表示两个结点之间存在的 偏序(Partial Order)或前趋关系(Precedence Relation)“→”。
2. 程序顺序执行时的特征
• 顺序性:一个程序的各个部分的执行,严 格地按照某种先后次序执行;
• 封闭性:程序在封闭的环境下运行,即程 序运行时独占全部系统资源;
• 可再现性:只要程序执行时的环境和初始 条件相同,当程序重复执行时,不论它是 从头到尾不停顿地执行,还是“停停走走” 地执行,都将获得相同的结果。 程序顺序执行的特性,为程序员检测 和校正程序的错误带来很大方便。
1、操作系统中用于管理控制的数据结构
系统中,对每个资源和每个进程都设置了 一个数据结构,用于表征其实体 ,称之为:资 源信息表和进程信息表。
Os管理的这些数据结构分为四类:内存表 、设备表、文件表、进程表。
• 图2-9 操作系统控制表的一般结构
2、 进程控制块的作用
•作为独立运行基本单位的标志。 •能实现间断性运行方式。 •提供进程管理所需要的信息。 •提供进程调度所需要的信息。 •实现与其它进程的同步与通信。
PCB: 进程标识符 处理机状态
进程调度信息
进程控制信息
外部标识 内部标识
通用寄存器 指令寄存器 PSW 用户栈指针 进程状态 进程优先级 调度所需信息 事件 程序和数据的地址 进程同步和通信机制 资源清单 进程链接指针
4. 进程控制块的组织方式
为了有效地对进程控制块进行管理, 应该采用适当的方式把它们组织起来。 目前常用的组织方式有以下三种: • 线性方式组织PCB • 按链接方式组织PCB • 按索引方式组织PCB
2.2 进程的描述
2.2. 1进程的特征和定义
• 程序段、数据段、PCB三部分构成了进程实体,简称 “进程”。
较典型的进程定义有 (1) 进程是程序的一次执行。 (2) 进程是一个程序及其数据在处理机上顺序执行时所发生的活动。 (3) 进程是程序在一个数据集合上运行的过程,它是系统进行资源分配和
调度的一个独立单位。 在引入了进程实体的概念后,我们可以把传统OS中的进程定义为:“进
五状态进程模型
创建
终止
2.2.3. 有的系统有时希望能人为地把进程挂起,使之处于静止 状态,以便研究其执行情况或对它进行修改。
1) 引入挂起状态的原因 (1) 终端用户的请求。 (2) 父进程请求。 (3)负荷调节的需要。 (4)操作系统的需要。
2) 进程状态的转换
(1) 活动就绪→静止就绪。 (2) 活动阻塞→静止阻塞。 (3) 静止就绪→活动就绪。 (4) 静止阻塞→活动阻塞。
每个结点还具有一个重量(Weight),用于表示该结点所 含有的程序量或结点的执行时间。
P2
P5
S1
P1
P3
P8
P9
P6
S2
P4 S3
P7
(a) 具有九个结点的前趋图
(b) 具有循环的前趋图
对于图 2-2(a)所示的前趋图, 存在下述前趋关系: P1→P2, P1→P3, P1→P4, P2→P5, P3→P5, P4→P6, P4→P7, P5→P8, P6→P8, P7→P9, P8→P9
第二章 进程的描述与控制 及线程基本知识
2.1 前趋图和程序执行 2.2 进程的描述 2.3 进程控制 2.4 进程同步 2.5 经典进程的同步问题 2.6 进程通信 2.7 线程(Threads)的基本概念 2.8 线程的实现
2.1前趋图和程序执行
引入概念
• 程序:一个在时间上按严格次序、顺序执 行的操作序列。
G
H
示一个家族,根结
点为该家族的祖先
(Ancestor)。
I
J
K
L
M
图 2-13 进程树
进程图和前趋图之间的差异
• 前趋图描述的是任务(或进程)之间的前趋 关系;只有在前趋进程完成后,其后继进 程才能运行;
• 在进程图中,创建者和被创建者可以并发 执行,也可以父进程等待其所有的子进程 结束后再执行,这完全取决于创建原语和 创建者的需要。
请求 I/O
活动 就绪
执行 激活 挂起
挂 起
静止 就绪
释放
释放
激活
活动 阻塞
挂起
静止 阻塞
七状态进程模型
思考题
1.如果系统中有N个进程,运行的进程最多几个,最少几个;就
绪进程最多几个,最少几个;等待进程最多几个,最少几个?
2. 有没有这样的状态转换? 等待—运行; 就绪—等待
2.2.4 进程管理中的数据结构