一种进程中断处理的方法及装置制造方法

文档序号:6508518阅读:185来源:国知局
一种进程中断处理的方法及装置制造方法
【专利摘要】本发明公开了一种进程中断处理的方法,包括:获取进程中断所对应的服务线程;调用所述服务线程,并使用所述服务线程处理所述中断;处理中断后,切换到所述进程并继续执行所述进程。本发明实施例还提供相应的装置。本发明实施例提供的进程中断处理的方法,可以直接调用对应该中断的服务线程,处理中断后,可以切换到中断对应的进程,继续执行该进程,从而提高了中断的处理速度,缩短了处理中断的时间。
【专利说明】一种进程中断处理的方法及装置
【技术领域】
[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]图1是本发明实施例中进程中断处理的方法的一实施例示意图;[0042]图2是本发明实施例中进程中断处理的装置的一实施例示意图;
[0043]图3是本发明实施例中进程中断处理的装置的另一实施例示意图;
[0044]图4是本发明实施例中进程中断处理的装置的另一实施例示意图;
[0045]图5是本发明实施例中进程中断处理的装置的另一实施例示意图;
[0046]图6是本发明实施例中进程中断处理的装置的另一实施例示意图。
【具体实施方式】
[0047]本发明实施例提供一种进程中断处理的方法,可以缩短处理中断的时间,提高处理器的运行效率。本发明实施例还提供了相应的装置。以下分别进行详细说明。
[0048]下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0049]参阅图1,本发明实施例提供的进程中断处理的方法的一实施例包括:
[0050]IO1、获取进程中断所对应的服务线程。
[0051]102、调用所述服务线程,并使用所述服务线程处理所述中断。
[0052]103、处理中断后,切换到所述进程并继续执行所述进程。
[0053]本发明实施例采用获取进程中断所对应的服务线程;调用所述服务线程,并使用所述服务线程处理所述中断;处理中断后,切换到所述进程并继续执行所述进程。与现有技术中处理中断的过程中要经过多次的等待,耗时过长相比,本发明实施例提供的进程中断处理的方法,可以直接调用对应该中断的服务线程,处理中断后,可以切换到中断对应的进程,继续执行该进程,从而提高了中断的处理速度,缩短了处理中断的时间。
[0054]可选地,在上述图1对应的实施例的基础上,本发明实施例提供的进程中断处理的方法的一可选实施例中,所述获取进程中断所对应的服务线程,可以包括:
[0055]获取进程中断指令,所述中断指令中携带所述中断的编号;
[0056]根据所述中断的编号,从预置的编号与中断处理服务线程的映射关系中查找所述中断的编号对应的服务线程;
[0057]对应的,所述调用所述服务线程,可以包括:
[0058]调用所述中断的编号对应的服务线程。
[0059]本发明实施例中,可以给每个中断预先分配一个编号,并建立中断的编号与对应的服务线程的映射关系,根据中断的编号查找对应的服务线程,可以快速的查找到该中断对应的服务线程。
[0060]可选地,在上述图1对应的实施例或图1对应的可选实施例的基础上,本发明实施例提供的另一可选实施例中,所述获取进程中断所对应的服务线程的步骤之后,还可以包括:
[0061]获取所述服务线程的运行地址;
[0062]建立所述服务线程的运行地址和所述进程的上下文的对应关系。
[0063]本发明实施例中,中断发生后,系统会自动保存中断进程的上下文,将中断进程的上下文存放到堆栈中,获取服务线程后,将服务线程的运行地址也推送到堆栈中,并建立服务线程的运行地址与进程上下文的对应关系,这样,可以根据该服务线程的运行地址找到对应的进程。
[0064]可选地,在上述图1对应的可选实施例的基础上,本发明实施例提供的另一可选实施例中,所述处理中断后,切换到所述进程并继续执行所述进程,可以包括:
[0065]处理中断后,根据所述服务线程的运行地址,切换到所述进程,并根据所述进程的上下文从所述进程中断处继续执行所述进程。
[0066]本发明实施例中,处理中断后,可以根据服务线程的运行地址直接找到对应的进程,继续处理该进程,以避免中断处理后,优先执行其他进程,导致该中断进程的处理滞后。
[0067]可选地,在上述图1对应的实施例或图1对应的可选实施例的基础上,本发明实施例提供的另一可选实施例中,所述使用所述服务线程处理所述中断,可以包括:
[0068]根据所述服务线程的注册类标识,将所述服务线程从等待队列中抽出;
[0069]使用所述服务线程处理所述中断。
[0070]本发明实施例中,服务线程都会提前注册一个类,每个服务线程都会有注册类标识,本发明实施例中的服务线程的注册类标识是优先级最高的类标识,所以服务线程进入内核态后,现有技术中该服务线程会在等待队列中排队,排到该服务线程后,才开始处理中断,本发明实施例中在该服务线程进入等待队列时,会根据所述服务线程的注册类标识将该服务线程直接从等待队列中抽出,使用所述服务线程处理所述中断。
[0071]参阅图2,本发明实施例提供的进程中断处理的装置的一实施例包括:
[0072]获取单元201,用于获取进程中断所对应的服务线程;
[0073]调用单元202,用于调用所述获取单元201获取的服务线程;
[0074]处理单元203,用于使用所述调用单元202调用的服务线程处理所述中断;
[0075]切换单元204,用于在所述处理单元203处理中断后,切换到所述进程并继续执行所述进程。
[0076]本发明实施例中,获取单元201获取进程中断所对应的服务线程;调用单元202调用所述获取单元201获取的服务线程;处理单元203使用所述调用单元202调用的服务线程处理所述中断;切换单元204在所述处理单元203处理中断后,切换到所述进程并继续执行所述进程。与现有技术中处理中断的过程中要经过多次的等待,耗时过长相比,本发明实施例提供的进程中断处理的装置,可以直接调用对应该中断的服务线程,处理中断后,可以切换到中断对应的进程,继续执行该进程,从而提高了中断的处理速度,缩短了处理中断的时间。
[0077]在上述图2对应的实施例的基础上,参阅图3,本发明实施例提供的进程中断处理的装置的另一实施例中,所述获取单元201包括:
[0078]获取子单元2011,用于获取进程中断指令,所述中断指令中携带所述中断的编号;
[0079]查找子单元2012,用于根据所述获取子单元2011获取的中断的编号,从预置的编号与中断处理服务线程的映射关系中查找所述中断的编号对应的服务线程;
[0080]所述调用单元202,用于调用所述中断的编号对应的服务线程。
[0081]在上述图2对应的实施例的基础上,参阅图4,本发明实施例提供的进程中断处理的装置的另一实施例中,所述装置还包括:[0082]所述获取单元201,用于获取所述服务线程的运行地址;
[0083]建立单元205,用于建立所述获取单元201获取的服务线程的运行地址和所述进程的上下文的对应关系。
[0084]在上述图2对应的实施例的基础上,本发明实施例提供的进程中断处理的装置的另一实施例中,所述装置还包括:
[0085]所述切换单元204,用于处理中断后,根据所述服务线程的运行地址,切换到所述进程,并根据所述进程的上下文从所述进程中断处继续执行所述进程。
[0086]在上述图2对应的实施例的基础上,参阅图5,本发明实施例提供的进程中断处理的装置的另一实施例中,所述处理单元203还包括:
[0087]抽出子单元2031,用于根据所述服务线程的注册类标识,将所述服务线程从等待队列中抽出;
[0088]处理子单元2032,用于使用所述抽出子单元2031抽出的所述服务线程处理所述中断。
[0089]本发明实施例还提供了一种计算机存储介质,该存储介质中存储有程序,该程序执行时,包括上述进程中断处理的部分或者全部步骤。
[0090]图6是本发明实施例进程中断处理的装置20的结构示意图。进程中断处理的装置20可包括输入设备210、输出设备220、处理器230和存储器240。
[0091]存储器240可以包括只读存储器和随机存取存储器,并向处理器230提供指令和数据。存储器240的一部分还可以包括非易失性随机存取存储器(NVRAM)。
[0092]存储器240存储了如下的元素,可执行模块或者数据结构,或者它们的子集,或者它们的扩展集:
[0093]操作指令:包括各种操作指令,用于实现各种操作。
[0094]操作系统:包括各种系统程序,用于实现各种基础业务以及处理基于硬件的任务。
[0095]在本发明实施例中,处理器230通过调用存储器240存储的操作指令(该操作指令可存储在操作系统中),执行如下操作:
[0096]获取进程中断所对应的服务线程;
[0097]调用所述服务线程,并使用所述服务线程处理所述中断;
[0098]处理中断后,切换到所述进程并继续执行所述进程。
[0099]本发明实施例提供的进程中断处理的方法,可以直接调用对应该中断的服务线程,处理中断后,可以切换到中断对应的进程,继续执行该进程,从而提高了中断的处理速度,缩短了处理中断的时间。
[0100]处理器230控制进程中断处理的装置20的操作,处理器230还可以称为CPU(Central Processing Unit,中央处理单元)。存储器240可以包括只读存储器和随机存取存储器,并向处理器230提供指令和数据。存储器240的一部分还可以包括非易失性随机存取存储器(NVRAM)。具体的应用中,进程中断处理的装置20的各个组件通过总线系统250耦合在一起,其中总线系统250除包括数据总线之外,还可以包括电源总线、控制总线和状态信号总线等。但是为了清楚说明起见,在图中将各种总线都标为总线系统250。
[0101]上述本发明实施例揭示的方法可以应用于处理器230中,或者由处理器230实现。处理器230可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器230中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器230可以是通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现成可编程门阵列(FPGA )或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器240,处理器230读取存储器240中的信息,结合其硬件完成上述方法的步骤。
[0102]可选地,处理器240获取进程中断指令,所述中断指令中携带所述中断的编号;根据所述中断的编号,从预置的编号与中断处理服务线程的映射关系中查找所述中断的编号对应的服务线程;调用所述中断的编号对应的服务线程。
[0103]可选地,处理器240还用于获取所述服务线程的运行地址;建立所述服务线程的运行地址和所述进程的上下文的对应关系。
[0104]可选地,处理器240用于处理中断后,根据所述服务线程的运行地址,切换到所述进程,并根据所述进程的上下文从所述进程中断处继续执行所述进程。
[0105]本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:ROM、RAM、磁盘或光盘等。
[0106]以上对本发明实施例所提供的进程中断处理的方法以及装置进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在【具体实施方式】及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
【权利要求】
1.一种进程中断处理的方法,其特征在于,包括:获取进程中断所对应的服务线程;调用所述服务线程,并使用所述服务线程处理所述中断;处理中断后,切换到所述进程并继续执行所述进程。
2.根据权利要求1所述的方法,其特征在于,所述获取进程中断所对应的服务线程,包括:获取进程中断指令,所述中断指令中携带所述中断的编号;根据所述中断的编号,从预置的编号与中断处理服务线程的映射关系中查找所述中断的编号对应的服务线程;对应的,所述调用所述服务线程,包括:调用所述中断的编号对应的服务线程。
3.根据权利要求1或2所述的方法,其特征在于,所述获取进程中断所对应的服务线程的步骤之后,还包括: 获取所述服务线程的运行地址;建立所述服务线程的运行地址和所述进程的上下文的对应关系。
4.根据权利要求3所述的方法,其特征在于,所述处理中断后,切换到所述进程并继续执行所述进程,包括:处理中断后,根据所述服务线程的运行地址,切换到所述进程,并根据所述进程的上下文从所述进程中断处继续执行所述进程。
5.根据权利要求1或2所述的方法,其特征在于,所述使用所述服务线程处理所述中断,包括:根据所述服务线程的注册类标识,将所述服务线程从等待队列中抽出;使用所述服务线程处理所述中断。
6.一种进程中断处理的装置,其特征在于,包括:获取单元,用于获取进程中断所对应的服务线程;调用单元,用于调用所述获取单元获取的服务线程;处理单元,用于使用所述调用单元调用的服务线程处理所述中断;切换单元,用于在所述处理单元处理中断后,切换到所述进程并继续执行所述进程。
7.根据权利要求6所述的装置,其特征在于,所述获取单元包括:获取子单元,用于获取进程中断指令,所述中断指令中携带所述中断的编号;查找子单元,用于根据所述获取子单元获取的中断的编号,从预置的编号与中断处理服务线程的映射关系中查找所述中断的编号对应的服务线程;所述调用单元,用于调用所述中断的编号对应的服务线程。
8.根据权利要求6或7所述的装置,其特征在于,所述装置还包括:所述获取单元,用于获取所述服务线程的运行地址;建立单元,用于建立所述获取单元获取的服务线程的运行地址和所述进程的上下文的对应关系。
9.根据权利要求8所述的装置,其特征在于,所述装置还包括:所述切换单元,用于处理中断后,根据所述服务线程的运行地址,切换到所述进程,并根据所述进程的上下文从所述进程中断处继续执行所述进程。
10.根据权利要求6或7所述的装置,其特征在于,所述处理单元还包括:抽出子单元,用于根据所述服务线程的注册类标识,将所述服务线程从等待队列中抽出;处理子单元,用于使 用所述抽出子单元抽出的所述服务线程处理所述中断。
【文档编号】G06F9/48GK103440169SQ201310367437
【公开日】2013年12月11日 申请日期:2013年8月21日 优先权日:2013年8月21日
【发明者】黄见辉, 冯富秋 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1