磁盘数据读写方法及磁盘存储装置.pdf

上传人:32 文档编号:4042772 上传时间:2018-08-12 格式:PDF 页数:9 大小:525.81KB
返回 下载 相关 举报
摘要
申请专利号:

CN201310445513.9

申请日:

2013.09.26

公开号:

CN104516677A

公开日:

2015.04.15

当前法律状态:

授权

有效性:

有权

法律详情:

授权|||实质审查的生效IPC(主分类):G06F 3/06申请日:20130926|||公开

IPC分类号:

G06F3/06; G06F17/30

主分类号:

G06F3/06

申请人:

北大方正集团有限公司; 北京大学; 北京北大方正电子有限公司

发明人:

梁肖; 于晓明; 杨建武

地址:

100871北京市海淀区成府路298号中关村方正大厦9层

优先权:

专利代理机构:

北京同立钧成知识产权代理有限公司11205

代理人:

刘芳

PDF下载: PDF下载
内容摘要

本发明提供一种磁盘数据读写方法及磁盘存储装置。其中,所述方法包括:获取时间周期内的所有读取指令和/或写入指令对应的操作位置;获取磁头当前位置;根据所述磁头当前位置以及所述时间周期内的所有操作位置,对所述时间周期内的所有读取指令和/或写入指令进行排序,以使所述磁头的寻道距离最短;根据排序结果,顺序执行相应的读取或存储操作。本发明实施例根据多进程读写指令对应的读取位置和/或写入位置,将多进程读写指令根据磁盘物理位置进行排序,以使所述磁头的寻道距离最短,进而缩短了磁头寻道时间,提高了数据存储的效率。

权利要求书

权利要求书
1.  一种磁盘数据读写方法,其特征在于,包括:
获取时间周期内的所有读取指令和/或写入指令对应的操作位置;
获取磁头当前位置;
根据所述磁头当前位置以及所述时间周期内的所有操作位置,对所述时 间周期内的所有读取指令和/或写入指令进行排序,以使所述磁头的寻道距离 最短;
根据排序结果,顺序执行相应的读取或存储操作。

2.  根据权利要求1所述的方法,其特征在于,所述获取时间周期内的所 有读取指令和/或写入指令对应的操作位置,包括:
遍历磁盘中的索引信息,分别获取所述时间周期内的所有读取指令欲读 取数据在所述磁盘中的读取位置,所述读取位置为所述读取指令对应的操作 位置;
和/或
根据所述时间周期内的所有写入指令,分别为各写入指令欲存储数据选 取在所述磁盘中的写入位置,所述写入位置为所述写入指令对应的操作位置。

3.  根据权利要求1或2所述的方法,其特征在于,所述根据所述磁头当 前位置以及所述时间周期内的所有操作位置,对所述时间周期内的所有读取 指令和/或写入指令进行排序,以使所述磁头的寻道距离最短,具体为:
根据所述磁头当前位置以及所述时间周期内的所有操作位置,采用电梯 调度算法对所述时间周期内的所有读取指令和/或写入指令进行排序,以使所 述磁头的寻道距离最短。

4.  根据权利要求1所述的方法,其特征在于,所述执行读取操作,具体 为:
读取磁盘上所述读取指令对应的操作位置处存储的数据,并启动所述操 作位置对应的引用计数器加1;读取完成后,所述引用计数器减1。

5.  根据权利要求4所述的方法,其特征在于,还包括:
当接收到数据删除指令或数据更新指令时,获取接收到的数据删除指令 或数据更新指令对应的操作位置;
判断所述操作位置对应的引用计数器的计数值是否为0,若不为0,则等 待所述引用计数器的计数值为0后,执行相应地数据删除或数据更新操作。

6.  根据权利要求1所述的方法,其特征在于,所述执行存储操作,具体 为:
在所述磁盘上所述写入指令对应的操作位置处写入数据,并在所述磁盘 的索引信息中增加新的索引信息项,以便后续能通过所述索引查找到所述存 储操作后写入的数据在所述磁盘中的存储位置。

7.  一种磁盘存储装置,其特征在于,包括:
第一获取模块,用于获取时间周期内的所有读取指令和/或写入指令对应 的操作位置;
第二获取模块,用于获取磁头当前位置;
排序模块,用于根据所述磁头当前位置以及所述时间周期内的所有操作 位置,对所述时间周期内的所有读取指令和/或写入指令进行排序,以使所述 磁头的寻道距离最短;
执行模块,用于根据排序结果,顺序执行相应的读取或存储操作。

8.  根据权利要求7所述的磁盘存储装置,其特征在于,所述第一获取模 块,具体用于遍历磁盘中的索引信息,分别获取所述时间周期内的所有读取 指令欲读取数据在所述磁盘中的读取位置,所述读取位置为所述读取指令对 应的操作位置;和/或根据所述时间周期内的所有写入指令,分别为各写入指 令欲存储数据选取在所述磁盘中的写入位置,所述写入位置为所述写入指令 对应的操作位置。

9.  根据权利要求7或8所述的磁盘存储装置,其特征在于,所述排序模 块具体用于根据所述磁头当前位置以及所述时间周期内的所有操作位置,采 用电梯调度算法对所述时间周期内的所有读取指令和/或写入指令进行排序, 以使所述磁头的寻道距离最短。

10.  根据权利要求7所述的磁盘存储装置,其特征在于,所述执行模块, 具体用于读取磁盘上所述读取指令对应的操作位置处存储的数据,并启动所 述操作位置对应的引用计数器加1;读取完成后,所述引用计数器减1。

11.  根据权利要求11所述的磁盘存储装置,其特征在于,还包括:
第三获取模块,用于接收到数据删除指令或数据更新指令时,获取接收 到的数据删除指令或数据更新指令对应的操作位置;
判断执行模块,用于判断所述操作位置对应的引用计数器的计数值是否 为0,若不为0,则等待所述引用计数器的计数值为0后,执行相应地数据删 除或数据更新操作。

12.  根据权利要求7或10所述的磁盘存储装置,其特征在于,所述执行 模块,具体用于在所述磁盘上所述写入指令对应的操作位置处写入数据,并 在所述磁盘的索引信息中增加新的索引信息项,以便后续能通过所述索引查 找到所述存储操作后写入的数据在所述磁盘中的存储位置。

说明书

说明书磁盘数据读写方法及磁盘存储装置
技术领域
本发明涉及计算机数据存储技术,尤其涉及一种磁盘数据读写方法及磁 盘存储装置。
背景技术
随着网络的发展,数据量不断增大,基于关系数据模型的数据库,在 数据检索速度上,逐渐不能满足人们的需要。而今科技的高速发展,海量 硬盘逐渐走入了人们的生活,因此硬盘容量已不再是系统的制约因素,线 性数据模型的优势得以显现。单机所能承载的数据总量不断上升,但是磁 头寻道时间依旧是现有磁盘提高数据读写效率的主要瓶颈。
发明内容
本发明提供一种磁盘读写方法及磁盘存储装置,用于提高数据读写效率。
本发明的第一个方面是提供一种磁盘数据读写方法,包括:
获取时间周期内的所有读取指令和/或写入指令对应的操作位置;
获取磁头当前位置;
根据所述磁头当前位置以及所述时间周期内的所有操作位置,对所述时 间周期内的所有读取指令和/或写入指令进行排序,以使所述磁头的寻道距离 最短;
根据排序结果,顺序执行相应的读取或存储操作。
本发明的另一个方面是提供一种磁盘存储装置,包括:
第一获取模块,用于获取时间周期内的所有读取指令和/或写入指令对应 的操作位置;
第二获取模块,用于获取磁头当前位置;
排序模块,用于根据所述磁头当前位置以及所述时间周期内的所有操作 位置,对所述时间周期内的所有读取指令和/或写入指令进行排序,以使所述 磁头的寻道距离最短;
执行模块,用于根据排序结果,顺序执行相应的读取或存储操作。
由上述技术方案可知,本发明实施例根据多进程读写指令对应的读取位 置和/或写入位置,将多进程读写指令根据磁盘物理位置进行排序,以使所述 磁头的寻道距离最短,进而缩短了磁头寻道时间,提高了数据存储的效率。
附图说明
图1为本发明实施例一提供的磁盘数据读写方法的流程示意图;
图2为本发明实施例一中例举的一具体磁道的原理示意图;
图3为本发明实施例三提供的磁盘存储装置的结构示意图。
具体实施方式
如图1所示,本发明实施例一提供的磁盘数据读写方法的流程示意图。 如图1所示,本发明实施例一所述的方法的执行主体为磁盘存储装置,所述 方法包括:
步骤101、获取时间周期内的所有读取指令和/或写入指令对应的操作位 置。
其中,一个时间周期内可能只有一个或多个读取指令,可能只有一个或 多个写入指令,还可能有一个或多个读取指令以及一个或多个写入指令。所 述时间周期可预先设定。
具体地,本步骤的一种可能实现方式如下:遍历磁盘中的索引信息,分 别获取所述时间周期内的所有读取指令欲读取数据在所述磁盘中的读取位 置,所述读取位置为所述读取指令对应的操作位置;和/或根据所述时间周期 内的所有写入指令,分别为各写入指令欲存储数据选取在所述磁盘中的写入 位置,所述写入位置为所述写入指令对应的操作位置。更具体地,本实施例 中磁盘存储装置可采用数据块为最小存储单位,较大数据的存储消耗多个连 续的数据块,具体可采用bitmap打点算法记录数据块使用情况。磁盘存储装 置可根据欲存储数据长度的匹配度来选择数据写入位置,即优先选择合适的 空闲块,并能够根据数据长度统计信息决定是否对连续块进行切割,避免碎 片的形成。
其中,所述磁盘中的索引信息可采用哈希结构,即分离链接哈希结构, 长度可取素数。
步骤102、获取磁头当前位置。
其中,所述磁盘存储装置实时记录磁头的位置,以便获取当前时间周期 开始时所述磁头的当前位置。
步骤103、根据所述磁头当前位置以及所述时间周期内的所有操作位置, 对所述时间周期内的所有读取指令和/或写入指令进行排序,以使所述磁头的 寻道距离最短。
其中,磁盘是提供多个进程共享的存储设备,但磁盘每个时刻只能为一 个进程服务器。当有进程在访问磁盘时,其他访问该磁盘的进程必须等待, 直到磁盘一次工作结束。本实施例就是采用电梯调度算法对所述多个进程提 出读取和/或写入指令进行排序,然后根据排序结果,顺序执行相应的读取或 存储操作。
具体地,根据所述磁头当前位置以及所述时间周期内的所有操作位置, 采用电梯调度算法对所述时间周期内的所有读取指令和/或写入指令进行排 序,以使所述磁头的寻道距离最短。
其中,所述电梯调度算法(又称SCAN算法)是磁头前进方向上的最短 寻道时间优先算法,该算法避免了磁头在磁盘局部位置上的往复移动。所述 电梯调度算法具体为:所述算法不仅考虑到欲访问的磁道与当前磁头所在磁 道的距离,更优先考虑了磁头的当前移动方向。例如,当磁头正在自里向外 移动时,所述算法所选择的下一个访问对象应是其欲访问的磁道既在当前磁 道之外,又是距离最近的。这样自里向外地访问,直到再无更外的磁道需要 访问才将磁臂换向,使磁头自外向里移动,此时,同样也是每次选择这样的 进程来调度。由于这种算法中磁头移动的规律颇似电梯的运行,故称为电梯 调度算法。
例如:如图2所示的磁道,假设在一个时间周期内磁盘存储装置顺序接 收到三个读取指令,这三个读取指令对应的操作位置分别为:CBE,磁头当 前位置为A。若磁盘存储装置按照读取指令接收顺序,则磁头的寻道过程为: 磁头由A移至C,读取C处的数据后,磁头再由C移动至B,读取B处的数 据后,磁头再由B移动至E,读取E处的数据。由此可知,磁头的寻道距离 为:
S1=(a.size+b.size)+(c.size+b.size)+(c.size+d.size)
其中,a.size为磁盘位置A处存储数据的大小,b.size为磁盘位置B处存 储数据的大小,c.size为磁盘位置C处存储数据的大小,d.size为磁盘位置 D处存储数据的大小。
采用本发明实施例提供的方法,即采用电梯调度算法,先对接收到的三 个读取指令进行排序,即这三个读取指令排序后顺次对应的操作位置分别为: BCE。此时,磁头的寻道过程为:磁头由A移至B,读取B处的数据后,磁 头再由B移动至C,读取C处的数据后,磁头再由C移动至E,读取E 处的数据。因此,磁头的寻道距离为:
S2=a.size+d.size
比较上述S1和S2,可明显的得出:采用本发明实施例提供的方法, 磁盘寻道的距离最短。这里需要说明的是:本示例仅示出了多个读取指令 的情况,多个写入指令以及多个读取指令和多个写入指令的情况,同理, 此处不再赘述。
步骤104、根据排序结果,顺序执行相应的读取或存储操作。
具体地,所述执行读取操作具体为:读取磁盘上所述读取指令对应的操 作位置处存储的数据,并启动所述操作位置对应的引用计数器加1;读取完 成后,所述引用计数器减1。
其中,读取操作时增加引用技术器加1的目的是:采用引用计数器来锁 定数据块,使其不能被更改,防止在读取过程中,数据发生变化。具体体现 在当磁盘接收到数据删除指令或数据更新指令时,若直接将数据删除指令或 数据更新指令对应的操作位置处的数据进行删除或更新操作,此时若还有进 程在访问此操作位置处的数据,则会出错或进入互斥状态。因此,本实施例 一所述的方法还包括:
当接收到数据删除指令或数据更新指令时,获取接收到的数据删除指令 或数据更新指令对应的操作位置;判断所述操作位置对应的引用计数器的计 数值是否为0,若不为0,则等待所述引用计数器的计数值为0后,执行相应 地数据删除或数据更新操作。
实际上,若是删除数据,则磁盘存储装置在将删除数据对应的索引信息 项从索引中移除或更新后,不立刻释放磁盘空间和内存,而是将其放入临时 存储结构,等待引用计数器归零后,再进行删除操作;若是数据更新,则等 待引用计数器归零后,再进行数据更新操作,以避免在其他读取进程过程中 将数据删除致使存储装置出错或进入互斥状态,进而提高了磁盘存储装置的 健壮性以及并发能力较强。
所述执行存储操作,具体为:在所述磁盘上所述写入指令对应的操作位 置处写入数据,并在所述磁盘的索引信息中增加新的索引信息项,以便后续 能通过所述索引查找到所述存储操作后写入的数据在所述磁盘中的写入位 置。
本发明实施例根据多进程读写指令对应的读取位置和/或写入位置,将多 进程读写指令根据磁盘物理位置进行排序,以使所述磁头的寻道距离最短, 进而缩短了磁头寻道时间,提高了数据存储的效率。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步 骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可 读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而 前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码 的介质。
如图3所示,本发明实施例二提供的磁盘存储装置的结构示意图。如图 3所示,本实施例二所述的磁盘存储装置包括:第一获取模块1、第二获取模 块2、排序模块3和执行模块4。其中,所述第一获取模块1用于获取时间周 期内的所有读取指令和/或写入指令对应的操作位置。所述第二获取模块2用 于获取磁头当前位置。所述排序模块3用于根据所述磁头当前位置以及所述 时间周期内的所有操作位置,对所述时间周期内的所有读取指令和/或写入指 令进行排序,以使所述磁头的寻道距离最短。所述执行模块4用于根据排序 结果,顺序执行相应的读取或存储操作。
本发明实施例根据多进程读写指令对应的读取位置和/或写入位置,将多 进程读写指令根据磁盘物理位置进行排序,以使所述磁头的寻道距离最短, 进而缩短了磁头寻道时间,提高了数据存储的效率。
进一步地,上述实施例二中所述的第一获取模块,具体用于遍历磁盘中 的索引信息,分别获取所述时间周期内的所有读取指令欲读取数据在所述磁 盘中的读取位置,所述读取位置为所述读取指令对应的操作位置;和/或根据 所述时间周期内的所有写入指令,分别为各写入指令欲存储数据选取在所述 磁盘中的写入位置,所述写入位置为所述写入指令对应的操作位置。
所述排序模块具体用于根据所述磁头当前位置以及所述时间周期内的所 有操作位置,采用电梯调度算法对所述时间周期内的所有读取指令和/或写入 指令进行排序,以使所述磁头的寻道距离最短。
所述执行模块,具体用于读取磁盘上所述读取指令对应的操作位置处存 储的数据,并启动所述操作位置对应的引用计数器加1;读取完成后,所述 引用计数器减1。相应地,本实施例二所述的磁盘存储装置,还包括:第三 获取模块和判断执行模块。其中,所述第三获取模块用于接收到数据删除指 令或数据更新指令时,获取接收到的数据删除指令或数据更新指令对应的操 作位置。所述判断执行模块用于判断所述操作位置对应的引用计数器的计数 值是否为0,若不为0,则等待所述引用计数器的计数值为0后,执行相应地 数据删除或数据更新操作。
进一步地,所述执行模块,具体用于在所述磁盘上所述写入指令对应的 操作位置处写入数据,并在所述磁盘的索引信息中增加新的索引信息项,以 便后续能通过所述索引查找到所述存储操作后写入的数据在所述磁盘中的存 储位置。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对 其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通 技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改, 或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并 不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

磁盘数据读写方法及磁盘存储装置.pdf_第1页
第1页 / 共9页
磁盘数据读写方法及磁盘存储装置.pdf_第2页
第2页 / 共9页
磁盘数据读写方法及磁盘存储装置.pdf_第3页
第3页 / 共9页
点击查看更多>>
资源描述

《磁盘数据读写方法及磁盘存储装置.pdf》由会员分享,可在线阅读,更多相关《磁盘数据读写方法及磁盘存储装置.pdf(9页珍藏版)》请在专利查询网上搜索。

本发明提供一种磁盘数据读写方法及磁盘存储装置。其中,所述方法包括:获取时间周期内的所有读取指令和/或写入指令对应的操作位置;获取磁头当前位置;根据所述磁头当前位置以及所述时间周期内的所有操作位置,对所述时间周期内的所有读取指令和/或写入指令进行排序,以使所述磁头的寻道距离最短;根据排序结果,顺序执行相应的读取或存储操作。本发明实施例根据多进程读写指令对应的读取位置和/或写入位置,将多进程读写指令根。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 物理 > 计算;推算;计数


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1