进程同步与互斥习题课(最新).ppt
《进程同步与互斥习题课(最新).ppt》由会员分享,可在线阅读,更多相关《进程同步与互斥习题课(最新).ppt(28页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、 进程同步与互斥习题课进程同步与互斥习题课 河北工业大学河北工业大学 计算机学院计算机学院 李建伟李建伟 利用信号量实现进程间的互斥利用信号量实现进程间的互斥n由于各进程要求共享资源,而有些资源由于各进程要求共享资源,而有些资源需要互斥使用,因此各进程间竞争使用需要互斥使用,因此各进程间竞争使用这些资源,进程的这种关系为进程的互这些资源,进程的这种关系为进程的互斥斥n临界资源:临界资源:critical resourcecritical resource系统中某些资源一次只允许一个进程使系统中某些资源一次只允许一个进程使用,称这样的资源为临界资源或互斥资用,称这样的资源为临界资源或互斥资源或共
2、享变量源或共享变量临界区(互斥区):critical section 一个程序片段的集合,这些程序片段分散在不同的进程中,对某个共享的数据结构(共享资源)进行操作 在进程中涉及到临界资源的程序段叫临界区a:=a-1 print(a)a:=a+1 print(a)P1互斥互斥P2互斥互斥If a 0then a:=a+1else a:=a-1P3互斥互斥 进程的互斥进程的互斥(间接作用)(间接作用)互互斥斥例例题题1 设设一一民民航航航航班班售售票票系系统统有有n个个售售票票处处。每每个个售售票票处处通通过过终终端端访访问问系系统统中中的的公公用用数数据据区区,假假定定公公共共数数据据区区中中一
3、一些些单单元元xk(k=1,2,)分分别别存存放放月月日日次次航航班班的的现现存存票票数数。设设P1,P2,Pn表表示示各各售售票票处处的的处处理理进进程程,R1,R2,Rn表表示示各各进进程程执执行行时时所所用用的的工工作单元。作单元。用信号量实现进程间互斥的程序如下:用信号量实现进程间互斥的程序如下:beginS:Semaphore;S=1cobegin Process Pi(i=1,2,n)begin按旅客订票要求找到xk;P(S)Ri=xk;if Ri1 then begin Ri=Ri-1;xk=R1;V(S)输出一张票 end else begin V(S);输出“票已售完”end
4、 end;coend;end;互斥例题互斥例题2 2.利用信号量实现进程间的同步利用信号量实现进程间的同步 一般来说,一般来说,信号量初值为信号量初值为 0,两个进程之间的同两个进程之间的同步模型如下:步模型如下:进程进程P1 进程进程P2 L1:P(S)L2:V(S)例例 1 用信号量实现司机和售票员的同步。用信号量实现司机和售票员的同步。设设S1和和S2分分别别为为司司机机和和售售票票员员的的私私用用信信号号量量,初初值值均均为为0,则司机和售票员的同步,则司机和售票员的同步过程描述如下:过程描述如下:例例 2 设设进进程程A、B是是两两个个相相互互合合作作的的进进程程,共共用用一一个个缓
5、缓冲冲区区。进进程程A负负责责从从卡卡片片输输入入机机读读入入卡卡片片送送到到缓缓冲冲区区,进进程程B取取走走缓缓冲冲区区中中的的卡卡片片信信息息进进行行加加工工处处理理。进进程程A在在完完成成将将卡卡片片送送入入缓缓冲冲区区后后,给给进进程程B发发一一信信号号。进进程程B收收到到信信号号后后,取取走走卡卡片片信信息息进进行行加加工工处处理理。反反之之,进进程程B取取走走卡卡片片信信息息后后,给给进进程程A发发一一信信号号,进进程程A再再将将卡卡片片信信息息读读入入缓缓冲冲区区。为为此此,我我们们利利用用两两个个私私用用信信号号量量S1和和S2,其其初初值值均均为为 0,信信号号量量S1表表示
6、示缓缓冲冲区区是是否否有有卡卡片片信信息息,信信号号量量S2表表示示缓缓冲冲区区信信息息是是否否被被取取走走。利利用用P、V操操作作实实施施进程进程A、B的同步过程如下:的同步过程如下:n 读者-写者模型是现代操作系统中典型的进程同步互斥问题,以客户服务器模式为代表的多进(线)程通信系统应用都可以抽象为该模型的不同形式。因此,该模型的算法在这些领域具有重要的应用价值。典型同步互斥问题之一:典型同步互斥问题之一:读者与写者问题读者与写者问题(ReaderWriter Problems)n多个进程共享一个文件,其中只读文件进程称为读者,只写文件进程称为写者.多个读者和多个写者在某个时间段内对该文件
7、资源异步进行读写.为避免文件数据出现丢失修改和读脏数据的情况,对读者和写者的读写操作限制如下.(1)写-写互斥,即不允许多个写者同时对文件进行写操作.(2)读-写互斥,即不允许读者和写者同时对文件分别进行读写操作.(3)读-读允许,即允许多个读者同时对文件进行读操作.读者优先方案n设计思想:读者优先意味着以下两条要求.(i)除非有写者正在写文件,否则读者不需要等待;(ii)仅当无读者时才允许写者使用文件.n读者优先算法实现:PReader(读者进程)P(mutexReaderCount)ReaderCount+If(ReaderCount=1)P(mutexShareFile)V(mutexR
8、eaderCount)从文件读信息P(mutexReaderCount)ReaderCount-If(ReaderCount=0)V(mutexShareFile)V(mutexReaderCount)PWriter(写者进程)P(mutexShareFile)向文件写信息V(mutexShareFile)算法分析:限制条件(1)(3)均可以得到满足,是彻底解决读者-写者问题的最基本方案.但读者的高优先级可能造成某个暂时得不到文件的写者由于被随后而来的源源不断的读者插队而长时间挂起,直到全部读者进程运行完毕后,才可以使用文件.读者读者-写者公平竞争方案写者公平竞争方案n设计思想设计思想:读者读
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 进程 同步 习题 最新
限制150内