- 1、本文档共62页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
操作系统09__网络与分布式操作系统2.pdf
9.5 事件排序
n前发生关系(用符号“fi”表示).
n 如果A和B是同一进程内部的事件,而且A在
B前执行,则有AfiB。
n 如果A是一个由某一进程发送消息的事件,
B是由另一进程接收该消息的事件,则有
AfiB。
n 如果AfiB 且 BfiC,则有AfiC。
n非自反的偏序
实现
n将每个系统事件都打上一个“ 时间邮戳”。
n 每一个事件对A和B, 如果AfiB, 则A 的邮戳时
间应小于B的邮戳时间。
n在每个进程P 内部定义一个相关联的逻辑
i
时钟Lc 。
i
n 由简单的计数器来实现,即作为在一个进程内
任何两个连续执行的事件之间的增量。
“fi”的实现
n一进程在接收到一个消息, 而且该消息的邮
戳时间TS 比接收进程逻辑时钟的当前值还
大时, 接收进程推进它的逻辑时钟。
Count=TS +1。
n如果事件A和事件B的邮戳时间相同, 则事
件是并发的。
9.6 进程互斥(DME)
n 假设
n 系统包含n个进程; 每个进程 P 都存在于不同的处理机当中.
i
n 每个进程有个临界区需要互斥.
n 必要条件
n 如果进程P 正在它的临界区域内执行,则在这个临界区域内没有
i
其他进程 P 执行.
j
n 这里给出三个算法来确保执行进程在其临界区内互斥.
n 集中算法
n 分布算法
n 令牌算法
DME:集中方式
n指派一个协调者进程(coordinator),负
责控制对于临界区的进入。
n每一个要求进入临界区的进程都必须发
送一个请求给协调者进程。
n协调者决定哪个进程可以进入临界区
域,之后给它发送答复消息。
n 当进程收到协调者进程的回答信号后, 它
才能进入自己的临界区.
DME: 集中方式
n 当一个进程退出临界区时,发送一个释
放信号给协调者进程,然后再继续运行。
n无死锁,若协调者进程公平(如
FCFS),无饿死
n每次进入临界区需要三个消息:
n 请求
n 回答
n 释放
DME: 分布方式
n算法
n 进程P 想进入临界区,产生一个时间戳TS ,
i i
发消息request(P ,TS )给所有其他进程;
i i
n 进程P 接收到request消息后,可能立即,
j
也可能延迟回复reply消息;
n 当进程P 接收到所有进程回复的reply消息
i
后,可以进入临界区;
DME: 分布方式(续.)
n 进程P 离开临界区后,给所有延迟回复的进
i
程发reply消息
n 决定进程P 立即回复request(P, TS ) 消息
j i
还是延迟回复主要基于三个因素:
n 如果P 当前正在临界区中,延迟回复.
j
n 如果P 不想进入临界区,立即回复.
j
n 如果P 想进入但尚未进入临界区,则比较二者的
j
时间戳TS.
n 如果所持有的时间戳大于TS; 则立即回复P , (P 要求
文档评论(0)