CN103049213A - 一种磁盘调度方法及装置 - Google Patents
一种磁盘调度方法及装置 Download PDFInfo
- Publication number
- CN103049213A CN103049213A CN2011103150613A CN201110315061A CN103049213A CN 103049213 A CN103049213 A CN 103049213A CN 2011103150613 A CN2011103150613 A CN 2011103150613A CN 201110315061 A CN201110315061 A CN 201110315061A CN 103049213 A CN103049213 A CN 103049213A
- Authority
- CN
- China
- Prior art keywords
- disk read
- write resource
- write
- resource
- priority
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种磁盘调度方法及装置,用以解决现有磁盘调度时的I/C争抢问题,提升系统运行速度。所述磁盘调度方法,包括:在每一次磁盘调度时,获取进程组中各发起I/O(输入输出)请求的进程的优先级、请求的磁盘读写资源、以及所述进程组当前可用的磁盘读写资源;按照进程的优先级从高到低的顺序,针对每一个优先级,根据当前优先级的各进程请求的磁盘读写资源、以及所述进程组当前可用的磁盘读写资源,为当前优先级的各进程进行磁盘读写资源的分配。
Description
技术领域
本发明涉及数据存储技术领域,尤其涉及一种磁盘调度方法及装置。
背景技术
目前流行的磁盘调度算法包括以下几种:
算法一、No-op I/O scheduler(无操作I/O调度算法)
I/O(Input/Output,输入输出)请求被分配到队列,由硬件进行磁盘调度,所有I/O请求都是按照FIFO(First Input First Output,先进先出)原则进行处理。
基于No-op I/O scheduler的磁盘调度流程,如图1所示,包括如下步骤:
接收到进程发起的I/O请求后,首先判断I/O请求队列是否已满,如果没满,则将进程发起的I/O请求放入I/O请求队列;
在I/O请求队列中进程与进程之间是平等的,如果有可用的磁盘读写资源,则按照FIFO原则依次为I/O请求队列中的各I/O请求分配磁盘读写资源。
算法二、Anticipatory I/O scheduler(预测I/O调度算法)
该算法在对进程的当前I/O请求进行处理时,进行短时间等待,预测进程的下一个I/O请求的处理需求,以减少磁头移动时间,适用于顺序读写进程。
算法三、Deadline I/O scheduler(期限I/O调度算法)
该算法试图将I/O请求的处理时延降至最低,重新排序各个I/O请求的优先级,适用于小文件。
算法四、CFQ I/O scheduler(公平排队I/O调度算法)
该算法公平分配磁盘读写资源给各个进程,适用于桌面系统。
现有技术中,基于上述磁盘调度算法进行磁盘调度时,不能对磁盘进行配额管理,如果有大量的I/O请求均会存在I/O争抢问题,从而导致磁盘读取超时;系统繁忙时磁盘读写资源将被耗尽,系统运行整体缓慢,严重时将对所有I/O请求都不响应。
发明内容
本发明实施例提供一种磁盘调度方法及装置,用以解决现有磁盘调度时的I/O争抢问题,提升系统运行速度。
本发明实施例提供的磁盘调度方法,包括:
在每一次磁盘调度时,获取进程组中各发起输入输出I/O请求的进程的优先级、请求的磁盘读写资源、以及所述进程组当前可用的磁盘读写资源;
按照进程的优先级从高到低的顺序,针对每一个优先级,根据当前优先级的各进程请求的磁盘读写资源、以及所述进程组当前可用的磁盘读写资源,为当前优先级的各进程进行磁盘读写资源的分配。
本发明实施例提供的磁盘调度装置,包括:
获取模块,用于在每一次磁盘调度时,获取存储在通用块层的进程组中各发起输入输出I/O请求的进程的优先级、请求的磁盘读写资源、以及所述进程组当前可用的磁盘读写资源;
调度模块,用于按照进程的优先级从高到低的顺序,针对每一个优先级,根据当前优先级的各进程请求的磁盘读写资源、以及所述进程组当前可用的磁盘读写资源,为当前优先级的各进程进行磁盘读写资源的分配,并将分配结果分发给块驱动器。
本发明实施例提供的磁盘调度方法及装置,允许进程指定优先级,按照进程的优先级由高到低的顺序,在每一个优先级中为各发起I/O请求的进程(即请求进程)进行磁盘调度,如果有大量的I/O请求,可以优先满足高优先级进程发起的I/O请求,避免高优先级进程请求不到磁盘读写资源的情况,从而有效避免了I/O争抢导致的系统死机、无响应的情况,提升系统运行速度。本发明实施例提供的磁盘调度方法及装置,尤其适用于多进程系统。
本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本发明的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1为现有技术中基于No-op I/O scheduler的磁盘调度流程;
图2为本发明实施例中磁盘调度方法流程图;
图3为本发明实施例中一种较佳的磁盘调度方法流程图;
图4为本发明实施例中另一种较佳的磁盘调度方法流程图;
图5为本发明实施例中磁盘调度装置在系统所处的位置示意图;
图6为本发明实施例中磁盘调度时具体工作交互过程示意图;
图7为本发明实施例中磁盘调度装置的结构框图;
图8为本发明实施例中调度模块的一种可能结构框图;
图9为本发明实施例中调度模块的另一种可能结构框图。
具体实施方式
本发明实施例提供一种磁盘调度方法及装置,允许进程指定优先级,按照进程的优先级由高到低的顺序,在每一个优先级中为各发起I/O请求的进程(即请求进程)进行磁盘调度,如果有大量的I/O请求,可以优先满足高优先级进程发起的I/O请求,避免高优先级进程请求不到磁盘读写资源的情况,从而有效避免了I/O争抢导致的系统死机、无响应的情况,提升系统运行速度。本发明实施例提供的磁盘调度方法及装置,尤其适用于多进程系统。
以下结合说明书附图对本发明的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本发明,并不用于限定本发明,并且在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。
在介绍本发明实施例提供的磁盘调度方法之前,首先澄清几个概念:
进程的优先级(Priority),是指为进程进行磁盘调度的级别,在磁盘调度时,高优先级进程优先于低优先级进程,在系统繁忙时,高优先级进程可以抢占低优先级进程的磁盘读写资源,,低优先级进程不可挤占高优先级进程资源,进程的优先级可以在开发过程中指定,也可以由系统指定。
进程组(Group),是正在运行的进程的载体,进程组中进程与进程之间是不平等的,按照优先级划分。具体实施中,所述的进程组(Group)可以具有多个,需要为每一个进程组分配可用的磁盘读写资源,所述的多个进程组可以按照对象进行划分,例如管理员的进程组,普通用户的进程组等等。
所述的磁盘调度方法,如图2所示,包括:
S201、在每一次磁盘调度时,获取进程组中各发起I/O请求的进程(即请求进程)的优先级、请求的磁盘读写资源、以及所述进程组当前可用的磁盘读写资源。
需要说明的是,磁盘调度是一个实时调度过程,进程组中各发起I/O请求的进程所请求的磁盘读写资源,也是随着该进程当前发起的I/O请求的实际需求而实时变化的;在磁盘调度时,针对进程组中未发起I/O请求的进程,无需进行磁盘调度。
S202、按照进程的优先级从高到低的顺序,针对每一个优先级,根据当前优先级的各进程请求的磁盘读写资源、以及所述进程组当前可用的磁盘读写资源,为当前优先级的各进程进行磁盘读写资源的分配。
需要说明的是,针对具有多个进程组的情况,由于为每一个进程组分配了可用的磁盘读写资源,因此针对各进程组的磁盘调度方法是完全一致的。针对具有多个进程组的情况,在每一个进程启动之前,需要为其指定一个组标识,例如指定管理员的进程的组标识为01,指定普通用户的进程的组标识为02。基于此,当接收到新启动的进程发起的I/O请求时,根据该新启动的进程的组标识将其加入相应的进程组中。
下面,介绍一种较佳的磁盘调度方法,由于针对各进程组的磁盘调度方法是完全一致的,因此以任一进程组为例进行说明。如图3所示,具体包括如下步骤:
S301、获取进程组中各发起I/O请求的进程(即请求进程)的优先级、请求的磁盘读写资源、以及进程组当前可用的磁盘读写资源;
S302、按照进程的优先级从高到低的顺序进行当前优先级的更新,初始化为最高优先级,后续依次更新为下一优先级;
S303、根据当前优先级中未分配磁盘读写资源的进程数量、以及进程组当前可用的磁盘读写资源,确定平均可用磁盘读写资源;
S304、判断是否存在请求的磁盘读写资源小于或等于平均可用磁盘读写资源的进程,如果是,则执行S305,如果否,则执行S308;
S305、为请求的磁盘读写资源小于或等于平均可用磁盘读写资源的进程分配请求的磁盘读写资源;
S306、根据分配结果更新进程组当前可用的磁盘读写资源;
S307、判断当前优先级中是否还存在未分配磁盘读写资源的进程,如果是,返回执行S303,如果否,则当前优先级的各进程的磁盘读写资源分配结束,返回执行S302;
S308、为当前优先级中未分配磁盘读写资源的各进程分配平均可用磁盘读写资源,至此,进程组已经没有可用的磁盘读写资源,因此进程组中各进程的磁盘读写资源分配结束。
较佳的,本发明实施例中还提出进程的重要度(Importance),同一优先级的进程可以有不同的重要度,在同一优先级下根据重要度为各请求进程分配磁盘读写资源。进程的优先级可以在开发过程中配置,也可以由系统配置,具体可以根据进程的运行次数和运行时间确定。在引入进程的重要度之后,介绍另一种较佳的磁盘调度方法,由于针对各进程组的磁盘调度方法是完全一致的,因此以任一进程组为例进行说明。如图4所示,具体包括如下步骤:
S401、获取进程组中各发起I/O请求的进程(即请求进程)的优先级、请求的磁盘读写资源、以及进程组当前可用的磁盘读写资源;
S402、按照进程的优先级从高到低的顺序进行当前优先级的更新,初始化为最高优先级,后续依次更新为下一优先级;
S403、根据当前优先级中未分配磁盘读写资源的各进程的重要度、以及进程组当前可用的磁盘读写资源,确定各进程对应的最优可用磁盘读写资源;
S404、判断是否存在请求的磁盘读写资源小于或等于对应的最优可用磁盘读写资源的进程,如果是,则执行S405,如果否,则执行S408;
S405、为请求的磁盘读写资源小于或等于对应的最优可用磁盘读写资源的进程分配请求的磁盘读写资源;
S406、根据分配结果更新所述进程组当前可用的磁盘读写资源;
S407、判断当前优先级中是否还存在未分配磁盘读写资源的进程,如果是,返回执行S403,如果否,则当前优先级的各进程的磁盘读写资源分配结束,返回执行S402;
S408、为当前优先级中未分配磁盘读写资源的各进程分配对应的最优可用磁盘读写资源,至此,进程组已经没有可用的磁盘读写资源,因此进程组中各进程的磁盘读写资源分配结束。
在S403的具体实施中,包括如下步骤:
确定当前优先级中未分配磁盘读写资源的各进程的重要度之和;
确定每一个进程对应的最优可用磁盘读写资源为所述进程组当前可用的磁盘读写资源与该进程的权重之积,其中,每一个进程的权重为该进程的重要度与所述重要度之和的比值。
为了便于理解本发明,下面举例说明基于优先级(Priority)和重要度(Importance)的磁盘调度流程。每个磁盘调度装置都可以具有多个进程组(Group),每个Group中的进程有两个属性:{Priority、Importance},Priority表示优先级,进行资源调度时高优先级严格优先于低优先级,Importance表示重要度,在同一Priority的各进程中,表示每个进程期望分配的百分比;每个进程还有I/O压力属性{Require},Require表示请求的磁盘读写资源;并且进程组对应一个可用的抓取压力属性{Avaliable},Avaliable表示进程组可用的磁盘读写资源。磁盘调度算法为:
严格按照Priority将Group中发起I/O请求的进程(即请求进程)分组,按照Priority从高到低的顺序为各个Priority中的进程分配磁盘读写资源;
单个Priority中的多个进程根据Importance进行磁盘读写资源的分配,具体分配方式为:
BestChoice=Avaliable*Importance/(该Priority中未分配磁盘读写资源的各进程的Importance之和);
其中,BestChoice表示进程对应的最优可用磁盘读写资源;
Require不超过其对应的BestChoice的进程优先分配磁盘读写资源,并按照Require分配;
Require超过其对应的BestChoice的进程按照BestChoice分配。
假设中有四个进程发起I/O请求,该四个进程分别为Group-A、Group-B、Group-C、Group-D,该四个进程的Group当前可用的磁盘读写资源为10,磁盘读写资源的单位一般为数据量/秒。该四个进程的属性如表1所示,其中Allocated表示为进程分配的磁盘读写资源:
表1
Require | Priority | Importance | Allocated | |
Group-A | 3 | 2 | 10 | 3 |
Group-B | 4 | 1 | 5 | 3.125 |
Group-C | 2 | 1 | 10 | 2 |
Group-D | 6 | 1 | 3 | 1.875 |
磁盘调度过程为:
步骤1、按照优先级从高到低的顺序,首先对Priority=2的进程进行磁盘调度,Priority=2的进程包括Group-A,当前的Avaliable=10;
由于Priority=2的进程只有Group-A,则Group-A对应的BestChoice=10,而Require=3,不超过BestChoice,则为Group-A分配的磁盘读写资源Allocated=3;
步骤2、接着对Priority=1的进程进行磁盘调度,Priority=1的进程包括Group-B、Group-C、Group-D,当前的Available=10-3=7;
由于Priority=1的进程包括三个,则分别计算各进程对应的BestChoice:
Group-B对应的BestChoice=7*5/(5+10+3)=1.94;
Group-C对应的BestChoice=7*10/(5+10+3)=3.88;
Group-D对应的BestChoice=7*3/(5+10+3)=1.16;
由于Group-C的Require=2≤对应的BestChoice=3.88,所以Group-C优先分配,Group-C的Allocated=2;
为所有Require≤对应的BestChoice的进程之后,更新当前的Avaliable=5,重新计算未分配磁盘读写资源的各进程对应的BestChoice:
Group-B对应的BestChoice=5*5/(5+3)=3.125;
Group-D对应的BestChoice=5*3/(5+3)=1.875;
由于不存在Require≤对应的BestChoice的进程,则按照BestChoice分配,Group-B的Allocated=3.125,Group-D的Allocated=1.875,更新当前的Avaliable=0,磁盘调度流程结束。
本发明实施例提供的磁盘调度方法,可以实现在各个优先级独立享有各自所需的磁盘读写资源,保障高优先级进程在运行时所需的磁盘读写资源,上层用户感受是高优先级进程始终可以顺畅运行,不受系统中磁盘读写资源不足的影响,如果系统中磁盘读写资源不够只会影响低优先级进程的I/O请求,并且系统的资源利用率始终处于100%状态。
基于同一技术构思,本发明实施例还提供了一种磁盘调度装置,由于该磁盘调度装置解决问题的原理与磁盘调度方法相似,因此该装置的实施可以参见方法的实施,重复之处不再赘述。
磁盘调度装置在系统中所处的位置请参见图5,磁盘调度装置(I/OScheduler Layer)处于块驱动器(Block Device Drive)和通用块层(Gneeric BlockLayer)之间,对上接收文件系统发来的各种I/O请求,对I/O请求进行排队、分发,对下将分配结果分发给块驱动器(Block Device Drive)。磁盘调度时具体工作交互过程如图6所示,磁盘调度装置(I/O Scheduler Layer)将I/O请求发送给块驱动器(Block Device Drive),块驱动器(Block Device Drive)根据为I/O请求分配的磁盘读写资源执行磁盘读/写操作,磁盘读/写操作完成之后该I/O请求完成。
本发明实施例提供了磁盘调度装置的结构,如图7所示,包括:
获取模块701,用于在每一次磁盘调度时,获取存储在通用块层的进程组中各发起输入输出I/O请求的进程的优先级、请求的磁盘读写资源、以及所述进程组当前可用的磁盘读写资源;
调度模块702,用于按照进程的优先级从高到低的顺序,针对每一个优先级,根据当前优先级的各进程请求的磁盘读写资源、以及所述进程组当前可用的磁盘读写资源,为当前优先级的各进程进行磁盘读写资源的分配,并将分配结果分发给块驱动器。
具体实施中,所述进程组可以具有多个,相应的,磁盘调度装置还包括:
管理模块703,用于当接收到新启动的进程发起的I/O请求时,根据该新启动的进程的组标识将其加入通用块层相应的进程组中。
较佳的,调度模块702的一种可能结构,如图8所示,具体包括:
第一更新子模块801,用于按照进程的优先级从高到低的顺序进行当前优先级的更新;
第一确定子模块802,用于根据当前优先级中未分配磁盘读写资源的进程数量、以及所述进程组当前可用的磁盘读写资源,确定平均可用磁盘读写资源;
第一判断子模块803,用于判断是否存在请求的磁盘读写资源小于或等于所述平均可用磁盘读写资源的进程,如果是,触发第一调度子模块804,否则,触发第二调度子模块805;
第一调度子模块804,用于为请求的磁盘读写资源小于或等于所述平均可用磁盘读写资源的进程分配请求的磁盘读写资源,并根据分配结果更新所述进程组当前可用的磁盘读写资源,如果当前优先级中还存在未分配磁盘读写资源的进程,触发第一确定子模块802,否则,当前优先级的各进程的磁盘读写资源分配结束,触发第一更新子模块801;
第二调度子模块805,用于为当前优先级中未分配磁盘读写资源的各进程分配所述平均可用磁盘读写资源,所述进程组中各进程的磁盘读写资源分配结束。
较佳的,进程组中各进程还配置有重要度,相应的,调度模块702的另一种可能结构,如图9所示,具体包括:
第二更新子模块901,用于按照进程的优先级从高到低的顺序进行当前优先级的更新;
第二确定子模块902,用于根据当前优先级中未分配磁盘读写资源的各进程的重要度、以及所述进程组当前可用的磁盘读写资源,确定各进程对应的最优可用磁盘读写资源,;
第二判断子模块903,用于判断是否存在请求的磁盘读写资源小于或等于对应的最优可用磁盘读写资源的进程,如果是,触发第三调度子模块904,否则,触发第四调度子模块905;
第三调度子模块904,用于为请求的磁盘读写资源小于或等于所述最优可用磁盘读写资源的进程分配请求的磁盘读写资源,并根据分配结果更新所述进程组当前可用的磁盘读写资源,如果当前优先级中还存在未分配磁盘读写资源的进程,触发第二确定子模块902,否则,当前优先级的各进程的磁盘读写资源分配结束,触发第二更新子模块901;
第四调度子模块905,用于为当前优先级中未分配磁盘读写资源的各进程分配对应的最优可用磁盘读写资源,所述进程组中各进程的磁盘读写资源分配结束。
其中,第二确定子模块902具体可以包括:
重要度确定单元,用于确定当前优先级中未分配磁盘读写资源的各进程的重要度之和;
最优资源确定单元,用于确定每一个进程对应的最优可用磁盘读写资源为所述进程组当前可用的磁盘读写资源与该进程的权重之积,其中,每一个进程的权重为该进程的重要度与所述重要度之和的比值。
本领域的技术人员应该明白,本发明的实施例可提供为方法、装置、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、装置和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例、以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (10)
1.一种磁盘调度方法,其特征在于,包括:
在每一次磁盘调度时,获取进程组中各发起输入输出I/O请求的进程的优先级、请求的磁盘读写资源、以及所述进程组当前可用的磁盘读写资源;
按照进程的优先级从高到低的顺序,针对每一个优先级,根据当前优先级的各进程请求的磁盘读写资源、以及所述进程组当前可用的磁盘读写资源,为当前优先级的各进程进行磁盘读写资源的分配。
2.如权利要求1所述的方法,其特征在于,所述进程组具有多个,以及所述方法还包括:
当接收到新启动的进程发起的I/O请求时,根据该新启动的进程的组标识将其加入相应的进程组中。
3.如权利要求1或2所述的方法,其特征在于,所述根据当前优先级的各进程请求的磁盘读写资源、以及所述进程组当前可用的磁盘读写资源,为当前优先级的各进程进行磁盘读写资源的分配,具体包括:
根据当前优先级中未分配磁盘读写资源的进程数量、以及所述进程组当前可用的磁盘读写资源,确定平均可用磁盘读写资源;
如果存在请求的磁盘读写资源小于或等于所述平均可用磁盘读写资源的进程,为其分配请求的磁盘读写资源,并根据分配结果更新所述进程组当前可用的磁盘读写资源,如果当前优先级中还存在未分配磁盘读写资源的进程,返回执行上一步,否则,当前优先级的各进程的磁盘读写资源分配结束;
否则,为当前优先级中未分配磁盘读写资源的各进程分配所述平均可用磁盘读写资源,所述进程组中各进程的磁盘读写资源分配结束。
4.如权利要求1或2所述的方法,其特征在于,进程组中各进程还配置有重要度,以及
所述根据当前优先级的各进程请求的磁盘读写资源、以及所述进程组当前可用的磁盘读写资源,为当前优先级的各进程进行磁盘读写资源的分配,具体包括:
根据当前优先级中未分配磁盘读写资源的各进程的重要度、以及所述进程组当前可用的磁盘读写资源,确定各进程对应的最优可用磁盘读写资源;
如果存在请求的磁盘读写资源小于或等于对应的最优可用磁盘读写资源的进程,为其分配请求的磁盘读写资源,并根据分配结果更新所述进程组当前可用的磁盘读写资源,如果当前优先级中还存在未分配磁盘读写资源的进程,返回执行上一步,否则,当前优先级的各进程的磁盘读写资源分配结束;
否则,为当前优先级中未分配磁盘读写资源的各进程分配对应的最优可用磁盘读写资源,所述进程组中各进程的磁盘读写资源分配结束。
5.如权利要求4所述的方法,其特征在于,所述根据当前优先级中未分配磁盘读写资源的各进程的重要度、以及所述进程组当前可用的磁盘读写资源,确定各进程对应的最优可用磁盘读写资源,具体包括:
确定当前优先级中未分配磁盘读写资源的各进程的重要度之和;
确定每一个进程对应的最优可用磁盘读写资源为所述进程组当前可用的磁盘读写资源与该进程的权重之积,其中,每一个进程的权重为该进程的重要度与所述重要度之和的比值。
6.一种磁盘调度装置,其特征在于,包括:
获取模块,用于在每一次磁盘调度时,获取存储在通用块层的进程组中各发起输入输出I/O请求的进程的优先级、请求的磁盘读写资源、以及所述进程组当前可用的磁盘读写资源;
调度模块,用于按照进程的优先级从高到低的顺序,针对每一个优先级,根据当前优先级的各进程请求的磁盘读写资源、以及所述进程组当前可用的磁盘读写资源,为当前优先级的各进程进行磁盘读写资源的分配,并将分配结果分发给块驱动器。
7.如权利要求6所述的装置,其特征在于,还包括:
管理模块,用于当接收到新启动的进程发起的I/O请求时,根据该新启动的进程的组标识将其加入通用块层相应的进程组中,所述进程组具有多个。
8.如权利要求6或7所述的装置,其特征在于,调度模块,具体包括:
第一更新子模块,用于按照进程的优先级从高到低的顺序进行当前优先级的更新;
第一确定子模块,用于根据当前优先级中未分配磁盘读写资源的进程数量、以及所述进程组当前可用的磁盘读写资源,确定平均可用磁盘读写资源;
第一判断子模块,用于判断是否存在请求的磁盘读写资源小于或等于所述平均可用磁盘读写资源的进程,如果是,触发第一调度子模块,否则,触发第二调度子模块;
第一调度子模块,用于为请求的磁盘读写资源小于或等于所述平均可用磁盘读写资源的进程分配请求的磁盘读写资源,并根据分配结果更新所述进程组当前可用的磁盘读写资源,如果当前优先级中还存在未分配磁盘读写资源的进程,触发第一确定子模块,否则,当前优先级的各进程的磁盘读写资源分配结束,触发第一更新子模块;
第二调度子模块,用于为当前优先级中未分配磁盘读写资源的各进程分配所述平均可用磁盘读写资源,所述进程组中各进程的磁盘读写资源分配结束。
9.如权利要求6或7所述的装置,其特征在于,调度模块,具体包括:
第二更新子模块,用于按照进程的优先级从高到低的顺序进行当前优先级的更新;
第二确定子模块,用于根据当前优先级中未分配磁盘读写资源的各进程的重要度、以及所述进程组当前可用的磁盘读写资源,确定各进程对应的最优可用磁盘读写资源,进程组中各进程还配置有重要度;
第二判断子模块,用于判断是否存在请求的磁盘读写资源小于或等于对应的最优可用磁盘读写资源的进程,如果是,触发第三调度子模块,否则,触发第四调度子模块;
第三调度子模块,用于为请求的磁盘读写资源小于或等于所述最优可用磁盘读写资源的进程分配请求的磁盘读写资源,并根据分配结果更新所述进程组当前可用的磁盘读写资源,如果当前优先级中还存在未分配磁盘读写资源的进程,触发第二确定子模块,否则,当前优先级的各进程的磁盘读写资源分配结束,触发第二更新子模块;
第四调度子模块,用于为当前优先级中未分配磁盘读写资源的各进程分配对应的最优可用磁盘读写资源,所述进程组中各进程的磁盘读写资源分配结束。
10.如权利要求9所述的装置,其特征在于,所述第二确定子模块,具体包括:
重要度确定单元,用于确定当前优先级中未分配磁盘读写资源的各进程的重要度之和;
最优资源确定单元,用于确定每一个进程对应的最优可用磁盘读写资源为所述进程组当前可用的磁盘读写资源与该进程的权重之积,其中,每一个进程的权重为该进程的重要度与所述重要度之和的比值。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110315061.3A CN103049213B (zh) | 2011-10-17 | 2011-10-17 | 一种磁盘调度方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110315061.3A CN103049213B (zh) | 2011-10-17 | 2011-10-17 | 一种磁盘调度方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103049213A true CN103049213A (zh) | 2013-04-17 |
CN103049213B CN103049213B (zh) | 2016-01-20 |
Family
ID=48061866
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110315061.3A Active CN103049213B (zh) | 2011-10-17 | 2011-10-17 | 一种磁盘调度方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103049213B (zh) |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105843559A (zh) * | 2016-03-28 | 2016-08-10 | 乐视控股(北京)有限公司 | 一种磁盘缓存系统的读写优化方法及系统 |
CN106970830A (zh) * | 2017-03-22 | 2017-07-21 | 佛山科学技术学院 | 一种分布式虚拟机的存储控制方法、及虚拟机 |
CN107145305A (zh) * | 2017-03-22 | 2017-09-08 | 佛山科学技术学院 | 一种分布式物理磁盘的使用方法、及虚拟机 |
CN107168646A (zh) * | 2017-03-22 | 2017-09-15 | 佛山科学技术学院 | 一种分布式数据存储控制方法、及服务器 |
CN107247627A (zh) * | 2017-06-22 | 2017-10-13 | 上海优刻得信息科技有限公司 | 存储设备io分配方法、存储设备io分配装置及服务器系统 |
CN108227901A (zh) * | 2017-12-30 | 2018-06-29 | 广东技术师范学院 | 一种基于零星请求的磁盘功耗状态切换方法 |
CN108762687A (zh) * | 2018-06-05 | 2018-11-06 | 星环信息科技(上海)有限公司 | Io服务质量控制方法、装置、设备及存储介质 |
CN109814806A (zh) * | 2018-12-27 | 2019-05-28 | 河南创新科信息技术有限公司 | Io调度方法、存储介质和装置 |
CN110286949A (zh) * | 2019-06-27 | 2019-09-27 | 深圳市网心科技有限公司 | 基于物理主机存储装置读写的进程挂起方法及相关设备 |
CN113268342A (zh) * | 2021-05-08 | 2021-08-17 | 杭州电子科技大学 | 一种面向边缘i/o密集型应用的混合cpu调度方法 |
CN116225345A (zh) * | 2023-05-08 | 2023-06-06 | 珠海妙存科技有限公司 | 一种eMMC的数据存储方法、控制器及可读存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101118477A (zh) * | 2007-08-24 | 2008-02-06 | 成都索贝数码科技股份有限公司 | 一种提高磁盘数据访问效率的方法 |
CN101739215A (zh) * | 2008-11-19 | 2010-06-16 | 成都市华为赛门铁克科技有限公司 | 一种确定输入输出调度算法的方法及装置 |
CN102073461A (zh) * | 2010-12-07 | 2011-05-25 | 成都市华为赛门铁克科技有限公司 | 输入输出请求调度方法、存储控制器和存储阵列 |
CN102104614A (zh) * | 2009-12-22 | 2011-06-22 | 成都市华为赛门铁克科技有限公司 | 一种数据访问方法及装置 |
-
2011
- 2011-10-17 CN CN201110315061.3A patent/CN103049213B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101118477A (zh) * | 2007-08-24 | 2008-02-06 | 成都索贝数码科技股份有限公司 | 一种提高磁盘数据访问效率的方法 |
CN101739215A (zh) * | 2008-11-19 | 2010-06-16 | 成都市华为赛门铁克科技有限公司 | 一种确定输入输出调度算法的方法及装置 |
CN102104614A (zh) * | 2009-12-22 | 2011-06-22 | 成都市华为赛门铁克科技有限公司 | 一种数据访问方法及装置 |
CN102073461A (zh) * | 2010-12-07 | 2011-05-25 | 成都市华为赛门铁克科技有限公司 | 输入输出请求调度方法、存储控制器和存储阵列 |
Cited By (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105843559A (zh) * | 2016-03-28 | 2016-08-10 | 乐视控股(北京)有限公司 | 一种磁盘缓存系统的读写优化方法及系统 |
CN107168646B (zh) * | 2017-03-22 | 2020-07-28 | 佛山科学技术学院 | 一种分布式数据存储控制方法及服务器 |
CN106970830A (zh) * | 2017-03-22 | 2017-07-21 | 佛山科学技术学院 | 一种分布式虚拟机的存储控制方法、及虚拟机 |
CN107145305A (zh) * | 2017-03-22 | 2017-09-08 | 佛山科学技术学院 | 一种分布式物理磁盘的使用方法、及虚拟机 |
CN107168646A (zh) * | 2017-03-22 | 2017-09-15 | 佛山科学技术学院 | 一种分布式数据存储控制方法、及服务器 |
CN107145305B (zh) * | 2017-03-22 | 2020-07-28 | 佛山科学技术学院 | 一种分布式物理磁盘的使用方法及虚拟机 |
CN106970830B (zh) * | 2017-03-22 | 2020-07-28 | 佛山科学技术学院 | 一种分布式虚拟机的存储控制方法及虚拟机 |
CN107247627A (zh) * | 2017-06-22 | 2017-10-13 | 上海优刻得信息科技有限公司 | 存储设备io分配方法、存储设备io分配装置及服务器系统 |
CN108227901B (zh) * | 2017-12-30 | 2020-07-14 | 广东技术师范大学 | 一种基于零星请求的磁盘功耗状态切换方法 |
CN108227901A (zh) * | 2017-12-30 | 2018-06-29 | 广东技术师范学院 | 一种基于零星请求的磁盘功耗状态切换方法 |
CN108762687A (zh) * | 2018-06-05 | 2018-11-06 | 星环信息科技(上海)有限公司 | Io服务质量控制方法、装置、设备及存储介质 |
CN109814806A (zh) * | 2018-12-27 | 2019-05-28 | 河南创新科信息技术有限公司 | Io调度方法、存储介质和装置 |
CN110286949A (zh) * | 2019-06-27 | 2019-09-27 | 深圳市网心科技有限公司 | 基于物理主机存储装置读写的进程挂起方法及相关设备 |
CN113268342A (zh) * | 2021-05-08 | 2021-08-17 | 杭州电子科技大学 | 一种面向边缘i/o密集型应用的混合cpu调度方法 |
CN116225345A (zh) * | 2023-05-08 | 2023-06-06 | 珠海妙存科技有限公司 | 一种eMMC的数据存储方法、控制器及可读存储介质 |
CN116225345B (zh) * | 2023-05-08 | 2023-08-11 | 珠海妙存科技有限公司 | 一种eMMC的数据存储方法、控制器及可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN103049213B (zh) | 2016-01-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103049213A (zh) | 一种磁盘调度方法及装置 | |
Carpenter et al. | A Categorization of Real-Time Multiprocessor Scheduling Problems and Algorithms. | |
Anderson et al. | An EDF-based scheduling algorithm for multiprocessor soft real-time systems | |
CN103605576A (zh) | 一种基于多线程的MapReduce执行系统 | |
CN101968750B (zh) | 计算机系统及其工作方法 | |
CN111782355B (zh) | 一种基于混合负载的云计算任务调度方法及系统 | |
US8924754B2 (en) | Quality of service targets in multicore processors | |
CN110362407A (zh) | 计算资源调度方法及装置 | |
KR101733117B1 (ko) | 멀티코어 시스템의 태스크 분배 방법 및 장치 | |
CN103999051A (zh) | 用于着色器核心中着色器资源分配的策略 | |
CN101923491A (zh) | 多核环境下线程组地址空间调度和切换线程的方法 | |
KR20200054403A (ko) | 멀티-코어 프로세서를 포함하는 시스템 온 칩 및 그것의 태스크 스케줄링 방법 | |
CN103927225A (zh) | 一种多核心架构的互联网信息处理优化方法 | |
KR101859188B1 (ko) | 매니코어 시스템에서의 파티션 스케줄링 장치 및 방법 | |
CN109445565B (zh) | 一种基于流多处理器内核独占和预留的gpu服务质量保障方法 | |
Wolf et al. | On the optimization of schedules for MapReduce workloads in the presence of shared scans | |
CN114647515A (zh) | 一种面向gpu集群的动态资源调度方法 | |
CN112506634A (zh) | 一种基于预约机制的公平性作业调度方法 | |
CN111274021A (zh) | 一种gpu集群任务调度分配方法 | |
CN111597044A (zh) | 任务调度方法、装置、存储介质及电子设备 | |
Shu-Jun et al. | Optimization and research of hadoop platform based on fifo scheduler | |
CN112925616A (zh) | 任务分配方法、装置、存储介质及电子设备 | |
CN111314249B (zh) | 一种5g数据转发平面的避免数据包丢失的方法和服务器 | |
US20230289223A1 (en) | Task scheduling method, game engine, device and storage medium | |
CN109614222A (zh) | 一种多线程资源分配方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |