os_ch2-1进程概念

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

结 点:表示一个语句、程序段、进程 有向边:表示结点间的偏序关系(前驱关
系)
15
2
5
1
3 6 4
7
存在下面的前驱关系: P1 → P2, P1 → P3,P1 → P4, P2 → P5, P3 → P5, P4 → P6,P5 → P7, P6 → P7
16
例:下述四条语句的程序段画出前驱图
S1: a:=x+2 S2: b:=y+4 S3: c:=a+b S4: d:=c+6
RA
10110001 IR ⑦
内部数据总线DB AR 0000 0000 ⑥ 10110001 DR
外部AB ③
存储器 CPU发出读命令 ④
0000H 0001H 0002H 0003H 0004H 地址
10110001 00000110 ⑤ 00001000 00000101 11111110 单元内容
3
相关知识: CPU的硬件特性
单处理机系统和多处理机系统 CPU的构成:运算器、控制器、总线和 相关寄存器 CPU主要性能指标: :主频 , MIPS CPU工作方式
4
Intel体系结构基本执行环境
5
微处理器 (CPU) ALU ② PC+1 A
至外部CB
… PLA ID
PC 0000 0000 ①
第二章 进程管理
1
主要内容
2.1 进程的基本概念(掌握) 2.2 进程控制(掌握) 补充 Unix进程模型(掌握) 2.3 进程同步 (掌握) 2.4 经典的进程同步问题(理解) 2.5 进程通信 (掌握) 2.6 线程(理解)
2
Question:
1、什么是进程? 2、OS如何知道进程存在? 3、用户能否控制进程? 4、如何管理进程,提高CPU利用率? 5、如何协调多个进程对处理机及其他系统资 源的竞争和共享? 6、如何预防、解决多个进程因竞争资源而出 现故障?
35
进程的组成
进程的静态描述:由三部分组成 PCB 、有关程序段和该程序段对其进行操作的数据 结构集。 各部分的作用: 1 进程控制块:用于描述进程情况及控制进程运行所 需的全部信息。 2 程序段:是进程中能被进程调度程序在 CPU上执行 的程序代码段。 3 数据段:一个进程的数据段,可以是进程对应的程 序加工处理的原始数据,也可以是程序执行后产生 的中间或最终数据。 36
O2
13
2.1.1.2 程序顺序执行时的特征
顺序性
封闭性(资源独占) 可再现性 缺点:资源利用率低 解决:某资源被一个程序释放后,可分配给另一个程 序——并发执行
14
2.1.2 前驱图(Precedence Graph)
有向无循环图,用来描述程序各部分间的依赖 关系或一个大的计算各子部分间的因果关系。 前趋图中的元素:
不可再现性
–程序在并发执行时,由于失去了封闭性,也导致失 去了可再现性。 例如:有两个循环程序A和B,共享一个变量N。
程序A: N=N+1;
程序B: print(N); N=0 ; (假定某时刻变量N的值为n)
21
执行结果:
(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
进程是进程实体的运行过程,是系统进行 资源分配和调度的一个独立单位单位 (P38)
32
进程和程序的区别:
1 进程是一个动态的概念,进程的实质是程序的一 次执行过程,动态性是进程的基本特征,同时进 程是有一定的生命期的;而程序只是一组有序指 令的集合,本身并无运动的含义,是静态的。 2 并发性,并发性是进程的重要特征,引入进程的 目的正是为了使其程序和其它程序并发执行;而 程序(没有建立进程)是不能并发执行的。 3 独立性,是指进程一个能独立运行、独立分配资 源和独立调度的基本单位;凡未建立进程的程序, 都不能作为一个独立的单位参加运行。 4 不同的进程可以包含同一个程序,同一个程序在 执行中也可以产生多个进程。
24
补充 程序并发执行的条件
1966年,Bernstein提出了相邻语句S1, S2可以并发执行的条件。 如果并发执行的各程序段中语句或指令满 足Bernstein的三个条件,则认为并发执 行不会对执行结果的封闭性和可再现性 产生影响。
25
将程序中任一语句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是可以并发执行的。26
2.1.4.1 进程的特征和定义
进程是程序的一次执行。 进程是可以并发执行的计算部分。 进程是定义在一个数据结构上并能在其上进行操作的一 个程序。 进程是程序在一个数据集合上运行的过程,它是系统进 行资源分配和调度的一个独立单位。 进程是一个独立的可以调度的活动 进程是一个抽象的实体,当它执行某个任务时,将要分 配和释放各种资源 行为的规则叫程序,程序在处理机上执行的活动称为进 程。 31
3.提高对CPU的利用率,实现并发技术(实现多个程 序对CPU的并发共享) OS:建立进程,进程切换,调度,进程通信 4.向用户程序提供与CPU使用相关的用户接口 操作系统提供的系统调用中与CPU使用相关的有: 在一个程序中启动另一程序 程序结束 关于信号操作的一组系统调用等等 5.在多CPU硬件背景下负责多个CPU登录、分配和通 讯等管理工作
2.1.4 进程(Process)特征与状态
进程的引入 多道程序系统的特点是并发性。 在多道程序系统所带来的复杂环境中,程序 具有了并行、制约、动态的特性,原来的程 序概念,难以刻画系统中的情况了。 –程序本身完全是静态的概念 –程序概念也反映不了征与状态
27
程序的顺序执行、程序的并发执行特征比较
程序的顺序执行 1 顺序性 2 封闭性 3 可再现性 程序的并发执行 1 间断性 2 失去封闭性 3 不可再现性
28
并发执行对OS提出更高要求:
协调各操作执行顺序 控制共享数据访问 内存管理,选择多少,哪些执行? CPU管理,谁先执行?
29
9
CPU管理功能的工作内容与任务
1.启动程序执行(将CPU交给用户程序使用) 将程序装入内存 置PC OS:装入程序,建立进程 2.处理程序结束工作(将CPU的使用权从用户手中收回) 程序结束系统调用指令 中断 OS:释放资源,返回结果信息或错误信息、返回父程 序。
10
CPU管理功能的工作内容与任务
11
2.1 进程的基本概念
2.1.1 程序的顺序执行及其特征
2.1.1.1程序的顺序执行 程序概念 程序执行
12

两个程序P1,P1 , P1执行序列:输入 10ms, 计算20ms ,输出结 果15ms P2执行序列:输入20ms,计算10ms,输出 结果20ms
I1
C1
O1
I2
C1
T1: Begin 按乘客需要查找到Hi; R1:=Hi; if R1>=1 then begin R1:=R1-1; Hi:=R1; 售出一张票; end else{提示“票已售完”}; "}; end;
T2: Begin 按乘客需要查找到Hi; R2:=Hi; if R2>=1 then begin R2:=R2-1; Hi:=R2; 售出一张票; end else{提示"票已售完 end;
外部DB
6
补充一 用户对处理机的使用要求
是否并发? CPU管理内容或问题由何决定 CPU管理功能共有三种模型 CPU管理功能要完成的工作
7
CPU管理内容由何决定?
– 硬件背景 – 用户要求
CPU数量和是否并发两因素影响最大
8
CPU管理功能共有三种模型
单任务模型(单处理机)
多任务模型(单处理机或多处理机) – 进程模型 – 线程模型
例题
【例1】程序和进程是两个不同的概念,以下不 能描述这个观点的是: 。 A.程序指出了处理器执行操作的步骤,而进程 是一个程序在一个数据集合上的一次执行。 B.同一个程序运行10次,产生的是同一个进程。 C.进程是动态的,是程序的执行过程。 D.多个不同的进程可以包含相同的程序
37
【例2】一个进程是 。 A.处理机一次或多次执行的一个程序。 B.一个独立的程序+数据集。 C.PCB结构与程序和数据的组合。 D.一个独立的程序。
42
43
3.阻塞状态(Block)(等待状态) 进程因为发生某个事件而暂停执行时的状态(如:请 求I/O、申请缓冲空间等),进程受到阻塞,称这 种暂停状态为阻塞状态,有时也称“等待”状态或 “睡眠”状态。
33
进程的特征
1.动态性 动态性是进程最基本的特征。 2. 并发性 指多个进程实体,同时存于内存中,能在一段时间内 同时运行。 3.独立性 进程实体是一个能独立运行的基本单位,同时也是系 统中独立获得资源和独立调度的基本单位。没有建立 进程的程序,不能作为一个独立的单位参加运行。
34
4.异步性 进程按各自独立的、不可预之的速度向前推进 5.制约性 一个进程的执行可能要依赖其他相关进程的执行 结果,形成进程之间的相互等待。 6.结构性 每个进程都有固定的结构,都由程序段、数据段 和PCB三部分组成。
19
2.1.3.2 程序并发执行的特征
间断性
–程序在并发执行时,由于它们共享资源或为完成 某一项任务而合作,致使在并发程序之间存在相 互制约的关系。
失去封闭性(资源共享)
–程序在并发执行时,是多个程序共享系统中的各 种资源,因而这些资源的状态将由多个程序来改 变,致使程序的运行失去了封闭性。
20
程序并发执行的特征
22
不可再现性-—例 一个飞机订票系统可以有多个订票处的 n 个订 票终端。 假设n=2,公共数据区为Hi(i=1,2,…,n),分别 存放各次班机的现存票数; T1和T2表示售票终端的进程; R1 和 R2 分别表示进程 T1 和 T2 执行时所需的工 作单元。
23
T1和T2进程的程序:

39
2.1.4.2 进程的三种基本状态
1.执行状态(Running)(运行状态) 指进程已获得处理机,其程序正在执行。在单 处理机系统中,只能有一个进程处于执行状态。 (在多处理机中,可能有多个进程处于执行状态)
40
41
2.就绪状态(Ready) 当进程已经分配到除 CPU 以外的所有必要的 资源后,只要能再获得处理机,就可以立即执 行。这时的进程的状态称为就绪状态。
例:若有两条语句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} 所以:两条语句不能并发执行。
38
【例3】 下面两个并发执行进程的程序段。它们能正确运行吗?若 不能,请举例说明,并将程序改正。 int x; 进程P1( ) 进程 P2( ) begin begin int y,z; int t,u; x=1;y=0; x=0;t=0; if x>=1 then y=y+1; if x<=1 then t=t+2; z=y; u=t; end; end;
S1 S3 S2
17
S4
2.1.3 程序的并发执行及其特征
I1 I2 I3 I4
C1
C2
C3
C4
P1
P2
P3
P4
程序并发执行时的前驱图 前驱关系?
18
2.1.3.1 程序并发执行 一组逻辑上相互独立的程序或程序段在 执行过程中,其执行时间在客观上相互重叠, 即一个程序段的执行,尚未结束,另一个程 序段的执行已经开始的这种执行方式。
251966bernsteins1s2bernstein2629oscpu30214process程序本身完全是静态的概念程序概念也反映不了系统中的并行特性3121421413233343536pcb372142readycpu3839question4041question422143os4344就绪新建终止执行阻塞创建事件发生结束等待进程调度等待某事件时间片用完4521444647具有挂起状态的进程状态图482154950515253pcb54执行指针就绪队列指针阻塞队列指针空闲队列指针pcb1pcb2pcb3pcb4pcb5pcb6pcb7pcb8pcb956pcb3pcb4pcb5pcb7pcb6pcb2pcb1pcb5722osos58primitive59221221160子进程可以继承父进程的所有资源当子进程被撤消时应将从父进程那里获得的资源归还给父进程
相关文档
最新文档