武汉大学计算机作业,武汉大学计算机学院研究生操作系统作业.docx

课程名称:高级操作系统 任课老师:何炎祥 姓名:张琼露 学号:2011282110226

武汉大学计算机学院研究生课程设计 第 PAGE 1 页 共 NUMPAGES 25 页

高级操作系统

学 院: 计算机学院

专 业: 信息安全

任课老师: 何炎祥

学 号:

姓 名:

完成日期: 2013年10月15日

思考题

记得更改,只选择其中的五道题目,一些内容可以删除的,搜集的资料很多,大家们可以自行选择。(其中1、2、7答案基本固定)其它题目大家们选择的时候不要选重了。否则就是相同的作业了,选的时候说下。我选了6和8。

1.验证Lamport’s Algorithm算法的正确性,即该算法是否能保证

(1)在任何时刻,最多只有一个进程位于临界段(安全性);

(2)若位于临界段的进程在有限时间内退出临界段,则其它请求进入临界段的进程总会进入(可用性)。

答:第一个分布式互斥算法是由Lamport(1978)提出的,他利用了前述的时间定序方案去统一定序所有对临界段的请求,并按先来先服务的次序为请求的进程服务。他的方案在每次进出临界段时候需要3*(n-1)条消息。该算法的基本假定如下:

(1)进程Pi发送的请求消息形如Request(Ti,i),其中Ti=Ci,是进程Pi发送此消息时候对应逻辑时钟的值(时戳)。

(2)每个进程管理着一个请求队列,最初它为空,该队列包含用关系“=》”定序的请求消息。

该算法可描述为:

(1)当进程Pi请求进入临界段时候,它将Request(Ti,i)发送给系统中所有其它的进程,同时也将此消息置入它自己的请求队列中;

(2)当进程Pj受到这条Request(Ti,i)消息后,它便将此消息置入自己的请求队列中,并返回一个带有时戳的Reply消息;

(3)当下面两个条件都成立时候,Pi才允许进入临界段:

①Pi自己的Request(Ti,i)消息位于它自己请求队列的队首;

②Pi已收到来自其他每一进程发送过来的时戳迟于Ti的Reply消息。

(4)当退出临界段时候,进程Pi从自己的请求队列中去掉自己发出的Request(Ti,i)消息,并给其他每个进程发送一条带有时间戳的Release消息。

(5)当进程Pj接收到进程Pi的Release消息后,它也从自己的请求队列中去掉Pi发来的Request(Ti,i)消息。

不难证明该算法是正确的,因为

由(3)--②及消息是按其发送的次序接受的假定,就保证了进程Pi已经知道它先于它的当前请求的所有请求;(注:此步骤保证了若位于临界段的进程在有限时间内退出临界段,则其它请求进入临界段的进程总会进入,即可用性)

由于用关系“=》”定序了所有的请求消息,因此在任何情况下,(3)--①允许一个且只有一个进程进入临界段。(注:此步骤保证了在任何时刻,最多只有一个进程位于临界段,即安全性)

2.请求驱动式令牌传递方法中,若pi发出request消息后久未获得Token,该怎么处理?若引入时戳,该算法应做何修改?

答:请求驱动式令牌传递方法中,若pi发出request消息后久未获得Token,则需要引入时间戳的概念,我们将在以下内容做具体介绍。

在令牌传递算法中,令牌是系统中唯一存在的一种特殊的消息类型。假定系统由n个站点构成,每个站点上只运行一个进程,它们的编号是1~n。系统中的所有进程可组成一个虚拟或逻辑环。一般情况,令牌可在环中沿一个方向(单向环)或二个方向(双向环)流动。仅拥有令牌的进程才有权进入临界段。当进程退出临界段时,它就把令牌传递给它的邻居。因为系统只有一个令牌,所以一次只有一个进程可以进入临界段。

请求驱动Token传递算法假定系统组成一个双向环,系统中的每个进程循环不止地执行下面的程序段:

(1)当进程Pi请求进入CS但未握有token时,向其右邻的进程Pj发出request消息。

(2)Pj收到其左邻进程发来的request,若下面的条件都不满足时,则将转交给其右邻的进程。

它握有token,但已不在CS中,又不希望进入CS中,则将token传给其左邻进程。

它在CS中,退出时,将token传给其左邻的进程

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值