内存空间管理方法、装置、计算机设备和存储介质制造方法及图纸

技术编号:26970106 阅读:59 留言:0更新日期:2021-01-05 23:59
本申请涉及一种内存空间管理方法、装置、计算机设备和存储介质。所述方法包括:在驱动加载过程中,获取目标容量的内存块;将所述内存块划分为多个子内存块并进行排序;获取各子内存块的物理地址;将首位子内存块的物理地址存储于地址变量中,以及将高顺序的子内存块的物理地址存储于相邻低顺序的子内存块中;当获取到应用数据时,将所述应用数据存储于相应的子内存块中;当存储于目标子内存块中的应用数据被删除时,将所述地址变量存储的物理地址存储于所述目标子内存块,并将所述目标子内存块的物理地址存储于所述地址变量。采用本方法能够提高内存空间的使用率。

【技术实现步骤摘要】
内存空间管理方法、装置、计算机设备和存储介质
本申请涉及计算机
,特别是涉及一种内存管理方法、装置、计算机设备和存储介质。
技术介绍
随着计算机技术的发展,Windows系统的驱动需要与外接设备进行大量的数据交互。驱动与外接设备的数据交互一般通过直接存储访问引擎进行。通过直接存储访问引擎进行数据交互时,在每次进行数据交互时都需要通过Windows接口函数申请内存空间。而Windows接口函数返回的内存空间的物理地址并不连续,经过频繁的申请和释放内存空间后,容易使内存空间碎片化,造成了内存空间的极大浪费。
技术实现思路
基于此,有必要针对上述技术问题,提供一种能够提高内存空间的使用率的内存空间管理方法、装置、计算机设备和存储介质。一种内存空间管理方法,所述方法包括:在驱动加载过程中,获取目标容量的内存块;将所述内存块划分为多个子内存块并进行排序;获取各子内存块的物理地址;将首位子内存块的物理地址存储于地址变量中,以及将高顺序的所述子内存块的物理地址存储于相邻低顺序的子内存块中;当获取到应用数据时,将所述应用数据存储于相应的子内存块中;当存储于目标子内存块中的应用数据被删除时,将所述地址变量存储的物理地址存储于所述目标子内存块,并将所述目标子内存块的物理地址存储于所述地址变量。在一个实施例中,所述将所述应用数据存储于相应的子内存块中包括:从所述多个子内存块中选取未被占用的子内存块,并获取所述未被占用的子内存块的第一物理地址;将所述第一物理地址转换为虚拟地址;根据所述虚拟地址向所述未被占用的子内存块中存入所述应用数据。在一个实施例中,所述根据所述虚拟地址向所述子内存块中存入所述应用数据之后,所述方法还包括:将所述第一物理地址传递至直接存储访问引擎,以使所述直接存储访问引擎根据所述第一物理地址从所述子内存块中读取所述应用数据并发送至外接设备。在一个实施例中,所述从所述多个子内存块中选取未被占用的子内存块,并获取所述未被占用的子内存块的第一物理地址包括:选取所述地址变量当前存储的地址对应的第一子内存块,将所述第一子内存块确定为未被占用的子内存块;获取所述地址变量中当前存储的物理地址;将所述地址变量中当前存储的物理地址确定为所述第一物理地址。在一个实施例中,所述将所述第一物理地址传递至直接存储访问引擎包括:将所述第一物理地址存入中间变量;将所述中间变量存入地址寄存器,以使所述直接存储访问引擎从所述地址寄存器中获取所述第一物理地址。在一个实施例中,所述方法还包括:当从外接设备接收数据时,从多个子内存块中选取未被占用的子内存块,并获取所述未被占用的子内存块的第二物理地址;将所述第二物理地址传递至直接存储访问引擎,以使所述直接存储访问引擎将从所述外接设备接收的数据存入所述第二物理地址对应的子内存块;将所述第二物理地址转换为虚拟地址;根据所述虚拟地址从所述子内存块中读取数据。一种内存空间管理装置,其特征在于,所述装置包括:获取模块,用于在驱动加载过程中,获取目标容量的内存块;划分模块,用于将所述内存块划分为多个子内存块并进行排序;所述获取模块,还用于获取各子内存块的物理地址;存储模块,用于将首位子内存块的物理地址存储于地址变量中,以及将高顺序的所述子内存块的物理地址存储于相邻低顺序的子内存块中;所述存储模块,还用于当获取到应用数据时,将所述应用数据存储于相应的子内存块中;所述存储模块,还用于当存储于目标子内存块中的应用数据被删除时,将所述地址变量存储的物理地址存储于所述目标子内存块,并将所述目标子内存块的物理地址存储于所述地址变量。在一个实施例中,所述存储模块,还用于:从所述多个子内存块中选取未被占用的子内存块,并获取所述未被占用的子内存块的第一物理地址;将所述第一物理地址转换为虚拟地址;根据所述虚拟地址向所述子内存块中存入所述应用数据。在一个实施例中,所述装置还包括:传递模块,用于将所述第一物理地址传递至直接存储访问引擎,以使所述直接存储访问引擎根据所述第一物理地址从所述子内存块中读取所述应用数据并发送至外接设备。在一个实施例中,所述存储模块,还用于:选取所述地址变量当前存储的地址对应的第一子内存块,将所述第一子内存块确定为未被占用的子内存块;获取所述地址变量中当前存储的物理地址;将所述地址变量中当前存储的物理地址确定为所述第一物理地址。在一个实施例中,所述传递模块,还用于:将所述第一物理地址存入中间变量;将所述中间变量存入地址寄存器,以使所述直接存储访问引擎从所述地址寄存器中获取所述第一物理地址。在一个实施例中,所述装置还包括:选取模块,用于当从外接设备接收数据时,从多个子内存块中选取未被占用的子内存块,并获取所述未被占用的子内存块的第二物理地址;所述传递模块,还用于将所述第二物理地址传递至直接存储访问引擎,以使所述直接存储访问引擎将从所述外接设备接收的数据存入所述第二物理地址对应的子内存块;转换模块,用于将所述第二物理地址转换为虚拟地址;读取模块,用于根据所述虚拟地址从所述子内存块中读取数据。一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现所述内存空间管理方法的步骤。一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现所述内存空间管理方法的步骤。上述实施例中,计算机设备在加载驱动的过程中获取目标容量的内存块,并将内存块划分为多个子内存块。在需要存储应用数据时,计算机设备选取子内存块,并将应用数据存储于子内存块中。计算机设备仅在加载时申请内存块,不需要在每次使用内存空间时都申请内存块,不会造成内存空间的碎片化,节省了内存空间,提高了内存空间的使用率,并且不会因内存空间中的连续物理内存减少而导致申请连续物理内存空间失败。计算机设备对子内存块进行排序,并将首位子内存块的物理地址存储于地址变量中,以及将高顺序的子内存块的物理地址存储于相邻低顺序的子内存块中。计算机设备按照顺序使用子内存块,并将使用后的子内存块的物理地址存储于地址变量,使其成为新的首位子内存块,并在下次使用时被选取,此种计算机设备对子内存块进行管理的算法复杂度低,效率高。附图说明图1为一个实施例中内存空间管理方法的流程示意图;图2为一个实施例中各子内存块存储物理地址的示意图;图3为一个实施例中内存空间管理方法的流程示意图;图4为一个实施例中内存空间管理装置的结构框图;图5为另一个实施例中内存空间管理装置的结构框图;图6为一个实施例中计算机设备的内部结构图;图7为另一个实施例中计算机设备的内部结构图。...

【技术保护点】
1.一种内存空间管理方法,其特征在于,所述方法包括:/n在驱动加载过程中,获取目标容量的内存块;/n将所述内存块划分为多个子内存块并进行排序;/n获取各子内存块的物理地址;/n将首位子内存块的物理地址存储于地址变量中,以及将高顺序的子内存块的物理地址存储于相邻低顺序的子内存块中;/n当获取到应用数据时,将所述应用数据存储于相应的子内存块中;/n当存储于目标子内存块中的应用数据被删除时,将所述地址变量存储的物理地址存储于所述目标子内存块,并将所述目标子内存块的物理地址存储于所述地址变量。/n

【技术特征摘要】
1.一种内存空间管理方法,其特征在于,所述方法包括:
在驱动加载过程中,获取目标容量的内存块;
将所述内存块划分为多个子内存块并进行排序;
获取各子内存块的物理地址;
将首位子内存块的物理地址存储于地址变量中,以及将高顺序的子内存块的物理地址存储于相邻低顺序的子内存块中;
当获取到应用数据时,将所述应用数据存储于相应的子内存块中;
当存储于目标子内存块中的应用数据被删除时,将所述地址变量存储的物理地址存储于所述目标子内存块,并将所述目标子内存块的物理地址存储于所述地址变量。


2.根据权利要求1所述的方法,其特征在于,所述将所述应用数据存储于相应的子内存块中包括:
从所述多个子内存块中选取未被占用的子内存块,并获取所述未被占用的子内存块的第一物理地址;
将所述第一物理地址转换为虚拟地址;
根据所述虚拟地址向所述未被占用的子内存块中存入所述应用数据。


3.根据权利要求2所述的方法,其特征在于,所述根据所述虚拟地址向所述子内存块中存入所述应用数据之后,所述方法还包括:
将所述第一物理地址传递至直接存储访问引擎,以使所述直接存储访问引擎根据所述第一物理地址从所述子内存块中读取所述应用数据并发送至外接设备。


4.根据权利要求2所述的方法,其特征在于,所述从所述多个子内存块中选取未被占用的子内存块,并获取所述未被占用的子内存块的第一物理地址包括:
选取所述地址变量当前存储的地址对应的第一子内存块,将所述第一子内存块确定为未被占用的子内存块;
获取所述地址变量中当前存储的物理地址;
将所述地址变量中当前存储的物理地址确定为所述第一物理地址。


5.根据权利要求3所述的方法,其特征在于,所述将所述第一物理地址传递至直接存储访问引擎包括:
将所述第一物理地址存入中间变量;
将所述中间变量存入地址寄存器,以使所述直接存储访问引擎从所述地址...

【专利技术属性】
技术研发人员:徐红星
申请(专利权)人:深圳市广和通无线通信软件有限公司
类型:发明
国别省市:广东;44

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

1