一种固态硬盘的多任务资源控制方法和装置转让专利

申请号 : CN202310193192.1

文献号 : CN115858134B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 赵宝林王鑫秦文政钟戟

申请人 : 苏州浪潮智能科技有限公司

摘要 :

本发明实施例提供了一种固态硬盘的多任务资源控制方法和装置,涉及计算机系统及存储技术领域;包括在固态硬盘接收到处理任务时,对所述处理任务进行标签化,生成任务标签;基于所述任务标签,确定处理流程数据;将所述处理流程数据进行序列化,生成任务流程序列;基于所述任务流程序列和所述任务标签,从所述序列资源中确定出目标序列资源;采用所述任务流程序列在所述目标序列资源中申请资源。本发明实施例通过处理任务进行标签化,并将处理任务以资源使用角度进行序列划分,在任务申请不同资源时,使用标签及序列综合确定资源申请情况,保证各类任务在运行中能够得到资源保证,提升固态硬盘的任务处理性能服务质量。

权利要求 :

1.一种固态硬盘的多任务资源控制方法,其特征在于,所述固态硬盘上部署有多个序列资源,所述方法包括:在所述固态硬盘接收到处理任务时,对所述处理任务进行标签化,生成任务标签;

基于所述任务标签,确定处理流程数据;

依据处理流程节点的执行关系以及资源关系将所述处理流程数据进行序列化,生成任务流程序列,所述任务流程序列包括至少一个序列节点;

基于所述任务流程序列中的所述序列节点和所述任务标签,从所述序列资源中确定与所述任务流程序列和所述任务标签匹配的目标序列资源;

采用所述任务流程序列中的所述序列节点在所述目标序列资源中申请资源,以完成所述任务流程序列中的所述序列节点。

2.根据权利要求1所述的方法,其特征在于,所述任务流程序列包括至少一个序列节点;所述方法还包括:当执行完所述任务流程序列的当前序列节点时,判断所述当前序列节点是否为预设序列节点;

响应于所述当前序列节点为所述预设序列节点,更新所述任务标签;并基于更新后的任务标签执行所述基于所述任务标签,确定处理流程数据的步骤。

3.根据权利要求1所述的方法,其特征在于,所述处理任务对应有任务类型;所述对所述处理任务进行标签化,生成任务标签的步骤包括:确定所述任务类型对应的任务优先级;

基于所述任务优先级进行标签化,生成任务标签。

4.根据权利要求3所述的方法,其特征在于,所述任务类型包括前台类型和后台类型;

所述确定所述任务类型对应的任务优先级的步骤包括:响应于所述任务类型为所述前台类型,确定所述任务优先级为第一优先级;

响应于所述任务类型为所述后台类型,确定所述任务优先级为第二优先级;

其中,所述第一优先级高于所述第二优先级。

5.根据权利要求3所述的方法,其特征在于,所述任务类型包括输入输出类型和管理类型;所述确定所述任务类型对应的任务优先级的步骤包括:响应于所述任务类型为所述输入输出类型,确定所述任务优先级为第三优先级;

响应于所述任务类型为所述管理类型,确定所述任务优先级为第四优先级;

其中,所述第三优先级高于所述第四优先级。

6.根据权利要求1所述的方法,其特征在于,所述基于所述任务标签,确定处理流程数据的步骤包括:基于所述任务标签,查询处理流程节点和处理顺序;

依据所述处理顺序将所述处理流程节点进行排序,生成所述处理流程数据。

7.根据权利要求6所述的方法,其特征在于,所述将所述处理流程数据进行序列化,生成任务流程序列的步骤包括:依据所述处理流程节点确定需求资源标识;

基于所述资源标识和处理顺序,确定多个节点集合,所述节点集合包括至少一个所述处理流程节点;

针对任一所述节点集合,进行序列化生成所述任务流程序列。

8.根据权利要求7所述的方法,其特征在于,所述依据所述处理流程节点确定需求资源标识的步骤包括:确定所述处理流程节点对应的处理对象;

查询所述处理对象所属的处理资源;

确定所述处理资源的标识为所述需求资源标识。

9.根据权利要求7所述的方法,其特征在于,所述基于所述资源标识和处理顺序,确定多个节点集合的步骤包括:基于所述资源标识将所述处理流程节点进行归类,生成资源归类集合;

基于所述处理顺序,在所述资源归类集合中,将相邻的处理流程节点进行集合,生成相邻集合;

将所述相邻集合确定为节点集合。

10.根据权利要求9所述的方法,其特征在于,所述基于所述处理顺序,在所述资源归类集合中,将相邻的处理流程节点进行集合,生成相邻集合的步骤包括:在所述资源归类集合中,确定出目标处理流程节点;

基于所述处理顺序,判断所述目标处理流程节点在所述资源归类集合中是否存在关联处理流程节点;

当存在关联处理流程节点时,采用所述关联处理流程节点更新所述目标处理流程节点,执行所述判断所述目标处理流程节点在所述资源归类集合中是否存在关联处理流程节点的步骤;

当不存在关联处理流程节点时,将所述目标处理流程节点和/或所述关联处理流程节点写入所述相邻集合。

11.根据权利要求1所述的方法,其特征在于,所述基于所述任务流程序列和所述任务标签,从所述序列资源中确定出目标序列资源的步骤包括:依据所述任务标签从所述序列资源中确定资源块;

依据所述任务流程序列,从所述资源块中确定与所述任务流程序列对应的资源;

确定所述与所述任务流程序列对应的资源为所述目标序列资源。

12.根据权利要求11所述的方法,其特征在于,所述基于所述任务流程序列和所述任务标签,从所述序列资源中确定出目标序列资源的步骤还包括:当所述资源块中资源为空时;提高所述任务标签的优先级。

13.根据权利要求11所述的方法,其特征在于,所述序列资源包括资源标签;所述依据所述任务标签从所述序列资源中确定资源块的步骤包括:依据所述任务标签,确定与其匹配的资源标签;

确定所述资源标签对应的资源块。

14.根据权利要求11所述的方法,其特征在于,所述资源块包括多个资源序列;所述依据所述任务流程序列,从所述资源块中确定与所述任务流程序列对应的资源的步骤:确定所述资源块中空闲的资源序列;

依据所述任务流程序列从所述空闲的资源序列中确定出所述与所述任务流程序列对应的资源。

15.根据权利要求14所述的方法,其特征在于,所述依据所述任务流程序列从所述空闲的资源序列中确定出所述与所述任务流程序列对应的资源的步骤包括:确定所述任务流程序列的优先级;

在所述空闲的资源序列中确定与所述任务流程序列的优先级匹配的目标空闲资源序列;

将所述目标空闲资源序列确定为所述与所述任务流程序列对应的资源。

16.根据权利要求2所述的方法,其特征在于,所述预设序列节点包括前台结束节点、后台流程垃圾回收节点和后台转换节点;所述判断所述当前序列节点是否为预设序列节点的步骤包括:当所述当前序列节点为所述前台结束节点、所述后台流程垃圾回收节点和所述后台转换节点的其中一种时,确定所述当前序列节点为预设序列节点。

17.根据权利要求2所述的方法,其特征在于,所述响应于所述当前序列节点为所述预设序列节点,更新所述任务标签的步骤包括:响应于所述当前序列节点为所述预设序列节点,确定所述预设序列节点对应的更新标签;

采用所述更新标签替换所述任务标签,以更新所述任务标签。

18.一种固态硬盘的多任务资源控制装置,其特征在于,所述固态硬盘上部署有多个序列资源,所述装置包括:标签化模块,用于在所述固态硬盘接收到处理任务时,对所述处理任务进行标签化,生成任务标签;

流程确定模块,用于基于所述任务标签,确定处理流程数据;

序列化模块,用于依据处理流程节点的执行关系以及资源关系将所述处理流程数据进行序列化,生成任务流程序列,所述任务流程序列包括至少一个序列节点;

资源确定模块,用于基于所述任务流程序列中的所述序列节点和所述任务标签,从所述序列资源中确定出目标序列资源;

资源申请模块,用于采用所述任务流程序列中的所述序列节点在所述目标序列资源中申请资源,以完成所述任务流程序列中的所述序列节点。

19.一种电子设备,其特征在于,包括处理器、存储器及存储在所述存储器上并能够在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如权利要求1至17中任一项所述的固态硬盘的多任务资源控制方法的步骤。

20.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储计算机程序,所述计算机程序被处理器执行时实现如权利要求1至17中任一项所述的固态硬盘的多任务资源控制方法的步骤。

说明书 :

一种固态硬盘的多任务资源控制方法和装置

技术领域

[0001] 本发明涉及计算机系统及存储技术领域,特别是涉及一种固态硬盘的多任务资源控制方法、一种固态硬盘的多任务资源控制装置,一种电子设备和一种存储介质。

背景技术

[0002] 随着互联网、云计算、物联网、大数据等技术的发展及广泛应用,在人类生活中,时时刻刻都会产生海量的数据,这些海量的数据需要进行处理和存储,信息技术的告诉发展对存储系统的性能提出了更高的要求。固态硬盘因为其读写速度快、能耗低,而被广泛的应用。
[0003] 当前固态硬盘的使用变得越来越广泛,对固态硬盘的性能、容量的要求都更高,随着闪存技术的发展、主控芯片的性能提高,固态硬盘的相关技术不断更新,使得能够尽可能满足应用的需求。
[0004] 随着固态硬盘的发展,各类操作系统已经广泛应用在了固态硬盘,随之而来的操作系统的使用,不同任务、线程可能对同一资源存在需求,导致线程阻塞,从而性能出现抖动。

发明内容

[0005] 鉴于上述问题,提出了本发明实施例以便提供一种克服上述问题或者至少部分地解决上述问题的一种固态硬盘的多任务资源控制方法、一种固态硬盘的多任务资源控制装置,一种电子设备和一种存储介质。
[0006] 在本发明的第一个方面,本发明实施例公开了一种固态硬盘的多任务资源控制方法,所述固态硬盘上部署有多个序列资源,所述方法包括:
[0007] 在所述固态硬盘接收到处理任务时,对所述处理任务进行标签化,生成任务标签;
[0008] 基于所述任务标签,确定处理流程数据;
[0009] 将所述处理流程数据进行序列化,生成任务流程序列;
[0010] 基于所述任务流程序列和所述任务标签,从所述序列资源中确定出目标序列资源;
[0011] 采用所述任务流程序列在所述目标序列资源中申请资源。
[0012] 可选地,所述任务流程序列包括至少一个序列节点;所述方法还包括:
[0013] 当执行完所述任务流程序列的当前序列节点时,判断所述当前序列节点是否为预设序列节点;
[0014] 响应于所述当前序列节点为所述预设序列节点,更新所述任务标签;并基于更新后的任务标签执行所述基于所述任务标签,确定处理流程数据的步骤。
[0015] 可选地,所述处理任务对应有任务类型;所述对所述处理任务进行标签化,生成任务标签的步骤包括:
[0016] 确定所述任务类型对应的任务优先级;
[0017] 基于所述任务优先级进行标签化,生成任务标签。
[0018] 可选地,所述任务类型包括前台类型和后台类型;所述确定所述任务类型对应的任务优先级的步骤包括:
[0019] 响应于所述任务类型为所述前台类型,确定所述任务优先级为第一优先级;
[0020] 响应于所述任务类型为所述后台类型,确定所述任务优先级为第二优先级;
[0021] 其中,所述第一优先级高于所述第二优先级。
[0022] 可选地,所述任务类型包括输入输出类型和管理类型;所述确定所述任务类型对应的任务优先级的步骤包括:
[0023] 响应于所述任务类型为所述输入输出类型,确定所述任务优先级为第三优先级;
[0024] 响应于所述任务类型为所述管理类型,确定所述任务优先级为第四优先级;
[0025] 其中,所述第三优先级高于所述第四优先级。
[0026] 可选地,所述基于所述任务标签,确定处理流程数据的步骤包括:
[0027] 基于所述任务标签,查询处理流程节点和处理顺序;
[0028] 依据所述处理顺序将所述处理流程节点进行排序,生成所述处理流程数据。
[0029] 可选地,所述将所述处理流程数据进行序列化,生成任务流程序列的步骤包括:
[0030] 依据所述处理流程节点确定需求资源标识;
[0031] 基于所述资源标识和处理顺序,确定多个节点集合,所述节点集合包括至少一个所述处理流程节点;
[0032] 针对任一所述节点集合,进行序列化生成所述任务流程序列。
[0033] 可选地,所述依据所述处理流程节点确定需求资源标识的步骤包括:
[0034] 确定所述处理流程节点对应的处理对象;
[0035] 查询所述处理对象所属的处理资源;
[0036] 确定所述处理资源的标识为所述需求资源标识。
[0037] 可选地,所述基于所述资源标识和处理顺序,确定多个节点集合的步骤包括:
[0038] 基于所述资源标识将所述处理流程节点进行归类,生成资源归类集合;
[0039] 基于所述处理顺序,在所述资源归类集合中,将相邻的处理流程节点进行集合,生成相邻集合;
[0040] 将所述相邻集合确定为节点集合。
[0041] 可选地,所述基于所述处理顺序,在所述资源归类集合中,将相邻的处理流程节点进行集合,生成相邻集合的步骤包括:
[0042] 在所述资源归类集合中,确定出目标处理流程节点;
[0043] 基于所述处理顺序,判断所述目标处理流程节点在所述资源归类集合中是否存在关联处理流程节点;
[0044] 当存在关联处理流程节点时,采用所述关联处理流程节点更新所述目标处理流程节点,执行所述判断所述目标处理流程节点在所述资源归类集合中是否存在关联处理流程节点的步骤;
[0045] 当不存在关联处理流程节点时,将所述目标处理流程节点和/或所述关联处理流程节点写入所述相邻集合。
[0046] 可选地,所述基于所述任务流程序列和所述任务标签,从所述序列资源中确定出目标序列资源的步骤包括:
[0047] 依据所述任务标签从所述序列资源中确定资源块;
[0048] 依据所述任务流程序列,从所述资源块中确定与所述任务流程序列对应的资源;
[0049] 确定所述与所述任务流程序列对应的资源为所述目标序列资源。
[0050] 可选地,所述基于所述任务流程序列和所述任务标签,从所述序列资源中确定出目标序列资源的步骤还包括:
[0051] 当所述资源块中资源为空时;提高所述任务标签的优先级。
[0052] 可选地,所述序列资源包括资源标签;所述依据所述任务标签从所述序列资源中确定资源块的步骤包括:
[0053] 依据所述任务标签,确定与其匹配的资源标签;
[0054] 确定所述资源标签对应的资源块。
[0055] 可选地,所述资源块包括多个资源序列;所述依据所述任务流程序列,从所述资源块中确定与所述任务流程序列对应的资源的步骤:
[0056] 确定所述资源块中空闲的资源序列;
[0057] 依据所述任务流程序列从所述空闲的资源序列中确定出所述与所述任务流程序列对应的资源。
[0058] 可选地,所述依据所述任务流程序列从所述空闲的资源序列中确定出所述与所述任务流程序列对应的资源的步骤包括:
[0059] 确定所述任务流程序列的优先级;
[0060] 在所述空闲的资源序列中确定与所述任务流程序列的优先级匹配的目标空闲资源序列;
[0061] 将所述目标空闲资源序列确定为所述与所述任务流程序列对应的资源。
[0062] 可选地,所述预设序列节点包括前台结束节点、后台流程垃圾回收节点和后台转换节点;所述判断所述当前序列节点是否为预设序列节点的步骤包括:
[0063] 当所述当前序列节点为所述前台结束节点、所述后台流程垃圾回收节点和所述后台转换节点的其中一种时,确定所述当前序列节点为预设序列节点。
[0064] 可选地,所述响应于所述当前序列节点为所述预设序列节点,更新所述任务标签的步骤包括:
[0065] 响应于所述当前序列节点为所述预设序列节点,确定所述预设序列节点对应的更新标签;
[0066] 采用所述更新标签替换所述任务标签,以更新所述任务标签。
[0067] 在本发明的第二个方面,本发明实施例公开了一种固态硬盘的多任务资源控制装置,所述固态硬盘上部署有多个序列资源,所述装置包括:
[0068] 标签化模块,用于在所述固态硬盘接收到处理任务时,对所述处理任务进行标签化,生成任务标签;
[0069] 流程确定模块,用于基于所述任务标签,确定处理流程数据;
[0070] 序列化模块,用于将所述处理流程数据进行序列化,生成任务流程序列;
[0071] 资源确定模块,用于基于所述任务流程序列和所述任务标签,从所述序列资源中确定出目标序列资源;
[0072] 资源申请模块,用于采用所述任务流程序列在所述目标序列资源中申请资源。
[0073] 在本发明的第三个方面,本发明实施例还公开了一种电子设备,包括处理器、存储器及存储在所述存储器上并能够在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如上所述的固态硬盘的多任务资源控制方法的步骤。
[0074] 在本发明的第四个方面,本发明实施例还公开了一种计算机可读存储介质,所述计算机可读存储介质上存储计算机程序,所述计算机程序被处理器执行时实现如上所述的固态硬盘的多任务资源控制方法的步骤。
[0075] 本发明实施例包括以下优点:
[0076] 本发明实施例通过在所述固态硬盘接收到处理任务时,对所述处理任务进行标签化,生成任务标签;基于所述任务标签,确定处理流程数据;将所述处理流程数据进行序列化,生成任务流程序列;基于所述任务流程序列和所述任务标签,从所述序列资源中确定出目标序列资源;采用所述任务流程序列在所述目标序列资源中申请资源。通过处理任务进行标签化,并将处理任务以资源使用角度进行序列划分,在任务申请不同资源时,使用标签及序列综合确定资源申请情况,保证各类任务在运行中能够得到资源保证,提升固态硬盘的任务处理性能服务质量。

附图说明

[0077] 图1是现有的任务资源控制示意图;
[0078] 图2是本发明的一种固态硬盘的多任务资源控制方法实施例的步骤流程图;
[0079] 图3是本发明的另一种固态硬盘的多任务资源控制方法实施例的步骤流程图;
[0080] 图4是本发明的一种任务资源控制示意图;
[0081] 图5是本发明的一种固态硬盘的多任务资源控制装置实施例的结构框图;
[0082] 图6是本发明实施例提供的一种电子设备的结构框图;
[0083] 图7是本发明实施例提供的一种存储介质的结构框图。

具体实施方式

[0084] 为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
[0085] 参照图1,示出了现有的任务资源控制示意图;IO(Input/Output,输入输出)‑1、IO‑2和IO‑3分别代表SSD(Solid State Drive,固态硬盘)的多个IO任务,由于IO处理都是相同的,所以对于不同时间收到的IO的处理流程基本相同,而对资源的使用上来说通常采用先到先得或者按照任务高低优先级的策略。问题主要在于IO‑1、IO‑2如果已经进入流程4并在等待资源2情况下,IO‑3进入流程2时,等待资源2的顺序需要排在IO‑1与IO‑2之后,导致IO‑3的前置流程受到阻塞,一般情况下如果流程3为前台任务结束点(即在流程3上回复host(进程)IO完成),则会因为上述资源争抢导致host IO延时变长或者性能下降。
[0086] 参照图2,示出了本发明的一种固态硬盘的多任务资源控制方法实施例的步骤流程图,所述固态硬盘上部署有多个序列资源,所述固态硬盘的多任务资源控制方法具体可以包括如下步骤:
[0087] 步骤201,在所述固态硬盘接收到处理任务时,对所述处理任务进行标签化,生成任务标签;
[0088] 当需要对固态硬盘进行读写或者进行管理时会向固态硬盘发送对应的处理任务。当固态硬盘接收到处理任务时,会对处理任务进行标签化,对处理任务打上标签,生成任务标签。
[0089] 步骤202,基于所述任务标签,确定处理流程数据;
[0090] 由于固态硬盘的任务类型固定,其对应的处理流程也通用,可以根据任务标签,确定该任务标签对应的处理流程数据。以IO写入为例来说,通用的流程如下:接收命令并解析、获取对应逻辑地址锁、申请写入cache(线程)、回复host(线程)写完成、修改映射表、更新物理地址信息、执行NAND(与非门闪存介质)条带组织及写入、释放上下文;确定上述流程为处理流程数据。
[0091] 步骤203,将所述处理流程数据进行序列化,生成任务流程序列;
[0092] 得到处理流程数据后,将处理流程数据中的各阶段进行序列化,生成任务流程序列。
[0093] 步骤204,基于所述任务流程序列和所述任务标签,从所述序列资源中确定出目标序列资源;
[0094] 基于任务流程序列和任务标签,从序列资源中,确定出与任务流程序列和任务标签匹配的序列资源作为目标序列资源,以供该任务流程序列进行使用。
[0095] 步骤205,采用所述任务流程序列在所述目标序列资源中申请资源。
[0096] 采用任务流程序列在目标序列资源中申请资源,通过申请到的资源进行任务处理,以完成任务流程序列中的任务节点。
[0097] 本发明实施例通过在所述固态硬盘接收到处理任务时,对所述处理任务进行标签化,生成任务标签;基于所述任务标签,确定处理流程数据;将所述处理流程数据进行序列化,生成任务流程序列;基于所述任务流程序列和所述任务标签,从所述序列资源中确定出目标序列资源;采用所述任务流程序列在所述目标序列资源中申请资源。通过处理任务进行标签化,并将处理任务以资源使用角度进行序列划分,在任务申请不同资源时,使用标签及序列综合确定资源申请情况,保证各类任务在运行中能够得到资源保证,提升固态硬盘的任务处理性能服务质量。
[0098] 参照图3,示出了本发明的一种固态硬盘的多任务资源控制方法实施例的步骤流程图,所述固态硬盘上部署有多个序列资源,所述固态硬盘的多任务资源控制方法具体可以包括如下步骤:
[0099] 步骤301,在所述固态硬盘接收到处理任务时,对所述处理任务进行标签化,生成任务标签;
[0100] 固态硬盘可以安装在计算机系统中,当计算机系统中需要调用固态硬盘进行数据处理时,会向固态硬盘发送处理任务;固态因公安接收该处理任务。在固态硬盘接收到处理任务时,对处理任务进行标签化,生成对应的任务标签。
[0101] 在本发明的一可选实施例中,所述处理任务对应有任务类型;所述对所述处理任务进行标签化,生成任务标签的步骤包括:
[0102] 子步骤S3011,确定所述任务类型对应的任务优先级;
[0103] 对于任务标签的确定,可以首先确定处理任务的任务类型对应的任务优先级。
[0104] 具体地,所述任务类型包括前台类型和后台类型;所述确定所述任务类型对应的任务优先级的步骤包括:响应于所述任务类型为所述前台类型,确定所述任务优先级为第一优先级;响应于所述任务类型为所述后台类型,确定所述任务优先级为第二优先级;其中,所述第一优先级高于所述第二优先级。
[0105] 任务类型可以包括前台类型和后台类型。前台类型即为处理任务为前台的任务,后台类型即为处理任务为后台的任务。可以确定当任务类型为前台类型时,将任务优先级确定为第一优先级。确定当任务类型为后台类型时,将任务优先级确定为第二优先级。其中,第一优先级高于第二优先级,即前台任务优先与后台处理任务。
[0106] 此外,所述任务类型还可以包括输入输出类型和管理类型;所述确定所述任务类型对应的任务优先级的步骤包括:响应于所述任务类型为所述输入输出类型,确定所述任务优先级为第三优先级;响应于所述任务类型为所述管理类型,确定所述任务优先级为第四优先级;其中,所述第三优先级高于所述第四优先级。
[0107] 任务类型还可以是输入输出类型和管理类型,即任务可以是IO任务也可以是流程管理的任务。其中流程管理任务包括管理指令任务和流程控制任务。可以确定当任务类型为输入输出类型时,将任务优先级确定为第三优先级。确定当任务类型为管理类型时,将任务优先级确定为第四优先级。其中,第三优先级高于第四优先级,即输入输出任务优先与管理处理任务。
[0108] 综上,举例而言,可以定义多种任务标签,FRONT_IO_TASK(前台IO)、BACKEND_IO_TASK(后台IO)、FRONT_ADMIN_TASK(前台管理命令)、BACK_PROC_TASK(后台流程)等,根据任务影响客户关心内容的程度将FRONT_IO_TASK作为最重要的任务、FRONT_ADMIN_TASK次之、BACKEND_IO_TASK第三及BACK_PROC_TASK最后。
[0109] 子步骤S3012,基于所述任务优先级进行标签化,生成任务标签。
[0110] 根据处理任务对应的任务优先级,确定出对应优先级的标签,从而将该标签与处理任务关联,生成任务标签。
[0111] 步骤302,基于所述任务标签,确定处理流程数据;
[0112] 基于任务标签,获取对应处理流程,确定出处理流程数据。
[0113] 在本发明的一可选实施例中,所述基于所述任务标签,确定处理流程数据的步骤包括:
[0114] 子步骤S3021,基于所述任务标签,查询处理流程节点和处理顺序;
[0115] 在本发明实施例中,基于任务标签,从预设数据库中查询与该任务标签对应的处理流程节点和处理顺序。
[0116] 子步骤S3022,依据所述处理顺序将所述处理流程节点进行排序,生成所述处理流程数据。
[0117] 将处理流程节点按照处理顺序的执行方向进行顺序排序,生成处理流程数据。
[0118] 步骤303,将所述处理流程数据进行序列化,生成任务流程序列,所述任务流程序列包括至少一个序列节点;
[0119] 得到处理流程数据后,按照处理流程节点的执行关系以及资源关系,进行序列化,生成任务流程序列。其中,任务流程序列包括至少一个序列节点;即任务流程序列可以由一个序列节点组成,也可以由多个序列节点组成。
[0120] 在本发明的一可选实施例中,所述将所述处理流程数据进行序列化,生成任务流程序列的步骤包括:
[0121] 子步骤S3031,依据所述处理流程节点确定需求资源标识;
[0122] 在本发明实施例中,可以根据处理流程节点处理的内容,确定出其需求的资源对应的需求资源标识。
[0123] 具体地,所述依据所述处理流程节点确定需求资源标识的步骤包括:确定所述处理流程节点对应的处理对象;查询所述处理对象所属的处理资源;确定所述处理资源的标识为所述需求资源标识。
[0124] 对于需求资源标识的确定,可以首先确定处理流程节点语义的处理对象,然后,根据处理对象所属处理资源,即确定出处理对象的资源范围。然后确定该处理资源的标识为需求资源标识。
[0125] 子步骤S3032,基于所述资源标识和处理顺序,确定多个节点集合,所述节点集合包括至少一个所述处理流程节点;
[0126] 根据资源标识和处理顺序,确定处理流程节点的资源关系和执行处理关系,将关联且采用相同资源的处理流程节点进行集合,生成节点集合。其中,节点集合包括至少一个处理流程节点,即节点集合可以有单个处理流程节点或多个处理流程节点组合而成。
[0127] 具体地,所述基于所述资源标识和处理顺序,确定多个节点集合的步骤包括:基于所述资源标识将所述处理流程节点进行归类,生成资源归类集合;基于所述处理顺序,在所述资源归类集合中,将相邻的处理流程节点进行集合,生成相邻集合;将所述相邻集合确定为节点集合。
[0128] 在本发明实施例中,可以基于资源标识将处理流程节点进行归类,将使用相同资源的处理流程节点进行集合,生成资源归类集合。然后在使用相同资源的处理流程节点中,基于处理顺序,确定相邻的处理流程节点,即在资源归类集合中,将相邻的处理流程节点进行集合,生成相邻集合,然后将相邻集合确定为节点集合。
[0129] 进一步地,所述基于所述处理顺序,在所述资源归类集合中,将相邻的处理流程节点进行集合,生成相邻集合的步骤包括:在所述资源归类集合中,确定出目标处理流程节点;基于所述处理顺序,判断所述目标处理流程节点在所述资源归类集合中是否存在关联处理流程节点;当存在关联处理流程节点时,采用所述关联处理流程节点更新所述目标处理流程节点,执行所述判断所述目标处理流程节点在所述资源归类集合中是否存在关联处理流程节点的步骤;当不存在关联处理流程节点时,将所述目标处理流程节点和/或所述关联处理流程节点写入所述相邻集合。
[0130] 对于相邻集合的确定,可以在资源归类集合中,确定出目标处理流程节点;该目标处理流程节点即为选中的处理流程节点。基于处理顺序,判断目标处理流程节点在资源归类集合中是否存在关联处理流程节点;即在资源归类集合中判断目标处理流程节点按照处理顺序是否存在与其相邻的处理流程节点。当存在关联处理流程节点时,采用关联处理流程节点更新目标处理流程节点,执行所述判断所述目标处理流程节点在所述资源归类集合中是否存在关联处理流程节点的步骤;从而将资源归类集合中与目标处理流程节点有关系的处理流程节点都确定出来直至不存在关联处理流程节点。当不存在关联处理流程节点时,即将目标处理流程节点存在处理顺序的关联的全部处理流程节点都应确定了,可以将目标处理流程节点和/或关联处理流程节点写入相邻集合;以生成相邻集合。
[0131] 子步骤S3033,针对任一所述节点集合,进行序列化生成所述任务流程序列。
[0132] 针对任一个节点集合,可以将该节点集合进行序列化,生成对应的任务流程序列。
[0133] 步骤304,基于所述任务流程序列和所述任务标签,从所述序列资源中确定出目标序列资源;
[0134] 得到任务流程序列和任务标签后,将任务流程序列和任务标签作为匹配参数,从序列资源中确定出目标序列资源。
[0135] 在本发明的一可选实施例中,所述基于所述任务流程序列和所述任务标签,从所述序列资源中确定出目标序列资源的步骤包括:
[0136] 子步骤S3041,依据所述任务标签从所述序列资源中确定资源块;
[0137] 在本发明实施例中,可以根据任务标签,从序列资源中确定与任务标签匹配的资源块。
[0138] 具体地,所述序列资源包括资源标签;所述依据所述任务标签从所述序列资源中确定资源块的步骤包括:依据所述任务标签,确定与其匹配的资源标签;确定所述资源标签对应的资源块。
[0139] 在实际应用中,序列资源包括资源标签,可以采用任务标签与序列资源的资源标签进行配对,将任务标签与序列资源的资源标签匹配时,确定该匹配的资源标签对应的资源块为需要选取的资源块。
[0140] 子步骤S3042,依据所述任务流程序列,从所述资源块中确定与所述任务流程序列对应的资源;
[0141] 依据任务流程序列,从资源块中确定出与任务流程序列对应的资源以供任务流程序列使用。
[0142] 具体地,所述资源块包括多个资源序列;所述依据所述任务流程序列,从所述资源块中确定与所述任务流程序列对应的资源的步骤:确定所述资源块中空闲的资源序列;依据所述任务流程序列从所述空闲的资源序列中确定出所述与所述任务流程序列对应的资源。
[0143] 资源块中存在多个资源序列,可以从多个资源序列中,确定出空闲的资源序列,然后根据任务流程序列从这些空闲的资源序列中确定出与所述任务流程序列对应的资源,以得到其适用的资源。
[0144] 进一步地,所述依据所述任务流程序列从所述空闲的资源序列中确定出所述与所述任务流程序列对应的资源的步骤包括:确定所述任务流程序列的优先级;在所述空闲的资源序列中确定与所述任务流程序列的优先级匹配的目标空闲资源序列;将所述目标空闲资源序列确定为所述与所述任务流程序列对应的资源。
[0145] 对于资源的确定,可以首先,确定任务流程序列的优先级,优先级越高,使用的资源的优先级越高,反之亦然。然后在空闲的序列资源中,确定出与该优先级匹配的目标空闲资源序列;将该目标空闲资源序列确定为与所述任务流程序列对应的资源。
[0146] 子步骤S3043,确定所述与所述任务流程序列对应的资源为所述目标序列资源。
[0147] 然后将与任务流程序列对应的资源为目标序列资源,通过目标序列资源供任务流程序列使用。
[0148] 在本发明的一可选实施例中,所述基于所述任务流程序列和所述任务标签,从所述序列资源中确定出目标序列资源的步骤还包括:
[0149] 子步骤S3044,当所述资源块中资源为空时;提高所述任务标签的优先级。
[0150] 在本发明实施例中,当资源块中资源空时,即资源块的资源已经被完全使用,此时,可以将任务标签的优先级提高,以使该任务标签对应的处理流程序列可以从更高优先级的资源块中获取到资源进行使用,保证任务的处理性能。
[0151] 综上,可以参照图4,本发明确定目标序列资源的过程包括两部分资源序列化分配和序列资源等级调整。
[0152] 将资源进行序列划分,每种资源分为多个等级(图4中举例划分三个序列资源),当任务的某个序列申请资源时,需要将当前任务标签、序列号传递给资源管理单元,资源管理单元根据确定的规则来进行资源响应,每个序列申请各自的序列资源,当某个序列资源为空时,可以申请后续序列的,对于不同任务才有高低优先级方式进行调度,前台IO优先级最高;例如任务A要在流程序列2上要申请资源2的序列资源2,此时如果序列资源2为空且序列资源3有空闲,则将序列资源3回复给任务A去执行后续动作,但是在流程序列4上如果申请序列资源4为空,则需要等待,不能占用序列资源1、2、3。
[0153] 在SSD运行中,可能出现资源受限情况,例如高优先级前台IO需要上下文资源来开启任务,而上下文释放由低优先级后台IO任务来完成,所以需要优先执行部分低优先级后台IO,这样在资源紧缺情况下,在其他资源管理模块上标记对应任务标签优先级提高,提升相应的使用序列资源,即可以将流程序列4申请序列资源4提升为序列资源2。
[0154] 步骤305,采用所述任务流程序列在所述目标序列资源中申请资源。
[0155] 然后采用任务流程序列在目标序列资源中申请资源,进行任务处理,以完成该任务流程序列中的每一个处理流程节点。
[0156] 步骤306,当执行完所述任务流程序列的当前序列节点时,判断所述当前序列节点是否为预设序列节点;
[0157] 当执行完任务流程序列的当前序列节点后,可以判断该当前序列节点是否为预设序列节点,从而确定是否需要改变处理任务对应的任务标签。
[0158] 在本发明的一可选实施例中,所述预设序列节点包括前台结束节点、后台流程垃圾回收节点和后台转换节点;所述判断所述当前序列节点是否为预设序列节点的步骤包括:
[0159] 子步骤S3061,当所述当前序列节点为所述前台结束节点、所述后台流程垃圾回收节点和所述后台转换节点的其中一种时,确定所述当前序列节点为预设序列节点。
[0160] 由于SSD内部的资源十分有限影响SSD性能的上下文数量更加有限,在前后台IO转换过程中,上下文资源是不会切换的,即前台IO使用的上下文在结束了前台处理后会直接开始后台IO的处理,这个切换也不涉及任务切换,所以FRONT_IO_TASK会变化为BACK_IO_TASK,即当该当前序列节点为前台结束节点时是需要更新任务标签。
[0161] 由于上下文共享,也有可能因为后台任务IO执行缓慢导致上下文阻塞在后台IO任务中,阻塞了前台IO接收新的请求开启新的任务,即当该当前序列节点为后台转换节点时是需要更新任务标签。
[0162] 由于后台流程垃圾回收是用于空间回收,提供必要写入空间给前台IO的,这样在剩余空间较小且回收受限时,需要提高后台流程的,因此,当该当前序列节点为后台流程垃圾回收节点时是需要更新任务标签。
[0163] 因此,当前序列节点为前台结束节点、后台流程垃圾回收节点和后台转换节点的其中一种时,确定当前序列节点为预设序列节点,以对任务标签进行更新。
[0164] 步骤307,响应于所述当前序列节点为所述预设序列节点,更新所述任务标签;并基于更新后的任务标签执行所述基于所述任务标签,确定处理流程数据的步骤。
[0165] 响应于当前序列节点为预设序列节点,确定当前序列节点为预设序列节点,基于预设序列节点更新任务标签;并基于更新后的任务标签执行所述基于所述任务标签,确定处理流程数据的步骤,从而确定新的资源,进一步提升前台IO的处理性能。
[0166] 在本发明的一可选实施例中,所述响应于所述当前序列节点为所述预设序列节点,更新所述任务标签的步骤包括:
[0167] 子步骤S3071,响应于所述当前序列节点为所述预设序列节点,确定所述预设序列节点对应的更新标签;
[0168] 响应于当前序列节点为预设序列节点,确定预设序列节点的类型,从而将该类型对应的任务标签确定为更新标签。
[0169] 子步骤S3072,采用所述更新标签替换所述任务标签,以更新所述任务标签。
[0170] 采用更新标签替换任务标签,以更新标签作为新的任务标签,以更新任务标签。
[0171] 本发明实施例通过在所述固态硬盘接收到处理任务时,对所述处理任务进行标签化,生成任务标签;基于所述任务标签,确定处理流程数据;将所述处理流程数据进行序列化,生成任务流程序列;基于所述任务流程序列和所述任务标签,从所述序列资源中确定出目标序列资源;采用所述任务流程序列在所述目标序列资源中申请资源;当执行完所述任务流程序列的当前序列节点时,判断所述当前序列节点是否为预设序列节点;响应于所述当前序列节点为所述预设序列节点,更新所述任务标签;并基于更新后的任务标签执行所述基于所述任务标签,确定处理流程数据的步骤。通过处理任务进行标签化,并将处理任务以资源使用角度进行序列划分,在任务申请不同资源时,使用标签及序列综合确定资源申请情况,保证各类任务在运行中能够得到资源保证,提升固态硬盘的任务处理性能服务质量。并且通过动态任务的标签、动态资源序列分配及序列升级方式,保证在相互耦合资源情况发生时,保证资源释放的优先级,以保证前台IO任务的正常运行,进一步补充交叉场景下的服务质量提升。
[0172] 需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施例并不受所描述的动作顺序的限制,因为依据本发明实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明实施例所必须的。
[0173] 参照图5,示出了本发明的一种固态硬盘的多任务资源控制装置实施例的结构框图,所述固态硬盘上部署有多个序列资源,所述固态硬盘的多任务资源控制装置具体可以包括如下模块:
[0174] 标签化模块501,用于在所述固态硬盘接收到处理任务时,对所述处理任务进行标签化,生成任务标签;
[0175] 流程确定模块502,用于基于所述任务标签,确定处理流程数据;
[0176] 序列化模块503,用于将所述处理流程数据进行序列化,生成任务流程序列;
[0177] 资源确定模块504,用于基于所述任务流程序列和所述任务标签,从所述序列资源中确定出目标序列资源;
[0178] 资源申请模块505,用于采用所述任务流程序列在所述目标序列资源中申请资源。
[0179] 在本发明的一可选实施例中,所述任务流程序列包括至少一个序列节点;所述方法还包括:
[0180] 判断模块,用于当执行完所述任务流程序列的当前序列节点时,判断所述当前序列节点是否为预设序列节点;
[0181] 更新模块,用于响应于所述当前序列节点为所述预设序列节点,更新所述任务标签;并基于更新后的任务标签执行所述基于所述任务标签,确定处理流程数据的步骤。
[0182] 在本发明的一可选实施例中,所述处理任务对应有任务类型;所述标签化模块501包括:
[0183] 任务优先级确定子模块,用于确定所述任务类型对应的任务优先级;
[0184] 任务标签生成子模块,用于基于所述任务优先级进行标签化,生成任务标签。
[0185] 在本发明的一可选实施例中,所述任务类型包括前台类型和后台类型;所述任务优先级确定子模块包括:
[0186] 第一任务优先级确定单元,用于响应于所述任务类型为所述前台类型,确定所述任务优先级为第一优先级;
[0187] 第二任务优先级确定单元,用于响应于所述任务类型为所述后台类型,确定所述任务优先级为第二优先级;
[0188] 其中,所述第一优先级高于所述第二优先级。
[0189] 在本发明的一可选实施例中,所述任务类型包括输入输出类型和管理类型;所述任务优先级确定子模块包括:
[0190] 第三任务优先级确定单元,用于响应于所述任务类型为所述输入输出类型,确定所述任务优先级为第三优先级;
[0191] 第四任务优先级确定单元,用于响应于所述任务类型为所述管理类型,确定所述任务优先级为第四优先级;
[0192] 其中,所述第三优先级高于所述第四优先级。
[0193] 在本发明的一可选实施例中,所述流程确定模块502包括:
[0194] 第一查询子模块,用于基于所述任务标签,查询处理流程节点和处理顺序;
[0195] 排序子模块,用于依据所述处理顺序将所述处理流程节点进行排序,生成所述处理流程数据。
[0196] 在本发明的一可选实施例中,所述序列化模块503包括:
[0197] 需求资源标识确定子模块,用于依据所述处理流程节点确定需求资源标识;
[0198] 节点集合确定子模块,用于基于所述资源标识和处理顺序,确定多个节点集合,所述节点集合包括至少一个所述处理流程节点;
[0199] 序列化子模块,用于针对任一所述节点集合,进行序列化生成所述任务流程序列。
[0200] 在本发明的一可选实施例中,所述需求资源标识确定子模块包括:
[0201] 处理对象确定单元,用于确定所述处理流程节点对应的处理对象;
[0202] 查询单元,用于查询所述处理对象所属的处理资源;
[0203] 需求资源标识确定单元,用于确定所述处理资源的标识为所述需求资源标识。
[0204] 在本发明的一可选实施例中,所述节点集合确定子模块包括:
[0205] 归类单元,用于基于所述资源标识将所述处理流程节点进行归类,生成资源归类集合;
[0206] 相邻集合确定单元,用于基于所述处理顺序,在所述资源归类集合中,将相邻的处理流程节点进行集合,生成相邻集合;
[0207] 节点集合确定单元,用于将所述相邻集合确定为节点集合。
[0208] 在本发明的一可选实施例中,所述归类单元包括:
[0209] 目标处理流程节点确定子单元,用于在所述资源归类集合中,确定出目标处理流程节点;
[0210] 关联判断子单元,用于基于所述处理顺序,判断所述目标处理流程节点在所述资源归类集合中是否存在关联处理流程节点;
[0211] 关联处理子单元,用于当存在关联处理流程节点时,采用所述关联处理流程节点更新所述目标处理流程节点,执行所述判断所述目标处理流程节点在所述资源归类集合中是否存在关联处理流程节点的步骤;
[0212] 写入处理子单元,用于当不存在关联处理流程节点时,将所述目标处理流程节点和/或所述关联处理流程节点写入所述相邻集合。
[0213] 在本发明的一可选实施例中,所述资源确定模块504包括:
[0214] 资源块确定子模块,用于依据所述任务标签从所述序列资源中确定资源块;
[0215] 匹配子模块,用于依据所述任务流程序列,从所述资源块中确定与所述任务流程序列对应的资源;
[0216] 目标序列资源确定子模块,用于确定所述与所述任务流程序列对应的资源为所述目标序列资源。
[0217] 在本发明的一可选实施例中,所述资源确定模块504还包括:
[0218] 空资源子模块,用于当所述资源块中资源为空时;提高所述任务标签的优先级。
[0219] 在本发明的一可选实施例中,所述序列资源包括资源标签;所述资源块确定子模块包括:
[0220] 第一匹配单元,用于依据所述任务标签,确定与其匹配的资源标签;
[0221] 资源块确定单元,用于确定所述资源标签对应的资源块。
[0222] 在本发明的一可选实施例中,所述资源块包括多个资源序列;所述匹配子模块包括:
[0223] 空闲资源序列确定单元,用于确定所述资源块中空闲的资源序列;
[0224] 匹配资源确定单元,用于依据所述任务流程序列从所述空闲的资源序列中确定出所述与所述任务流程序列对应的资源。
[0225] 在本发明的一可选实施例中,所述匹配资源确定单元包括:
[0226] 优先级确定子单元,用于确定所述任务流程序列的优先级;
[0227] 匹配子单元,用于在所述空闲的资源序列中确定与所述任务流程序列的优先级匹配的目标空闲资源序列;
[0228] 匹配资源确定子单元,用于将所述目标空闲资源序列确定为所述与所述任务流程序列对应的资源。
[0229] 在本发明的一可选实施例中,所述预设序列节点包括前台结束节点、后台流程垃圾回收节点和后台转换节点;所述判断模块包括:
[0230] 判断子模块,用于当所述当前序列节点为所述前台结束节点、所述后台流程垃圾回收节点和所述后台转换节点的其中一种时,确定所述当前序列节点为预设序列节点。
[0231] 在本发明的一可选实施例中,所述更新模块包括:
[0232] 更新标签确定子模块,用于响应于所述当前序列节点为所述预设序列节点,确定所述预设序列节点对应的更新标签;
[0233] 更新子模块,用于采用所述更新标签替换所述任务标签,以更新所述任务标签。
[0234] 对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
[0235] 参照图6,本发明实施例还提供了一种电子设备,包括:
[0236] 处理器601和存储介质602,所述存储介质602存储有所述处理器601可执行的计算机程序,当电子设备运行时,所述处理器901执行所述计算机程序,以执行如本发明实施例任一项所述的固态硬盘的多任务资源控制方法。所述多任务资源控制方法包括:
[0237] 在所述固态硬盘接收到处理任务时,对所述处理任务进行标签化,生成任务标签;
[0238] 基于所述任务标签,确定处理流程数据;
[0239] 将所述处理流程数据进行序列化,生成任务流程序列;
[0240] 基于所述任务流程序列和所述任务标签,从所述序列资源中确定出目标序列资源;
[0241] 采用所述任务流程序列在所述目标序列资源中申请资源。
[0242] 可选地,所述任务流程序列包括至少一个序列节点;所述方法还包括:
[0243] 当执行完所述任务流程序列的当前序列节点时,判断所述当前序列节点是否为预设序列节点;
[0244] 响应于所述当前序列节点为所述预设序列节点,更新所述任务标签;并基于更新后的任务标签执行所述基于所述任务标签,确定处理流程数据的步骤。
[0245] 可选地,所述处理任务对应有任务类型;所述对所述处理任务进行标签化,生成任务标签的步骤包括:
[0246] 确定所述任务类型对应的任务优先级;
[0247] 基于所述任务优先级进行标签化,生成任务标签。
[0248] 可选地,所述任务类型包括前台类型和后台类型;所述确定所述任务类型对应的任务优先级的步骤包括:
[0249] 响应于所述任务类型为所述前台类型,确定所述任务优先级为第一优先级;
[0250] 响应于所述任务类型为所述后台类型,确定所述任务优先级为第二优先级;
[0251] 其中,所述第一优先级高于所述第二优先级。
[0252] 可选地,所述任务类型包括输入输出类型和管理类型;所述确定所述任务类型对应的任务优先级的步骤包括:
[0253] 响应于所述任务类型为所述输入输出类型,确定所述任务优先级为第三优先级;
[0254] 响应于所述任务类型为所述管理类型,确定所述任务优先级为第四优先级;
[0255] 其中,所述第三优先级高于所述第四优先级。
[0256] 可选地,所述基于所述任务标签,确定处理流程数据的步骤包括:
[0257] 基于所述任务标签,查询处理流程节点和处理顺序;
[0258] 依据所述处理顺序将所述处理流程节点进行排序,生成所述处理流程数据。
[0259] 可选地,所述将所述处理流程数据进行序列化,生成任务流程序列的步骤包括:
[0260] 依据所述处理流程节点确定需求资源标识;
[0261] 基于所述资源标识和处理顺序,确定多个节点集合,所述节点集合包括至少一个所述处理流程节点;
[0262] 针对任一所述节点集合,进行序列化生成所述任务流程序列。
[0263] 可选地,所述依据所述处理流程节点确定需求资源标识的步骤包括:
[0264] 确定所述处理流程节点对应的处理对象;
[0265] 查询所述处理对象所属的处理资源;
[0266] 确定所述处理资源的标识为所述需求资源标识。
[0267] 可选地,所述基于所述资源标识和处理顺序,确定多个节点集合的步骤包括:
[0268] 基于所述资源标识将所述处理流程节点进行归类,生成资源归类集合;
[0269] 基于所述处理顺序,在所述资源归类集合中,将相邻的处理流程节点进行集合,生成相邻集合;
[0270] 将所述相邻集合确定为节点集合。
[0271] 可选地,所述基于所述处理顺序,在所述资源归类集合中,将相邻的处理流程节点进行集合,生成相邻集合的步骤包括:
[0272] 在所述资源归类集合中,确定出目标处理流程节点;
[0273] 基于所述处理顺序,判断所述目标处理流程节点在所述资源归类集合中是否存在关联处理流程节点;
[0274] 当存在关联处理流程节点时,采用所述关联处理流程节点更新所述目标处理流程节点,执行所述判断所述目标处理流程节点在所述资源归类集合中是否存在关联处理流程节点的步骤;
[0275] 当不存在关联处理流程节点时,将所述目标处理流程节点和/或所述关联处理流程节点写入所述相邻集合。
[0276] 可选地,所述基于所述任务流程序列和所述任务标签,从所述序列资源中确定出目标序列资源的步骤包括:
[0277] 依据所述任务标签从所述序列资源中确定资源块;
[0278] 依据所述任务流程序列,从所述资源块中确定与所述任务流程序列对应的资源;
[0279] 确定所述与所述任务流程序列对应的资源为所述目标序列资源。
[0280] 可选地,所述基于所述任务流程序列和所述任务标签,从所述序列资源中确定出目标序列资源的步骤还包括:
[0281] 当所述资源块中资源为空时;提高所述任务标签的优先级。
[0282] 可选地,所述序列资源包括资源标签;所述依据所述任务标签从所述序列资源中确定资源块的步骤包括:
[0283] 依据所述任务标签,确定与其匹配的资源标签;
[0284] 确定所述资源标签对应的资源块。
[0285] 可选地,所述资源块包括多个资源序列;所述依据所述任务流程序列,从所述资源块中确定与所述任务流程序列对应的资源的步骤:
[0286] 确定所述资源块中空闲的资源序列;
[0287] 依据所述任务流程序列从所述空闲的资源序列中确定出所述与所述任务流程序列对应的资源。
[0288] 可选地,所述依据所述任务流程序列从所述空闲的资源序列中确定出所述与所述任务流程序列对应的资源的步骤包括:
[0289] 确定所述任务流程序列的优先级;
[0290] 在所述空闲的资源序列中确定与所述任务流程序列的优先级匹配的目标空闲资源序列;
[0291] 将所述目标空闲资源序列确定为所述与所述任务流程序列对应的资源。
[0292] 可选地,所述预设序列节点包括前台结束节点、后台流程垃圾回收节点和后台转换节点;所述判断所述当前序列节点是否为预设序列节点的步骤包括:
[0293] 当所述当前序列节点为所述前台结束节点、所述后台流程垃圾回收节点和所述后台转换节点的其中一种时,确定所述当前序列节点为预设序列节点。
[0294] 可选地,所述响应于所述当前序列节点为所述预设序列节点,更新所述任务标签的步骤包括:
[0295] 响应于所述当前序列节点为所述预设序列节点,确定所述预设序列节点对应的更新标签;
[0296] 采用所述更新标签替换所述任务标签,以更新所述任务标签。
[0297] 其中,存储器可以包括随机存取存储器(Random Access Memory,简称RAM),也可以包括非易失性存储器(non‑volatile memory),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
[0298] 上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(Digital Signal Processing,简称DSP)、专用集成电路(Application Specific Integrated Circuit,简称ASIC)、现场可编程门阵列(Field-Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
[0299] 参照图7,本发明实施例还提供了一种计算机可读存储介质701,所述存储介质701上存储有计算机程序,所述计算机程序被处理器运行时执行如本发明实施例任一项所述的固态硬盘的多任务资源控制方法。所述多任务资源控制方法包括:
[0300] 在所述固态硬盘接收到处理任务时,对所述处理任务进行标签化,生成任务标签;
[0301] 基于所述任务标签,确定处理流程数据;
[0302] 将所述处理流程数据进行序列化,生成任务流程序列;
[0303] 基于所述任务流程序列和所述任务标签,从所述序列资源中确定出目标序列资源;
[0304] 采用所述任务流程序列在所述目标序列资源中申请资源。
[0305] 可选地,所述任务流程序列包括至少一个序列节点;所述方法还包括:
[0306] 当执行完所述任务流程序列的当前序列节点时,判断所述当前序列节点是否为预设序列节点;
[0307] 响应于所述当前序列节点为所述预设序列节点,更新所述任务标签;并基于更新后的任务标签执行所述基于所述任务标签,确定处理流程数据的步骤。
[0308] 可选地,所述处理任务对应有任务类型;所述对所述处理任务进行标签化,生成任务标签的步骤包括:
[0309] 确定所述任务类型对应的任务优先级;
[0310] 基于所述任务优先级进行标签化,生成任务标签。
[0311] 可选地,所述任务类型包括前台类型和后台类型;所述确定所述任务类型对应的任务优先级的步骤包括:
[0312] 响应于所述任务类型为所述前台类型,确定所述任务优先级为第一优先级;
[0313] 响应于所述任务类型为所述后台类型,确定所述任务优先级为第二优先级;
[0314] 其中,所述第一优先级高于所述第二优先级。
[0315] 可选地,所述任务类型包括输入输出类型和管理类型;所述确定所述任务类型对应的任务优先级的步骤包括:
[0316] 响应于所述任务类型为所述输入输出类型,确定所述任务优先级为第三优先级;
[0317] 响应于所述任务类型为所述管理类型,确定所述任务优先级为第四优先级;
[0318] 其中,所述第三优先级高于所述第四优先级。
[0319] 可选地,所述基于所述任务标签,确定处理流程数据的步骤包括:
[0320] 基于所述任务标签,查询处理流程节点和处理顺序;
[0321] 依据所述处理顺序将所述处理流程节点进行排序,生成所述处理流程数据。
[0322] 可选地,所述将所述处理流程数据进行序列化,生成任务流程序列的步骤包括:
[0323] 依据所述处理流程节点确定需求资源标识;
[0324] 基于所述资源标识和处理顺序,确定多个节点集合,所述节点集合包括至少一个所述处理流程节点;
[0325] 针对任一所述节点集合,进行序列化生成所述任务流程序列。
[0326] 可选地,所述依据所述处理流程节点确定需求资源标识的步骤包括:
[0327] 确定所述处理流程节点对应的处理对象;
[0328] 查询所述处理对象所属的处理资源;
[0329] 确定所述处理资源的标识为所述需求资源标识。
[0330] 可选地,所述基于所述资源标识和处理顺序,确定多个节点集合的步骤包括:
[0331] 基于所述资源标识将所述处理流程节点进行归类,生成资源归类集合;
[0332] 基于所述处理顺序,在所述资源归类集合中,将相邻的处理流程节点进行集合,生成相邻集合;
[0333] 将所述相邻集合确定为节点集合。
[0334] 可选地,所述基于所述处理顺序,在所述资源归类集合中,将相邻的处理流程节点进行集合,生成相邻集合的步骤包括:
[0335] 在所述资源归类集合中,确定出目标处理流程节点;
[0336] 基于所述处理顺序,判断所述目标处理流程节点在所述资源归类集合中是否存在关联处理流程节点;
[0337] 当存在关联处理流程节点时,采用所述关联处理流程节点更新所述目标处理流程节点,执行所述判断所述目标处理流程节点在所述资源归类集合中是否存在关联处理流程节点的步骤;
[0338] 当不存在关联处理流程节点时,将所述目标处理流程节点和/或所述关联处理流程节点写入所述相邻集合。
[0339] 可选地,所述基于所述任务流程序列和所述任务标签,从所述序列资源中确定出目标序列资源的步骤包括:
[0340] 依据所述任务标签从所述序列资源中确定资源块;
[0341] 依据所述任务流程序列,从所述资源块中确定与所述任务流程序列对应的资源;
[0342] 确定所述与所述任务流程序列对应的资源为所述目标序列资源。
[0343] 可选地,所述基于所述任务流程序列和所述任务标签,从所述序列资源中确定出目标序列资源的步骤还包括:
[0344] 当所述资源块中资源为空时;提高所述任务标签的优先级。
[0345] 可选地,所述序列资源包括资源标签;所述依据所述任务标签从所述序列资源中确定资源块的步骤包括:
[0346] 依据所述任务标签,确定与其匹配的资源标签;
[0347] 确定所述资源标签对应的资源块。
[0348] 可选地,所述资源块包括多个资源序列;所述依据所述任务流程序列,从所述资源块中确定与所述任务流程序列对应的资源的步骤:
[0349] 确定所述资源块中空闲的资源序列;
[0350] 依据所述任务流程序列从所述空闲的资源序列中确定出所述与所述任务流程序列对应的资源。
[0351] 可选地,所述依据所述任务流程序列从所述空闲的资源序列中确定出所述与所述任务流程序列对应的资源的步骤包括:
[0352] 确定所述任务流程序列的优先级;
[0353] 在所述空闲的资源序列中确定与所述任务流程序列的优先级匹配的目标空闲资源序列;
[0354] 将所述目标空闲资源序列确定为所述与所述任务流程序列对应的资源。
[0355] 可选地,所述预设序列节点包括前台结束节点、后台流程垃圾回收节点和后台转换节点;所述判断所述当前序列节点是否为预设序列节点的步骤包括:
[0356] 当所述当前序列节点为所述前台结束节点、所述后台流程垃圾回收节点和所述后台转换节点的其中一种时,确定所述当前序列节点为预设序列节点。
[0357] 可选地,所述响应于所述当前序列节点为所述预设序列节点,更新所述任务标签的步骤包括:
[0358] 响应于所述当前序列节点为所述预设序列节点,确定所述预设序列节点对应的更新标签;
[0359] 采用所述更新标签替换所述任务标签,以更新所述任务标签。
[0360] 本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
[0361] 本领域内的技术人员应明白,本发明实施例的实施例可提供为方法、装置、或计算机程序产品。因此,本发明实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD‑ROM、光学存储器等)上实施的计算机程序产品的形式。
[0362] 本发明实施例是参照根据本发明实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0363] 这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
[0364] 这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
[0365] 尽管已描述了本发明实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明实施例范围的所有变更和修改。
[0366] 最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
[0367] 以上对本发明所提供的一种固态硬盘的多任务资源控制方法和装置,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。