【技术实现步骤摘要】
用户态中断请求的处理方法及装置
[0001]本申请涉及通信
,并具体涉及一种用户态中断请求的处理方法及装置。
技术介绍
[0002]中央处理器(central process unit,CPU)存在两种运行状态级别内核态和用户态,程序可以运行在这两种运行级别中,其中,内核态的执行级别高于用户态。目前大量第三方驱动代码质量良莠不齐,当驱动代码运行在内核态时,如果第三方驱动代码出现错误,会影响内核代码运行的安全性。为了提升系统的安全性,将第三方驱动置于用户态成了未来的发展趋势,也就是将第三方驱动与内核态隔离。现代微内核已经选用了用户态驱动的架构,例如,Fuchsia操作系统、seL4操作系统均采用类似的设计。
[0003]驱动的运行离不开中断处理,用户态驱动需要用户态中断,因此用户态中断请求的处理时延会对用户态驱动产生很大的影响,并将直接影响产品的竞争力。例如,外围设备的输入输出、触屏、网络的收包发包等性能的保证都依赖于中断处理的低时延。因此,如何降低用户态中断处理的时延是亟待解决的问题。
技术实现思路
[0004]本申请提供一种用户态中断请求的处理方法及装置,能够有效降低用户态中断处理时延,从而保证了用户态驱动性能。
[0005]第一方面,提供了一种用户态中断请求的处理方法,以中央处理器CPU为例,包括:中央处理器CPU在内核态对第一中断异常处理程序的内核地址进行脱敏处理,以获得第二中断异常处理程序;CPU在内核态获取用户态中断请求,并执行第二中断异常处理程序,以确定对应于用户态中 ...
【技术保护点】
【技术特征摘要】
1.一种用户态中断请求的处理方法,其特征在于,包括:处理器在内核态对第一中断异常处理程序的内核地址进行脱敏处理,以获得第二中断异常处理程序;所述处理器在所述内核态获取用户态中断请求,并执行所述第二中断异常处理程序,以确定对应于所述用户态中断请求的用户态中断处理程序;所述处理器在所述内核态通过第一特权级切换,切换至用户态,其中,所述第一特权级切换为无上下文恢复的切换;所述处理器在所述用户态执行所述用户态中断处理程序;所述处理器在所述用户态通过第二特权级切换,切换至所述内核态,其中,所述第二特权级切换为无上下文存储的切换。2.根据权利要求1所述的方法,其特征在于,所述处理器在内核态对第一中断异常处理程序的内核地址进行脱敏处理包括:覆盖或删除所述第一中断异常处理程序中的所述内核地址和所述内核地址中的信息。3.根据权利要求1所述的方法,其特征在于,所述执行所述第二中断异常处理程序,以确定对应于所述用户态中断请求的用户态中断处理程序包括:唤醒所述用户态中断请求对应的用户态中断处理线程,其中,所述用户态中断处理线程包括所述用户态中断处理程序;或者获得所述用户态中断请求对应的所述用户态中断处理程序的地址。4.根据权利要求3所述的方法,其特征在于,所述获得所述用户态中断请求对应的所述用户态中断处理程序的地址包括:获得所述用户态中断请求对应的中断号;获得所述中断号对应的所述用户态中断处理程序的地址。5.根据权利要求4所述的方法,其特征在于,所述获得所述用户态中断请求对应的中断号包括:所述处理器在内核态读取中断控制器的寄存器,以获得所述用户态中断请求对应的中断号,所述中断控制器获得应答消息,所述应答消息用于指示所述中断控制器屏蔽和所述用户态中断请求的优先级相同的中断请求,或者屏蔽低于所述用户态中断请求的优先级的中断请求。6.根据权利要求1至5任一项所述的方法,其特征在于,所述方法还包括:所述处理器在所述内核态给中断控制器设置中断优先级组,所述中断优先级组包括第一中断优先级组和第二中断优先级组,其中,所述第一中断优先级组包括内核态中断请求,所述第二中断优先级组包括和所述用户态中断请求的优先级相同的中断请求,或者低于所述用户态中断请求的优先级的中断请求,所述第一中断优先级组的优先级高于第二中断优先级组;所述处理器在所述内核态给所述中断控制器设置抢占操作,所述抢占操作包括第一中断优先级组抢占第二中断优先级组。7.根据权利要求1至6任一项中所述的方法,其特征在于,所述处理器在所述用户态通过第二特权级切换,切换至所述内核态之后,所述处理器在所述内核态将结束中断EOI写入中断控制器的寄存器,所述中断控制器
收到所述EOI,所述EOI用于指示所述中断控制器解除屏蔽所述和所述用户态中断请求的优先级相同的中断请求,或者屏蔽低于所述用户态中断请求的优先级的中断请求。8.根据权利要求1至7任一项所述的方法,其特征在于,所述方法还包括:所述处理器在所述用户态执行所述用户态中断处理程序时,所述处理器在所述内核态并发检测所述用户态中断处理程序的结果状态。9.根据权利要求8所述的方法,其特征在于,所述方法还包括:如果所述用户态中断处理程序的结果状态指示未结束,所述处理器在所述内核态中禁用所述用户态中断请求,并将结束中断EOI写入中断控制器的寄存器。10.一种用户态中断请求的处理装置,其特征在于,所述处理装置包括初始化模块、中断异常处理模块、特权级切换模块和用户态中断处理模块;所述初始化模块在内核态用于对第一中断异常处理程序的内核地址进行脱敏处理,以获得第二中断异常处理程序;所述中断异常处理模块在所述内核态用于获取用户态中断请求,并执行所述第二中断异常处理程序,以确定对应于所述用户态中断请求的用户态中断处理程序;所述特权级切换模块在所述内核态用于通过第一特权级切换,切换至用户态;所述用户态中断处理模块在所述用户态用于执行所述用户态中断处理...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。