操作系统原理第三章进程间的并发控制和死锁PPT参考课件
合集下载
操作系统 chapter3 处理机调度与死锁PPT课件

阻 塞, 挂 起队 列 事
件 出
挂起
现
阻 塞队 列
等 待事 件
图 3-3 具有三级调度时的调度队列模型
3.3 调 度 算 法
3.3.1 先来先服务和短作业(进程)优先调度算法
1. 先来先服务调度算法
图 3-4 FCFS和SJF调度算法的性能
就 绪 队 列1 就 绪 队 列2 就 绪 队 列3 就 绪 队 列n
② 执行中的进程因提出I/O请求而暂停执行; ③ 在进程通信或同步过程中执行了某种原语操作,如P 操作(wait操作)、Block原语、Wakeup原语等。 优点:实现简单、系统开销小。
缺点:难以满足紧急任务的要求——立即执行,实时系统中 不宜采用这种调度方式。
2、抢占方式(Preemptive Mode) 抢占的原则有: • 优先权原则。 (2) 短作业(进程)优先原则。 (3) 时间片原则。 优点:防止长进程长时间占用处理机,适合实时任务 缺点:系统开销大
第三章 处理机调度与死锁
3.1 处理机调度的层次 3.2 调度队列模型和调度准则 3.3 调度算法 3.4 实时调度 3.5 产生死锁的原因和必要条件 3.6 预防死锁的方法 3.7 死锁的检测与解除
1、非抢占方式(Non-preemptive Mode) 引起进程调度的因素可归结为这样几个:
① 正在执行的进程执行完毕,或因发生某事件而不能再 继续执行;
4. 具有快速切换机制
该机制应具有如下两方面的能力:
(1) 对外部中断的快速响应能力。为使在紧迫的外部 事件请求中断时系统能及时响应,要求系统具有快速硬件 中断机构,还应使禁止中断的时间间隔尽量短,以免耽误 时机(其它紧迫任务)。
(2) 快速的任务分派能力。在完成任务调度后,便应 进行任务切换。为了提高分派程序进行任务切换时的速度, 应使系统中的每个运行功能单位适当的小,以减少任务切 换的时间开销。
计算机操作系统第三章处理机调度与死锁 ppt课件

2决定接纳哪些作业
选用何种调度算法:先来先服务、 短作业优先、基于作业优先级、响 应比高者优先。
PPT课件
6
注意
批处理系统中,作业是首先进入外存, 然后经由作业调度分批进入内存;
分时系统及实时系统中,由于对响应 时间有要求,因此用户输入的命令和数据 等是直接进入内存的,无须配置作业调度 机制。
PPT课件
PPT课件
14
同时具有三级调度的调度队列模型
作业 调度
后备队列
中级 调度
时间片完 就绪队列 就绪、挂起队列
进程调度
进程完成
CPU
挂起
事件出现
事件发生
阻塞、挂起队列 阻塞队列
挂起 等待事件
具有高、低、中三级调度的调度队列模型
PPT课件
15
选择调度方式和调度算法的若干准则
• 面向用户的准则
– 周转时间短(批处理) – 响应时间快(分时) – 截止时间保证(实时) – 优先权准则(all)
4
2 作业控制块
多道批处理系统中,为每个作业配备一个作业 控制块(JCB),它是作业在系统中存在的标志。
作业运行期间,系Biblioteka 按照JCB中的信息对作业进行 控制。
JCB中保存了系统对作业进行管理和调度所需 的全部信息。例如:作业标识、用户名称、用户帐 户、作业类型、作业状态、调度信息、资源需求、 进入系统时间、开始处理时间、作业完成时间、作 业退出时间、资源使用情况等。
第三章 处理机调度与死锁
要解决的三个问题:
WHAT:按什么原则分配CPU? —进程调度算法
WHEN:何时分配CPU? —进程调度的时机
HOW: 如何分配CPU? —CPU调度过程(进程的上下文切换)
操作系统 死锁PPT

银行家算法描述
当进程Pi提出资源申请时,系统执行下列步骤: (1) 若Request[i]≤Need[i], 转(2);否则错误返回 (2) 若Request[i]≤Available[i], 转(3);否则进程等待 (3) 假设系统分配了资源,则有: Available=Available-Request[i]; Allocation[i]=Allocation[i]+Request[i]; Need[i]=Need[i]-Request[i] (4) 执行安全性算法,若系统新状态是安全的,则分配 完成,若系统新状态是不安全的,则恢复原状态, 进程等待。
第35/46页
死锁的检测和解除
死锁检测
允许死锁发生,操作系统不断监视系统进展情况, 判断死锁是否发生;一旦死锁发生则采取专门的措施, 解除死锁并以最小的代价恢复操作系统运行
检测时机
当进程等待时检测死锁,其缺点是系统的开销大 定时检测 系统资源利用率下降时检测死锁
第36/46页
进程-资源分配图PRAG
分配矩阵Allocation :n*m矩阵,表示每个进程已 分配的资源数。 int Allocation[n][m]
A P1 P2 P3 P4 2 1 2 1 B 1 2 2 3 C 2 1 2 2
第25/46页
银行家算法的数据结构(4)
需求矩阵Need :n*m矩阵,表示每个进程还需要 各类资源数。 int Need[n][m]
进程在等待一新资源时继续占有已分配的资源。
不剥夺条件(系统规定)
不能强行剥夺进程拥有的资源。
环路等待条件(进程/资源之间的关系)
存在一个进程等待队列{ P1 , P2 , … , Pn }, 其中P1等 待P2占有的资源,P2等待P3占有的资源,…,Pn等待P1占有 的资源,形成一个进程等待环路。
《操作系统死锁》课件

操作系统死锁
欢迎大家来到本次关于操作系统死锁的PPT课件。今天我们将讨论什么是死锁 以及死锁的产生原因和特征。
什么是死锁
死锁是指两个或多个进程因等待对方释放资源而无法继续执行的情况。
死锁演示
通过一个实际示例来展示死锁的发生情况。
死锁的处理
为了预防和处理死锁,我们将介绍预防、避免、检测和解除这将介绍银行家算法、死锁避免算法以及死锁检测和恢复。
死锁的影响
死锁不仅对计算机性能有影响,还会影响整个计算机系统的稳定性。
结论
我们强调解决死锁的重要性,并指出死锁是操作系统性能瓶颈之一。
参考文献
在本次课件中,我们提供了一些参考书目和链接,供大家进一步学习。
欢迎大家来到本次关于操作系统死锁的PPT课件。今天我们将讨论什么是死锁 以及死锁的产生原因和特征。
什么是死锁
死锁是指两个或多个进程因等待对方释放资源而无法继续执行的情况。
死锁演示
通过一个实际示例来展示死锁的发生情况。
死锁的处理
为了预防和处理死锁,我们将介绍预防、避免、检测和解除这将介绍银行家算法、死锁避免算法以及死锁检测和恢复。
死锁的影响
死锁不仅对计算机性能有影响,还会影响整个计算机系统的稳定性。
结论
我们强调解决死锁的重要性,并指出死锁是操作系统性能瓶颈之一。
参考文献
在本次课件中,我们提供了一些参考书目和链接,供大家进一步学习。
《操作系统原理》第三章 进程间的并发控制和死锁

P/V操作实现进程间互斥
输入进程A …… 输出进程B
……
P(s) 从缓冲区取走消息 V(s) ……
P(s)
读消息到缓冲区 V(s) ……
用信号量可以方便地解决n个进程互斥地使 用临界区的问题。信号量的取值范围是+1~ (1-n)。信号量的值为负时,说明一个进程 正在临界区执行,其它的正排在信号量等 待队列中等待,等待的进程数等于信号量 值的绝对值 例:若P、V操作的信号量初值为1,当前值 为-3,则表示3个等待进程。
例:用信号量实现计算进程与打印进程之间的同步 过程。假定计算进程和打印进程共同使用一个单 缓冲。
分析: 当计算进程对数据的计算尚未完成时,计算的 结果没有送入缓冲区,打印进程不能执行打印操 作。一旦计算机把计算结果送入缓冲区后,就应 给打印进程发送一信号,打印进程收到该信号后 ,便可从缓冲区取出计算结果进行打印。
2、利用信号量实现进程之间的同步
进程同步:是指相互合作的一组共行进程 ,各自以独立的,不可预知的速度向前推 进,在前进过程中彼此之间需要相互协调 步伐,才能更好地完成统一项任务。 这些进程互相合作,在一些关键点上可能 需要互相等待或互通消息。 为了解决进程的同步,同样也可以引入信 号量
P/V操作实现进程间同步
一般来说,V原语是释放资源的,所以可以 任意次序出现,但P原语则不然,如果次序 混乱,将会造成进程之间的死锁。
两个经典的同步/互斥问题
读者与写者问题 有一个许多进程共享的数据区,对共享资源的 读写操作,任一时刻“写者”最多只允许一个,而 “读者”则允许多个: “读--写”互斥:若一个写进程正在写,禁止任 何进程读。 “写--写”互斥:一次只有一个写进程可以往数 据区中写; ―读--读‖允许:任意多的读进程可以同时读这个 数据区;
第三章处理机调度与死锁-PPT精品

(1) 进程类型。 (2) 进程对资源的需求。 (3) 用户要求。
第三章 处理机调度与死锁
2) 动态优先权
计算机操作系统
动态优先权是指,在创建进程时所赋予的优先权, 是可以随进程的推进或随其等待时间的增加而改变的, 以便获得更好的调度性能。
第三章 处理机调度与死锁
3. 高响应比优先调度算法
计算机操作系统
3.1.3 选择调度方式和调度算法的若干准则
1. 面向用户的准则 (1) 周转时间短。 周转时间的长短是评价批处理系统性能、选择作业调
度方式与算法的重要准则之一
第三章 处理机调度与死锁
(1) 周转时间短。
计算机操作系统
周转时间:从作业提交给系统开始,到作业完成为之 的这段时间间隔(作业周转时间) 作业在外存后备队列上等待(作业)调度的时间 进程在就绪队列上等待进程调度的时间 进程在CPU上执行的时间 进程等待I/O操作完成的时间
第三章 处理机调度与死锁
计算机操作系统
第三章 处理机调度与死锁
ห้องสมุดไป่ตู้算机操作系统
第三章 处理机调度与死锁
3.1 处理机调度的基本概念
3.1.1 高级、中级和低级调度
1. 高级调度(High Scheduling)
又称作业调度、长程调度:决定把外存上处于后备 队列中的哪些作业调入内存,并为之创建进程、分配必 要的资源,然后,再将新创建的进程排在就绪队列中。
优先权的变化规律可描述为:
优先权 等待要时求 间 要服求务服时务间时间
由于等待时间与服务时间之和,就是系统对该作 业的响应时间,故该优先权又相当于响应比RP。据此, 又可表示为:
优先 等 权待 要 时 求 要间 服 求务 服时 务 要 响 间 时 求 应 间 服 时 务 间
操作系统 进程之间的并发控制和死锁

第8页
1.2 操作系统的形成与发展
1.2.1 1.2.2 1.2.3 1.2.4 1.2.5 1.2.6 顺序处理(手工操作阶段) 简单的批处理系统 多道成批处理系统 分时系统 实时系统 嵌入式系统
第9页
1.2.1 顺序处理(手工操作)
20世纪40年代~50年代中期 计算机:CPU、主存、卡片输入机、打印
第15页
[例] 设一个计算机系统有256K主存,一 个磁盘、一个终端和一台打印机。三个
作业:JOB1、JOB2、JOB3。
作业编号 JOB1 作业类型 计算型 占用主存 50k 需磁盘情况 NO 需终端情况 NO 需打印机情况 NO 运行所需时间 5分钟
第16页
JOB2 I/O型 100k NO Yes NO 15分钟
第13页
多道程序设计:是指在主存同时存放多 个作业,使之同时处于运行状态,共享 系统中的各种资源。 在单CPU系统中。宏观上,各个作业都已 开始运行,但都未运行完;微观上,各 个作业是串行执行的,在任何特定时刻, 只有一个作业在处理机上运行。
第14页
衡量批处理系统的性能指标
资源利用率:指在给定时间内,系统中某一资 源(如CPU、存储器、外部设备等)实际使用时 间所占比率。 吞吐量(Throughput):指单位时间内系统所处 理的信息量。通常以每小时或每天所处理的作 业个数来度量。 周转时间:指从作业进入系统到作业退出系统 所用的时间。
(1)实时性。其响应时间由被控制对象所能 承受的延迟来确定。 (2)可靠性。要具有容错能力,可采用双工 机制:一台主机;一台后备机。 (3)确定性。是指系统按照固定的、预先确 定的时间执行指定的操作。
第页
1.2.6 嵌入式系统
以实际应用为中心、以计算机技术为基础、软
1.2 操作系统的形成与发展
1.2.1 1.2.2 1.2.3 1.2.4 1.2.5 1.2.6 顺序处理(手工操作阶段) 简单的批处理系统 多道成批处理系统 分时系统 实时系统 嵌入式系统
第9页
1.2.1 顺序处理(手工操作)
20世纪40年代~50年代中期 计算机:CPU、主存、卡片输入机、打印
第15页
[例] 设一个计算机系统有256K主存,一 个磁盘、一个终端和一台打印机。三个
作业:JOB1、JOB2、JOB3。
作业编号 JOB1 作业类型 计算型 占用主存 50k 需磁盘情况 NO 需终端情况 NO 需打印机情况 NO 运行所需时间 5分钟
第16页
JOB2 I/O型 100k NO Yes NO 15分钟
第13页
多道程序设计:是指在主存同时存放多 个作业,使之同时处于运行状态,共享 系统中的各种资源。 在单CPU系统中。宏观上,各个作业都已 开始运行,但都未运行完;微观上,各 个作业是串行执行的,在任何特定时刻, 只有一个作业在处理机上运行。
第14页
衡量批处理系统的性能指标
资源利用率:指在给定时间内,系统中某一资 源(如CPU、存储器、外部设备等)实际使用时 间所占比率。 吞吐量(Throughput):指单位时间内系统所处 理的信息量。通常以每小时或每天所处理的作 业个数来度量。 周转时间:指从作业进入系统到作业退出系统 所用的时间。
(1)实时性。其响应时间由被控制对象所能 承受的延迟来确定。 (2)可靠性。要具有容错能力,可采用双工 机制:一台主机;一台后备机。 (3)确定性。是指系统按照固定的、预先确 定的时间执行指定的操作。
第页
1.2.6 嵌入式系统
以实际应用为中心、以计算机技术为基础、软
操作系统课件-第三章进程管理7(死锁问题1)

17
进 程 管 理
UNIX系统允许创建的进程总数是由进程 UNIX系统允许创建的进程总数是由进程 表中包含的PCB个数决定的。因此,PCB资 PCB个数决定的 表中包含的PCB个数决定的。因此,PCB资 源是有限资源。 源是有限资源。如果由于进程表中已经无 空闲的PCB而使创建子进程操作(FORK) PCB而使创建子进程操作(FORK)失 空闲的PCB而使创建子进程操作(FORK)失 则执行FORK FORK操作的程序可以等待一段 败,则执行FORK操作的程序可以等待一段 时间之后再试。 时间之后再试。 出现这种情况的可能性是非常小的, 出现这种情况的可能性是非常小的,但 还是有可能发生的。一旦出现, 还是有可能发生的。一旦出现,只要忽略 原进程已运行情况的现场, 原进程已运行情况的现场,重新启动机器 让它们重新运行即可。 让它们重新运行即可。 假定UNIX系统有 假定 系统有100个PCB项,10个进 个 项 个进 系统有 程正在运行,每个需要创建12个子进程 个子进程。 程正在运行,每个需要创建 个子进程。
P1 S1 P2
9
进 程 管 理 P2Rel(R1) P2Rel(R2) P2Req(R1) P2Req(R2)
进程P1、P2并发执行。 资源R1、R2 ②
曲线4将进入不安 全区域(进程推 进顺序非法)
③ ② ④ ③ ③ ① P1Req(R1) P1Req(R2) P1Rel(R1) P1Rel(R2) ③ ①
10
进 程 管 理
死锁模型
申请r1
R2已经分配给P1、R1已经分配给P2 已分配给P1
P1
R1
R2
已分配给p2
P2
申请r2
11
进 程 管 理
产生死锁的四个必要条件
进 程 管 理
UNIX系统允许创建的进程总数是由进程 UNIX系统允许创建的进程总数是由进程 表中包含的PCB个数决定的。因此,PCB资 PCB个数决定的 表中包含的PCB个数决定的。因此,PCB资 源是有限资源。 源是有限资源。如果由于进程表中已经无 空闲的PCB而使创建子进程操作(FORK) PCB而使创建子进程操作(FORK)失 空闲的PCB而使创建子进程操作(FORK)失 则执行FORK FORK操作的程序可以等待一段 败,则执行FORK操作的程序可以等待一段 时间之后再试。 时间之后再试。 出现这种情况的可能性是非常小的, 出现这种情况的可能性是非常小的,但 还是有可能发生的。一旦出现, 还是有可能发生的。一旦出现,只要忽略 原进程已运行情况的现场, 原进程已运行情况的现场,重新启动机器 让它们重新运行即可。 让它们重新运行即可。 假定UNIX系统有 假定 系统有100个PCB项,10个进 个 项 个进 系统有 程正在运行,每个需要创建12个子进程 个子进程。 程正在运行,每个需要创建 个子进程。
P1 S1 P2
9
进 程 管 理 P2Rel(R1) P2Rel(R2) P2Req(R1) P2Req(R2)
进程P1、P2并发执行。 资源R1、R2 ②
曲线4将进入不安 全区域(进程推 进顺序非法)
③ ② ④ ③ ③ ① P1Req(R1) P1Req(R2) P1Rel(R1) P1Rel(R2) ③ ①
10
进 程 管 理
死锁模型
申请r1
R2已经分配给P1、R1已经分配给P2 已分配给P1
P1
R1
R2
已分配给p2
P2
申请r2
11
进 程 管 理
产生死锁的四个必要条件
操作系统第3章

给其抢它占进原程则,有决:不允许某进程抢占已 经分配优出先去权的原处则理;机。 优点:短实作现业简优单先,原系则统;开销小。 缺点:时难间于片满原足则紧。急任务的要求。
3.1 处理机调度的基本概念
3. 中级调度
挂起和激活,存储器管理中的对换功能。
主要目的: 为了提高内存的利用率和系统的吞吐量。
三种调度相比较:
● 高级调度的相关概念
作业:用户一次请求计算机系统为其完成任务所做工作 的总和。它通常包括程序、数据和作业说明书,系统根 据说明书对程序进行控制。 作业步:指每个作业在运行期间,都必须经过若干个相 对独立,又相互关联的顺序加工步骤,其中的每一个加 工步骤称为作业步。一个典型的作业可分成三个作业 步:① “编译”作业步,② “连结装配”作业步,③ “运行”作业步 作业状态:作业状态分为后备、运行和完成三种状态。 作业控制块(Job Control Block,JCB)
调度方式
3.1.3 选择调度方式和调度算法的若干准则 2. 面向系统的准则吞吐量:单位时间内系统所
完成的作业数
(1)系统吞吐量高
调度方式和算法对处理机的
(2)处理机利用率好 利用率起着十分重要的作用
(3)各类资源的均衡利 用
对于单用户微机或某些实 时系统,该准则并不重要
3.2 调度算法
3.2.1 先来先服务调度算法
进程插入到就决定: ●接纳多少个作业——取决于多道程序度 ●接纳哪些作业——取决于调度算法
▲内存中同时运行的 作业数目太多,会影 响系统的服务质量。 如,周转时间长。
▲内存中同时运行的 作业数目太少,会导 致系统资源利用率和 系统吞吐量低。
3.1.1 高级、中级和低级调度
算,而很少请求I/O。如,科学计算
3.1 处理机调度的基本概念
3. 中级调度
挂起和激活,存储器管理中的对换功能。
主要目的: 为了提高内存的利用率和系统的吞吐量。
三种调度相比较:
● 高级调度的相关概念
作业:用户一次请求计算机系统为其完成任务所做工作 的总和。它通常包括程序、数据和作业说明书,系统根 据说明书对程序进行控制。 作业步:指每个作业在运行期间,都必须经过若干个相 对独立,又相互关联的顺序加工步骤,其中的每一个加 工步骤称为作业步。一个典型的作业可分成三个作业 步:① “编译”作业步,② “连结装配”作业步,③ “运行”作业步 作业状态:作业状态分为后备、运行和完成三种状态。 作业控制块(Job Control Block,JCB)
调度方式
3.1.3 选择调度方式和调度算法的若干准则 2. 面向系统的准则吞吐量:单位时间内系统所
完成的作业数
(1)系统吞吐量高
调度方式和算法对处理机的
(2)处理机利用率好 利用率起着十分重要的作用
(3)各类资源的均衡利 用
对于单用户微机或某些实 时系统,该准则并不重要
3.2 调度算法
3.2.1 先来先服务调度算法
进程插入到就决定: ●接纳多少个作业——取决于多道程序度 ●接纳哪些作业——取决于调度算法
▲内存中同时运行的 作业数目太多,会影 响系统的服务质量。 如,周转时间长。
▲内存中同时运行的 作业数目太少,会导 致系统资源利用率和 系统吞吐量低。
3.1.1 高级、中级和低级调度
算,而很少请求I/O。如,科学计算
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
信号量是一个数据结构
定义如下: struct semaphore
整型变量,其值大小 表示该资源的可用数 量
{ int value;
Pointer_PCB queue;
} 2021/3/10
13
是等待使用该资源的进程排
成队列的队列头指针
授课:XXX
对信号量S的操作只允许执行P、V操作。其 中P/V操作由原语组成,执行过程中不可分 割。
2021/3/10
3
授课:XXX
2、系统中存在若干协作进程
同步关系:通常,一个用户作业涉及一组并 发进程(输入、计算和输出进程),这些 进程须相互协作完成这项任务。
在运行过程中,这些进程可能要在某些同 步点上等待协作者发来信息后才能继续运 行。进程之间的这种制约关系叫直接制约 关系。又叫同步关系。可用“进程—进程”来 描述
第三章进程之间的并 发控制和死锁
2021/3/10
1
授课:XXX
进程通信
进程的状态是基于一定的原因和条件而变 化的,而这些原因和条件又常常是由于进 程之间的相互制约关系引起的。系统中诸 进程之所以有这种关系,是由两方面原因 引起的:
1)各并发进程对资源的共享个进入,而不能无限等待都不让进 让权等待-等待的进程必须释放CPU
2021/3/10
8
授课:XXX
二、解决进程之间互斥的方法
1、关中断
进程A
进程B
Close_INT;
Close_INT;
Critical_region();
Critical_region();
Open_INT;
Open_INT;
解决思想
在临界区中防止发生进程调度 保证临界区操作的完整性
方法分析
用户控制系统中断是非常危险的 本方法对多个CPU系统将失去作用
2021/3/10
9
授课:XXX
二、解决进程之间互斥的方法
2、lock, unlock
在原语里设置一个公共变量代表临界资源的状态。
x=
0资源可用
1资源正在使用
15
授课:XXX
1、利用信号量实现进程之间的互斥
引入一个互斥信号量,用mutex表示。对于 互斥使用的资源,其信号量的初值为1
欲进入临界区执行的进程须先对互斥信号 量mutex执行P操作若已有进程占有临界资 源,进程必须等待,直到临界资源空闲为 止;若无进程占用,可使用它
共享资源:
慢速的硬件设备,如打印机、磁带机等资源 软件资源,如共享变量、共享文件等
临界资源( critical resource ):就是一次仅 允许一个进程使用的资源。如:打印机
临界区(critical section) :就是并发执行 的进程访问临界资源的那个必须互斥执行 的程序段
2021/3/10
返回
x=1
返回继续测试
显然,采用加锁机制,由 于进程循环测试,白白浪 费了CPU的时间,降低了 系统的速度
11
授课:XXX
三、进程之间的同步
同步原因:一组进程要合作完成一项任务。
例:两个用户进程通过共享缓冲区完成其计算和打 印任务。计算进程负责将计算结果送入共享缓冲 区,打印进程从缓冲区取数据打印。当缓冲区空 时,不允许取数据,满时不允许送数据。否则, 将出现错误。
计算进程与打印进程这种制约关系,不是由于两 个进程同时访问共享缓冲区,而是由于它们访问 缓冲区时的速度不匹配造成的。
为了使进程同步,需要引入信号量机制。
2021/3/10
12
授课:XXX
四、信号量
1965年,荷兰学者Dijkstra提出的。
基本原理:两个或多个进程可以通过简单的信号进 行合作,一个进程可以被迫在某一位置停止,直 到它接收到一个特定的信号。任何复杂的合作需 求通过适当的信号结构得到满足。为此,需要使 用一个称作为信号量的特殊变量,以便通过信号 量传送信号。
使用临界资源必须做如下三步:
1、检查锁的设置
0资源可 ,关用 锁 x : 1 1资源正在 ,继使 续用 测试
2、进入临界区,访问临界区
3、释放临界资源,开锁
2021/3/10
10
授课:XXX
2021/3/10
锁机制框图
测试x=0?
x=0
Lock[x],x=1
进入临界区
退出临界区 Unlock[x],x=0
P操作原语P(S)
1)S:=S – 1
//请求一个资源
2)If S>=0, go on; if S<0, blocked
//申请不成功(资源用完), 调用阻塞原语“让权等待 ”
V操作原语V(S)
1)S:=S + 1
//释放一个资源
2)If S>0, go on; if S<=0, the first blocked process in waiting queue blocked->ready, go on
6
授课:XXX
临界资源和临界区
程序1 pcb1
Y=Y+1 output
内存共享区Y
程序2 pcb2 Y=Y+2 output
2021/3/10
7
授课:XXX
四个准则
为了正确而有效地使用临界资源,系统中 的并发进程需要遵循如下四个准则:
空闲让进-无进程在临界区就允许进入 忙则等待-有进程在临界区,则等待 有限等待-多进程要求进入临界区是,应该让某
2021/3/10
//表示在信号链表,仍有等待该资源
的进程,调用唤醒原语。
14
授课:XXX
显然,P、V操作的引入,克服了加锁操作 的忙等待现象,有效提高了系统的效率
操作系统正是利用信号量的状态对进程和 资源进行管理和控制的。
从物理意义上理解,P操作相当于申请资源 ;V操作相当于释放资源。
2021/3/10
2
授课:XXX
1、各并发进程对资源的共享
互斥关系:通过共享资源而使进程之间产
生的关系叫间接制约关系,又叫互斥关系 。可用“进程—资源—进程”来描述。
例:进程P1和P2在运行中都要使用打印机, 为了使各进程输出的完整性,打印机的使 用必须独占。一旦系统将打印机分配给进 程P1,那么进程P2必须等待,等待P1使用 完打印机并释放后,才能使用。
2021/3/10
4
授课:XXX
进程通信:是指进程的上述相互依赖关系 。进程之间的这种相互依赖又相互制约、 相互合作又相互竞争的关系,也即进程的 同步与互斥关系。互斥是同步的一个特例 。进程之间的这种关系就叫进程的低级通 信。
2021/3/10
5
授课:XXX
一、进程之间的互斥
(进程的互斥是由于共享资源而引起的)