欢迎来到天天文库
浏览记录
ID:34513634
大小:120.72 KB
页数:3页
时间:2019-03-07
《操作系统中信号量集的p、v操作》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、万方数据第12卷第3期20n3审9月河南教育学院学报(自然科学版)Journal“HPtldI’JuMiluleofEducation(Naturalscienct·)文章编号:1007—0834(2003J03—0042—02Vol12NO.3Sep2603操作系统中信号量集的P、V操作邓洪涛,张鸿(郑州太学升达经贸管理学院,河南郑州45I191)摘要:在一般的探作系统教材中,对信号量集的操作讲得比较少,拳t详细讨论TAND型信号量枭和一般的信号童集的算击希望对操作系统的进一步深化牧学有帮助。
2、美t词:操作系境;P、v操竹;信号量集中豳分类号:04414文献标识码:B在般的操怍系统教材上,对于用信号量机制解决r毕fori:=1伽ndo个资源的互斥访刚,讲僻比较详细。如果需要对多个资源进si:=si+1;{T互斥I方问,般用信号最集。信号量集有州种,第一种是for在Si的等待队列中的每一个进稚r“AND副信号量集”.第二种是一般的信号量集。//检查每种资源的等待队列的所有进稃耐卜这llI}种信号鸶集,很多教材并性有给出洋细地P、v从等待队列siL中取出进程I,;操作内容,在本文巾,笔者写
3、它们的具体内容并加了详细的判断进程P是否通盘fSwait叶,的测试;注释,希翅对操作系统的进一步深化教学有帮助。//这里要重新判断,因为是多进程多临界资源1AND型信号量集汀通过、%一段代码需要获取两个或两个以卜的临界资源时.就进程P进入就绪队列;ur能出现择进程分别获得了部分临界资源、但都等待其余临dse界资源的情况。此时,各进程都会“互不相让”,从而出现死说明未通过检查,此时找到撮小的i,满址Si<1,锁的现象。然后将进程P插入Si的等待队州;为r解决死锁『口]题,一种思路是:将进程在整个运
4、行过end迁程中需受的所有资源,一次性地全部分配给该进程,使用完eralfor毕后再释放.为了实现这种做法,在P操作中增加,“AND”endfor条件.也称为“AND”同步.或同时P操作,等等.我们称AND注意.在Swail巾,择个信号蜃的次序并不重要,虽然会型信号聃集P碌语为Swail(SimuhanenousWait),v碌语为影响进程归入哪个阻塞孰列,但是因为屉对资源全部分配或Ssignal(SimultaneousSignal).伪代码如下:小分配.所以总有进程获得全部资源,然后椎进完毕
5、后冉释Swail(SI,s2,⋯⋯,sn)放资源,供其余进程使坩,所以不会死锁。ifsl≥land⋯⋯andSn≥llhen2一般的信号量羹fori:=lton如一般的信号量集是指同时需要多种资源、每种占,廿的数Si:=Si—I;目不同、且可分配的资源还存在一个临界值时的信号{建处//注意,这里要求先确定资源可满足,理。由于一次需要n个某类临界资源,因此立¨果埘过u次P然后冉冉减操作或wait操作申请这n资源.效率显然报低,片叮能m现endfor死锁因此,一般信号疑粜的基率思路是在AND犁信哆谴
6、集else的基础上进行扩克,在·趺原语操作中完成所有的资源埘用进程进入第一个si小于1的信号量si的等待队列,申请。然后阻塞’'前进程;对每种信号量Si来说,假设di为需求值,t.为F限值,也endil就足当S。的数量≥1.时.才分配d.个资源给进程肆伴茸i点ssignal(SI,s2,⋯⋯,Sn)如下:收稿日期:2003一06一12作者简介:弗洪涛(1968),男,{口J南郑州人.郑州』=学升达经贸管理学院资讯系讲师。·42-万方数据Swait(sl,11.dI.⋯⋯,Sn,I⋯d)ifSI≥
7、tlantl⋯”andS..≥InthenforI=:ImndoS.=S.一d.;En‘lforelse捌jH、rlljif进程进入笫一个S.
8、i
9、中的测试;//遗电耍萤新判断.因为是多进程多临界资源if通过进程P进入就绪队列;HlsP-兑明未通过检查,此时找到最小的i,满足S。
此文档下载收益归作者所有