[发明专利]基于MPU的内存访问方法、装置、电子设备及存储介质在审
申请号: | 202210437892.6 | 申请日: | 2022-04-25 |
公开(公告)号: | CN114780446A | 公开(公告)日: | 2022-07-22 |
发明(设计)人: | 彭志航;隋平礼 | 申请(专利权)人: | 四川凝思软件有限公司 |
主分类号: | G06F12/02 | 分类号: | G06F12/02;G06F12/06;G06F9/50 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 610021 四川省成都市锦江区工*** | 国省代码: | 四川;51 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 mpu 内存 访问 方法 装置 电子设备 存储 介质 | ||
本发明提供了一种基于MPU的内存访问方法、装置、电子设备及存储介质,内存访问方法包括:根据线程实际所需访问的内存段建立灵活页表,灵活页表中包括若干个灵活页,每个灵活页对应内存池组中的一个内存块,线程所需访问的内存段由一个或多个内存块组成;根据线程实际所需访问的内存段,从灵活页表中获取对应的一个或多个灵活页放到线程的地址空间;建立线程的使用灵活页链表;线程通过获取地址空间中的一个或多个灵活页,并通过使用灵活页链表映射获取到内存池中的对应的内存段,实现对内存段的访问。本发明通过使用灵活页的方式去授予线程匹配的内存空间,可以尽可能避免内存管理错误的触发,从而实现嵌入式系统软件的安全性、可靠性。
技术领域
本发明涉及嵌入式操作系统技术领域,尤其涉及一种基于MPU的内存访问方法、装置、电子设备及存储介质。
背景技术
当前操作系统中采用的内存管理机制主要分为虚拟内存管理机制和非虚拟内存管理机制。部分嵌入式处理器具有MMU(Memory Management Unit内存管理单元), 操作系统会使用它完成从虚拟地址到物理地址的转换,应用程序只需要使用虚拟地址进行数据寻址。这种使用虚拟地址寻址的方式被称为虚拟内存。虚拟内存的管理方法使系统既可满足程序的运行速度要求,又节省了物理内存空间。
但是,由于虚拟内存机制会导致不确定性的I/O阻塞时间,使得程序运行时间不可预期;另外,出于嵌入式处理器的成本和设计复杂度考虑,很多不具有MMU。因而大多数嵌入式实时操作系统采用的是非虚拟内存管理策略,对于内存的访问是直接的,所有程序中访问的地址都是实际的物理地址。大多数嵌入式实时操作系统对内存空间没有保护,所有进程实际上共享一个运行空间。这样能够提高系统的响应时间,但是程序内存越界或操作不当,容易引起系统崩溃。
在嵌入式多进程系统中,必须确保不同进程之间的操作不会相互干扰,而避免系统资源或是其他进程资源被非法存取的机制被称为保护策略。控制存取系统资源的方法有两种:硬件支持保护与软件保护。硬件支持保护指处理器本身设计时支持相应功能单元MPU(memory protection unit内存保护单元),由软件驱动共同完成系统资源保护工作;软件保护指单纯依靠软件来保护系统资源。在没有MPU的系统中,没有专门保护外围设备和内存的硬件,为了避免不同的进程有相互干扰的情况,必须采用软件协调机制;如果其中某个进程没有遵守存取限制,则很容易导致内存存取越界,协调机制失效。在有MPU的系统中,有专门的检查并限制存取系统资源的硬件MPU,可以保证资源的所有权,进程必须遵守一组由操作系统定义的规则,规则由硬件来实现维护,从硬件登记上授予监管控制资源的特殊权限。受保护的系统可以有效防止一个进程使用到其他进程的资源,硬件支持保护比单纯软件保护的方法更加可靠有效。
ARM Cortex-M7支持的MPU域的大小必须是2的n次幂,如果线程要申请192字节的域,从理论上可以直接申请256字节的MPU域,而线程用不了256字节的MPU域,该线程就占用了过多的空间,且ARM Cortex-M7处理器MPU支持域的最大个数为8或16个,多个线程访问时易产生MemManage Fault故障。
发明内容
本发明提供了一种基于MPU的内存访问方法、装置、电子设备及存储介质,通过MPU实现不同进程之间的隔离。
第一方面,本发明实施例提供了一种基于MPU的内存访问方法,多个MPU域与多个内存池一一对应,所述内存访问方法包括:
根据线程实际所需访问的内存段建立灵活页表,所述灵活页表中包括若干个灵活页,每个灵活页对应内存池组中的一个内存块,线程所需访问的内存段由一个或多个内存块组成;
根据线程实际所需访问的内存段,从所述灵活页表中获取对应的一个或多个灵活页放到所述线程的地址空间;
建立所述线程的使用灵活页链表,用于建立所述线程的地址空间与内存池映射关系;
所述线程通过获取所述地址空间中的一个或多个灵活页,并通过所述使用灵活页链表映射获取到所述内存池中的对应的内存段,实现对所述内存段的访问。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于四川凝思软件有限公司,未经四川凝思软件有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202210437892.6/2.html,转载请声明来源钻瓜专利网。