一种实现批量系统调用的方法及装置制造方法及图纸

技术编号:34462912 阅读:39 留言:0更新日期:2022-08-10 08:33
本申请公开了一种实现批量系统调用的方法及相关装置,该方法包括:将可执行程序加载到用户态的虚拟地址空间,该可执行程序是由批量系统调用的源码编译得到,且包含批量系统调用的抽象语法树AST数据,然后通过调用第一指令调用内核,使得内核根据用户态的虚拟地址空间中的AST数据生成二进制代码,以供批量系统调用。由于AST这种数据结构难以被插入恶意的数据,所以供批量系统调用的二进制代码中难以被插入恶意的代码,从而避免恶意的代码造成内核在运行批量系统调用的二进制代码时出现错误或时延过长,提高了批量系统调用的安全性。提高了批量系统调用的安全性。提高了批量系统调用的安全性。

【技术实现步骤摘要】
一种实现批量系统调用的方法及装置


[0001]本申请实施例涉及操作系统
,尤其涉及一种实现批量系统调用的方法及装置。

技术介绍

[0002]微内核是目前实时操作系统领域广泛使用的内核架构。其特点是复杂性较小,安全性较高,且具备实时性。
[0003]在微内核架构中,系统程序与应用程序类似,也运行在用户态。因此,运行在用户态的应用程序需要通过内部进程通信(Inter

Process Communication,IPC)来调用运行在用户态的系统程序。应用程序在运行过程中,往往会多次调用运行在用户态的系统程序,而对系统程序的多次调用会导致频繁的上下文切换,进而使得操作系统的性能下降。
[0004]目前,主要的解决方法主要是将多个系统调用(System Call)打包成批量系统调用(Batch System Call),通过批量系统调用一次性实现多次系统调用,从而减少IPC的次数,提高操作系统的性能。
[0005]为了实现批量系统调用,会先将实现批量系统调用的二进制代码注册到内核中;当需要进行批量系统调用本文档来自技高网...

【技术保护点】

【技术特征摘要】
1.一种实现批量系统调用的方法,其特征在于,包括:将可执行程序加载到用户态的虚拟地址空间,所述可执行程序是由批量系统调用的源码编译得到,且所述可执行程序包含所述批量系统调用的抽象语法树AST数据;调用第一指令,所述第一指令用于调用内核从所述用户态的虚拟地址空间中读取所述AST数据,并基于所述AST数据生成存储在内核态的虚拟地址空间的用于实现所述批量系统调用的二进制代码。2.根据权利要求1所述的方法,其特征在于,所述可执行程序还包含所述批量系统调用的调用桩代码,所述方法还包括:当执行所述批量系统调用的调用桩代码时,调用第二指令,所述第二指令用于调用所述内核执行用于实现所述批量系统调用的二进制代码。3.根据权利要求2所述的方法,其特征在于,在所述调用第一指令之后,所述方法还包括:接收对于所述第一指令的调用结果,所述调用结果中包含用于实现所述批量系统调用的二进制代码的标识;所述第二指令中携带所述标识,用于调用所述内核执行所述标识对应的用于实现所述批量系统调用的二进制代码。4.根据权利要求1至3中任意一项所述的方法,其特征在于,所述批量系统调用的源码包含所述批量系统调用的时延信息,所述AST数据包含所述批量系统调用的时延信息;所述第一指令还用于调用所述内核基于所述AST数据中的所述时延信息计算所述批量系统调用的最坏执行时间。5.根据权利要求4所述的方法,其特征在于,所述第一指令还用于调用所述内核将所述最坏执行时间存入所述内核态的虚拟地址空间。6.一种实现批量系统调用的方法,其特征在于,包括:响应于第一指令,内核从用户态的虚拟地址空间中读取批量系统调用的抽象语法树AST数据;所述内核基于所述AST数据生成用于实现所述批量系统调用的二进制代码;所述内核将生成的二进制代码存入内核态的虚拟地址空间。7.根据权利要求6所述的方法,其特征在于,所述方法还包括:响应于第二指令,所述内核执行用于实现所述批量系统调用的二进制代码。8.根据权利要求7所述的方法,其特征在于,所述第二指令中携带用于实现所述批量系统调用的二进制代码的标识;所述响应于第二指令,所述内核执行用于实现所述批量系统调用的二进制代码包括:响应于第二指令,所述内核执行所述标识对应的用于实现所述批量系统调用的二进制代码。9.根据权利要求6至8中任意一项所述的方法,其特征在于,所述AST数据包含所述批...

【专利技术属性】
技术研发人员:高欣文羽中方彬何海
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1