- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
·学术论坛·
使用P,V操作解决列车调度问题的改进算法
于占虎
(锦州师专 辽宁锦州 121000)
【摘 要】以进程的同步与互斥中的列车调度问题为倒, 分析了传统的解决方法及存在的问题,提出了一种高效的、防止“饿死。
的改进算法。
【关键词】进程P、V操作信号量 饿死
【中图分类号]R-05 【文献标识码】A
1引言 开往本站的列车只能等待,当有两列列车分 享资源的信号量Mutex即可,其它同向行驶
在多道程序设计的系统中,当处理器的 别从两个车站出发相对行驶时,系统就发生 的列车不必申请共享资源信号量,当同一方
数量少于进程的数量时,多个进程就会轮流 了与时间有关的错误。 向的所有列车均通过后再释放共享资源信号
使用处理器,即一个进程的工作没有全部完 3传统的解决方法及存在的问题 量MuteX。
成之前,另一个进程就开始工作。如果并发 解决列车调度问题的最简单的方法是使 4提高效率的算法
执行的多个进程共享了相同的资源,而进程 用P、V操作。将每列列车看作是一个进程, 对上面的算法加以改进。设置2个变量
的调度又不加以控制,则不同的调度次序将 将两个车站之问的单轨铁路看作是共享资
会产生不同的结果,即系统会发生“与时间 源,设置一个互斥信号量Mutex,其初值为其初值均为O。由于每列列车均使用变量
有关的错误”…。 l,用于对共享资源的互斥访问。多个进程
荷兰学者Dijkstra发明的信号量机制是并发执行的P,V操作算法如下:
一种卓有成效的进程同步T具。它通过P、V 经过A站开往B站的列车: 其初值均为l,信号量Sl和S2可以防止同一
两个操作原语来保证进程之间的同步与互 经过B站开往A站的列车: 方向有两列列车同时出站行驶。为安全起
PAi PBi
斥,进而可以避免产生与时间有关的错误 Im-ocess process 见,设置两列列车从同一车站驶出的时间间
[21。信号量机制虽然能避免产生与时间有关 begin begin 隔不低于十分钟,即每列列车在出站十分钟
的错误,但在使用时,如果考虑不严密则会 后再释放可以唤醒下列列车的信号量Sl或
使系统效率大大降低,或者出现进程长时间 P(Mutex)l P(Mutex)l S2。改进后的P、V操作算法如下:
得不到服务的“饿死”现象。笔者结合列车 经过A站到达B站;经过B站到达A站l
调度问题,分析传统解决方法的不足,并给 V(Mutex)}V(Mutex)# 经过A站开往B站的列车:
…… ……
出了既能提高效率,又能防止进程“饿死” 经过B站开往A站的列车:
end end PAi
的改进算法。 process
PBi
2列车调度问题的描述 上述算法虽然避免了与时间有关的错 process
如图l所示,假设A、B两个火车站之间 误,但要求同一时刻在两站之问只能有一列 beginbegin
是单轨连接的,现有许多列车需经过A站开 列车行驶,在这种情况下,系统的效率将大 …… ……
P
往
文档评论(0)