[发明专利]动态堆栈分配方法、装置、计算机设备和存储介质有效
申请号: | 201910567385.2 | 申请日: | 2019-06-27 |
公开(公告)号: | CN110362510B | 公开(公告)日: | 2021-07-16 |
发明(设计)人: | 胡华悦;蔡秉铨;胡向军 | 申请(专利权)人: | 珠海市杰理科技股份有限公司 |
主分类号: | G06F12/1027 | 分类号: | G06F12/1027;G06F9/50 |
代理公司: | 广州华进联合专利商标代理有限公司 44224 | 代理人: | 黄晶晶 |
地址: | 519085 广东省珠海市吉*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 动态 堆栈 分配 方法 装置 计算机 设备 存储 介质 | ||
本申请涉及一种上述动态堆栈分配方法、装置、计算机设备和存储介质,其中方法包括:当接收到任务切换消息时,识别当前任务在共用堆栈中剩余页,获取待切换任务所需新增页数,并计算剩余页数与所述所需新增页数的差值,当差值大于零时,在剩余页中选择不小于差值数的页作为切换页,当差值小于零时,在共用堆栈中申请差值绝对值数的页作为切换页,根据新增切换页,确定待切换任务在物理内存空间中对应页框的地址,以更新TLB对应索引,从而能够有效提高任务切换时系统运行效率。
技术领域
本申请涉及计算机技术领域,特别是涉及一种动态堆栈分配方法、装置、计算机设备和存储介质。
背景技术
嵌入式操作系统是一种用途广泛的系统软件,通常包括与硬件相关的底层驱动软件、系统内核、设备驱动接口、通信协议、图形界面、标准化浏览器等。嵌入式操作系统负责嵌入式系统的全部软、硬件资源的分配、任务调度,控制、协调并发活动。它必须体现其所在系统的特征,能够通过装卸某些模块来达到系统所要求的功能。
在实际生产生活中,嵌入式操作系统支持嵌入式系统应用,其比通用操作系统更具实时高效性、硬件相关依赖性。嵌入式系统资源非常有限,当下嵌入式系统应用越来越复杂,多个应用同时运行的时候消耗的内存很多时候比系统拥有的内存还要多。操作系统多任务运行下堆栈的消耗很大程度上决定了嵌入式应用的内存消耗。此外,系统因运行过程中不断申请释放内存空间也会造成内存碎片化,从而无形导致内存空间变少。系统内存因任务堆栈消耗过度或者内存碎片过多,导致应用申请不到所需内存,降低系统实时高效性,从而严重影响系统性能和系统稳定性。
发明内容
基于此,有必要针对上述技术问题,提供一种可以提高系统运行效率的动态堆栈分配方法、装置、计算机设备和存储介质。
一种动态堆栈分配方法,所述方法包括:
当接收到任务切换消息时,识别当前任务在共用堆栈中剩余页,所述共用堆栈划设于虚拟内存空间;
获取待切换任务所需新增页数,并计算剩余页数与所述所需新增页数的差值;
当所述差值大于零时,在所述剩余页中选择所述所需新增页数的页作为新增切换页;
当所述差值小于零时,在所述虚拟内存空间中申请所述差值绝对值数的页,并选择所述所需新增页数的页作为新增切换页;
根据所述新增切换页,确定所述待切换任务在物理内存空间中对应页框的地址,以更新TLB(Translation Lookaside Buffer,转换检测缓冲区)对应索引。
在其中一个实施例中,所述当接收到任务切换消息时,识别当前任务在共用堆栈中剩余页之前,还包括:
将虚拟内存空间分为多个页,将物理内存空间分成多个页框;
生成虚拟内存空间内已划分的多个页与所述页框的地址索引表;
存储所述地址索引表于所述TLB。
在其中一个实施例中,所述将虚拟内存空间分为多个页包括:
获取虚拟内存空间中页粒度大小;
根据虚拟内存空间中页粒度大小,将虚拟内存空间分为多个页。
在其中一个实施例中,所述将虚拟内存空间分为多个页,将物理内存空间分成多个页框包括:
根据虚拟内存空间中页粒度大小,将虚拟内存空间分为大小相同的页;
将物理内存空间分成多个大小相同的页框,所述虚拟内存空间大于所述物理内存空间。
在其中一个实施例中,所述当所述差值大于零时,在所述剩余页中选择所述所需新增页数的页作为新增切换页,并释放所述差值数的页包括:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于珠海市杰理科技股份有限公司,未经珠海市杰理科技股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910567385.2/2.html,转载请声明来源钻瓜专利网。
- 上一篇:统一地址转换与统一地址空间
- 下一篇:一种PCIE设备