[发明专利]一种锁机制的加锁方法、解锁方法和实现方法有效

专利信息
申请号: 200810066474.0 申请日: 2008-04-07
公开(公告)号: CN101256509A 公开(公告)日: 2008-09-03
发明(设计)人: 万鹏 申请(专利权)人: 中兴通讯股份有限公司
主分类号: G06F9/46 分类号: G06F9/46
代理公司: 深圳市君胜知识产权代理事务所 代理人: 王永文
地址: 518057广东省深圳市南山*** 国省代码: 广东;44
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 一种 机制 加锁 方法 解锁 实现
【说明书】:

技术领域

发明涉及无信号量的锁实现技术,尤其涉及的是,在嵌入式内存数据库系统中,一种锁机制的加锁方法、解锁方法和实现方法。

背景技术

嵌入式主内存数据库由于具有极强的实时性而受到越来越多的关注,嵌入式数据库强实时性来自于内存事务并发,并发的实现主要靠引入锁机制。

目前各种主内存数据库锁系统的实现都采用了信号量的方式,信号量方式的缺点是获取和释放信号量的时间相对较长,特别是在嵌入式系统中,信号量的等待意味着任务的切换,这是非常耗费时间的。

目前嵌入式系统实现锁机制主要采用以下方法:

1、采用信号量机制,一个最小单位设置一个信号量,这样一个锁的加锁可能需要很多个信号量的获取,但是获取这些信号量需要大量的时间。

2、采用非信号量进程延迟机制,但是在优先级抢占系统中,该方法无法正确运行。

3、采用任务等待信号量机制,该方法实现了一个锁只需要一个信号量。

嵌入式实时操作系统vxworks,在任务调度的基础上增加了进程调度的系统,习惯称为二次调度系统,其中,一个进程等待信号量的时候会阻塞整个任务,导致同一任务下的其他进程无法完成事务,造成死锁,因此上述现有方法均无法在优先级抢占调度的二次调度系统中实现。

因此,现有技术存在缺陷,需要改进。

发明内容

本发明所要解决的技术问题是在优先级抢占调度的二次调度系统中,如何实现锁机制。

本发明的技术方案如下:

一种锁机制的加锁方法,其包括以下步骤:A1、初始化各资源的预约数分别为预设值,用于标记各资源的状态为未预约;A2、申请各资源时,对所申请各资源的预约数进行加一操作,将当前进程相关的锁节点加入到锁等待队列,并判断是否全部申请成功,否则执行A3;其中,所述锁等待队列为各锁节点分别设置以下项:进程标识、待申请资源、申请成功资源和待调度队列标识;A3、对于申请失败的各资源,逆向搜索所述锁等待队列,判断在其中是否搜索得到所需的资源,是则在搜索结果相关锁节点的待调度队列标识项,添加当前进程的进程标识,并将搜索得到的资源添加到当前进程相关的锁节点的待申请资源项;A4、判断申请失败的各资源是否全部搜索完成,否则继续执行A3。

所述的加锁方法,其中,步骤A1具体执行以下步骤:设置资源列表,用于管理各资源的预约数;初始化所述资源列表的各资源的预约数分别为预设值;并且,步骤A2中,申请各资源时,是在所述资源列表中,对所申请各资源的预约数进行加一操作。

一种锁机制的解锁方法,其包括以下步骤:B1、按顺序将资源分配给锁等待队列中的锁节点;其中,所述锁等待队列为各锁节点分别设置以下项:进程标识、待申请资源、申请成功资源和待调度队列标识;B2、对于某一锁节点所申请的各资源,判断其是否全部申请成功,是则解阻塞其对应的进程,把对应资源的预约数减一。

所述的解锁方法,其中,步骤B1之前还执行以下步骤:B0、判断所述锁等待队列的头节点无效,或者判断事务已经执行到最后,则执行步骤B1。

一种锁机制的实现方法,其包括以下加锁步骤和解锁步骤;

所述加锁步骤包括以下步骤:C1、初始化各资源的预约数分别为预设值,用于标记各资源的状态为未预约;C2、申请各资源时,对所申请各资源的预约数进行加一操作,将当前进程相关的锁节点加入到锁等待队列,并判断是否全部申请成功,否则执行C3;其中,所述锁等待队列为各锁节点分别设置以下项:进程标识、待申请资源、申请成功资源和待调度队列标识;C3、对于申请失败的各资源,逆向搜索所述锁等待队列,判断在其中是否搜索得到所需的资源,是则在搜索结果相关锁节点的待调度队列标识项,添加当前进程的进程标识,并将搜索得到的资源添加到当前进程相关的锁节点的待申请资源项;C4、判断申请失败的各资源是否全部搜索完成,否则继续执行C3;

所述解锁步骤包括以下步骤:C5、按顺序将资源分配给锁等待队列中的锁节点;其中,所述锁等待队列为各锁节点分别设置以下项:进程标识、待申请资源、申请成功资源和待调度队列标识;C6、对于某一锁节点所申请的各资源,判断其是否全部申请成功,是则解阻塞其对应的进程,把对应资源的预约数减一。

所述的实现方法,其中,步骤C1具体执行以下步骤:设置资源列表,用于管理各资源的预约数;初始化所述资源列表的各资源的预约数分别为预设值;并且,步骤C2中,申请各资源时,是在所述资源列表中,对所申请各资源的预约数进行加一操作;并且,步骤C6中,把对应资源的预约数减一时,是在所述资源列表中,将对应资源的预约数进行减一操作。

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

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

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

×

专利文献下载

说明:

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

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

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

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

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

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

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

钻瓜专利网在线咨询

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

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