首页> 中国专利> 存储设备访问方法、访问系统及存储设备访问管理器

存储设备访问方法、访问系统及存储设备访问管理器

摘要

本发明公开了一种存储设备访问方法、访问系统及存储设备访问管理器,存储设备访问方法包括:存储设备访问管理器检测当前存在的存储设备;为每个存储设备创建并运行一个访问请求缓冲模块,为每个访问请求缓冲模块对应配置一个任务处理器,并记录存储设备与访问请求缓冲模块的对应关系,当接收到存储设备访问请求时将其发送给与该存储设备对应的访问请求缓冲模块,各任务处理器分别从与其对应的访问请求缓冲模块中获取访问请求,并根据访问请求对与其对应的存储设备进行访问操作。本发明中针对每个逻辑磁盘分区均设置了独立的任务处理器,可同时运行多个线程来处理多个磁盘分区的访问请求,从而实现了多存储设备的并行访问,提高了存取速度及效率。

著录项

  • 公开/公告号CN102981773A

    专利类型发明专利

  • 公开/公告日2013-03-20

    原文格式PDF

  • 申请/专利权人 深圳市快播科技有限公司;

    申请/专利号CN201110258846.1

  • 发明设计人 张克东;王羲桀;江少明;

    申请日2011-09-02

  • 分类号G06F3/06(20060101);

  • 代理机构44281 深圳鼎合诚知识产权代理有限公司;

  • 代理人郭燕

  • 地址 518000 广东省深圳市南山区高新南一道009号中国科技开发院中科研发园三号楼22层

  • 入库时间 2024-02-19 17:42:46

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2016-07-06

    授权

    授权

  • 2014-09-03

    专利申请权的转移 IPC(主分类):G06F3/06 变更前: 变更后: 登记生效日:20140814 申请日:20110902

    专利申请权、专利权的转移

  • 2013-04-17

    实质审查的生效 IPC(主分类):G06F3/06 申请日:20110902

    实质审查的生效

  • 2013-03-20

    公开

    公开

说明书

技术领域

本发明涉及一种存储设备的访问方法,尤其涉及存在多个存储设备时的存 储设备访问方法,及用于访问该多个存储设备的访问系统和访问管理器。

背景技术

在实际应用过程中,用户经常需要将某些数据存入计算机或服务器的磁盘 或将数据从磁盘中读出,当用户发出访问指令后,应用程序响应指令,在访问 磁盘上的数据时通常是需要某个磁盘的文件就直接访问哪个磁盘。当计算机或 服务器的存储设备具有多个磁盘分区时,相当于具有多个磁盘时,用户可能针 对不同的磁盘发出多个访问指令,目前的磁盘访问方法是:应用程序响应用户 的访问指令,按照一定的顺序(例如先入先出的顺序)串行执行各访问指令。 当多个访问指令的目标磁盘是同一个时,只需要依次访问同一个磁盘即可,但 如果多个访问请求是针对不同的磁盘分区,即针对不同的磁盘,应用程序需要 在不同的磁盘之间进行跳转,当应用程序要访问的数据分布很离散的时候,会 出现频繁在不同磁盘之间跳转着访问的情形,这将导致磁盘访问速度慢、效率 低下。

发明内容

本发明要解决的主要技术问题是,提供一种存储设备访问方法、访问系统 及存储设备访问管理器,提高当需要在多个存储设备之间频繁访问离散数据时 的访问速度。

根据本发明的一方面,提供一种存储设备访问方法,包括:

检测运算设备中当前存在的存储设备;

为每个存储设备创建并运行一个访问请求缓冲模块,并为每个访问请求缓 冲模块对应配置一个任务处理器;

创建记录有存储设备与访问请求缓冲模块对应关系的对应表;

接收存储设备访问请求,根据存储设备访问请求和对应表判断出该存储设 备访问请求所对应的访问请求缓冲模块;

将存储设备访问请求发送给与其对应的访问请求缓冲模块;

各任务处理器分别从与其对应的访问请求缓冲模块中获取访问请求,并根 据访问请求对与其对应的存储设备进行访问操作。

在一种实施例中,所述访问请求缓冲模块中储存有访问请求队列,所述存 储设备访问请求被发送到与其对应的访问请求缓冲模块的访问请求队列中,各 任务处理器分别从与其对应的访问请求缓冲模块中获取存储设备访问请求包 括:

各任务处理器按照预定时间周期性对与其对应的访问请求缓冲模块进行查 询;

如果访问请求缓冲模块中缓存有存储设备访问请求,则任务处理器从访问 请求队列中依序获取访问请求;

如果访问请求缓冲模块中没有存储设备访问请求,则等待所述预定时间后 再次对与其对应的访问请求缓冲模块进行查询。

在另一实施例中,各任务处理器根据访问请求对与其对应的存储设备进行 访问操作后还包括:

完成访问操作的任务处理器将处理结果发送到预先建立的存储模块的完成 队列中,并向存储设备访问请求产生方发送通知,以便存储设备访问请求产生 方收到通知后从完成队列中取出处理结果。

本发明还公开一种存储设备访问管理器,包括:判断模块,用于检测运算 设备中当前存在的存储设备,接收系统应用模块产生的存储设备访问请求,从 存储设备访问请求中识别出目标存储设备,并按照目标存储设备分类发送存储 设备访问请求;访问请求缓冲模块,所述访问请求缓冲模块与存储设备一一对 应,并接收对应存储设备的存储设备访问请求;任务处理器,所述任务处理器 与访问请求缓冲模块一一对应,所述各任务处理器分别从与其对应的访问请求 缓冲模块中获取访问请求,并根据访问请求对与其对应的存储设备进行访问操 作;对应表,记录有存储设备与访问请求缓冲模块的对应关系。

在一种实施例中,上述存储设备访问管理器还包括存储模块,所述存储模 块中储存有完成队列,所述各任务处理器在完成访问后将处理结果发送到完成 队列,并发出通知。

根据本发明的另一方面,还提供一种存储设备访问方法,包括:

系统应用模块根据访问指令产生存储设备访问请求,并将存储设备访问请 求发送给上述的存储设备访问管理器;

系统应用模块发送存储设备访问请求后等待存储设备访问管理器的反馈通 知;

当系统应用模块接收到存储设备访问管理器发送的反馈通知时,从存储设 备访问管理器中读取访问结果,否则继续等待存储设备访问管理器的反馈通知。

本发明还提供一种存储设备访问管理器,包括判断模块,所述判断模块包 括:检测子模块,用于检测运算设备中当前存在的存储设备;第一创建子模块, 用于根据存储设备的数量为每个存储设备创建并运行一个访问请求缓冲模块, 并为每个访问请求缓冲模块对应配置一个任务处理器,使各任务处理器分别从 与其对应的访问请求缓冲模块中获取访问请求,并根据访问请求对与其对应的 存储设备进行访问操作;第二创建子模块,用于创建记录有存储设备与访问请 求缓冲模块对应关系的对应表;识别子模块,用于接收存储设备访问请求,从 存储设备访问请求中识别出目标存储设备,并根据对应表判断出该目标存储设 备对应的访问请求缓冲模块;访问请求分配子模块,将存储设备访问请求发送 给与其目标存储设备对应的访问请求缓冲模块。

根据本发明的又一方面,还提供一种存储设备访问系统,包括:用于根据 访问指令产生存储设备访问请求的系统应用模块;上述存储设备访问管理器, 系统应用模块将存储设备访问请求发送给存储设备访问管理器处理。

本发明中,存储设备访问管理器针对每个逻辑磁盘分区均设置了独立的任 务处理器,可同时运行多个线程来处理多个磁盘分区的访问请求,从而实现了 多存储设备的并行访问,提高了存取速度及效率。

附图说明

图1a为本发明一种实施例中的存储设备访问管理器的结构示意图;

图1b为本发明另一种实施例中的存储设备访问管理器的结构示意图;

图2为本发明一种实施例中判断模块的结构示意图;

图3a为本发明一种实施例中存储设备访问管理器对存储设备访问请求的处 理流程图;

图3b为本发明另一种实施例中存储设备访问管理器对存储设备访问请求的 处理流程图;

图4为本发明一种实施例中存储设备访问管理器接收到存储设备访问请求 时的处理流程图;

图5为本发明一种实施例中系统应用程序对存储设备访问请求的处理流程 图。

具体实施方式

下面通过具体实施方式结合附图对本发明作进一步详细说明。

首先对一些术语进行描述。

运算设备,指可执行计算机程序的各种处理设备,例如计算机、服务器以及 各种可进行数据读取和存储的终端。

存储设备,运算设备上自身配置的硬盘,为操作方便,通常将硬盘分为几 个逻辑磁盘分区,每个磁盘分区用一个逻辑盘符标识,一个磁盘分区即为一个 存储设备。对于具有多个磁盘分区的运算设备,就具有多个存储设备。另外运 算设备还可以通过各种接口接入可读写数据的磁盘,例如可移动硬盘或闪存盘, 接入的移动硬盘上的每个逻辑磁盘分区被认为是一个存储设备,接入的每个闪 存盘也被认为是一个存储设备。对于既有自身配置的硬盘,又有外接的磁盘时, 该运算设备也具有多个存储设备。

本发明的构思是:针对每个存储设备都配置独立的访问请求缓冲模块和任 务处理器,将对存储设备的访问请求发送到与该存储设备对应的访问请求缓冲 模块,由任务处理器对各自对应的存储设备进行并行的访问任务处理。

为了更有效地管理和协调多个存储设备的访问请求,本实施例提供了一种 存储设备访问管理器,请参考图1a,存储设备访问管理器10包括判断模块11、 对应表12、访问请求缓冲模块13和任务处理器14。

判断模块11用于检测运算设备中当前存在的存储设备的数量,为每个具有 逻辑盘符标识的存储设备创建并运行一个访问请求缓冲模块13,为访问请求缓 冲模块13配置任务处理器14,并创建记录每个逻辑盘符与访问请求缓冲模块之 间的对应关系的对应表12。判断模块11还接收系统应用模块100产生的存储设 备访问请求200,从存储设备访问请求200中识别出目标存储设备,并按照目标 存储设备分类发送存储设备访问请求,即将存储设备访问请求200按照目标存 储设备分类,目标存储设备相同的存储设备访问请求200归为一类,因此可分 成若干个类别的存储设备访问请求200a、200b、200c、200d等,每一类别的存 储设备访问请求发送到与该类别的目标存储设备对应的访问请求缓冲模块中。

对应表12中记录有存储设备与访问请求缓冲模块的对应关系,具体可以是 盘符与访问请求缓冲模块标识的对应关系。判断模块11接收到存储设备访问请 求时,根据存储设备访问请求中的盘符查询对应表,得到该盘符对应的访问请 求缓冲模块,即得到该类别的存储设备访问请求对应的访问请求缓冲模块。

访问请求缓冲模块13可以包括多个,例如包括访问请求缓冲模块13a、13b、 13c、13d等,每个访问请求缓冲模块与一个存储设备一一对应,每个访问请求 缓冲模块接收与其对应的存储设备访问请求,例如只将存储设备访问请求200a 发送给访问请求缓冲模块13a,将存储设备访问请求200b发送给访问请求缓冲 模块13b。在一种具体实例中,访问请求缓冲模块中储存有访问请求队列,所述 存储设备访问请求被发送到与访问请求队列中,存储设备访问请求在访问请求 队列中以先入先出的方式或按照设定的优先级顺序排列。

任务处理器14包括与访问请求缓冲模块13对应配置的任务处理器14a、 14b、14c、14d。各任务处理器14a、14b、14c、14d分别从与其对应的访问请 求缓冲模块13a、13b、13c、13d中获取访问请求,并根据访问请求对与其对应 的存储设备300a、300b、300c、300d进行访问操作。

在如图1b所示的另一种实施例中,存储设备访问管理器10包括判断模块 11、对应表12、访问请求缓冲模块13、任务处理器14和存储模块15,判断模 块11、对应表12、访问请求缓冲模块13和任务处理器14可与图1a所示实施 例中相同,存储模块15中储存有完成队列,任务处理器14中的任何一个在完 成对与其对应的存储设备的访问后都将处理结果发送到存储模块15中的完成队 列,并发送通知给系统应用模块100。系统应用模块100得到通知后从上述完成 队列中取出处理结果。

上述实施例中,判断模块11的一种实现方案如图2所示,判断模块11包 括检测子模块111、第一创建子模块112、第二创建子模块113、识别子模块114 和访问请求分配子模块115。检测子模块111用于检测运算设备中当前存在的存 储设备;第一创建子模块112用于根据存储设备的数量为每个存储设备创建并 运行一个访问请求缓冲模块,并为每个访问请求缓冲模块对应配置一个任务处 理器;第二创建子模块113用于创建记录有存储设备与访问请求缓冲模块对应 关系的对应表;识别子模块114用于接收存储设备访问请求,从存储设备访问 请求中识别出目标存储设备,并根据对应表12判断出该目标存储设备对应的访 问请求缓冲模块,并通知访问请求分配子模块115;访问请求分配子模块115将 存储设备访问请求发送给与其目标存储设备对应的访问请求缓冲模块13。

基于上述存储设备访问管理器,在一种实施例中,存储设备访问管理器执 行以下程序,如图3a、3b所示。

如图3a所示,在启动存储设备访问管理器后,存储设备访问管理器执行以 下步骤:

步骤31,存储设备访问管理器在启动后检测运算设备中当前存在的存储设 备的数量,其检测的存储设备包括运算设备自身配置的所有的逻辑磁盘分区和 已经接入的逻辑磁盘分区,从而得到存储设备的数量。

步骤32,然后存储设备访问管理器为每个存储设备创建并运行一个访问请 求缓冲模块,并为每个访问请求缓冲模块对应配置一个任务处理器,并创建一 个记录有存储设备与访问请求缓冲模块对应关系的对应表。从而使访问请求缓 冲模块、任务处理器和存储设备形成一一对应的关系。存储设备访问管理器接 收系统应用程序产生的存储设备访问请求,根据存储设备访问请求中的盘符得 知目的存储设备,根据盘符查询对应表,判断出该存储设备访问请求所对应的 访问请求缓冲模块。在一种具体实例中,访问请求缓冲模块中储存有访问请求 队列,当存储设备访问管理器接收到存储设备访问请求时,处理流程如图4所 示,当存储设备访问管理接收到存储设备访问请求时,识别出存储设备访问请 求的盘符,选择对应的访问请求缓冲模块,然后将存储设备访问请求发送到对 应的访问请求缓冲模块的访问请求队列中,存储设备访问请求被发送到访问请 求缓冲模块时,按照设定的顺序排列在访问请求队列中等待处理,顺序排列为 按照先入先出或按照设定的优先级顺序。

步骤33,各任务处理器分别从与其对应的访问请求缓冲模块中获取存储设 备访问请求,在一种具体实例中,各任务处理器同时对与其对应的访问请求缓 冲模块进行轮询检查,每个任务处理器的轮询检查每间隔设定时间执行一次。

步骤34,各任务处理器判断与其对应的访问请求缓冲模块中的访问请求队 列是否缓存有存储设备访问请求,如果有,则执行步骤35,如果访问请求缓冲 模块中没有存储设备访问请求,则执行步骤36,任务处理器等待设定时间(例 如1毫秒或5毫秒)后再次对与其对应的访问请求缓冲模块进行查询。

步骤35,各任务处理器从各自对应的访问请求缓冲模块的访问请求队列中 依序获取访问请求并进行并行处理。各任务处理器根据获取的访问请求中的盘 符,对该盘符标识的目标存储设备进行访问,具体可以是将数据写入目标存储 设备,也可以是从该目标存储设备中读出数据。

本实施例中,存储设备访问管理器针对每个逻辑磁盘分区均设置了独立的 任务处理器,每个任务处理器只负责从一个队列中读取访问请求,也只负责一 个存储设备的访问,不需要在不同的队列之间跳转,也不需要在不同的存储设 备之间跳转,不但省去了跳转的时间,而且不同的任务处理器可同时运行,实 现不同存储设备的并行访问,从而提高了存取速度及效率。

在另一种实施例中,存储设备访问管理器对存储设备访问请求的处理流程 如图3b所示,在步骤35之后还包括以下步骤:

步骤37,当任何一个任务处理器完成访问操作后,都将处理结果发送到预 先建立的存储模块的完成队列中,并向存储设备访问请求产生方发送通知。如 果访问操作是数据写入,则将写入的结果(例如表示写入成功或失败的表述或 表示写入时出现某种问题的表述)暂存到存储模块的完成队列中。如果访问操 作是读取数据,则可以将读取的结果(例如表示读取成功或失败的表述或表示 写入时出现某种问题的表述,和读出的数据)暂存到存储模块的完成队列中。

存储设备访问请求产生方收到通知后从完成队列中取出处理结果,存储设 备访问请求产生方可以将处理结果向用户展示。

在一种实施例中,存储设备访问请求由系统应用程序产生,本申请中,系 统应用程序也称为系统应用模块,系统应用程序对存储设备访问请求的处理流 程如图5所示,包括以下步骤:

步骤51,系统应用模块根据访问指令产生存储设备访问请求。

步骤52,系统应用模块将存储设备访问请求发送给存储设备访问管理器, 由存储设备访问管理器按照上述实施例对存储设备访问请求进行处理,对于存 储设备访问管理器对访问结果没有反馈通知的情况,系统应用模块不再理会访 问结果,当有用户发出访问指令时,继续执行步骤51。对于存储设备访问管理 器对访问结果有反馈通知的情况,系统应用模块除了继续执行步骤51外,还执 行以下步骤。

步骤53,等待存储设备访问管理器的反馈通知,当系统应用模块接收到存 储设备访问管理器发送的反馈通知时,执行步骤54,否则继续等待存储设备访 问管理器的反馈通知。

步骤54,系统应用模块从存储设备访问管理器中读取访问结果。

系统应用模块在将多个存储设备访问请求发送给存储设备访问管理器之 后,会根据存储设备访问管理器的通知,从完成队列中依次取出处理结果。这 样既能使系统应用模块得知访问请求处理结果,又能避免多个任务处理器一起 将访问处理结果发送系统应用模块时带来数据冲突。

上述实施例中,存储设备访问管理器在启动时检测当前运算设备系统的逻 辑磁盘分区数量,为适用于存储设备访问管理器在启动后又有外接磁盘接入的 情况,可以在检测到有外接磁盘接入运算设备时,向存储设备访问管理器发送 一新设备接入通知,存储设备访问管理器接收该通知后,为该新接入的磁盘创 建并运行一访问请求缓冲模块和与该访问请求缓冲模块对应配置一任务处理 器,并在对应表中增加新接入磁盘的盘符和访问请求缓冲模块的对应关系。

上述实施例中存储设备访问管理器、系统应用模块和其它模块中的任一都 可编制成计算机可执行程序,该程序可被安装在运算设备或各种处理器中,通 过执行可执行程序完成上述步骤。

上述模块或流程编制成的程序可以被存储在外部可读性存储介质中,这种 存储介质可以是软盘、CD-ROM、硬盘、磁带记录介质、IC卡的半导体存储器或 其它的光学记录介质(例如DVD或PD)或磁记录介质。介质还包括电、光、声 或其它形式的传播信号(例如,载波、红外信号、数字信号等)。

下面举例说明本发明的具体应用。

应用实例一:

当用户需要将某个文档读出或需要运行某个文档时,例如文档可以是某种 多媒体文件,用户在人机交互界面上选中并点击该文档图标,产生一读取指令, 系统应用模块根据该指令产生一存储设备访问请求,请求中包括该文档图标指 向的盘符、地址和要求执行的读操作。系统应用模块将该存储设备访问请求发 送给存储设备访问管理器,存储设备访问管理器按照上述处理方法,先根据盘 符确定存储设备,然后根据地址从该存储设备中读取数据。读取操作顺利完成 后,向系统应用模块发送通知,并将读取成功的信息和读出的数据一起放入存 储设备访问管理器的存储模块中,系统应用模块收到通知后,从存储模块中取 出读取成功的信息和读出的数据。读取成功的信息可通过显示提示信息或发出 特定的声音提示用户,读出的数据可通过合适的方式呈现给用户,例如通过文 字显示和/或通过播放器播放。如果读取操作不成功,则将表示读取失败或错误 的处理结果放入存储设备访问管理器的存储模块中,系统应用模块收到通知后, 从存储模块中取出处理结果,通过显示提示信息或发出特定的声音来提示用户。

应用实例二:

当用户需要存储某个文档时,例如用户下载某个文档,并在人机交互界面 上选择该文档的保存地址后,产生一写入指令,系统应用模块根据该指令产生 一存储设备访问请求,请求中包括该文档图标指向的盘符和要求执行的写操作。 系统应用模块将该存储设备访问请求发送给存储设备访问管理器,存储设备访 问管理器按照上述处理方法,先根据盘符确定存储设备,然后将数据写入该存 储设备中。写入操作完成后,向系统应用模块发送通知,并将处理结果放入存 储设备访问管理器的存储模块中,系统应用模块收到通知后,从存储模块中取 出处理结果,通过显示提示信息或发出特定的声音来提示用户。

综上,通过对存储设备访问请求的并行处理,提高了在具有多存储设备运 算设备上频繁对不同存储设备进行访问时的访问速度及效率。

以上内容是结合具体的实施方式对本发明所作的进一步详细说明,不能认 定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术 人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替换, 都应当视为属于本发明的保护范围。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号