[发明专利]大临界区保护方法有效

专利信息
申请号: 201010602558.9 申请日: 2010-12-14
公开(公告)号: CN102141932A 公开(公告)日: 2011-08-03
发明(设计)人: 胡事民;马超;郭旭峰 申请(专利权)人: 清华大学
主分类号: G06F9/46 分类号: G06F9/46
代理公司: 北京路浩知识产权代理有限公司 11002 代理人: 王莹
地址: 100084 北京市海*** 国省代码: 北京;11
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 临界 保护 方法
【说明书】:

技术领域

发明涉及计算机操作系统技术领域,特别涉及一种大临界区保护方法。

背景技术

共享内存式多核计算机通过共享内存数据来进行进程间通信。为保证共享数据的一致性,必须对其进行互斥访问。所谓互斥是指多个进程要访问同一共享数据时,任何时刻最多只允许一个进程去访问,其它要访问该数据的进程必须等待,直到访问该数据的进程访问完毕为止。操作系统中用于保证互斥的方法主要有自旋锁机制和信号量机制。

自旋锁机制的锁有两个状态:“锁定”和“解锁”。如果锁可用,则“锁定”位被设置,进程继续进入临界区;相反,如果锁被其他进程占用,则循环重复检查这个锁,直到锁可用为止。信号量机制用于互斥时和自旋锁机制的不同之处在于:如果当前进程不能访问临界区,则进程休眠直至临界区可访问时被唤醒。当循环重复检查的开销小于进程切换的开销时使用自旋锁机制对临界区进行保护,此时将该临界区称为小临界区;当循环重复检查的开销大于进程切换的开销时使用信号量机制对临界区进行保护,此时将该临界区称为大临界区。

为了提高操作系统的性能,很多研究者对临界区保护机制进行研究。到目前已经有很多种锁机制对小临界区进行保护,并根据不同平台和不同需求对这些锁机制进行改进来提高操作系统整体的性能。但对于大临界区保护的研究却很少,目前主要运用信号量机制进行大临界区的保护。

信号量机制在一个进程试图访问一个正在被访问的临界区时将其放入等待队列,并使其休眠。这时处理器可以去执行其它的进程。当持有信号量的进程将信号量释放后,在等待队列中位于队首的进程将被唤醒,从而便可以获得这个信号量并进入临界区。其中等待队列也是一个临界区,需要用自旋锁来实现互斥访问。这种信号量机制实现复杂,用自旋锁来实现对队列的互斥访问会额外占用总线资源,还会导致其它时间、空间上的开销,而且难以保证严格的公平性(即先来先服务)。

MCS队列锁(Mellor-Crummey和Scott发明的,所以被称为MCSQueue Lock)是一种针对小临界区保护的锁机制。这种锁机制具有总线资源占用少、保证公平性、时间和空间开销小等优点,但只适合对小临界区的保护。

发明内容

(一)要解决的技术问题

本发明要解决的技术问题是:如何实现在总线资源占用少、保证公平性、时间和空间开销小的情况下对大临界区进行高效地保护。

(二)技术方案

为解决上述技术问题,本发明一种大临界区保护方法,包括以下步骤:

S1:将要申请占用临界区的申请进程放入全局锁队列的队尾,全局锁队列的每个锁节点包括两个元素:申请进程的进程号和指向下一个申请进程的指针;

S2:当占用临界区的当前进程释放锁时,若当前进程的后续锁节点不为空,则唤醒后续的锁节点代表的进程占用临界区,否则,修改全局锁队列的尾指针L。

其中,所述步骤S1具体包括:

所述申请进程申请锁时,将临时指针P赋值为所述尾指针L,并使L赋值为申请进程的锁节点指针I;若P为空,则所述申请进程申请锁成功,否则,将I的进程号赋值为申请进程的进程号,把P的后继设为I,申请进程休眠,等待唤醒。

其中,所述步骤S2具体包括:

当占用临界区的进程释放锁时,如果该进程的锁节点指针K有后继,则直接唤醒后继锁节点代表的进程,释放锁成功,否则,判断L和K指向的锁节点是否相同,若二者相同,则将L赋值为空,直接返回,释放锁成功;若二者不同,则循环等待直到K的后继不为空,然后唤醒K的后继节点代表的进程,释放锁成功。

其中,所述步骤S1中采用fetch_and_store原子指令将全局锁队列尾指针指向当前进程锁节点;步骤S2中利用compare_and_swap原子指令判断L和K指向的锁节点是否相同。

其中,所述位于同一全局锁队列中的元素表示申请同一锁资源的锁节点,申请不同的锁资源位于不同的全局锁队列。

(三)有益效果

本发明通过将MCS队列锁和信号量机制相结合,提出了MCS休眠锁的设计,实现了对大临界区的高效地保护,并且具有总线资源占用少、保证公平性、时间和空间开销小等优点。

附图说明

图1是本发明实施例的一种大临界区保护方法中采用的全局锁队列结构示意图;

图2是本发明实施例的一种大临界区保护方法中申请临界区的流程图;

图3是本发明实施例的一种大临界区保护方法中是释放临界区的流程图;

图4是利用本发明方法进行实验时测试一的测试结果。

具体实施方式

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于清华大学,未经清华大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/201010602558.9/2.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top