一种任务调度方法、系统、装置及可读存储介质与流程

文档序号:17639985发布日期:2019-05-11 00:36阅读:248来源:国知局
一种任务调度方法、系统、装置及可读存储介质与流程

本发明涉及机箱管理技术领域,特别涉及一种任务调度方法、系统、装置及可读存储介质。



背景技术:

存储设备的机箱管理操作,外接有较多的硬件管理资源,通过多种软件方面逐个实现其功能,这些硬件外设包括:sas(serialattachedscsi,串行scsi)接口,phy(physical,物理层接口),sasconnector连接器,sasexpander扩展器,cpld(complexprogrammablelogicdevice,复杂可编程逻辑器件),psu电源和fan风扇;除此之外,还有保证稳定性的硬件如温度传感器、电压检测,以及实现软件层面的功能的硬件,如实现心跳、timeout、scsi协议、ses协议等等的硬件。

这些信息的总体获取量比较大,但主要通过低速传输的i2c接口串行实现,在执行一个任务的时候,一定会使其他的任务等待,如果此时等待任务较多或主程序有信号需要响应,也不能及时处理或响应,较长的时延会影响任务处理的效率。

因此,如何提供一种解决上述技术问题的方案是目前本领域技术人员需要解决的问题。



技术实现要素:

有鉴于此,本发明的目的在于提供一种任务调度方法、系统、装置及可读存储介质。其具体方案如下:

一种任务调度方法,应用于机箱管理低速信号的单线程,包括:

编写任务代码,每个所述任务代码包括多个具有先后操作级别的代码片段;

将不同的所述任务代码以所述代码片段的形式穿插排列到时间执行队列,其中同一个所述任务代码的代码片段的先后顺序按照所述先后操作级别排列。

优选的,所述将不同的所述任务代码以所述代码片段的形式穿插排列到时间执行队列的过程,具体包括:

根据每个所述代码片段的操作时延、所属的所述任务代码的紧急程度,将不同的所述任务代码以所述代码片段的形式穿插排列到时间执行队列。

优选的,所述将不同的所述任务代码以所述代码片段的形式穿插排列到时间执行队列的过程,还包括:

若当前代码片段在执行过程中阻塞,则将所述时间执行队列中的无耦合代码片段调度至耦合代码片段前;

其中,所述无耦合代码片段指当前任务代码中与当前代码片段无耦合关系的代码片段或其他任务代码中的代码片段;所述耦合代码片段指当前任务代码中与当前代码片段存在耦合关系的代码片段。

优选的,所述将不同的所述任务代码以所述代码片段的形式穿插排列到时间执行队列的过程,具体还包括:

根据主程序的指令,将对应所述指令的所述任务代码以所述代码片段的形式穿插排列到时间执行队列。

优选的,所述任务代码包括:

温度读取代码、led控制代码、cpld控制代码、vpd读取代码、sespage组合代码、sas指令响应代码中的任意一种或几种。

相应的,本发明还公开了一种任务调度系统,应用于机箱管理低速信号的单线程,包括:

片段编写模块,用于编写任务代码,每个所述任务代码包括多个具有先后操作级别的代码片段;

任务排列模块,用于将不同的所述任务代码以所述代码片段的形式穿插排列到时间执行队列,其中同一个所述任务代码的代码片段的先后顺序按照所述先后操作级别排列。

优选的,所述任务排列模块具体用于:

根据每个所述代码片段的操作时延、所属的所述任务代码的紧急程度,将不同的所述任务代码以所述代码片段的形式穿插排列到时间执行队列。

优选的,所述任务排列模块具体还用于:

若当前代码片段在执行过程中阻塞,则将所述时间执行队列中的无耦合代码片段调度至耦合代码片段前;

其中,所述无耦合代码片段指当前任务代码中与当前代码片段无耦合关系的代码片段或其他任务代码中的代码片段;所述耦合代码片段指当前任务代码中与当前代码片段存在耦合关系的代码片段。

相应的,本发明公开了一种任务调度装置,应用于机箱管理低速信号的单线程,包括:

存储器,用于存储任务调度程序;

处理器,用于执行所述任务调度程序时实现如上文任一项所述任务调度方法的步骤。

相应的,本发明公开了一种可读存储介质,所述可读存储介质上存储有任务调度程序,所述任务调度程序被处理器执行时实现如上文任一项所述任务调度方法的步骤。

本发明公开了一种任务调度方法,应用于机箱管理低速信号的单线程,包括:编写任务代码,每个所述任务代码包括多个具有先后操作级别的代码片段;将不同的所述任务代码以所述代码片段的形式穿插排列到时间执行队列,其中同一个所述任务代码的代码片段的先后顺序按照所述先后操作级别排列。本发明中任务代码以代码片段的形式被穿插排列到时间执行队列,也就是说,时间执行队列中的多个任务代码并非传统的串行方式,必须执行完一个任务代码才能执行下一个,而是执行完一个代码片段执行另一个代码片段,相邻的代码片段不一定属于同一个任务代码,虽然微观上代码片段串行,但宏观上任务代码并行,各个任务代码的响应速度比以前更快,不受之前单个任务代码异常的限制,提高了单位时间内任务吞吐量和执行效率。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。

图1为本发明实施例中一种任务调度方法的步骤流程图;

图2为本发明实施例中一种任务调度系统的结构分布图;

图3为本发明实施例中一种任务调度装置的结构分布图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

机箱管理操作中的信息的总体获取量比较大,但主要通过低速传输的i2c接口串行实现,在执行一个任务的时候,一定会使其他的任务等待,如果此时等待任务较多或主程序有信号需要响应,也不能及时处理或响应,较长的时延会影响任务处理的效率。

本发明中任务代码以代码片段的形式被穿插排列到时间执行队列,也就是说,时间执行队列中的多个任务代码并非传统的串行方式,必须执行完一个任务代码才能执行下一个,而是执行完一个代码片段执行另一个代码片段,相邻的代码片段不一定属于同一个任务代码,虽然微观上代码片段串行,但宏观上任务代码并行,各个任务代码的响应速度比以前更快,不受之前单个任务代码异常的限制,提高了单位时间内任务吞吐量和执行效率。

本发明实施例公开了一种任务调度方法,应用于机箱管理低速信号的单线程,参见图1所示,包括:

s1:编写任务代码,每个所述任务代码包括多个具有先后操作级别的代码片段;

其中,如果原来有与该任务代码作用相同的代码,拆分原有代码结构,将其改写为新的符合本实施例要求的任务代码;如果以前没有能实现相同效果的代码,那么直接按照本实施例中对任务代码的要求编写任务代码。

具体的,本实施例中对任务代码的要求为:

每个所述任务代码包括多个具有先后操作级别的代码片段;

也就是说,本实施例中需要同一个任务代码中的代码片段之间数据耦合少,没有数据耦合的代码片段之间没有必需的先后顺序,而存在数据耦合的代码片段具有相应的先后操作级别,先后操作级别的排序始终不能改变。

可以理解的是,同一个任务代码的代码片段可以根据先后操作级别进行id标码,按照id标码关联在一起就是完整的任务代码。

具体的,所述任务代码包括:温度读取代码、led控制代码、cpld控制代码、vpd读取代码、sespage组合代码、sas指令响应代码中的任意一种或几种。当然除了这些,还可以包括实现其他功能的任务代码,此处不做限制。

s2:将不同的所述任务代码以所述代码片段的形式穿插排列到时间执行队列,其中同一个所述任务代码的代码片段的先后顺序按照所述先后操作级别排列。

可以理解的是,步骤s2将不同的任务代码的代码片段串行排列到时间执行队列上,虽然同一个任务代码的代码片段不一定相邻连接,即使某一任务代码的代码片段之间穿插了其他任务代码的代码片段,但是同一个任务代码的代码片段的先后操作级别是始终确定不变的。

具体的,所述将不同的所述任务代码以所述代码片段的形式穿插排列到时间执行队列的过程,一般包括:

根据每个所述代码片段的操作时延、所属的所述任务代码的紧急程度,将不同的所述任务代码以所述代码片段的形式穿插排列到时间执行队列。

另外,时间执行队列并非按计划排列好以后不再变动,而是可以根据实际情况进行再次调整,例如:

若当前代码片段在执行过程中阻塞,则将所述时间执行队列中的无耦合代码片段调度至耦合代码片段前;

其中,所述无耦合代码片段指当前任务代码中与当前代码片段无耦合关系的代码片段或其他任务代码中的代码片段;所述耦合代码片段指当前任务代码中与当前代码片段存在耦合关系的代码片段。

也就是说,如果当前代码片段执行时出现了需要等待的情况,我们可以先插孔调用无耦合代码片段,充分利用当前代码片段等待的时间执行其他代码片段。

除此之外,根据实际情况再次调整的情况还包括:

根据主程序的指令,将对应所述指令的所述任务代码以所述代码片段的形式穿插排列到时间执行队列。

可以理解的是,当主程序有指令下发时需要在尽可能短的时间内响应,主程序的指令相当于重新调整了相关任务代码的紧急程度,时间执行队列中默认优先执行更为紧急的任务代码。在后续没有指令下发、不紧急的情况下,再捡取任务处理低速耗时的任务代码,将其排列到时间执行队列中执行。

其中,如果当前代码片段执行完毕还未开始执行下一个代码片段,可以趁这段时间调度解析上层的指令。

本实施例一般应用在执行ses程序的低端处理器上,运行非linux程序,没有复杂的进程调度和内存管理。

本发明公开了一种任务调度方法,应用于机箱管理低速信号的单线程,包括:编写任务代码,每个所述任务代码包括多个具有先后操作级别的代码片段;将不同的所述任务代码以所述代码片段的形式穿插排列到时间执行队列,其中同一个所述任务代码的代码片段的先后顺序按照所述先后操作级别排列。本发明中任务代码以代码片段的形式被穿插排列到时间执行队列,也就是说,时间执行队列中的多个任务代码并非传统的串行方式,必须执行完一个任务代码才能执行下一个,而是执行完一个代码片段执行另一个代码片段,相邻的代码片段不一定属于同一个任务代码,虽然微观上代码片段串行,但宏观上任务代码并行,各个任务代码的响应速度比以前更快,不受之前单个任务代码异常的限制,提高了单位时间内任务吞吐量和执行效率。

相应的,本发明实施例还公开了一种任务调度系统,应用于机箱管理低速信号的单线程,参见图2所示,包括:

片段编写模块01,用于编写任务代码,每个所述任务代码包括多个具有先后操作级别的代码片段;

任务排列模块02,用于将不同的所述任务代码以所述代码片段的形式穿插排列到时间执行队列,其中同一个所述任务代码的代码片段的先后顺序按照所述先后操作级别排列。

本发明实施例中任务代码以代码片段的形式被穿插排列到时间执行队列,也就是说,时间执行队列中的多个任务代码并非传统的串行方式,必须执行完一个任务代码才能执行下一个,而是执行完一个代码片段执行另一个代码片段,相邻的代码片段不一定属于同一个任务代码,虽然微观上代码片段串行,但宏观上任务代码并行,各个任务代码的响应速度比以前更快,不受之前单个任务代码异常的限制,提高了单位时间内任务吞吐量和执行效率。

在一些具体的实施例中,所述任务排列模块02具体用于:

根据每个所述代码片段的操作时延、所属的所述任务代码的紧急程度,将不同的所述任务代码以所述代码片段的形式穿插排列到时间执行队列。

在一些具体的实施例中,所述任务排列模块02具体还用于:

若当前代码片段在执行过程中阻塞,则将所述时间执行队列中的无耦合代码片段调度至耦合代码片段前;

其中,所述无耦合代码片段指当前任务代码中与当前代码片段无耦合关系的代码片段或其他任务代码中的代码片段;所述耦合代码片段指当前任务代码中与当前代码片段存在耦合关系的代码片段。

在一些具体的实施例中,所述任务排列模块02具体还用于:

根据主程序的指令,将对应所述指令的所述任务代码以所述代码片段的形式穿插排列到时间执行队列。

在一些具体的实施例中,所述任务代码包括:

温度读取代码、led控制代码、cpld控制代码、vpd读取代码、sespage组合代码、sas指令响应代码中的任意一种或几种。

相应的,本发明实施例公开了一种任务调度装置,应用于机箱管理低速信号的单线程,包括处理器11和存储器12;其中,所述处理11执行所述存储器12中保存的任务调度程序时实现以下步骤:

编写任务代码,每个所述任务代码包括多个具有先后操作级别的代码片段;

将不同的所述任务代码以所述代码片段的形式穿插排列到时间执行队列,其中同一个所述任务代码的代码片段的先后顺序按照所述先后操作级别排列。

本发明实施例中任务代码以代码片段的形式被穿插排列到时间执行队列,也就是说,时间执行队列中的多个任务代码并非传统的串行方式,必须执行完一个任务代码才能执行下一个,而是执行完一个代码片段执行另一个代码片段,相邻的代码片段不一定属于同一个任务代码,虽然微观上代码片段串行,但宏观上任务代码并行,各个任务代码的响应速度比以前更快,不受之前单个任务代码异常的限制,提高了单位时间内任务吞吐量和执行效率。

在一些具体的实施例中,所述处理器11执行所述存储器12中保存的任务调度子程序时,具体可以实现以下步骤:根据每个所述代码片段的操作时延、所属的所述任务代码的紧急程度,将不同的所述任务代码以所述代码片段的形式穿插排列到时间执行队列。

在一些具体的实施例中,所述处理器11执行所述存储器12中保存的任务调度子程序时,具体可以实现以下步骤:若当前代码片段在执行过程中阻塞,则将所述时间执行队列中的无耦合代码片段调度至耦合代码片段前;

其中,所述无耦合代码片段指当前任务代码中与当前代码片段无耦合关系的代码片段或其他任务代码中的代码片段;所述耦合代码片段指当前任务代码中与当前代码片段存在耦合关系的代码片段。

在一些具体的实施例中,所述处理器11执行所述存储器12中保存的任务调度子程序时,具体可以实现以下步骤:根据主程序的指令,将对应所述指令的所述任务代码以所述代码片段的形式穿插排列到时间执行队列。

在一些具体的实施例中,所述任务代码包括:

温度读取代码、led控制代码、cpld控制代码、vpd读取代码、sespage组合代码、sas指令响应代码中的任意一种或几种。

进一步的,本实施例中的任务调度装置,还可以包括:

输入接口13,用于获取外界导入的任务调度程序,并将获取到的任务调度程序保存至所述存储器12中,还可以用于获取外界终端设备传输的各种指令和参数,并传输至处理器11中,以便处理器11利用上述各种指令和参数展开相应的处理。本实施例中,所述输入接口13具体可以包括但不限于usb接口、串行接口、语音输入接口、指纹输入接口、硬盘读取接口等。

输出接口14,用于将处理器11产生的各种数据输出至与其相连的终端设备,以便于与输出接口14相连的其他终端设备能够获取到处理器11产生的各种数据。本实施例中,所述输出接口14具体可以包括但不限于usb接口、串行接口等。

通讯单元15,用于在任务调度装置和外部服务器之间建立远程通讯连接,以便于任务调度装置能够将镜像文件挂载到外部服务器中。本实施例中,通讯单元15具体可以包括但不限于基于无线通讯技术或有线通讯技术的远程通讯单元。

键盘16,用于获取用户通过实时敲击键帽而输入的各种参数数据或指令。

显示器17,用于对任务调度过程的相关信息进行实时显示,以便于用户及时地了解当前任务调度情况。

鼠标18,可以用于协助用户输入数据并简化用户的操作。

进一步的,本申请实施例还公开了一种计算机可读存储介质,这里所说的计算机可读存储介质包括随机存储器(ram)、内存、只读存储器(rom)、电可编程rom、电可擦除可编程rom、寄存器、硬盘、可移动硬盘、cd-rom或技术领域内所公知的任意其他形式的存储介质。计算机可读存储介质中存储有任务调度程序,所述任务调度程序被处理器执行时实现以下步骤:

编写任务代码,每个所述任务代码包括多个具有先后操作级别的代码片段;

将不同的所述任务代码以所述代码片段的形式穿插排列到时间执行队列,其中同一个所述任务代码的代码片段的先后顺序按照所述先后操作级别排列。

本发明实施例中任务代码以代码片段的形式被穿插排列到时间执行队列,也就是说,时间执行队列中的多个任务代码并非传统的串行方式,必须执行完一个任务代码才能执行下一个,而是执行完一个代码片段执行另一个代码片段,相邻的代码片段不一定属于同一个任务代码,虽然微观上代码片段串行,但宏观上任务代码并行,各个任务代码的响应速度比以前更快,不受之前单个任务代码异常的限制,提高了单位时间内任务吞吐量和执行效率。

在一些具体的实施例中,所述计算机可读存储介质中存储的任务调度子程序被处理器执行时,具体可以实现以下步骤:根据每个所述代码片段的操作时延、所属的所述任务代码的紧急程度,将不同的所述任务代码以所述代码片段的形式穿插排列到时间执行队列。

在一些具体的实施例中,所述计算机可读存储介质中存储的任务调度子程序被处理器执行时,具体可以实现以下步骤:若当前代码片段在执行过程中阻塞,则将所述时间执行队列中的无耦合代码片段调度至耦合代码片段前;

其中,所述无耦合代码片段指当前任务代码中与当前代码片段无耦合关系的代码片段或其他任务代码中的代码片段;所述耦合代码片段指当前任务代码中与当前代码片段存在耦合关系的代码片段。

在一些具体的实施例中,所述计算机可读存储介质中存储的任务调度子程序被处理器执行时,具体可以实现以下步骤:根据主程序的指令,将对应所述指令的所述任务代码以所述代码片段的形式穿插排列到时间执行队列。

在一些具体的实施例中,所述任务代码包括:

温度读取代码、led控制代码、cpld控制代码、vpd读取代码、sespage组合代码、sas指令响应代码中的任意一种或几种。

本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。

专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。

结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(ram)、内存、只读存储器(rom)、电可编程rom、电可擦除可编程rom、寄存器、硬盘、可移动磁盘、cd-rom、或技术领域内所公知的任意其它形式的存储介质中。

最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

以上对本发明所提供的一种任务调度方法、系统、装置及可读存储介质进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1