本申请提供一种微内核操作系统中内存地址转换方法、装置、设备及介质。在该方法中,通过应用程序进程根据虚拟内存地址,调用驱动程序,进而驱动程序对应的驱动程序线程调用用户态内存管理程序的内存地址转换接口后,用户态内存管理线程根据虚拟内存地址,从内存块集合中查找虚拟内存地址对应的目标内存块,再根据虚拟内存地址,目标内存块中存储的内存块起始物理地址、内存块起始虚拟地址,确定虚拟内存地址对应的物理内存地址。本方案通过在用户空间的用户态内存管理程序进行内存地址的转换,无需进入内核空间,有效提高了内存地址转换效率。率。率。
【技术实现步骤摘要】
微内核操作系统中内存地址转换方法、装置、设备及介质
[0001]本申请涉及计算机领域,尤其涉及一种微内核操作系统中内存地址转换方法、装置、设备及介质。
技术介绍
[0002]应用程序进程在运行过程中,可直接访问内存的虚拟地址,而应用程序进程在进行一些涉及硬件外设的操作时,需要访问内存的物理地址,这就需要驱动程序进程和内存管理进程,实现虚拟地址与物理地址之间的内存地址转换。
[0003]现有技术中,对于微内核操作系统,应用程序进程、驱动程序进程和内存管理进程位于用户空间,在进行内存地址转换时,应用程序进程调用驱动程序进程,驱动程序进程通过进程间通信(Inter
‑
Process Communication,简称IPC)的方式向内存管理进程发送内存地址转换请求。内存管理进程完成内存地址转换,进而将转换后的地址通过IPC的方式返回至驱动程序进程。
[0004]综上所述,现有的微内核操作系统中内存地址转换方法需要IPC进行通信,而IPC需要由用户空间到内核空间再到用户空间,导致内存地址转换效率较低。
技术实现思路
[0005]本申请实施例提供一种微内核操作系统中内存地址转换方法、装置、设备及介质,用于解决现有的微内核操作系统中内存地址转换方法需要IPC进行通信,而IPC需要由用户空间到内核空间再到用户空间,导致内存地址转换效率较低的问题。
[0006]第一方面,本申请实施例提供一种微内核操作系统中内存地址转换方法,应用于安装有微内核操作系统的电子设备,所述微内核操作系统包括应用程序、驱动程序、用户态内存管理程序,所述方法包括:
[0007]所述应用程序对应的应用程序进程根据虚拟内存地址,调用所述驱动程序;
[0008]所述驱动程序对应的驱动程序线程调用所述用户态内存管理程序的内存地址转换接口,所述驱动程序包括所述用户态内存管理程序;
[0009]所述用户态内存管理程序对应的用户态内存管理线程根据所述虚拟内存地址,从内存块集合中查找所述虚拟内存地址对应的目标内存块;
[0010]所述用户态内存管理线程根据所述虚拟内存地址,所述目标内存块中存储的内存块起始物理地址、内存块起始虚拟地址,确定所述虚拟内存地址对应的物理内存地址。
[0011]在一种具体实施方式中,所述用户态内存管理线程根据所述虚拟内存地址,所述目标内存块中存储的内存块起始物理地址、内存块起始虚拟地址,确定所述虚拟内存地址对应的物理内存地址,包括:
[0012]所述用户态内存管理线程采用公式:P=PS+(V
‑
VS),计算得到所述虚拟内存地址对应的物理内存地址,其中,P表示所述虚拟内存地址对应的物理内存地址,PS表示目标内存块中存储的内存块起始物理地址,V表示所述虚拟内存地址,VS表示目标内存块中存储的
内存块起始虚拟地址。
[0013]在一种具体实施方式中,所述方法还包括:
[0014]所述驱动程序线程获取物理外设存储数据的物理内存地址;
[0015]所述驱动程序线程调用所述用户态内存管理程序的内存地址转换接口;
[0016]所述用户态内存管理线程根据所述物理内存地址,从内存块集合中查找所述物理内存地址对应的目标内存块;
[0017]所述用户态内存管理线程根据所述物理内存地址,所述目标内存块中存储的内存块起始物理地址、内存块起始虚拟地址,确定所述物理内存地址对应的虚拟内存地址;
[0018]所述驱动程序线程将所述物理内存地址对应的虚拟内存地址发送至应用程序进程。
[0019]在一种具体实施方式中,所述用户态内存管理线程根据所述物理内存地址,所述目标内存块中存储的内存块起始物理地址、内存块起始虚拟地址,确定所述物理内存地址对应的虚拟内存地址,包括:
[0020]所述用户态内存管理线程采用公式:V=VS+(P
‑
PS),计算得到所述物理内存地址对应的虚拟内存地址,其中,V表示所述物理内存地址对应的虚拟内存地址,PS表示目标内存块中存储的内存块起始物理地址,P表示所述物理内存地址,VS表示目标内存块中存储的内存块起始虚拟地址。
[0021]在一种具体实施方式中,所述方法还包括:
[0022]所述用户态内存管理线程通过内核态内存管理程序,得到内存块、所述内存块的内存块起始物理地址、所述内存块的内存块起始虚拟地址、所述内存块的容量;
[0023]所述用户态内存管理线程对于所述内存块中的每个物理页,生成所述物理页对应的页描述符;
[0024]所述用户态内存管理线程将所述内存块的内存块起始物理地址、所述内存块的内存块起始虚拟地址、所述内存块的容量、所述内存块中每个物理页对应的页描述符存储至所述内存块中。
[0025]在一种具体实施方式中,所述方法还包括:
[0026]所述用户态内存管理线程将所述内存块与所述用户态内存管理线程已获取的内存块之间建立红黑树的数据结构,存储至所述内存块集合中。
[0027]第二方面,本申请实施例提供一种微内核操作系统中内存地址转换装置,包括:
[0028]通信模块,用于通过应用程序对应的应用程序进程据虚拟内存地址,调用驱动程序;
[0029]转换模块,用于:
[0030]通过所述驱动程序对应的驱动程序线程调用用户态内存管理程序的内存地址转换接口,所述驱动程序包括所述用户态内存管理程序;
[0031]通过所述用户态内存管理程序对应的用户态内存管理线程根据所述虚拟内存地址,从内存块集合中查找所述虚拟内存地址对应的目标内存块;
[0032]通过所述用户态内存管理线程根据所述虚拟内存地址,所述目标内存块中存储的内存块起始物理地址、内存块起始虚拟地址,确定所述虚拟内存地址对应的物理内存地址。
[0033]第三方面,本申请实施例提供一种电子设备,包括:
[0034]处理器,存储器,通信接口;
[0035]所述存储器用于存储所述处理器的可执行指令;
[0036]其中,所述处理器配置为经由执行所述可执行指令来执行第一方面任一项所述的微内核操作系统中内存地址转换方法。
[0037]第四方面,本申请实施例提供一种可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现第一方面任一项所述的微内核操作系统中内存地址转换方法。
[0038]第五方面,本申请实施例提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时用于实现第一方面任一项所述的微内核操作系统中内存地址转换方法。
[0039]本申请实施例提供的微内核操作系统中内存地址转换方法、装置、设备及介质,通过应用程序进程根据虚拟内存地址,调用驱动程序,进而驱动程序对应的驱动程序线程调用用户态内存管理程序的内存地址转换接口后,用户态内存管理线程根据虚拟内存地址,从内存块集合中查找虚拟内存地址对应的目标内存块,再根据虚拟内存地址,目标内存块中存储的内存块起始物理地址、内存块起本文档来自技高网...
【技术保护点】
【技术特征摘要】
1.一种微内核操作系统中内存地址转换方法,其特征在于,应用于安装有微内核操作系统的电子设备,所述微内核操作系统包括应用程序、驱动程序、用户态内存管理程序,所述方法包括:所述应用程序对应的应用程序进程根据虚拟内存地址,调用所述驱动程序址;所述驱动程序对应的驱动程序线程调用所述用户态内存管理程序的内存地址转换接口,所述驱动程序包括所述用户态内存管理程序;所述用户态内存管理程序对应的用户态内存管理线程根据所述虚拟内存地址,从内存块集合中查找所述虚拟内存地址对应的目标内存块;所述用户态内存管理线程根据所述虚拟内存地址,所述目标内存块中存储的内存块起始物理地址、内存块起始虚拟地址,确定所述虚拟内存地址对应的物理内存地址。2.根据权利要求1所述的方法,其特征在于,所述用户态内存管理线程根据所述虚拟内存地址,所述目标内存块中存储的内存块起始物理地址、内存块起始虚拟地址,确定所述虚拟内存地址对应的物理内存地址,包括:所述用户态内存管理线程采用公式:P=PS+(V
‑
VS),计算得到所述虚拟内存地址对应的物理内存地址,其中,P表示所述虚拟内存地址对应的物理内存地址,PS表示目标内存块中存储的内存块起始物理地址,V表示所述虚拟内存地址,VS表示目标内存块中存储的内存块起始虚拟地址。3.根据权利要求1或2所述的方法,其特征在于,所述方法还包括:所述驱动程序线程获取物理外设存储数据的物理内存地址;所述驱动程序线程调用所述用户态内存管理程序的内存地址转换接口;所述用户态内存管理线程根据所述物理内存地址,从内存块集合中查找所述物理内存地址对应的目标内存块;所述用户态内存管理线程根据所述物理内存地址,所述目标内存块中存储的内存块起始物理地址、内存块起始虚拟地址,确定所述物理内存地址对应的虚拟内存地址;所述驱动程序线程将所述物理内存地址对应的虚拟内存地址发送至应用程序进程。4.根据权利要求3所述的方法,其特征在于,所述用户态内存管理线程根据所述物理内存地址,所述目标内存块中存储的内存块起始物理地址、内存块起始虚拟地址,确定所述物理内存地址对应的虚拟内存地址,包括:所述用户态内存管理线程采用公式:V=VS+(P
‑
PS),计算得到所述物理内存...
【专利技术属性】
技术研发人员:傅嘉凌,谭伟民,聂韬,陈凌君,胡志刚,
申请(专利权)人:斑马网络技术有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。