操作系统第三版第二章PPT共171页
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
DHU 白恩健
17
操操作作系系统统课讲程义讲义
为了保证在平分CPU时间的进程之间能够正确执行, 必须在内存中开辟一个区域,将这些通用寄存器的 值和被中断地点的地址保存起来,已备再用。对于 这个区域,可用一个数据结构描述,它存放了对程 序的控制信息,包括:程序的起始地址、程序的断 点地址、通用寄存器的内容、程序的当前状态。 把 这个数据结构与对应的程序一起,命名为进程,这 个记录程序控制信息的数据结构称之为进程控制块。
DHU 白恩健
9
操操作作系系统统课讲程义讲义
程序的并发执行
并发执行是指若干个程序(或程序段) 在一个处理 器上的交替执行,这种交替执行在宏观上表现为 同时执行。目的是为了提高资源利用率。 例3:一个程序由三个程序段组成:输入数据(I)、 计算(C)和结果打印(P)。四个相同类型程序并发执 行:
DHU 白恩健
DHU 白恩健
16
操操作作系系统统课讲程义讲义
多个程序并发执行轮流占有CPU,这种情况下,被 中断的程序如果不把中断点的地址保存下来,不把 通用寄存器的内容保存下来,下次再轮到它执行时, 便不能保证能够从曾被中断的地方继续执行。即便 是从曾被中断的地方继续执行,也不能保证其结果 是正确的。因为在它被中断期间,已有别的程序在 执行,可能已经对通用寄存器的内容进行了变更。
操操作作系系统统课讲程义讲义
第二章 进程管理
本章主要讨论进程的基本概念,进程的描述和进程 控制,并引入了线程的基本概念。 学习要点: (1) 掌握进程的定义及特征 (2) 深入领会进程状态及引起状态变化的典型原因 (3) 掌握进程同步与互斥 (4) 能够灵活运用信号量描述同步问题
DHU 白恩健
1
操操作作系系统统课讲程义讲义
➢ 封闭性
独占全部资源,计算机的状态只由该程序的控制 逻辑所决定。
➢ 可再现性
初始条件相同则结果相同。
DHU 白恩健
7
操操作作系系统统课讲程义讲义
对于编程人员讲,某个程序能够由计算机执行,需 满足两个条件:将程序放入内存并将该程序的地址 送入计数器PC。CPU的执行轨迹完全取决于程序 计数器PC的内容是什么,即CPU要知道到内存何 处去取指令。因此,只要想办法把程序存入内存, 记下该程序的起始地址,并把该起始地址存入程序 计数器PC,则CPU就可以执行该程序了,这就是 单道程序执行的基本原理。
P2
(a)程 序 的 顺 序 执 行
DHU 白恩健
5
操操作作系系统统课讲程义讲义
例2:语句执行顺序 S1: a∶=x+y; S2: b∶=a-5; S3: c∶=b+1;
S1
S2
S3
(b) 三条语句的顺序执行
DHU 白恩健
6
操操作作系系统统课讲程义讲义
顺序执行的特征:
➢ 顺序性
按照程序结构所指定的次序(可能有分支或循环)
15
操操作作系系统统课讲程义讲义
1) R(i)∩W(j)=Φ
2) W(i)∩R(j)=Φ
3) W(i)∩W(j)=Φ 前两个条件保证一个程序在两次读操作之间存储器 中的数据不会发生变化;第三个条件保证程序的写 操作的结果不会丢失。同时满足三个条件,并发执 行的程序就可保持封闭性和可再现性。实际中很难 检查这三个条件。
DHU 白恩健
8
操操作作系系统统课讲程义讲义
当多个程序顺序执行时,则需要将几个程序都放到 内存中,然后将第一个被执行程序的起始地址放入 PC中,这样CPU便可执行第一个程序。第一个程 序完成后,再把第二个程序的起始地址放入PC中, 可以执行第二个程序,……依次顺序下去,直到所 有程序都被执行一次。这就是多个程序顺序执行的 方式。
DHU 白恩健
18
操操作作系系统统课讲程义讲义
进程的定义与特征
多道程序设计技术、分时系统要求能够描述程序 的动态特性,需要引入新概念。 描述性定义:计算机中的所有程序,按照某种顺 序运行,这种运行的过程称为进程。 ➢ 定义:进程是一个具有一定独立功能的程序在 一个数据集合上的一次动态执行过程。是系统进 行资源分配与调度的一个独立单位。
➢ 间断性
“走走停停”,一个程序可能走到中途停下来,失去原有的 时序关系。
➢ 失去封闭性
共享资源,受其他程序的控制逻辑的影响。
如:一个程序写到存储器中的数据可能被另一个程序修改, 失去原有的不变特征。
➢ 不可再现性
失去封闭性 ->失去可再现性
DHU 白恩健
13
操操作作系系统统课讲程义讲义
例5:有两个循环程序A和B,它们共享一个变量N。程序 A每执行一次时,都要做N∶=N+1操作;程序B每执行一 次时, 都要执行Print(N)操作,然后再将N置成“0”。程 序A和B以不同的速度运行。
10
操操作作系系统统课讲程义讲义
I1
I2
I3
I4
C1
C2
C3
C4
DHU 白恩健
P1
P2
P3
P4
11
操操作作系系统统课讲程义讲义
例4 S1: a∶=x+2 S2: b∶=y+4 S3: c∶=a+b S4: d∶=c+b
S1
S3
S4
S2
DHU 白恩健
12
操操作作系系统统课讲程义讲义
并发执行的特征:
DHU 白恩健
3
操操作作系系统统课讲程义讲义
DHU 白恩健
4
操操作作系系统统课讲程义讲义
程序的顺序执行
一个复杂程序通常可以分为若干程序段,并且必 须按照某种先后次序来执行。
例1:一个程序由三个程序段组成:输入数据(I)、 计算(C)和结果打印(P)。两个相同类型程序顺序执 行:
I1
C1
P1
I2
C2
的处理结果。为此程序在并发执行时必须保持封闭
性和可再现性。并发执行失去封闭性的原因是共享
资源的影响,如何去掉这些影响?
1966年,Bernstein给出了程序并发执行的条件,假
设程序P(i)所访问的共享变量的读集和写集分别为
R(i)和W(i),则任意两个程序P(i)和P(j)并发的 条
件:
DHU 白恩健
第二章 进程管理
❖ 进程的基本概念
❖ 进程控制
❖ 进程同步
❖ 经典进程同步问题
❖ 管程机制
❖ 进程通信
❖ 线程
DHU 白恩健
2
操操作作系系统统课讲程义讲义
进程的基本概念
前驱图
定义:一个有向无循环图,由节点和节点间的有 向边组成。节点代表各程序段操作,而节点间的 有向边表示两程序段操作之间的前驱关系。
(1) N∶=N+1在Print(N)和N∶=0之前,此时得到的N 值分别为?
(2) N∶=N+1在Print(N)和N∶=0之后,此时得到的N 值分别为?
(3) N∶=N+1在Print(N)和N∶=0之间,此时得到的N 值分别为?
DHU 白恩健
14
பைடு நூலகம்
操操作作系系统统课讲程义讲义
程序执行是为了对输入信息进行处理,并得到相应