收藏 分享(赏)

计算机操作系统第三讲.ppt

上传人:dreamzhangning 文档编号:2823203 上传时间:2018-09-28 格式:PPT 页数:42 大小:216.50KB
下载 相关 举报
计算机操作系统第三讲.ppt_第1页
第1页 / 共42页
计算机操作系统第三讲.ppt_第2页
第2页 / 共42页
计算机操作系统第三讲.ppt_第3页
第3页 / 共42页
计算机操作系统第三讲.ppt_第4页
第4页 / 共42页
计算机操作系统第三讲.ppt_第5页
第5页 / 共42页
点击查看更多>>
资源描述

1、2018年9月28日星期五8时39分13秒,内蒙古工业大学计算机系,1,第三章 进程管理进程的互斥与同步,教学目的,掌握利用信号量解决并发进程同步的问题,掌握临界区、互斥的概念,掌握并发进程互斥执行的准则,掌握信号量和P/V原语,掌握同步的概念,2018年9月28日星期五8时39分13秒,内蒙古工业大学计算机系,2,第三章 进程管理进程的互斥与同步,教学内容,3.5 进程互斥,3.6 进程同步,2018年9月28日星期五8时39分13秒,内蒙古工业大学计算机系,3,第三章 进程管理进程的互斥与同步,资源共享所引起的制约,临界区,举例,设有计算进程Pa和Pb,共享内存MS。MS分为三个区:系统区

2、、进程工作区和数据区。数据区被划分为大小相同的块,系统区主要是堆栈S,存放空数据的地址。,2018年9月28日星期五8时39分13秒,内蒙古工业大学计算机系,4,第三章 进程管理进程的互斥与同步,2018年9月28日星期五8时39分13秒,内蒙古工业大学计算机系,5,第三章 进程管理进程的互斥与同步,取空数据块的过程,procedure getspace() beginlocal g -g1语句 g-stacktop -g2语句 top-top-1 -g3语句 return (g) -g4语句 end,2018年9月28日星期五8时39分13秒,内蒙古工业大学计算机系,6,第三章 进程管理进程

3、的互斥与同步,释放数据块的过程,procedure release(ad) begintop-top+1 -r1语句stacktop-ad -r2语句 end,2018年9月28日星期五8时39分13秒,内蒙古工业大学计算机系,7,第三章 进程管理进程的互斥与同步,一种执行结果,设t0时刻,top=h0,进程Pa与Pb并发执行的语句序列为:r1,g2,g3,r2,执行结果,由学生自己完成!,2018年9月28日星期五8时39分13秒,内蒙古工业大学计算机系,8,虽然可以判断两个相邻语句是否能并发执行,但是这种方法的局限性在于将花费巨大的系统开销。,解决办法,第三章 进程管理进程的互斥与同步,产

4、生的原因,该资源是不能被共享并发使用的。,方法一: Bernstein条件,2018年9月28日星期五8时39分13秒,内蒙古工业大学计算机系,9,第三章 进程管理进程的互斥与同步,不允许多个并发进程交叉执行的一段程序。,方法二:临界区(Critical region),间接制约,类(class),把那些不允许交叉执行的临界区按不同的公用数据划分为不同的集合。,2018年9月28日星期五8时39分13秒,内蒙古工业大学计算机系,10,第三章 进程管理进程的互斥与同步,公用数据栈S的临界区集合是getspace,release。,例如,临界区的程序描述,When do od,上例中的getspa

5、ce和release的描述为:,2018年9月28日星期五8时39分13秒,内蒙古工业大学计算机系,11,第三章 进程管理进程的互斥与同步,getspace,when sp dog-stacktop top-top-1 od,release(ad),when sp do top-top+1 stacktop-ad od,2018年9月28日星期五8时39分13秒,内蒙古工业大学计算机系,12,第三章 进程管理进程的互斥与同步,间接制约,把这种由于共享某一个公用资源而引起的在临界区内不允许并发进程交叉执行的现象。,互斥,一组并发进程中的一个或多个程序段,因共享某一个共有资源而导致它们必须以一个不

6、允许交叉执行的单位执行。,2018年9月28日星期五8时39分13秒,内蒙古工业大学计算机系,13,第三章 进程管理进程的互斥与同步,临界区调度原则,不假设各并发进程的执行速度,空闲让进,忙则等待,有限等待,2018年9月28日星期五8时39分13秒,内蒙古工业大学计算机系,14,第三章 进程管理进程的互斥与同步,互斥的加锁实现,通过对临界区加锁,在进入临界区时测试是否可以进入,退出临界区时对锁进行恢复。,锁的定义,keyS:表示临界区S(临界区类名)的锁定位 keyS=1:表示临界区S可用 keyS=0:表示临界区S不可用,2018年9月28日星期五8时39分13秒,内蒙古工业大学计算机系,

7、15,第三章 进程管理进程的互斥与同步,加锁实现临界区的描述,lock(keyS)unlock(keyS),lock/unlock的实现,unlock的实现,procedure unlock(keys) begin keys-1 end,2018年9月28日星期五8时39分13秒,内蒙古工业大学计算机系,16,第三章 进程管理进程的互斥与同步,lock的实现,procedure lock(keys) begin local vrepeat v-keysuntil v=1 keys-0 end,存在困难 如何保证lock 操作为原语?,使用机器指令实现 1、关中断 2、测试与设置,2018年9月

8、28日星期五8时39分13秒,内蒙古工业大学计算机系,17,第三章 进程管理进程的互斥与同步,信号量实现互斥,信号量的引入,使用锁虽可以解决互斥问题,但是存在循环测试浪费CPU的时间;,可能出现不公平现象;,2018年9月28日星期五8时39分13秒,内蒙古工业大学计算机系,18,第三章 进程管理进程的互斥与同步,PaA:lock(keyS)unlock(keyS)goto A PbB:lock(keyS)unlock(keyS)goto B,执行结果每个进程自己检测锁,查看自己是否可以进入临界区。这个过程,既浪费了CPU时间,也给进程进入临界区带来了不公平,因为必须调度该进程,它才能测试。,

9、2018年9月28日星期五8时39分13秒,内蒙古工业大学计算机系,19,第三章 进程管理进程的互斥与同步,信号量及其操作,将交通管制中多种颜色的信号灯管理交通的方法引入操作系统,让两个或多个进程通过特殊变量展开交互。,1965年E.W.Dijkstra(荷兰人)提出信号量和P 操作(荷兰语的测试Proberen)、V操作(增量Verhogen)。,信号量(Semaphore),2018年9月28日星期五8时39分13秒,内蒙古工业大学计算机系,20,第三章 进程管理进程的互斥与同步,信号量定义,sem:用一整数表示信号量,sem=0:表示可以使用的资源数,sem0:表示正在等待使用临界区的进

10、程数,2018年9月28日星期五8时39分13秒,内蒙古工业大学计算机系,21,第三章 进程管理进程的互斥与同步,P/V原语,P原语的主要动作,2018年9月28日星期五8时39分13秒,内蒙古工业大学计算机系,22,第三章 进程管理进程的互斥与同步,V原语的主要动作,2018年9月28日星期五8时39分13秒,内蒙古工业大学计算机系,23,第三章 进程管理进程的互斥与同步,P/V原语的实现,P原语的实现,P(sem): begin关中断lock(lockbit)valsem=valsem-1if valsem0保护当前进程CPU现场当前进程状态置为“等待”将当前进程插入信号sem等待队列转进

11、程调度fiunlock(lockbit)开中断 end,2018年9月28日星期五8时39分13秒,内蒙古工业大学计算机系,24,第三章 进程管理进程的互斥与同步,V原语的实现,V(sem): begin关中断lock(lockbit)valsem=valsem+1if valsem=0local k从sem等待队列中选取一等待进程,将其指针置入k中 将k插入就绪队列进程状态置“就绪”fiunlock(lockbit)开中断 end,2018年9月28日星期五8时39分13秒,内蒙古工业大学计算机系,25,第三章 进程管理进程的互斥与同步,用信号量实现互斥,信号量说明 sem=1,P0: P(

12、sem)V(sem) ,P1: P(sem)V(sem) ,Pn: P(sem)V(sem) ,2018年9月28日星期五8时39分13秒,内蒙古工业大学计算机系,26,第三章 进程管理进程的互斥与同步,例1:设有三个进程A、B、C需共享一个临界资源,用信号量实现该算法。,sem=1; Pa() beginP(s);;V(s); end,Pb() beginP(s);;V(s); end,Pc() beginP(s);;V(s); end,2018年9月28日星期五8时39分13秒,内蒙古工业大学计算机系,27,第三章 进程管理进程的互斥与同步,2018年9月28日星期五8时39分13秒,内蒙

13、古工业大学计算机系,28,第三章 进程管理进程的互斥与同步,进程同步,进程间存在两种形式的制约关系:,间接制约互斥,直接制约同步,2018年9月28日星期五8时39分13秒,内蒙古工业大学计算机系,29,第三章 进程管理进程的互斥与同步,同步的引入,设有计算和打印两个进程Pc和Pp,共同使用同一缓冲区Buffer,Pc向Buffer中存放计算结果,Pp从Buffer取计算结果送打印机输出。如下图模型。,2018年9月28日星期五8时39分13秒,内蒙古工业大学计算机系,30,假设互斥已解决,这两个进程的执行是相互制约的。即Pc的执行结果是Pp的执行条件;而Pp的执行结果也是Pc的执行条件,它们

14、是相互制约的。,第三章 进程管理进程的互斥与同步,把一组在异步环境中由于以各自的执行结果而限制其它进程的执行速度的现象称为并发进程的直接制约,解决这种直接制约的方法称为同步。模型如下。,2018年9月28日星期五8时39分13秒,内蒙古工业大学计算机系,31,第三章 进程管理进程的互斥与同步,repeat wait(Bufempty);计算;Buf-计算结果;Bufempty-false;signal(Buffull); Until false,repeat wait(Buffull);打印缓冲区中的数据;Buffull-false;signal(Bufempty); Until false,

15、2018年9月28日星期五8时39分13秒,内蒙古工业大学计算机系,32,第三章 进程管理进程的互斥与同步,说明,设置了两个消息Bufempty和Buffull,分别表示buffer空和满,初始化Bufempty=true,Buffull=false,wait(消息名):表示进程等待合作进程发来的消息,signal(消息名):表示合作进程发送消息,2018年9月28日星期五8时39分13秒,内蒙古工业大学计算机系,33,第三章 进程管理进程的互斥与同步,使用信号量实现同步,私有信号量(Private Semaphore),只与制约进程及被制约进程相关,而与整组并发进程无关。,相对实现互斥的信号

16、量也称为公用信号量。,2018年9月28日星期五8时39分13秒,内蒙古工业大学计算机系,34,第三章 进程管理进程的互斥与同步,实现同步,设置私有信号量,为私有信号量赋初值,利用P/V原语规定进程的执行顺序,2018年9月28日星期五8时39分13秒,内蒙古工业大学计算机系,35,第三章 进程管理进程的互斥与同步,例如:进程Pa和进程Pb通过缓冲区队列传递数据。Pa为发送进程;Pb为接收进程。数据的接收和发送满足下面的条件:(1)缓冲区空时,Pb不能从中取数据;(2)Pa往缓冲区写数据时,缓冲区必须有一块为空;(3)缓冲区中的缓冲块按先进先出(FIFO)的方式排列。,2018年9月28日星期

17、五8时39分13秒,内蒙古工业大学计算机系,36,第三章 进程管理进程的互斥与同步,设置私有信号量并赋初值Bufempty=n,Buffull=0;,Pa进程的发送过程的实现(deposit(data),2018年9月28日星期五8时39分13秒,内蒙古工业大学计算机系,37,第三章 进程管理进程的互斥与同步,Pb进程的接收过程的实现(remove(data)),2018年9月28日星期五8时39分13秒,内蒙古工业大学计算机系,38,第三章 进程管理进程的互斥与同步,生产者消费者问题,生产者消费者问题,有m个生产者和k个消费者,连接在一个有n个单位缓冲区的有界缓冲上。其中,pi和cj都是并发

18、进程,只要缓冲区未满,生产者pi生产的产品就可投入缓冲区;只要缓冲区不空,消费者进程cj就可从缓冲区取走并消耗产品。,2018年9月28日星期五8时39分13秒,内蒙古工业大学计算机系,39,第三章 进程管理进程的互斥与同步,生产者消费者模型,把系统中使用某类资源的进程称为消费者;把释放同类资源的进程称为生产者。,2018年9月28日星期五8时39分13秒,内蒙古工业大学计算机系,40,第三章 进程管理进程的互斥与同步,信号量解决生产者消费者问题,设置公有信号量mutex,以实现互斥;,设置私有信号量empty和full,以实现同步;,赋初值:empty=k, full=0, mutex=1;

19、,实现deposit(data)和remove(data)操作,2018年9月28日星期五8时39分13秒,内蒙古工业大学计算机系,41,第三章 进程管理进程的互斥与同步,deposit(data): beginP(avail)P(mutex)送数据入缓冲区某单元V(full)V(mutex) end,remove(data): beginP(full)P(mutex)取缓冲区中某单元数据V(avail)V(mutex) end,avail-n full-0 mutex-1,2018年9月28日星期五8时39分13秒,内蒙古工业大学计算机系,42,第三章 进程管理进程的互斥与同步,可以实现进程间的同步与互斥 可读性差。要知道整个程序中共享变量和信号量的操作是否正确,必须通读整个程序。 不利于维护和修改。因为修改一个量可能会影响整个程序。 正确性难以保证。因为程序很大。,信号量的性能,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 实用文档 > 往来文书

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报