操作系统-第三章 进程控制(2)

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
如果有三个进程共享同一互斥段,而且每次最多允许两个进程进入该 互斥段,则信号量的初值应设置为( )。
A3 B1 C2 D0
提交
3.5.3 用P、V操作原语实现进程的互斥
2、优势
用P、V操作原语实现进程互斥的效率更高,因为P操作 中引入了阻塞机制,互斥进程之间有互相通信机制,所以 消除了上锁原语中的CPU忙等现象。
3.4 进程的互斥
——你要,我也要
1、多道程序设计带来的问题 并发执行的多个进程可能产生互斥或同步的相互
制约关系,不采取措施,可能导致结果的不可再现性。 影响系统效率,而且还可以导致系统崩溃。
3.4.1 互斥的定义
1、进程互斥
指的是对某个系统资源,一个进程正在使用它, 另外一个想用它的进程就必须等待,而不能同时使 用。
进程使用的资源 )。 4、临界资源不能抢占,不可剥夺
在抢占式操作系统中,优先级别高的进程不能中途 从低优先级进程手中把临界资源抢来使用。
单选题 1分
在下面的叙述中,正确的是()。
A 临界资源是非共享资源 B 临界资源是任意共享资源 C 临界资源是互斥共享资源 D 临界资源是同时共享资源
提交
多选题 1分
1.考察锁位的值;
2.如果原来的值为0, 将锁位置1;
3.如果为1,则返回第 一步再次考察
3.4.2、 互斥机制
2、上锁与开锁机制
(3) 上锁原语:LOCK(W)
算法伪代码 void lock(锁变量w) {
test: if (w 为1) goto test else w=1; /*上锁*/
} /* lock(w) */
下列资源中,( ) 是临界资源。
A 打印机 B 非共享的资源 C 共享变量 D 共享缓冲区
提交
一、 互斥的定义
5、临界资源与非临界资源举例 (1)临界资源
打印机、共享变量 (2)可剥夺性使用的资源
CPU、内存和磁盘等。
单选题 1分
下面列出的选项中,不属于可剥夺性资源的有( )。
A CPU
B 内存
现在很多国外的文献都使用wait和signal操作(或者down 和up操作)代替P、V操作。
3.5.2 P、V操作原语 2、P(S)原语操作的算法描述
(1)S减1; (2)若S≥0,则调用P(S)的进程返回,继续执行; (3)若S<0,调用者进程调用阻塞原语Block(Q),把自己
插入到信号量S的阻塞队列Q中(把相应的PCB连入等待该信 号量队列的末尾,并放弃处理机,进入等待)。
3.4.2、 互斥机制
2、上锁与开锁机制
(3) 开锁原语:UNLOCK(W) W=0; 返回
❖当进程使用完 资源后,它必须 将锁位置成“0”, 称为开锁操作。
void unlock(锁变量w) { w=0; /* 开锁 */ } /* unlock(w) */
3.4.2、 互斥机制
3、上锁与开锁原语实现进程互斥机制方法
的某些确定的时序点上“你等我,我也等你”的同步 约束,进程互斥可视为进程同步的特例。
3.6.1 同步的定义
1、定义
指的是两个或多个进程为了合作完成同一个任务,在执 行速度或某些个确定的时序点上必须相互协调。
当一个进程到达了某一确定点而没有得到合作伙伴发来 的“已完成某些操作”的消息时必须等待,直到该消息到达 被唤醒后,才能继续向前推进。
C 磁盘
提交
D 磁带机
一、 互斥的定义
程序 段 1
程序 段 2
程序 段 n
共享变 量
一、 互斥的定义
6、临界区 进程中访问临界资源的那段程序代码称为临界区或临界段。
7、同类临界区(相关临界区) 使用同一临界资源的不同进程中的临界区。
一、Βιβλιοθήκη Baidu互斥的定义
8、临界区互斥访问临界资源
使用同一临界资源的进程应互斥地进入各自的临界区。
3.6.1 同步的定义
2 进程同步关系分析
(1) 单向同步关系 进程之间同步关系有时也被形象地称为“生产者与消费者”
之间的关系,“产品”(即生产者进程的输出,亦即消费者 进程的输入)是它们的纽带,它们在执行过程中的某个或某 些确定的时序点上有着固定的前趋后继的同步约束,即先 “生产”后“消费”,这是一种“你等我”的关系。
3.5.1 信号量的概念
3、信号量通常可以简单反映出相应资源的使用情况, 它与P,V操作原语一起使用可实现进程的同步和互斥。
3.5.1 信号量的概念 4、信号量的整型分量S的值的物理含义
(1)当S≥0时,表示某类可用资源的数目,或者说表示可以 执行P操作而不会被阻塞的进程的数目;
3.5.1 信号量的概念
(1)欲进入临界区的进程,必须先执行上锁原语; (2)若上锁原语顺利通过,则进程可进入临界区; (3)当完成对临界区资源的访问后再执行开锁原语,以释放该 临界资源。
3.4.2、 互斥机制
例如,甲、乙两进程要访问同一类临界资源
甲进程:
其他代码; LOCK(W); 甲进程的临界区; UNLOCK(W); 其他代码;
4、信号量的整型分量S的值的物理含义 (2)当S<0时,其绝对值表示因等待信号量S被阻塞在阻塞 队列中的进程数,即系统中因请求该类资源而被阻塞的进程 的数目 (3)S的值只能由P、V操作来改变。
3.5.2 P、V操作原语
1、P、V原语意思
(1)P代表荷兰语的proberen,意为“测试”; (2)V代表荷兰语的verhogen,意为“增加”。
单选题 1分
如果信号量的当前值为-4,则表示系统中在该信号量上有( )个进 程等待。
A4 B3 C5 D0
提交
3.5.3 用P、V操作原语实现进程的互斥
1、在相关进程的临界区的前后分别施以P操作和V操 作即可。
这里所用信号量的初值一般为1,表示临界资源未 被占用,且其可用数目为1。
单选题 1分
3.4.2、 互斥机制
2、上锁与开锁机制 (1)特点
最简单的进程互斥机制 (2)互斥实现机制
使用锁变量W来表示某种临界资源的状态。 W=0表示资源空闲可用 W=1表示资源正被使用
3.4.2、 互斥机制
2、上锁与开锁机制
(3) 上锁原语:LOCK(W)
算法思想 L1:如果 W=1那
么转向L1; 否则W=1 返回
乙进程:
其他代码; LOCK(W); 乙进程的临界区; UNLOCK(W); 其他代码;
3.4.2、 互斥机制
4、上锁原语和开锁原语实现互斥优缺点 优点:简单 缺点:处理机效率不高
因为上锁原语中的条件测试操作可能引起CPU“忙等”。
3.5 信号量机制
荷兰著名科学家,后来的计算机图灵奖获得者, E.W.Dijkstra于1965年提出了用作进程同步工具的信号量
S+1=>S
S>0
N
Wakeup(Q)
Y 返回
3.5.2 P、V操作原语 4 P(S)操作和V(S)操作的物理含义
(1)P(S)操作表示“等信号”,即测试一个要等的信号 是否到达; (2)V(S)操作表示“发信号”。这个信号在实现同步时 就是“合作者的伙伴进程已完成前趋任务”,在实现互斥时 就是“临界资源可用”。
3.5.1 信号量的概念
1、信号量,也叫信号灯,一般是由两个成员组成的结构体, 是一个确定的二元组(S,Q) (1)S是个具有非负初值的整型变量,表示该信号量的值, 且S的值只能由定义在信号量上的P操作原语和V操作原语来 改变; (2)Q是个初始状态为空的队列。
3.5.1 信号量的概念
2、信号量类型是个复合类型,其一个分量是个整型分 量S,另一个分量是个等待队列指针Q (一个是指向 PCB的指针,当多个进程都等待同一信号量时,它们 就排成一个队列,由信号量的指针项指出该队列的 头。)
(1)S加1; (2)若S>0 ,则调用V(S)的进程继续执行,
返回;(说明没有等待该信号量的进程) (3)若S<=0 ,调用者进程调用唤醒原语Wakeup(Q) ,把
信号量S的阻塞队列Q中的队首进程移出并唤醒进入就绪队 列,返回。
3.5.2 P、V操作原语 3.V(S)原语操作的算法描述 V(s)入口
(semaphore)机制,这是一种卓有成效的进程互斥同步工
具,已被广泛应用于现代计算机系统中。
3.5 信号量机制
信号量机制的基本原理
两个或多个进程可以利用彼此间收发的简单的信号来实现 “正确的”并发执行,一个进程在收到一个指定信号前,会 被迫在一个确定的或者需要的地方停下来,从而保持同步或 互斥。
单选题 1分
设两个进程共用一个临界资源的互斥信号量mutex,当mutex=1时表示()。
A 一个进程进入了临界区,另一个进程等待 B 没有一个进程进入临界区 C 两个进程都进入了临界区 D 两个进程都在等待
提交
单选题 1分
( )操作不是P操作可完成的。
A 为进程分配处理机 B 使信号量的值变小 C 可用于进程的同步 D 使进程进入阻塞状态
例题
3.5.3 用P、V操作原语实现进程的互斥
一个简化的异地售票程序,假设几乎同时两地有两个乘客要
购买同一班次的车票各一张。
以上案例如果不加控制,会导致什么问题?
3.5.3 用P、V操作原语实现进程的互斥 例3.1 试用P、V操作实现火车联网订票系统中北京、天津
两地的两个终端售票进程发售同一班次车票的过程。
提交
3.5.2 P、V操作原语 2 P(S)操作的算法流程图描述 P(s)入口
S-1=>S
S≥0
N
Block(Q)
Y 返回
单选题 1分
当一进程因在记录型信号量S上执行P()操作而被阻塞后, S的值为( )。
A >0 B <0 C ≥0 D ≤0
提交
3.5.2 P、V操作原语
3.V(S)原语操作的算法描述
3.5.3 用P、V操作原语实现进程的互斥
P1
P(S) V(S) 互斥区
P2 P(S) V(S)
P3 P(S) V(S)
课堂练习
1、多个进程对信号量S进行了5次P操作,2次V操作后,现在 信号量的值是 -3,与信号量S相关的处于阻塞状态的进程有 几个?信号量的初值是多少?
2、有m个进程共享同一临界资源,若使用信号量机制实现对 一临界资源的互斥访问,则信号量的变化范围是( )。
单选题 1分
当一进程因在记录型信号量S上执行V()操作而导致唤醒另 一进程后,S的值为( )。
A >0 B <0 C ≥0 D ≤0
提交
3.5.2 P、V操作原语 5、P(S)操作和V(S)操作的物理含义
在互斥问题中,每执行一次P(S)操作的含义,也可理解 为进程请求一个单位的S类资源;每执行一次V(S)操作 的含义,也可理解为进程释放一个单位的S类资源。
3.5.3 用P、V操作原语实现进程的互斥
用P、V原语控制进程互斥与同步的主要步骤:
(1)分析清楚题目涉及的进程间的制约关系。 (2)设置信号量(包括信号量的个数和初值,
对于同步问题还要写出信号量的物理含义)。 (3)给出进程相应程序的算法描述或流程控
制,并把P、V操作加到程序的适当处。
北京售票终端进程:
3.4.1 互斥的定义
2、进程互斥是一种间接制约关系 多道程序系统中进程间存在的一种源于资源共享的
制约关系,主要是由被共享资源的独占使用性质所决 定的。
单选题 1分
并发进程之间( )
A 彼此无关 B 必须同步 C 必须互斥 D 可能需要同步或互斥
提交
一、 互斥的定义
3、临界资源 限定进程只能互斥地访问的资源(指一次仅允许一个
9、临界区的使用原则 空则让进,忙则等待,等则有限,等则让权
单选题 1分
对进程间互斥地使用临界资源,进程可以( )
A 互斥地进入临界区 B 互斥地进入各自的临界区 C 互斥地进入同一临界区 D 互斥地进入各自的同类资源的临界区
提交
3.4.2、 互斥机制
1、操作系统实现进程的互斥、同步的机制形式 (1)上锁与开锁原语 (2)信号灯机制 (3)管程机制等
3.6进程的同步(synchronism)
——你等我,我也等你 多道程序系统中,许多进程之间可能存在以下两种制约关系:
①源于资源共享的间接制约关系(互斥) ②源于合作相互的直接制约关系(同步)
3.6进程的同步(synchronism)
——你等我,我也等你
1、进程互斥与同步的关系 进程同步是指多个合作进程在独自并发执行过程中
①根据顾客订票要求找到公共数据单元PK; ②P(S); ③把PK的值读到工作寄存器R1中; ④根据顾客订票数修改R1; ⑤将R1的值回写到PK中; ⑥V(S); ⑦售出顾客所订的票,返回;
天津售票终端进程
①根据顾客订票要求找到公共数据单元PK; ②P(S); ③把PK的值读到工作寄存器R2中; ④根据顾客订票数修改R2; ⑤将R1的值回写到PK中; ⑥V(S); ⑦售出顾客所订的票,返回;
相关文档
最新文档