CN117193979A - 基于独立中断栈的任务处理方法、装置、终端设备及介质 - Google Patents
基于独立中断栈的任务处理方法、装置、终端设备及介质 Download PDFInfo
- Publication number
- CN117193979A CN117193979A CN202311163008.5A CN202311163008A CN117193979A CN 117193979 A CN117193979 A CN 117193979A CN 202311163008 A CN202311163008 A CN 202311163008A CN 117193979 A CN117193979 A CN 117193979A
- Authority
- CN
- China
- Prior art keywords
- interrupt
- task
- stack
- processed
- independent
- 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
- 238000003672 processing method Methods 0.000 title claims abstract description 29
- 238000012545 processing Methods 0.000 claims abstract description 71
- 238000000034 method Methods 0.000 claims abstract description 39
- 230000008569 process Effects 0.000 claims abstract description 30
- 230000015654 memory Effects 0.000 claims description 27
- 238000004590 computer program Methods 0.000 claims description 23
- 238000003860 storage Methods 0.000 claims description 17
- 230000006870 function Effects 0.000 claims description 15
- 238000003825 pressing Methods 0.000 abstract description 4
- 238000010586 diagram Methods 0.000 description 5
- 230000009286 beneficial effect Effects 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000010485 coping Effects 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000026676 system process Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Executing Machine-Instructions (AREA)
Abstract
本发明提供了一种基于独立中断栈的任务处理方法、装置、终端设备及介质,方法应用于基于Hostboot系统的平台,平台包括中央处理器,通过栈指针将待处理任务在中断处的上下文信息依次保存至预先构建的中断栈空间,当符合任务需要恢复执行的预设条件时,将中断处的上下文信息以及中断任务处理程序执行过程中所产生的压栈信息保存到程序计数器,这样,在系统发生中断时以及技术人员需要对中断事件进行检查时,只需要通过检查中断栈空间,就可以获得中断事件以及待处理任务相关的信息,提高了hostboot系统任务处理过程中的可维护性以及可观测性,有效降低了技术人员的工作量,提高了便捷性。
Description
技术领域
本发明涉及任务栈领域,尤其涉及一种基于独立中断栈的任务处理方法、装置、终端设备及计算机可读存储介质。
背景技术
Hostboot是Power系列处理器BIOS启动过程中的一部分,用于初始化总线/内存等硬件。这些初始化工作被分成多个任务,而这些任务通过Hostboot里面的操作系统进行调度管理,且每个任务都会有被分配有其对应的任务栈空间。目前Hostboot系统在处理中断服务程序时,会在被打断的任务栈上处理中断信息,因此被打断的任务和中断的处理是共用一个栈空间。这会使得,在系统发生中断或者技术人员对中断事件进行检查时,需要从当前的栈指针往回寻找中断事件的相关信息,对于技术人员来说工作量大、寻找难度高、所需耗费的时间长,导致可维护性以及可观测性较低。
发明内容
本发明提供了一种基于独立中断栈的任务处理方法、装置、终端设备及计算机可读存储介质,以解决现有技术hostboot系统任务处理过程中的可维护性以及可观测性较低的技术问题。
为了解决上述技术问题,本发明实施例提供了一种基于独立中断栈的任务处理方法,应用于基于Hostboot系统的平台,所述平台还包括中央处理器,所述任务处理方法包括:
在待处理任务执行的过程中检测到中断事件时,通过栈指针将所述待处理任务在中断处的上下文信息依次保存至预先构建的中断栈空间;
当符合所述待处理任务需要恢复执行的预设条件时,将所述在中断处的上下文信息以及所述中断事件对应的中断任务处理程序执行过程中所产生的压栈信息,保存到程序计数器,以使所述中央处理器从所述中断处继续执行所述待处理任务。
作为优选方案,所述预设条件包括:所述中央处理器对所述中断任务处理程序执行完毕。
作为优选方案,所述通过栈指针将所述待处理任务在中断处的上下文信息依次保存至预先构建的中断栈空间,包括:
获取所述中断栈空间的栈底地址,并将所述栈指针指向所述中断栈空间的栈底;
通过所述栈指针,将所述待处理任务在中断处的上下文信息依次保存至预先构建的中断栈空间。
作为优选方案,所述栈指针对应于通用寄存器。
作为优选方案,所述中断事件包括外部设备的中断事件或定时器的中断事件。
作为优选方案,所述上下文信息包括所述待处理任务所需的寄存器信息、局部变量和函数临时值。
作为优选方案,所述任务处理方法还包括:在所述待处理任务执行完毕时,将所述中断栈空间内的数据清空。
相应的,本发明实施例还提供了一种基于独立中断栈的任务处理装置,应用于基于Hostboot系统的平台,所述平台还包括中央处理器,所述任务处理装置包括中断栈空间配置模块和处理模块;其中,
所述中断栈空间配置模块,用于在待处理任务执行的过程中检测到中断事件时,通过栈指针将所述待处理任务在中断处的上下文信息依次保存至预先构建的中断栈空间;
所述处理模块,用于当符合所述待处理任务需要恢复执行的预设条件时,将所述在中断处的上下文信息以及所述中断事件对应的中断任务处理程序执行过程中所产生的压栈信息,保存到程序计数器,以使所述中央处理器从所述中断处继续执行所述待处理任务。
作为一种优选实施方式,所述预设条件包括:所述中央处理器对所述中断任务处理程序执行完毕。
作为一种优选实施方式,所述中断栈空间配置模块通过栈指针将所述待处理任务在中断处的上下文信息依次保存至预先构建的中断栈空间,包括:
所述中断栈空间配置模块获取所述中断栈空间的栈底地址,并将所述栈指针指向所述中断栈空间的栈底;
通过所述栈指针,将所述待处理任务在中断处的上下文信息依次保存至预先构建的中断栈空间。
作为一种优选实施方式,所述栈指针对应于通用寄存器。
作为一种优选实施方式,所述中断事件包括外部设备的中断事件或定时器的中断事件。
作为一种优选实施方式,所述上下文信息包括所述待处理任务所需的寄存器信息、局部变量和函数临时值。
作为一种优选实施方式,所述任务处理装置还包括中断栈空间清空模块,所述中断栈空间清空模块用于:在所述待处理任务执行完毕时,将所述中断栈空间内的数据清空。
相应的,本发明实施例还提供了一种包括处理器、存储器以及存储在所述存储器中且被配置为由所述处理器执行的计算机程序,所述处理器执行所述计算机程序时实现所述的基于独立中断栈的任务处理方法。
相应的,本发明实施例还提供了一种所述计算机可读存储介质包括存储的计算机程序,其中,在所述计算机程序运行时控制所述计算机可读存储介质所在设备执行所述的基于独立中断栈的任务处理方法。
相比于现有技术,本发明实施例具有如下有益效果:
本发明实施例提供了一种基于独立中断栈的任务处理方法、装置、终端设备及计算机可读存储介质,所述任务处理方法应用于基于Hostboot系统的平台,所述平台还包括中央处理器,通过栈指针将所述待处理任务在中断处的上下文信息依次保存至预先构建的中断栈空间,当符合所述待处理任务需要恢复执行的预设条件时,将中断处的上下文信息以及中断任务处理程序执行过程中所产生的压栈信息保存到程序计数器,这样,在系统发生中断时以及技术人员需要对中断事件进行检查时,只需要通过检查中断栈空间,就可以获得中断事件以及待处理任务相关的信息,提高了hostboot系统任务处理过程中的可维护性以及可观测性,有效降低了技术人员的工作量,提高了便捷性;另外,当检测到中断事件时,通过栈指针将待处理任务在中断处的上下文信息依次保存至预先构建的中断栈空间,这样,中央处理器可以通过中断栈空间对中断事件进行处理,而在符合所述待处理任务需要恢复执行的预设条件时,将所述在中断处的上下文信息以及所述中断事件对应的中断任务处理程序执行过程中所产生的压栈信息,保存到程序计数器,可以使所述中央处理器从所述中断处继续执行所述待处理任务,即本实施例任务处理的机制实现了任务处理和中断处理两种事件类型的解耦,这样,在任务的处理过程中时,不需要每个任务均考虑中断的情况,只需任务本身的栈所需的空间满足任务的执行要求,相比现有技术节省了中断处理所对应内存空间,避免了任务栈空间占用额外的内存,提高了内存空间在任务执行时间周期内的利用率。
附图说明
图1:为本发明基于独立中断栈提供的任务处理方法的一种实施例的流程示意图。
图2:为本发明基于独立中断栈提供的任务处理方法的一种实施例的原理示意图。
图3:为本发明基于独立中断栈提供的任务处理方法的一种应用实施例的流程示意图。
图4:为本发明基于独立中断栈提供的任务处理方法的一种实施例的流程示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例一
首先,对本申请中的部分技术用语进行解释说明,以便于本领域技术人员理解。
(1)Hostboot是Power系列处理器BIOS启动过程中的一部分,负责初始化总线/内存等各种硬件,这些初始化工作被分成多个任务,任务通过hostboot里面的操作系统来调度管理。
(2)操作系统,即OS,Operating System的略缩词。是一组主管并控制计算机操作、运用和运行硬件、软件资源和提供公共服务来组织用户交互的相互关联的系统软件程序。
(3)基本输入输出系统,即BIOS,Basic Input Output System的略缩词。其专门负责系统硬件各种参数设定,本质上是程序,或者说是一组代码。
(4)中央处理器,即CPU,Central Processing Unit的略缩词。是计算机系统的运算和控制核心,是信息处理、程序运行的最终执行单元。
(5)栈,为一种特殊的线性表,其只允许在固定的一端进行插入和删除元素操作,且遵循先进先出的原则。
(6)程序计数器,program counter,该计数器保存下一条要执行的命令,可以通过查看该计数器了解到中央处理器当前的代码执行到哪个位置。
根据相关技术记载,Hostboot系统中每个任务都会被分配有对应的栈空间。目前,Hostboot系统在处理中断服务程序时,会在被打断的任务栈上处理中断信息,也就是说被打断的任务和中断的处理是共用一个栈空间的。因此,每个任务分配栈空间时,都要考虑被中断导致本任务执行被打断的情况,此外还要考虑额外的内存空间分配。
例如,对于某款POWER系列的处理器,其有1000个寄存器,在发生中断时,任务栈除了要保存这1000个寄存器,还要保存中断处理过程中函数调用产生的压栈信息。因此会使得每个任务栈空间的分配可能会过大,不能对内存进行有效利用。同时,在系统发生中断或者技术人员对中断事件进行检查时,需要从当前的栈指针往回寻找中断事件的相关信息,对于技术人员来说工作量大、寻找难度高,且所需耗费的时间长,导致可维护性以及可观测性较低,在出现异常情况时,很难查看了解得到具体的数据情况。
针对上述一个或多个技术问题,请参照图1和图2,图1为本发明实施例提供的一种基于独立中断栈的任务处理方法,应用于基于Hostboot系统的平台,所述平台还包括中央处理器,所述任务处理方法包括步骤S1至步骤S2;其中,
步骤S1,在待处理任务执行的过程中检测到中断事件时,通过栈指针将所述待处理任务在中断处的上下文信息依次保存至预先构建的中断栈空间。
步骤S2,当符合所述待处理任务需要恢复执行的预设条件时,将所述在中断处的上下文信息以及所述中断事件对应的中断任务处理程序执行过程中所产生的压栈信息,保存到程序计数器,以使所述中央处理器从所述中断处继续执行所述待处理任务。
实施本申请实施例,参照图2,只需要在独立的中断栈空间上保存中断处的上下文信息,此时,任务栈空间不需要保存中断任务处理程序执行过程中所产生的压栈信息,因此可以节省较多的内存空间;同时,发生中断时,不需要从任务栈指针处往回查询函数调用数据以及寄存器值等(本实施例所述的压栈信息包括了中断任务处理程序执行过程中的函数调用和执行信息,同时也包括了中断位置),提高了便捷性;通过栈指针(stack pointer)可以确定中断发生时开始压栈的位置,提高了hostboot系统任务处理过程中的可维护性以及可观测性,有效降低了技术人员的工作量。
作为本实施例的一种举例,在上述步骤S1之前,在系统初始化阶段,可以向内存申请一块空间,作为上述的中断栈空间,同时获取中断栈空间的栈底地址。所述栈底地址用于作为压栈的初始位置,此时中断栈空间是不具有数据元素的,也就是处于空闲状态,可以为后续的中断事件做准备。
进一步地,所述预设条件包括:所述中央处理器对所述中断任务处理程序执行完毕。在本实施例中,所述预设条件并不限于中断任务处理程序执行完毕这一种情况,也可以是接收来自于用户的外部操作指令等,以继续中央处理器对待处理任务的执行。
作为本实施例的一种优选实施方式,对于上述步骤S1,所述通过栈指针将所述待处理任务在中断处的上下文信息依次保存至预先构建的中断栈空间,包括:
获取所述中断栈空间的栈底地址,并将所述栈指针指向所述中断栈空间的栈底;
通过所述栈指针,将所述待处理任务在中断处的上下文信息依次保存至预先构建的中断栈空间。可选地,所述上下文信息包括但不限于所述待处理任务所需的寄存器信息(也可以是当前所有的寄存器信息)、局部变量和函数临时值等,这样,在任务需要恢复执行时,可以依据所述在中断处的上下文信息,对待处理任务继续进行执行,以实现其对应的功能,当上下文信息包括寄存器信息、局部变量以及函数临时值时,可以确保待处理任务的功能最大程度的实现。信息类型的选择,根据待处理任务所需实现的内容进行确定。需要说明的是,将栈指针指向中断栈空间的栈底只是其中一种优选实施方式,主要针对中断栈空间为空闲这一应用场景,实际应用中,中断栈空间也可以并非空闲状态的,譬如可以是针对非空的中断栈空间进行压栈。
优选地,所述栈指针可以对应通用寄存器r1也可以是其他寄存器,在栈指针对应通用寄存器时,考虑到通用寄存器在处理器中数量多、使用频度高等特点,可以通过其指向中断栈空间的栈底,相比其他寄存器可以灵活、有序地实现中断栈空间数据的入栈和出栈,提高中断栈空间数据的存取效率。所述中断事件包括但不限于外部设备的中断事件(例如鼠标、手柄或键盘等外部的输入设备)或内部定时器的中断事件等,譬如,当用户使用外部设备譬如鼠标、手柄或者键盘时,这些外部设备可以与基于Hostboot系统的平台通信连接,在发生中断事件时,可以确保本实施例基于Hostboot系统的平台能检测到该中断事件,以触发本实施例提供的基于独立中断栈的任务处理方法,使中断栈可以准确承接到该中断事件;另一方面,中断事件也可以通过平台内部的定时器,在一个设定的时间点进行触发,以确保任务处理的有序性。
作为一种优选方案,所述任务处理方法还包括:在所述待处理任务执行完毕时,将所述中断栈空间内的数据清空。此时中断栈空间又变为空的状态,可以用于应对下一次的压栈。此时,技术人员可以检查任务栈或中断栈,及时发现栈溢出或者被踩等情况,进一步提高可维护性和可观测性。
相应的,参照图3,本发明实施例还提供了一种基于独立中断栈的任务处理方法的应用实施例,包括:
步骤S11,在hostboot系统中分配一段独立的内存作为中断栈空间,并记录中断栈空间的栈底地址,并标记为stack_bottom_address。此时中断栈空间可以处于空闲状态。
步骤S12,在执行某一任务的过程中,发生中断事件时(事件可以是外部键盘鼠标等设备中断或内部timer定时中断等),程序开始处理中断,具体包括:
(1)将栈指针stack pointer(比如r1或其他寄存器)指向中断栈空间的栈底地址stack_bottom_address。
(2)保存中断上下文。即把所有寄存器信息逐一的通过stack pointer保存到中断栈。此时中断栈由空闲状态变为使用状态。
(3)然后中央处理器开始执行中断服务程序,即该中断事件。
(4)执行完后需要恢复现场,此时将中断栈空间中的寄存器信息恢复到原寄存器,返回到原代码被打断的位置。
步骤S13,继续中断打断前的任务处理。此时中断栈又重新变为空闲的状态,可以用于下一次中断事件的处理。
相应的,参照图4,本发明实施例还提供了一种基于独立中断栈的任务处理装置,应用于基于Hostboot系统的平台,所述平台还包括中央处理器,所述任务处理装置包括中断栈空间配置模101和处理模块102;其中,
所述中断栈空间配置模块101,用于在待处理任务执行的过程中检测到中断事件时,通过栈指针将所述待处理任务在中断处的上下文信息依次保存至预先构建的中断栈空间;
所述处理模块102,用于当符合所述待处理任务需要恢复执行的预设条件时,将所述在中断处的上下文信息以及所述中断事件对应的中断任务处理程序执行过程中所产生的压栈信息,保存到程序计数器,以使所述中央处理器从所述中断处继续执行所述待处理任务。
作为一种优选实施方式,所述预设条件包括:所述中央处理器对所述中断任务处理程序执行完毕。
作为一种优选实施方式,所述中断栈空间配置模块101通过栈指针将所述待处理任务在中断处的上下文信息依次保存至预先构建的中断栈空间,包括:
所述中断栈空间配置模块101获取所述中断栈空间的栈底地址,并将所述栈指针指向所述中断栈空间的栈底;
通过所述栈指针,将所述待处理任务在中断处的上下文信息依次保存至预先构建的中断栈空间。
作为一种优选实施方式,所述栈指针对应于通用寄存器。
作为一种优选实施方式,所述中断事件包括外部设备的中断事件或定时器的中断事件。
作为一种优选实施方式,所述上下文信息包括所述待处理任务所需的寄存器信息、局部变量和函数临时值。
作为一种优选实施方式,所述任务处理装置还包括中断栈空间清空模块,所述中断栈空间清空模块用于:在所述待处理任务执行完毕时,将所述中断栈空间内的数据清空。
相应的,本发明实施例还提供了一种包括处理器、存储器以及存储在所述存储器中且被配置为由所述处理器执行的计算机程序,所述处理器执行所述计算机程序时实现所述的基于独立中断栈的任务处理方法。
所述处理器可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等,所述处理器是所述终端的控制中心,利用各种接口和线路连接整个终端的各个部分。
所述存储器可用于存储所述计算机程序,所述处理器通过运行或执行存储在所述存储器内的计算机程序,以及调用存储在存储器内的数据,实现所述终端的各种功能。所述存储器可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据手机的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如硬盘、内存、插接式硬盘,智能存储卡(SmartMedia Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)、至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
相应的,本发明实施例还提供了一种所述计算机可读存储介质包括存储的计算机程序,其中,在所述计算机程序运行时控制所述计算机可读存储介质所在设备执行所述的基于独立中断栈的任务处理方法。
其中,所述基于独立中断栈的任务处理装置集成的模块如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。
相比于现有技术,本发明实施例具有如下有益效果:
本发明实施例提供了一种基于独立中断栈的任务处理方法、装置、终端设备及计算机可读存储介质,所述任务处理方法应用于基于Hostboot系统的平台,所述平台还包括中央处理器,通过栈指针将所述待处理任务在中断处的上下文信息依次保存至预先构建的中断栈空间,当符合所述待处理任务需要恢复执行的预设条件时,将中断处的上下文信息以及中断任务处理程序执行过程中所产生的压栈信息保存到程序计数器,这样,在系统发生中断时以及技术人员需要对中断事件进行检查时,只需要通过检查中断栈空间,就可以获得中断事件以及待处理任务相关的信息,提高了hostboot系统任务处理过程中的可维护性以及可观测性,有效降低了技术人员的工作量,提高了便捷性;另外,当检测到中断事件时,通过栈指针将待处理任务在中断处的上下文信息依次保存至预先构建的中断栈空间,这样,中央处理器可以通过中断栈空间对中断事件进行处理,而在符合所述待处理任务需要恢复执行的预设条件时,将所述在中断处的上下文信息以及所述中断事件对应的中断任务处理程序执行过程中所产生的压栈信息,保存到程序计数器,可以使所述中央处理器从所述中断处继续执行所述待处理任务,即本实施例任务处理的机制实现了任务处理和中断处理两种事件类型的解耦,这样,在任务的处理过程中时,不需要每个任务均考虑中断的情况,只需任务本身的栈所需的空间满足任务的执行要求,相比现有技术节省了中断处理所对应内存空间,避免了任务栈空间占用额外的内存,提高了内存空间在任务执行时间周期内的利用率。
以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步的详细说明,应当理解,以上所述仅为本发明的具体实施例而已,并不用于限定本发明的保护范围。特别指出,对于本领域技术人员来说,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种基于独立中断栈的任务处理方法,其特征在于,应用于基于Hostboot系统的平台,所述平台还包括中央处理器,所述任务处理方法包括:
在待处理任务执行的过程中检测到中断事件时,通过栈指针将所述待处理任务在中断处的上下文信息依次保存至预先构建的中断栈空间;
当符合所述待处理任务需要恢复执行的预设条件时,将所述在中断处的上下文信息以及所述中断事件对应的中断任务处理程序执行过程中所产生的压栈信息,保存到程序计数器,以使所述中央处理器从所述中断处继续执行所述待处理任务。
2.如权利要求1所述的一种基于独立中断栈的任务处理方法,其特征在于,所述预设条件包括:所述中央处理器对所述中断任务处理程序执行完毕。
3.如权利要求1所述的一种基于独立中断栈的任务处理方法,其特征在于,所述通过栈指针将所述待处理任务在中断处的上下文信息依次保存至预先构建的中断栈空间,包括:
获取所述中断栈空间的栈底地址,并将所述栈指针指向所述中断栈空间的栈底;
通过所述栈指针,将所述待处理任务在中断处的上下文信息依次保存至预先构建的中断栈空间。
4.如权利要求3所述的一种基于独立中断栈的任务处理方法,其特征在于,所述栈指针对应于通用寄存器。
5.如权利要求1所述的一种基于独立中断栈的任务处理方法,其特征在于,所述中断事件包括外部设备的中断事件或定时器的中断事件。
6.如权利要求1所述的一种基于独立中断栈的任务处理方法,其特征在于,所述上下文信息包括所述待处理任务所需的寄存器信息、局部变量和函数临时值。
7.如权利要求1至6任意一项所述的一种基于独立中断栈的任务处理方法,其特征在于,所述任务处理方法还包括:在所述待处理任务执行完毕时,将所述中断栈空间内的数据清空。
8.一种基于独立中断栈的任务处理装置,其特征在于,应用于基于Hostboot系统的平台,所述平台还包括中央处理器,所述任务处理装置包括中断栈空间配置模块和处理模块;其中,
所述中断栈空间配置模块,用于在待处理任务执行的过程中检测到中断事件时,通过栈指针将所述待处理任务在中断处的上下文信息依次保存至预先构建的中断栈空间;
所述处理模块,用于当符合所述待处理任务需要恢复执行的预设条件时,将所述在中断处的上下文信息以及所述中断事件对应的中断任务处理程序执行过程中所产生的压栈信息,保存到程序计数器,以使所述中央处理器从所述中断处继续执行所述待处理任务。
9.一种终端设备,其特征在于,包括处理器、存储器以及存储在所述存储器中且被配置为由所述处理器执行的计算机程序,所述处理器执行所述计算机程序时实现如权利要求1至7中任意一项所述的基于独立中断栈的任务处理方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质包括存储的计算机程序,其中,在所述计算机程序运行时控制所述计算机可读存储介质所在设备执行如权利要求1至7中任意一项所述的基于独立中断栈的任务处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311163008.5A CN117193979B (zh) | 2023-09-08 | 2023-09-08 | 基于独立中断栈的任务处理方法、装置、终端设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311163008.5A CN117193979B (zh) | 2023-09-08 | 2023-09-08 | 基于独立中断栈的任务处理方法、装置、终端设备及介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117193979A true CN117193979A (zh) | 2023-12-08 |
CN117193979B CN117193979B (zh) | 2024-02-23 |
Family
ID=88986486
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311163008.5A Active CN117193979B (zh) | 2023-09-08 | 2023-09-08 | 基于独立中断栈的任务处理方法、装置、终端设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117193979B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102012842A (zh) * | 2010-11-09 | 2011-04-13 | 北京神舟航天软件技术有限公司 | 基于独立中断栈的中断退出时抢占调度方法 |
CN103778009A (zh) * | 2012-10-18 | 2014-05-07 | 深圳市中兴微电子技术有限公司 | 中断处理方法及装置 |
CN105786597A (zh) * | 2014-12-17 | 2016-07-20 | 普天信息技术有限公司 | uCOS-III操作系统实现任务切换的方法及装置 |
US20180203722A1 (en) * | 2017-01-19 | 2018-07-19 | Samsung Electronics Co., Ltd. | Method for reducing interrupt latency in embedded systems |
-
2023
- 2023-09-08 CN CN202311163008.5A patent/CN117193979B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102012842A (zh) * | 2010-11-09 | 2011-04-13 | 北京神舟航天软件技术有限公司 | 基于独立中断栈的中断退出时抢占调度方法 |
CN103778009A (zh) * | 2012-10-18 | 2014-05-07 | 深圳市中兴微电子技术有限公司 | 中断处理方法及装置 |
CN105786597A (zh) * | 2014-12-17 | 2016-07-20 | 普天信息技术有限公司 | uCOS-III操作系统实现任务切换的方法及装置 |
US20180203722A1 (en) * | 2017-01-19 | 2018-07-19 | Samsung Electronics Co., Ltd. | Method for reducing interrupt latency in embedded systems |
Also Published As
Publication number | Publication date |
---|---|
CN117193979B (zh) | 2024-02-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11340803B2 (en) | Method for configuring resources, electronic device and computer program product | |
US6728722B1 (en) | General data structure for describing logical data spaces | |
US7840773B1 (en) | Providing memory management within a system management mode | |
CN111124704B (zh) | 一种数据处理方法、处理器及终端设备 | |
CN100511156C (zh) | 强制性地终止输入/输出操作阻止的线程的设备和方法 | |
CN113791917A (zh) | 延迟消息处理方法、装置与系统 | |
US6832266B1 (en) | Simplified microkernel application programming interface | |
EP1347380A2 (en) | SMbus notifications | |
WO2022042127A1 (zh) | 一种协程切换的方法、装置及设备 | |
CN110209548B (zh) | 服务控制方法、系统、电子设备及计算机可读存储介质 | |
CN117193979B (zh) | 基于独立中断栈的任务处理方法、装置、终端设备及介质 | |
WO2024113884A1 (zh) | 外接设备的资源分配方法、装置、服务器及存储介质 | |
CN113821220A (zh) | 一种linux操作系统的安装方法和装置 | |
CN116361106A (zh) | 一种日志处理方法、装置、电子设备及存储介质 | |
US20230393782A1 (en) | Io request pipeline processing device, method and system, and storage medium | |
EP3679468A1 (en) | Controller event queues | |
CN114911538A (zh) | 一种运行系统的启动方法及计算设备 | |
US7584328B2 (en) | Method, apparatus, and a system for efficient context switch | |
US6865579B1 (en) | Simplified thread control block design | |
CN112231090A (zh) | 应用进程管理方法、装置及终端设备 | |
KR100658918B1 (ko) | 블록 단위 입출력 명령어를 이용한 시스템 전역 변수초기화 장치 및 그 방법 | |
CN117093345B (zh) | 任务链表的执行方法、装置、终端设备及存储介质 | |
CN111669358A (zh) | 一种批量处理vrouter网络隔离空间的方法和装置 | |
KR100401560B1 (ko) | 운영체제의 커널 스택 동적 할당 방법 | |
WO2003075167A1 (en) | Method and arrangement for virtual direct memory access |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |