任务处理装置、电子设备及方法与流程

文档序号:18814967发布日期:2019-10-08 23:45阅读:173来源:国知局
任务处理装置、电子设备及方法与流程

本发明涉及操作系统领域,特别涉及一种任务处理装置、电子设备及方法。



背景技术:

在电信领域中,越来越多地采用Linux操作系统来实现高实时性业务的处理。

请参考图1,其示出了一种采用Linux操作系统来处理高实时性业务的架构示意图。该架构包括硬件层120、Linux内核层140和用户层160。用户层160可以运行有至少一个线程162,每个线程162用于处理任务。每个线程162的任务调度过程和中断响应过程主要由Linux内核层140实现。

在实现本发明的过程中,发明人发现现有技术至少存在以下问题:由于任务调度过程和中断响应过程主要由Linux内核层140实现,单次的任务调度过程或中断响应过程中需要多次切换至Linux内核层140中进行处理,会导致单次的任务调度过程或中断响应过程的延时较大,影响了任务处理过程的实时性。



技术实现要素:

为了解决任务调度过程和中断响应过程需要多次切换至Linux内核层中进行处理,导致单次的任务调度过程或中断响应过程的延时较大,影响了任务处理过程的实时性的问题,本发明实施例提供了一种任务处理装置、方法及电子设备。所述技术方案如下:

根据本发明的第一方面,提供了一种任务处理装置,所述装置包括:

第一运行模块,用于在用户层运行至少一个线程;

第二运行模块,用于在所述线程中运行操作系统,所述操作系统用于处理任务;

任务处理模块,用于在处理所述任务的过程中,通过所述线程中的所述操作系统进行中断响应和/或任务调度。

在第一方面的第一种可能的实施方式中,所述任务处理模块,包括:

请求接收单元,用于通过内核层接收中断源的中断请求;

请求传输单元,用于通过所述内核层将所述中断请求传输给所述用户层中对应的线程的操作系统;

请求响应单元,用于通过所述用户层中对应的线程的操作系统的中断处理程序对所述中断请求进行中断响应。

结合第一方面的第一种可能的实施方式,在第二种可能的实施方式中,所述请求传输单元,包括:

第一保存子单元,用于在所述内核层的核心栈中保存被中断的线程的运行现场,所述运行现场包括第一用户态指令位置;

转移子单元,用于将所述第一用户态指令位置从所述核心栈中的第一存储位置转移到共享存储区中的第二存储位置进行存储,并将所述中断请求存储到所述共享存储区中的第三存储位置,所述共享存储区为所述内核层和所述用户层均能访问的存储区;

中断存储子单元,用于在所述核心栈中的第一存储位置中存储所述被中断的线程的所述操作系统中的中断处理程序的起始指令位置;

退出子单元,用于退出所述内核层对所述中断请求的响应。

结合第一方面的第二种可能的实施方式,在第三种可能的实施方式中,所述请求响应单元,包括:

第一恢复子单元,用于在恢复所述被中断的线程时,从所述核心栈的第一存储位置读取所述操作系统的中断处理程序的起始指令位置;

第二保存子单元,用于在所述线程的用户栈保存被中断的任务的运行现场,所述运行现场包括第二用户态指令位置;

栈切换子单元,用于从所述用户栈切换为中断栈;

中断响应子单元,用于从所述共享存储区中读取所述中断请求,并基于所述中断栈进行中断响应;

第二恢复子单元,用于在所述中断响应结束后,恢复所述被中断的任务或另一个需要优先调度的任务。

结合第一方面的第三种可能的实施方式,在第四种可能的实施方式中,所述请求响应单元,还包括:

替换子单元,用于将所述用户栈中保存的所述第二用户态指令位置,替换为所述共享存储区的第二存储位置中保存的所述第一用户态指令位置;

所述第二恢复子单元,用于通过所述用户栈中保存的所述运行现场,恢复所述被中断的任务。

结合第一方面或第一方面的第一种可能的实施方式或第一方面的第二种可能的实施方式或第一方面的第三种可能的实施方式或第一方面的第四种可能的实施方式,在第五种可能的实施方式中,所述任务处理模块,包括:

任务切换单元,用于当从第一任务切换至第二任务时,通过所述操作系统保存被中断的所述第一任务的运行现场,所述第一任务的运行现场包括寄存器信息、第三用户态指令位置和所述第一任务的锁中断信息;

第一获取单元,用于通过所述操作系统获取所述第二任务的运行现场,所述第二任务的运行现场包括寄存器信息、第四用户态指令位置和所述第二任务的锁中断信息;

第一恢复单元,通过所述操作系统根据所述第二任务的运行现场恢复所述第二任务并处理。

结合第一方面或第一方面的第一种可能的实施方式或第一方面的第二种可能的实施方式或第一方面的第三种可能的实施方式或第一方面的第四种可能的实施方式,在第六种可能的实施方式中,所述任务处理模块,包括:

任务检测单元,用于在一次中断响应结束时,通过所述操作系统检测是否存在需要优先调度的第三任务;

第二获取单元,用于当存在所述第三任务时,通过所述操作系统获取所述第三任务的运行现场,所述第三任务的运行现场包括寄存器信息、第五用户态指令位置和所述第三任务的锁中断信息;

第二恢复单元,用于通过所述操作系统根据所述第三任务的运行现场恢复所述第三任务并处理。

根据本发明的第二方面,提供了一种电子设备,所述电子设备包括:处理器和存储器;

所述存储器用于存储一个或者一个以上的指令,所述指令用于实现一种任务处理方法;

所述方法令包括:

在用户层运行至少一个线程;

在所述线程中运行操作系统,所述操作系统用于处理任务;

在处理所述任务的过程中,通过所述线程中的所述操作系统进行中断响应和/或任务调度;

所述处理器用于执行所述指令。

在第二方面的第一种可能的实施方式中,还存储有用于执行以下操作的指令:

通过内核层接收中断源的中断请求;

通过所述内核层将所述中断请求传输给所述用户层中对应的线程的操作系统;

通过所述用户层中对应的线程的操作系统的中断处理程序对所述中断请求进行中断响应;

所述处理器用于执行所述指令。

结合第二方面的第一种可能的实施方式,在第二种可能的实施方式中,还存储有用于执行以下操作的指令:

在所述内核层的核心栈中保存被中断的线程的运行现场,所述运行现场包括第一用户态指令位置;

将所述第一用户态指令位置从所述核心栈中的第一存储位置转移到共享存储区中的第二存储位置进行存储,并将所述中断请求存储到所述共享存储区中的第三存储位置;

在所述核心栈中的第一存储位置中存储所述被中断的线程的所述操作系统中的中断处理程序的起始指令位置;

退出所述内核层对所述中断请求的响应;

所述处理器用于执行所述指令。

结合第二方面的第二种可能的实施方式中,在第三种可能的实施方式中,所述存储器还存储有用于执行以下操作的指令:

在恢复所述被中断的线程时,从所述核心栈的第一存储位置读取所述操作系统的中断处理程序的起始指令位置;

在所述线程的用户栈保存被中断的任务的运行现场,所述运行现场包括第二用户态指令位置;

从所述用户栈切换为中断栈;

从所述共享存储区中读取所述中断请求,并基于所述中断栈进行中断响应;

在所述中断响应结束后,恢复所述被中断的任务或另一个需要优先调度的任务;

所述处理器用于执行所述指令。

结合第二方面的第三种可能的实施方式中,在第四种可能的实施方式中,还存储有用于执行以下操作的指令:

将所述用户栈中保存的所述第二用户态指令位置,替换为所述共享存储区的第二存储位置中保存的所述第一用户态指令位置;

通过所述用户栈中保存的所述运行现场,恢复所述被中断的任务;

所述处理器用于执行所述指令。

结合第二方面或第二方面的第一种可能的实施方式或第二方面的第二种可能的实施方式或第二方面的第三种可能的实施方式或第二方面的第四种可能的实施方式,在第五种可能的实施方式中,还存储有用于执行以下操作的指令:

当从第一任务切换至第二任务时,通过所述操作系统保存被中断的所述第一任务的运行现场,所述第一任务的运行现场包括寄存器信息、第三用户态指令位置和所述第一任务的锁中断信息;

通过所述操作系统获取所述第二任务的运行现场,所述第二任务的运行现场包括寄存器信息、第四用户态指令位置和所述第二任务的锁中断信息;

通过所述操作系统根据所述第二任务的运行现场恢复所述第二任务并处理;

所述处理器还用于执行所述指令。

结合第二方面或第二方面的第一种可能的实施方式或第二方面的第二种可能的实施方式或第二方面的第三种可能的实施方式或第二方面的第四种可能的实施方式,在第六种可能的实施方式中,还存储有用于执行以下操作的指令:

在一次中断响应结束时,通过所述操作系统检测是否存在需要优先调度的第三任务;

当存在所述第三任务时,通过所述操作系统获取所述第三任务的运行现场,所述第三任务的运行现场包括寄存器信息、第五用户态指令位置和所述第三任务的锁中断信息;

通过所述操作系统根据所述第三任务的运行现场恢复所述第三任务并处理;

所述处理器还用于执行所述指令。

根据本发明实施例的第三方面,提供了一种任务处理方法,所述方法包括:

在用户层运行至少一个线程;

在所述线程中运行操作系统,所述操作系统用于处理任务;

在处理所述任务的过程中,通过所述线程中的所述操作系统进行中断响应和/或任务调度。

在第三方面的第一种可能的实施方式中,所述在处理所述任务的过程中,通过所述线程中的所述操作系统进行中断响应,包括:

通过内核层接收中断源的中断请求;

通过所述内核层将所述中断请求传输给所述用户层中对应的线程的操作系统;

通过所述用户层中对应的线程的操作系统的中断处理程序对所述中断请求进行中断响应。

结合第三方面的第一种可能的实施方式,在第二种可能的实施方式中,所述通过所述内核层将所述中断请求传输给所述用户层中对应的所述线程的所述操作系统,包括:

在所述内核层的核心栈中保存被中断的线程的运行现场,所述运行现场包括第一用户态指令位置;

将所述第一用户态指令位置从所述核心栈中的第一存储位置转移到共享存储区中的第二存储位置进行存储,并将所述中断请求存储到所述共享存储区中的第三存储位置,所述共享存储区为所述内核层和所述用户层均能访问的存储区;

在所述核心栈中的第一存储位置中存储所述被中断的线程的所述操作系统中的中断处理程序的起始指令位置;

退出所述内核层对所述中断请求的响应。

结合第三方面的第二种可能的实施方式,在第三种可能的实施方式中,所述通过所述操作系统中的中断处理程序对所述中断请求进行中断响应,包括:

在恢复所述被中断的线程时,从所述核心栈的第一存储位置读取所述操作系统的中断处理程序的起始指令位置;

在所述线程的用户栈保存被中断的任务的运行现场,所述运行现场包括第二用户态指令位置;

从所述用户栈切换为中断栈;

从所述共享存储区中读取所述中断请求,并基于所述中断栈进行中断响应;

在所述中断响应结束后,恢复所述被中断的任务或另一个需要优先调度的任务。

结合第三方面的第三种可能的实施方式,在第四种可能的实施方式中,所述从所述用户栈切换为中断栈之前,还包括:

将所述用户栈中保存的所述第二用户态指令位置,替换为所述共享存储区的第二存储位置中保存的所述第一用户态指令位置;

所述在所述中断响应结束后,恢复所述被中断的任务,包括:

通过所述用户栈中保存的所述运行现场,恢复所述被中断的任务。

结合第三方面或第三方面的第一种可能的实施方式或第三方面的第二种可能的实施方式或第三方面的第三种可能的实施方式或第三方面的第四种可能的实施方式,在第五种可能的实施方式中,所述在执行所述任务的过程中,通过所述线程中的所述操作系统进行任务调度,包括:

当从第一任务切换至第二任务时,通过所述操作系统保存被中断的所述第一任务的运行现场,所述第一任务的运行现场包括寄存器信息、第三用户态指令位置和所述第一任务的锁中断信息;

通过所述操作系统获取所述第二任务的运行现场,所述第二任务的运行现场包括寄存器信息、第四用户态指令位置和所述第二任务的锁中断信息;

通过所述操作系统根据所述第二任务的运行现场恢复所述第二任务并处理。

结合第三方面或第三方面的第一种可能的实施方式或第三方面的第二种可能的实施方式或第三方面的第三种可能的实施方式或第四种可能的实施方式,在第六种可能的实施方式中,所述在执行所述任务的过程中,通过所述线程中的所述操作系统进行任务调度,包括:

在一次中断响应结束时,通过所述操作系统检测是否存在需要优先调度的第三任务;

当存在所述第三任务时,通过所述操作系统获取所述第三任务的运行现场,所述第三任务的运行现场包括寄存器信息、第五用户态指令位置和所述第三任务的锁中断信息;

通过所述操作系统根据所述第三任务的运行现场恢复所述第三任务并处理。

本发明实施例提供的技术方案的有益效果是:

通过在用户层的线程中运行操作系统,以进行中断响应和/或任务调度;解决了中断响应过程和任务调度过程需要多次切换至Linux内核层中进行处理,导致单次的中断响应过程和任务调度过程的延时较大,影响了任务处理过程的实时性;达到了在用户层中直接完成中断响应和/或任务调度,不需要多次切换至内核层进行处理,减少中断响应和/或任务调度的耗时,提高了任务处理时的实时性,同时还可以降低内核层的负载的效果。

附图说明

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

图1是一种采用Linux操作系统来处理高实时性业务的架构示意图;

图2是本发明一个实施例提供的任务处理装置的结构方框图;

图3A是本发明另一实施例提供的任务处理装置的结构方框图;

图3B是图3A所提供的请求传输单元的结构方框图;

图3C是图3A所提供的请求响应单元的结构方框图;

图4是本发明再一实施例提供的任务处理装置的结构方框图;

图5A是本发明一个实施例提供的电子设备的结构方框图;

图5B是本发明另一个实施例提供的电子设备的结构方框图;

图6A和图6B分别示出了本发明实施例提供的任务处理方法所涉及的一种电子设备的结构示意图;

图7是本发明一个实施例提供的任务处理方法的方法流程图;

图8是本发明另一个实施例提供的任务处理方法的方法流程图;

图9是图8所示实施例中提供的任务处理方法的子步骤流程图;

图10是图8所示实施例中提供的任务处理方法的子步骤流程图

图11是本发明再一个实施例提供的任务处理方法的方法流程图;

图12是图11所示实施例中提供的任务处理方法的子步骤流程图;

图13是图11所示实施例中提供的任务处理方法的子步骤流程图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。

首先对本发明实施例涉及的若干名词进行简介:

硬件层:硬件层是电子设备中的硬件基础,通常包括处理器(英文:Central Processing Unit,缩写:CPU)和存储器,处理器可以是单核心处理器,也可以是多核心处理器。该电子设备可以是基站设备、传输设备、工业机器人等对任务处理的实时性有一定要求的电子设备。在全球移动通信系统(英文:Global System for Mobile Communication,缩写:GSM)系统中,基站设备可以是基站收发信台(英文:Base Transmitter Station,缩写:BTS);在第三代(英文:3rd-Generation,缩写:3G)移动通信技术中,基站设备可以是节点B(英文:Node Base station,缩写:Node B);在第四代(英文:the 4Generation,缩写:4G)移动通信技术中,基站设备可以是演进型节点B(英文:Evolved Node Base station,缩写:eNB)。

内核层和用户层:内核层是操作系统内核、虚拟存储空间和驱动应用程序运行的层;用户层是普通应用程序运行的层。

中断:中断是指计算机在执行期间,系统内发生任何非寻常的或非预期的急需处理事件,使得处理器暂时中断当前正在执行的程序而转去执行相应的事件处理程序,待处理完毕后又返回原来被中断处继续执行或调度新的进程执行的过程。引起中断发生的事件被称为中断源。中断源向处理器发出的请求中断处理信号称为中断请求。处理器对中断请求进行处理的过程称为中断响应。

核心栈:操作系统内核所使用的栈。

用户栈:每个线程有1个自身所使用的用户栈,该线程可以是实时线程或普通线程。

请参考图2,其示出了本发明一个实施例提供的任务处理装置的结构方框图。该任务处理装置可以通过软件、硬件或者两者的结合实现成为电子设备的全部或部分。该任务处理装置包括:第一运行模块220、第二运行模块240和任务处理模块260。

第一运行模块220,用于在用户层运行至少一个线程。

第二运行模块240,用于在线程中运行操作系统,该操作系统用于处理任务。每个线程中可以运行有一个操作系统,该操作系统用于处理任务。该操作系统需要具有独立完成中断响应和/或任务调度的功能。不同的线程中可以运行相同类型的操作系统,不同的线程中也可以运行不同类型的操作系统。本发明实施例对上述操作系统的类型不做特别限定。

任务是泛指操作系统可以处理的任务。在电子设备是基站设备时,任务可以是下发调度指令的任务、分配信道资源的任务、处理接入请求的任务等等。

任务处理模块260,用于在处理任务的过程中,通过线程中的操作系统进行中断响应和/或任务调度。

综上所述,本实施例提供的任务处理装置,通过线程中的操作系统进行中断响应和/或任务调度;解决了中断响应过程和任务调度过程需要多次切换至Linux内核层中进行处理,导致单次的中断响应过程和任务调度过程的延时较大,影响了任务处理过程的实时性;达到了在用户层中直接完成中断响应和/或任务调度,不需要多次切换至内核层进行处理,减少中断响应和/或任务调度的耗时,提高了任务处理时的实时性的效果。

同时,由于背景技术中的中断响应和/或任务调度都是由内核层来进行,所以内核层的负载较高,本实施例提供的任务处理方法还可以达到降低内核层的负载的效果。

请参考图3A,其示出了本发明另一实施例提供的任务处理装置的结构方框图。该任务处理装置可以通过软件、硬件或者两者的结合实现成为电子设备的全部或部分。该任务处理装置包括:第一运行模块220,用于在用户层运行至少一个线程。

第一运行模块220,用于在用户层运行至少一个线程。

第二运行模块240,用于在第一运行模块220运行的线程中运行操作系统,该操作系统用于处理任务。

任务处理模块260,用于在处理任务的过程中,通过第二运行模块240在线程中运行的操作系统进行中断响应。

在本实施例中,任务处理模块260,包括:

请求接收单元261,用于通过内核层接收中断源的中断请求。

请求传输单元262,用于通过内核层将请求接收单元261接收到的中断请求传输给第二运行模块240运行的用户层中对应的线程的操作系统。

请求响应单元263,用于通过用户层中对应的线程的操作系统的中断处理程序对请求传输单元262接收到的中断请求进行中断响应。

结合图3B所示,请求传输单元262可以包括:

第一保存子单元262a,用于在内核层的核心栈中保存被中断的线程的运行现场,该运行现场包括第一用户态指令位置。

转移子单元262b,用于将第一保存子单元262a保存的第一用户态指令位置从核心栈中的第一存储位置转移到共享存储区中的第二存储位置进行存储,并将请求接收单元261接收到的中断请求存储到共享存储区中的第三存储位置,共享存储区为内核层和用户层均能访问的存储区。

中断存储子单元262c,用于在转移子单元262b将第一用户态指令位置从核心栈中的第一存储位置转移到共享存储区中的第二存储位置进行存储之后,在核心栈中的第一存储位置中存储被中断的线程的操作系统中的中断处理程序的起始指令位置。

退出子单元262d,用于在中断存储子单元262c在核心栈中的第一存储位置中存储起始指令位置之后,退出内核层对中断请求的响应。

结合图3C所示,请求响应单元263可以包括:

第一恢复子单元263a,用于在退出子单元262d退出内核层对中断请求的响应后,在恢复被中断的线程时,从核心栈的第一存储位置读取操作系统的中断处理程序的起始指令位置。

第二保存子单元263b,用于在第一恢复子单元263a恢复的线程的用户栈保存被中断的任务的运行现场,该运行现场包括第二用户态指令位置。

栈切换子单元263c,用于从第二保存子单元263b所使用的用户栈切换为中断栈。

中断响应子单元263d,用于从共享存储区中读取中断请求,并基于栈切换子单元263c切换至的中断栈进行中断响应。

第二恢复子单元263e,用于在中断响应子单元263d中断响应结束后,恢复被中断的任务或另一个需要优先调度的任务。

其中,请求响应单元263,还可以包括:

替换子单元263f,用于将第二保存子单元263b在用户栈中保存的第二用户态指令位置,替换为共享存储区的第二存储位置中保存的第一用户态指令位置;

第二恢复子单元263e,用于通过用户栈中保存的运行现场,恢复被中断的任务,该运行现场由第二保存子单元263b保存,并被替换子单元263f将其中的第二用户态指令位置替换为第一用户态指令位置。

综上所述,本实施例提供的任务处理装置,通过在线程中运行操作系统,通过线程中的操作系统进行中断处理;解决了中断处理过程需要多次切换至Linux内核层实现,导致单次中断处理过程的延时较大,影响了任务处理过程的实时性的问题;达到了在用户层中直接完成中断处理,不需要多次切换至内核层进行处理,减少中断处理的耗时,提高了任务处理时的实时性。

同时,由于背景技术中的中断响应是由内核层来进行,所以内核层的负载较高,本实施例提供的任务处理装置还可以达到降低内核层的负载的效果。

本实施例提供的任务处理装置,还通过内核层将中断请求存储在共享存储区,在用户层的线程恢复后,从共享存储区获取该中断请求,使得内核层可以将中断请求上报给线程,由线程中的操作系统对该中断请求进行处理。

本实施例提供的任务处理装置,还通过将核心栈中的第一用户态指令位置,替换为操作系统的中断处理程序的起始指令位置,使得用户层的线程恢复后,并不是进入被中断的第一用户态指令位置继续运行,而是强制跳转到了操作系统中的中断处理程序,没有延时就直接进入了中断响应过程,实现了中断请求的快速上报并响应的效果。

本实施例提供的任务处理装置,还通过由操作系统的中断处理程序独立完成中断响应,该过程中不需要多次切换至内核层进行处理,达到了完整的一次中断响应过程的耗时非常小的效果。

请参考图4,其示出了本发明另一实施例提供的任务处理装置的结构方框图。该任务处理装置可以通过软件、硬件或者两者的结合实现成为电子设备的全部或部分。该任务处理装置可以包括:

第一运行模块220,用于在用户层运行至少一个线程。

第二运行模块240,用于在第一运行模块220运行的线程中运行操作系统,该操作系统用于处理任务。

任务处理模块260,用于在处理任务的过程中,通过第二运行模块240在线程中运行的操作系统进行任务调度。

在本实施例中,任务处理模块260,可以包括:

任务切换单元264,用于当从第一任务切换至第二任务时,通过第二运行模块240运行的操作系统保存被中断的第一任务的运行现场,第一任务的运行现场包括寄存器信息、第三用户态指令位置和第一任务的锁中断信息。

第一获取单元265,用于在任务切换单元264保存被中断的第一任务的运行现场后,通过操作系统获取第二任务的运行现场,第二任务的运行现场包括寄存器信息、第四用户态指令位置和第二任务的锁中断信息。

第一恢复单元266,通过操作系统根据第一获取单元265保存的第二任务的运行现场恢复第二任务并处理。

在本实施例中,任务处理模块260,还可以包括:

任务检测单元267,用于在一次中断响应结束时,通过第二运行模块240运行的操作系统检测是否存在需要优先调度的第三任务。

第二获取单元268,用于当任务检测单元267检测到存在第三任务时,通过操作系统获取第三任务的运行现场,第三任务的运行现场包括寄存器信息、第五用户态指令位置和第三任务的锁中断信息。

第二恢复单元269,用于通过操作系统根据第二获取单元268获取到的第三任务的运行现场恢复第三任务并处理。

综上所述,本实施例提供的任务处理装置,通过在线程中运行操作系统,通过线程中的操作系统进行任务调度;解决了任务调度过程需要多次切换至Linux内核层实现,导致单次任务调度过程的延时较大,影响了任务处理过程的实时性的问题;达到了在用户层中直接完成任务调度,不需要多次切换至内核层,减少任务调度的耗时,提高了任务处理时的实时性的效果。

同时,由于背景技术中的任务调度是由内核层来进行,所以内核层的负载较高,本实施例提供的任务处理装置还可以达到降低内核层的负载的效果。

请参考图5A,其示出了本发明一个实施例提供的电子设备的结构方框图。该电子设备500包括:处理器520和存储器540,处理器520和存储器540可以通过通信总线相连,存储器540可以是指令存储器、内存和寄存器等。

存储器540用于存储一个或者一个以上的指令,该指令用于实现一种任务处理方法,该指令包括:

在用户层运行至少一个线程;

在线程中运行操作系统,该操作系统用于处理任务;

在处理任务的过程中,通过线程中的操作系统进行中断响应和/或任务调度。

处理器520用于执行上述指令。

其中,每个线程中可以运行有一个操作系统,该操作系统用于处理任务。该操作系统需要具有独立完成中断响应和/或任务调度的功能。不同的线程中可以运行相同类型的操作系统,不同的线程中也可以运行不同类型的操作系统。本发明实施例对上述操作系统的类型不做特别限定。

任务是泛指操作系统可以处理的任务。在电子设备是基站设备时,任务可以是下发调度指令的任务、分配信道资源的任务、处理接入请求的任务等等。

综上所述,本实施例提供的电子设备,通过线程中的操作系统进行中断响应和/或任务调度;解决了中断响应过程和任务调度过程需要多次切换至Linux内核层中进行处理,导致单次的中断响应过程和任务调度过程的延时较大,影响了任务处理过程的实时性;达到了在用户层中直接完成中断响应和/或任务调度,不需要多次切换至内核层进行处理,减少中断响应和/或任务调度的耗时,提高了任务处理时的实时性的效果。

同时,由于背景技术中的中断响应和/或任务调度都是由内核层来进行,所以内核层的负载较高,本实施例提供的任务处理方法还可以达到降低内核层的负载的效果。

在基于图5A所示实施例提供的可选实施例中,存储器540还存储有用于执行以下操作的指令:

通过内核层接收中断源的中断请求。

通过内核层将中断请求传输给用户层中对应的线程的操作系统。

通过用户层中对应的线程的操作系统的中断处理程序对中断请求进行中断响应;

处理器520还用于执行上述指令。其中,处理器520通常通过总线560上的中断线接收中断源的中断请求。

可选地,存储器540还存储有用于执行以下操作的指令:

在内核层的核心栈中保存被中断的线程的运行现场,该运行现场包括第一用户态指令位置。

将第一用户态指令位置从核心栈中的第一存储位置转移到共享存储区中的第二存储位置进行存储,并将中断请求存储到共享存储区中的第三存储位置。

在核心栈中的第一存储位置中存储被中断的线程的操作系统中的中断处理程序的起始指令位置;

退出内核层对中断请求的响应;

处理器520还用于执行上述指令。其中,核心栈、共享存储区可以是物理内存中的一块逻辑位置。该物理内存可以属于存储器540。

可选地,存储器540还存储有用于执行以下操作的指令:

在恢复被中断的线程时,从所述核心栈的第一存储位置读取所述操作系统的中断处理程序的起始指令位置;

在线程的用户栈保存被中断的任务的运行现场,该运行现场包括第二用户态指令位置;

从用户栈切换为中断栈;

从共享存储区中读取中断请求,并基于中断栈进行中断响应;

在中断响应结束后,恢复被中断的任务或另一个需要优先调度的任务;

处理器520还用于执行上述指令。其中,中断栈、和与每个线程对应的用户栈可以是物理内存中的一块逻辑位置。该物理内存可以属于存储器540。

可选地,存储器540还存储有用于执行以下操作的指令:

将用户栈中保存的第二用户态指令位置,替换为共享存储区的第二存储位置中保存的第一用户态指令位置;

通过用户栈中保存的运行现场,恢复被中断的任务;

处理器520还用于执行上述指令。

综上所述,本实施例提供的电子设备,还通过内核层将中断请求存储在共享存储区,在用户层的线程恢复后,从共享存储区获取该中断请求,使得内核层可以将中断请求上报给线程,由线程中的操作系统对该中断请求进行处理。

本实施例提供的电子设备,还通过将核心栈中的第一用户态指令位置,替换为操作系统的中断处理程序的起始指令位置,使得用户层的线程恢复后,并不是进入被中断的第一用户态指令位置继续运行,而是强制跳转到了操作系统中的中断处理程序,没有延时就直接进入了中断响应过程,实现了中断请求的快速上报并响应的效果。

本实施例提供的电子设备,还通过由操作系统的中断处理程序独立完成中断响应,该过程中不需要多次切换至内核层进行处理,达到了完整的一次中断响应过程的耗时非常小的效果。

在基于图5A所示实施例提供的可选实施例中:

存储器540还存储有用于执行以下操作的指令:

当从第一任务切换至第二任务时,通过操作系统保存被中断的第一任务的运行现场,第一任务的运行现场包括寄存器信息、第三用户态指令位置和第一任务的锁中断信息。

通过操作系统获取第二任务的运行现场,该第二任务的运行现场包括寄存器信息、第四用户态指令位置和第二任务的锁中断信息;

通过操作系统根据第二任务的运行现场恢复第二任务并处理;

处理器520还用于执行上述指令。

可选地,存储器540还存储有用于执行以下操作的指令:

在一次中断响应结束时,通过操作系统检测是否存在需要优先调度的第三任务。

当存在第三任务时,通过操作系统获取第三任务的运行现场,该第三任务的运行现场包括寄存器信息、第五用户态指令位置和第三任务的锁中断信息。

通过操作系统根据第三任务的运行现场恢复第三任务并处理;

处理器520还用于执行上述指令。

综上所述,本实施例提供的电子设备,通过在线程中运行操作系统,通过线程中的操作系统进行任务调度;解决了任务调度过程需要多次切换至Linux内核层实现,导致单次任务调度过程的延时较大,影响了任务处理过程的实时性的问题;达到了在用户层中直接完成任务调度,不需要多次切换至内核层,减少任务调度的耗时,提高了任务处理时的实时性的效果。

同时,由于背景技术中的任务调度是由内核层来进行,所以内核层的负载较高,本实施例提供的任务处理装置还可以达到降低内核层的负载的效果。

此外,请结合参考图5B,电子设备500还可以包括通信总线530、发射电路552和接收电路554等。处理器520控制电子设备500的操作,处理器520还可以称为中央处理单元(英文:Central Processing Unit,缩写CPU)。存储器540可以包括只读存储器和随机存取存储器,并向处理器520提供指令和数据。存储器540的一部分还可以包括非易失性随机存取存储器(英文:Non-Volatile Random Access Memory,缩写NVRAM)。具体的应用中,发射电路552和接收电路554可以耦合到收发器550。电子设备500的各个组件通过通信总线530耦合在一起,其中通信总线530除包括数据总线之外,还可以包括电源总线、控制总线、中断线和其它状态信号总线等。但是为了清楚说明起见,在图中将各种总线都标为通信总线530。

下面是本发明的方法实施例,各个方法实施例与上面的装置实施例互相对应。

请参考图6A,其示出了本发明实施例提供的任务处理方法所涉及的一种电子设备的结构示意图。该电子设备包括硬件层620、内核层640和用户层660。

硬件层620包括处理器,该处理器可以有一个处理器核心622,即该处理器为单核处理器。

内核层640包括有操作系统内核642以及驱动应用程序(图中未示出),该操作系统内核242可以是Linux内核。

用户层660可以运行线程(英文:thread)662,每个线程662中运行有一个操作系统(英文:operation system,缩写:os),该线程662可以是实时线程和/或用户线程。该操作系统可以独占该处理器核心622,组成非对称多处理(英文:Asymmetric Multi-Processing,缩写:AMP)结构。

请参考图6B,其示出了本发明实施例提供的任务处理方法所涉及的再一种电子设备的架构示意图。该电子设备包括硬件层620、内核层640和用户层660。

硬件层620包括处理器,该处理器可以包括有2个或者2个以上的处理器核心622(图中以2个处理器核心进行示意),也即多核处理器。

内核层640包括有操作系统内核642以及驱动应用程序(图中未示出),该操作系统内核642可以是Linux内核。

用户层660可以运行有线程662,每个线程662中运行有一个操作系统,该操作系统用于处理任务。该线程662可以是实时线程和/或用户线程。每个操作系统可以独占一个处理器核心622,组成对称多处理(英文:Symmetric Multi-Processing,缩写:SMP)结构。

请参考图7,其示出了本发明一个实施例提供的任务处理方法的方法流程图。本实施例以该任务处理方法应用于图6A或图6B所示的电子设备中来举例说明。该方法包括:

步骤701,在用户层运行至少一个线程;

步骤702,在线程中运行操作系统,该操作系统可以用于处理任务;

每个线程中可以运行有一个操作系统,该操作系统用于处理任务。

该操作系统需要具有独立完成中断响应和/或任务调度的功能。不同的线程中可以运行相同类型的操作系统,不同的线程中也可以运行不同类型的操作系统。本发明实施例对上述操作系统的类型不做特别限定。

任务是泛指操作系统可以处理的任务,在电子设备是基站设备时,任务可以是下发调度指令的任务、分配信道资源的任务、处理接入请求的任务等等。

步骤703,在执行任务的过程中,通过线程中的操作系统进行中断响应和/或任务调度。

综上所述,本实施例提供的任务处理方法,通过线程中的操作系统进行中断响应和/或任务调度;解决了中断响应过程和任务调度过程需要多次切换至Linux内核层中进行处理,导致单次的中断响应过程和任务调度过程的延时较大,影响了任务处理过程的实时性;达到了在用户层中直接完成中断响应和/或任务调度,不需要多次切换至内核层进行处理,减少中断响应和/或任务调度的耗时,提高了任务处理时的实时性的效果。

同时,由于背景技术中的中断响应和/或任务调度都是由内核层来进行,所以内核层的负载较高,本实施例提供的任务处理方法还可以达到降低内核层的负载的效果。

下面分2个实施例分别对中断响应过程和任务调度过程进行阐述。

请参考图8,其示出了本发明另一个实施例提供的任务处理方法的方法流程图。本实施例以该任务处理方法应用于图6A或图6B所示的电子设备中来举例说明。该方法包括:

步骤801,在用户层运行至少一个线程;

电子设备在用户层中运行至少一个线程,该线程可以是用于处理实时任务的实时线程,也可以是用于处理普通任务的普通线程。

步骤802,在线程中运行操作系统;

电子设备在线程中运行操作系统。每个线程中可以单独运行一个操作系统。电子设备通过该操作系统对任务进行处理。

该操作系统需要具有独立完成中断响应和/或任务调度的功能。不同的线程中可以运行相同类型的操作系统,不同的线程中也可以运行不同类型的操作系统。本发明实施例对上述操作系统的类型不做特别限定。

任务是泛指操作系统可以处理的任务,在电子设备是基站设备时,任务可以是下发调度指令的任务、分配信道资源的任务、处理接入请求的任务等等。

步骤803,通过内核层接收中断源的中断请求;

电子设备通过内核层接收中断源的中断请求,该中断源可以是外部硬件设备,外部硬件设备可以是鼠标、键盘、网卡、显卡之类的硬件设备。

可选地,在内核层中可以实现一个中断快速处理程序,该中断快速处理程序用于在内核层中接收中断请求,并将中断请求上报至对应线程中的操作系统,以便线程中的操作系统对该中断请求进行响应。

电子设备通过该中断快速处理程序接收中断源的中断请求。

在中断快速处理程序接收到中断请求后,电子设备通过中断快速处理程序入锁中断状态。

锁中断状态用于避免处理器在处理一个中断请求的过程中再次接收到另外一个中断请求,从而导致本次中断请求的处理过程被打断。锁中断状态的实现可以有硬件锁中断和软件锁中断两种。

当硬件锁中断时,内核层在本次中断请求的处理过程中将不再接收其它中断请求。

当软件锁中断时,内核层在本次中断请求的处理过程依然接收其它中断请求,但是并不打断本次中断请求的处理过程,而是将后续接收到的中断请求存储在位于内核层中的中断请求队列中,等本次中断请求的处理过程完毕后,再依次从中断请求队列中处理其它中断请求。

步骤804,通过内核层将中断请求传输给用户层中对应线程的操作系统;

与背景技术不同的是,电子设备不在内核层中响应该中断请求,而是通过内核层将中断请求传输给用户层中对应的线程的操作系统中进行响应。与中断请求对应的线程通常是被该中断请求所打断的线程。也即,步骤804可以包括如下子步骤,如图9所示:

804a,电子设备在内核层的核心栈中保存被中断的线程的运行现场,运行现场包括第一用户态指令位置;

由于处理器在单位时间内只能处理1个程序片段,比如,处理器当前正在处理一个线程,则无法处理其它线程或者属于内核层的程序片段。处理器在内核层中接收到1个中断请求时,该中断请求会打断处理器当前正在运行的线程,此时处理器会转而对该中断请求进行响应。为了被中断的线程能够在后续时刻恢复运行,电子设备通过中断快速处理程序在内核层的核心栈中保存被中断的线程的运行现场,运行现场包括该线程在被中断时的各种寄存器值和第一用户态指令位置。第一用户态指令位置也称第一用户态PC(英文:program counter,中文:程序计数器)指针,第一用户态PC指针是指被中断的线程在中断前原计划将要运行的下一条指令所对应的位置。当该线程被恢复时,处理器可以通过运行该第一用户态指令位置所对应的程序指令,以恢复该线程的运行。

核心栈是内核层中的栈。电子设备通过中断快速处理程序将该线程的运行现场保存在核心栈中。第一用户态指令位置保存在核心栈的第一存储位置。

804b,电子设备将第一用户态指令位置从核心栈中的第一存储位置移转移到共享存储区中的第二存储位置进行存储,并将中断请求存储到共享存储区中的第三存储位置,共享存储区为内核层和用户层均能访问的存储区;

电子设备可以通过内核层中的中断快速处理程序将第一用户态指令位置从核心栈中的第一存储位置移动到共享存储区中的第二存储位置。

804c,电子设备在核心栈中的第一存储位置中存储操作系统的中断处理程序的起始指令位置;

本发明实施例提供的线程中的操作系统具有独立完成中断响应的功能。可选地,在线程的操作系统中可以实现一个中断处理程序,该中断处理程序用于对内核层上报至线程中的操作系统的中断请求进行响应。

电子设备通过内核层中的中断快速处理程序在核心栈中的第一存储位置中存储操作系统的中断处理程序的起始指令位置,该操作系统是被中断的线程中的操作系统。

也即,被中断的线程在后续被恢复运行时,处理器读取到的将是该线程中操作系统的中断处理程序,而非第一用户态指令位置所对应的程序指令。

804d,电子设备通过内核层退出中断请求的处理。

此时,中断请求被存储到共享存储区中等待用户层中的线程中的操作系统来处理。

需要说明的是,步骤804a至步骤804d都是电子设备通过内核层来实现的。

步骤805,通过操作系统中的中断处理程序对中断请求进行中断响应。

步骤805包括如下子步骤,如图10所示:

805a,电子设备在恢复被中断的线程时,从核心栈的第一存储位置读取操作系统的中断处理程序的起始指令位置;

由于核心栈中的第一存储位置所存储的第一用户态指令位置被替换为操作系统的中断处理程序的起始指令位置。当电子设备根据核心栈中保存的运行现场恢复被中断的线程时,处理器根据核心栈中的第一存储位置所读取到的程序指令是线程中操作系统的中断处理程序所对应的程序指令。此后,线程中操作系统通过该中断处理程序对中断请求进行中断响应。

805b,电子设备在线程的用户栈中保存被中断的任务的运行现场,运行现场包括第二用户态指令位置;

由于线程中操作系统是一个独立的操作系统,并且线程中的操作系统用于处理任务。当存在一个中断请求需要处理时,该中断请求会打断操作系统中正在运行的任务,电子设备首先通过中断处理程序在线程的用户栈中保存被中断的任务的运行现场,运行现场包括该任务被中断时的各种寄存器值和第二用户态指令位置。第二用户态指令位置也称第二用户态PC指针,第二用户态PC指针是被中断的任务在中断前原计划将要运行的下一条指令所对应的指针位置。

由于在步骤805a中线程恢复时,处理器直接读取到中断处理程序来运行,所以该第二用户态指令位置通常与步骤804a中的第一用户态指令位置是相同的。例如,步骤804a中线程在将要运行到某一任务对应的程序代码中的A位置时被中断,那么在步骤805b中线程中被中断的任务的将要运行的程序指令位置也应该是A位置,并未发生变化。

每个线程拥有各自的用户栈,电子设备通过中断处理程序将该任务的运行现场保存在用户栈中。第二用户态指令位置保存在用户栈中的第四存储位置。

步骤805c,电子设备将用户栈中保存的第二用户态指令位置,替换为共享存储区的第二存储位置中保存的第一用户态指令位置;

由于步骤805b中存储的第二用户态指令位置有可能会保存错误,保存错误的第二用户态指令位置会与第一用户态指令位置不同,为了保证该任务在恢复运行时的正确性,所以电子设备通过中断处理程序将步骤805b中在用户栈中保存的第二用户态指令位置,替换为共享存储区的第二存储位置中保存的第一用户态指令位置,也即替换为步骤804b中被转移至共享存储区中的第一用户态指令位置。

步骤805d,电子设备从用户栈切换为中断栈;

中断栈用于存储中断响应过程中的数据。

步骤805e,电子设备从共享存储区中读取中断请求,并基于中断栈进行中断响应;

电子设备通过中断处理程序从共享存储区中读取中断请求,该中断请求具体可以是一个中断号,然后由该中断处理程序基于中断栈对该中断请求进行中断响应。

步骤805f,电子设备在中断响应结束后,恢复被中断的任务或另一需要优先调度的任务;

在中断响应结束后,如果不存在需要优先调度的其它任务,则电子设备通过中断处理程序根据用户栈中保存的运行现场,恢复被中断的任务。

如果存在其它需要优先调度的其它任务,则电子设备通过中断处理程序根据用户栈中保存的运行现场,恢复另一需要优先调度的任务。

在被中断的任务或需要优先调度的任务恢复时,电子设备还可以通过中断处理程序将内核层中的锁中断状态变更为解锁中断状态。当处于解锁中断状态时,电子设备可以继续接收中断请求。

需要补充说明的一点是,在步骤804d中电子设备需要保持在锁中断状态,由于硬件锁中断和软件锁中断的不同,如果是硬件锁中断,只要电子设备继续保持锁中断状态即可,如果是软件锁中断,则电子设备需要在内核层退出中断请求的处理,并恢复被中断的线程后,检查软件锁中断的状态是否为锁中断状态,如果不是,则需要更新软件锁中断的状态为锁中断状态并保持。

还需要补充说明的另一点是,由于软件锁中断的状态为锁中断状态时,电子设备中的内核层仍然接收中断源的中断请求,并将这些中断请求保存在内核层的中断请求队列中。所以步骤805f之后,如果电子设备将软件锁中断的状态从锁中断状态变更为解锁中断状态,则还需要检测中断请求队列中是否存在有其它中断请求,如果存在其它中断请求,则电子设备重新执行上述实施例中步骤804和步骤805所示出的中断响应过程。

综上所述,本实施例提供的任务处理方法,通过在线程中运行操作系统,通过线程中的操作系统进行中断处理;解决了中断处理过程需要多次切换至Linux内核层实现,导致单次中断处理过程的延时较大,影响了任务处理过程的实时性的问题;达到了在用户层中直接完成中断处理,不需要多次切换至内核层进行处理,减少中断处理的耗时,提高了任务处理时的实时性。

同时,由于背景技术中的中断响应是由内核层来进行,所以内核层的负载较高,本实施例提供的任务处理方法还可以达到降低内核层的负载的效果。

本实施例提供的任务处理方法,还通过内核层将中断请求存储在共享存储区,在用户层的线程恢复后,从共享存储区获取该中断请求,使得内核层可以将中断请求上报给线程,由线程中的操作系统对该中断请求进行处理。

本实施例提供的任务处理方法,还通过将核心栈中的第一用户态指令位置,替换为操作系统的中断处理程序的起始指令位置,使得用户层的线程恢复后,并不是进入被中断的第一用户态指令位置继续运行,而是强制跳转到了操作系统中的中断处理程序,没有延时就直接进入了中断响应过程,实现了中断请求的快速上报并响应的效果。

本实施例提供的任务处理方法,还通过由操作系统的中断处理程序独立完成中断响应,该过程中不需要多次切换至内核层进行处理,达到了完整的一次中断响应过程的耗时非常小的效果。

请参考图11,其示出了本发明再一个实施例提供的的任务处理方法的方法流程图。本实施例以该任务处理方法应用于图6A或图6B所示的电子设备中来举例说明。该方法包括:

步骤1101,在用户层运行至少一个线程;

电子设备在用户层中运行至少一个线程。该线程可以是用于处理实时任务的实时线程,也可以是用于处理普通任务的普通线程。

步骤1102,在线程中运行操作系统,该操作系统用于处理任务;

电子设备在线程中运行操作系统。每个线程中可以单独运行一个操作系统。电子设备通过该操作系统对任务进行处理。

该操作系统需要具有独立完成中断响应和/或任务调度的功能。不同的线程中可以运行相同类型的操作系统,不同的线程中也可以运行不同类型的操作系统。本发明实施例对上述操作系统的类型不做特别限定。

任务是泛指操作系统可以处理的任务,在电子设备是基站设备时,任务可以是下发调度指令的任务、分配信道资源的任务、处理接入请求的任务等等。

步骤1103,在处理任务的过程中,通过线程中的操作系统进行任务调度。

与背景技术不同的是,电子设备不通过内核层来对线程中的任务进行任务调度,而是由线程中的操作系统来对线程中的任务进行任务调度。既不需要内核层的中断响应逻辑,也不受内核层的任务调度的影响,独立来完成任务调度。调度时的调度策略可以采用已有的任务调度策略。

常见的任务调度包括如下2种:

第一种,以需要从第一任务切换至第二任务为例,本步骤包括如下子步骤,如图12所示:

1103A,当从第一任务切换至第二任务时,电子设备通过线程中的操作系统保存被中断的第一任务的运行现场,第一任务的运行现场包括寄存器信息、第三用户态指令位置和第一任务的锁中断信息;

本实施例提供给的线程中的操作系统具有独立完成任务调度的功能。在线程的操作系统中可以实现一个任务调度程序,该任务调度程序用于对操作系统中处理的各个任务进行任务调度。

可选地,从第一任务切换至第二任务可以由中断请求触发,也可以由操作系统中的任务调度程序主动触发。

比如,第二任务需要延时n毫秒,则该第二任务在挂起后会启用1个定时器,该定时器在延时n毫秒后产生1个中断请求,该中断请求用于请求中断正在运行的第一任务,并将正在运行的第一任务切换为第二任务,以恢复第二任务的运行。

又比如,任务调度程序可以在第二任务的优先级达到预设条件时,将正在运行的第一任务切换为第二任务。

此时,电子设备通过操作系统中的任务调度程序保存被中断的第一任务的运行现场,第一任务的运行现场包括寄存器信息、第三用户态指令位置和第一任务的锁中断信息。

其中,锁中断信息是指:由于任务A可能会被任务B中断,任务B可能又被任务C中断,此时会形成中断嵌套,锁中断信息是指一个中断请求在中断嵌套中的层级。

1103B,电子设备通过线程中的操作系统获取第二任务的运行现场,第二任务的运行现场包括寄存器信息、第四用户态指令位置和第二任务的锁中断信息;

电子设备可以通过操作系统中的任务调度程序获取第二任务的运行现场。

1103C,电子设备通过线程中的操作系统根据第二任务的运行现场恢复第二任务并处理。

电子设备可以通过操作系统中的任务调度程序根据运行现场中的寄存器信息和第四用户态指令位置恢复第二任务。

在第二任务被恢复时,电子设备通过任务调度程序根据第二任务的锁中断信息切换解锁中断状态,然后处理该第二任务。

第二种,以在一次中断处理后,电子设备调度至需要优先调度的第三任务为例,该第三任务可以是新任务。本步骤包括如下子步骤,如图13所示:

1103a,在一次中断处理结束时,电子设备通过线程中的操作系统检测是否存在需要优先调度的第三任务;

电子设备通过操作系统中的任务调度程序检测是否存在需要优先调度的第三任务。

比如,网卡设备接收到1个新的数据包,此时也会产生1个中断请求,该中断请求用于请求对该数据包进行处理,该中断请求被响应后会产生用于处理该数据包的第三任务。

1103b,若存在第三任务,则电子设备通过线程中的操作系统获取第三任务的运行现场,第三任务的运行现场包括寄存器信息、第五用户态指令位置和第三任务的锁中断信息;

电子设备通过操作系统中的任务调度程序获取第三任务的运行现场。

1103c,电子设备通过线程中的操作系统根据第三任务的运行现场恢复第三任务并处理。

电子设备可以根据根据运行现场中的寄存器信息和第五用户态指令位置恢复第三任务。

在第三任务被恢复时,电子设备通过任务调度程序根据第三任务的锁中断信息将内核层中的锁中断状态切换至解锁中断状态,然后处理该第三任务。

综上所述,本实施例提供的任务处理方法,通过在线程中运行操作系统,通过线程中的操作系统进行任务调度;解决了任务调度过程需要多次切换至Linux内核层实现,导致单次任务调度过程的延时较大,影响了任务处理过程的实时性的问题;达到了在用户层中直接完成任务调度,不需要多次切换至内核层,减少任务调度的耗时,提高了任务处理时的实时性的效果。

同时,由于背景技术中的任务调度是由内核层来进行,所以内核层的负载较高,本实施例提供的任务处理方法还可以达到降低内核层的负载的效果。

可以理解,图2-图4任一实施例提供的任务处理装置或图5A或图5B实施例提供的电子设备可以执行图7-图13任一实施例提供的任务处理方法,为描述之简洁,装置实施例各单元或模块的具体功能及工作流程可以参照方法实施例部分的相关,不做过多赘述,同时,本发明提供的各个实施例的内容描述也可以相互参照。

本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。

以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

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