CN116701244B - 一种内存转储方法、装置和电子设备 - Google Patents
一种内存转储方法、装置和电子设备 Download PDFInfo
- Publication number
- CN116701244B CN116701244B CN202211148848.XA CN202211148848A CN116701244B CN 116701244 B CN116701244 B CN 116701244B CN 202211148848 A CN202211148848 A CN 202211148848A CN 116701244 B CN116701244 B CN 116701244B
- Authority
- CN
- China
- Prior art keywords
- file
- unreserved
- reserved
- electronic device
- block
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 86
- 238000005192 partition Methods 0.000 claims abstract description 80
- 238000006243 chemical reaction Methods 0.000 claims abstract description 8
- 230000006870 function Effects 0.000 claims description 34
- 230000008569 process Effects 0.000 claims description 30
- 238000004590 computer program Methods 0.000 claims description 22
- 238000013507 mapping Methods 0.000 claims description 17
- 230000027455 binding Effects 0.000 claims description 9
- 238000009739 binding Methods 0.000 claims description 9
- 238000007726 management method Methods 0.000 description 23
- 238000012545 processing Methods 0.000 description 18
- 238000010586 diagram Methods 0.000 description 16
- 230000003287 optical effect Effects 0.000 description 4
- 238000012217 deletion Methods 0.000 description 3
- 230000037430 deletion Effects 0.000 description 3
- 239000008186 active pharmaceutical agent Substances 0.000 description 2
- 238000013528 artificial neural network Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000000926 separation method Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000007334 memory performance Effects 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
- G06F12/0646—Configuration or reconfiguration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0253—Garbage collection, i.e. reclamation of unreferenced memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0891—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using clearing, invalidating or resetting means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
- G06F3/0631—Configuration or reconfiguration of storage systems by allocating resources to storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/0644—Management of space entities, e.g. partitions, extents, pools
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0652—Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0662—Virtualisation aspects
- G06F3/0665—Virtualisation aspects at area level, e.g. provisioning of virtual or logical volumes
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Debugging And Monitoring (AREA)
Abstract
本申请实施例提供一种内存转储方法、装置和电子设备。所述方法应用于电子设备,所述方法包括:在所述电子设备的存储分区上创建预留文件,所述预留文件在所述电子设备上的存储地址为连续物理地址;将所述预留文件转换为第一块设备;基于所述第一块设备实现内存转储。根据本申请实施例的方法,无需划分转换分区就可以实现内存转储,提高了内存转储的存储空间使用灵活性,提高电子设备存储空间的使用灵活性,提升了电子设备的用户体验。
Description
技术领域
本申请涉及终端技术领域,特别涉及一种内存转储方法、装置和电子设备。
背景技术
内存(Memory)是拥有计算处理能力的电子设备的重要部件,也称内存储器和主存储器。内存用于暂时存放电子设备处理器(CPU)中的运算数据,以及与存储器(例如,硬盘、外部存储器等存储设备)交换的数据。内存是存储器与处理器进行沟通的桥梁,电子设备中所有程序的运行都在内存中进行,内存的运行状态可以直接影响到电子设备整体数据处理进程的快慢,内存性能的强弱影响电子设备整体发挥的水平。
随着电子设备处理性能的不断提高,电子设备的数据处理量也不断增加,在电子设备运行过程中,对内存的占用量也越来越大。在使用电子设备的过程中,经常出现电子设备内存不够用的情况。
发明内容
针对现有技术下如何解决电子设备内存不够用的问题,本申请提供了一种内存转储方法、装置和电子设备,本申请还提供一种计算机可读存储介质。
本申请实施例采用下述技术方案:
第一方面,本申请提供一种内存转储方法,方法应用于电子设备,方法包括:
在电子设备的存储分区上创建预留文件,预留文件在电子设备上的存储地址为连续物理地址;
将预留文件转换为第一块设备;
基于第一块设备实现内存转储。
由于预留文件的创建不需要修改分区表,因此,用户可以通过删除以及重新创建预留文件调整预留文件的大小;并且,在关闭内存转储功能时可以通过删除预留文件直接释放空间,这就提高了内存转储的应用灵活性,提高了电子设备的空间使用灵活性,提高了用户体验。
在第一方面的一种实现方式中,为了提高操作系统运行稳定性,电子设备被配置为,在电子设备的操作系统处于运行状态下不可删除预留文件。
在第一方面的一种实现方式中,为了提高存储空间利用率,在电子设备启动操作系统的过程中,删除预留文件以释放存储空间。
在第一方面的一种实现方式中,为了提高操作系统运行稳定性,在电子设备的存储分区上创建预留文件,包括:
在电子设备启动操作系统的过程中,创建预留文件。
在第一方面的一种实现方式中,在电子设备的存储分区上创建预留文件,包括:
确认电子设备的存储分区上是否存在预留文件;
在电子设备的存储分区上不存在预留文件的情况下,在电子设备的存储分区上创建预留文件;
在电子设备的存储分区上存在预留文件的情况下,或者,在成功创建预留文件的情况下,校验预留文件;
在预留文件校验成功的情况下,执行将预留文件转换为第一块设备以及后续步骤,包括,绑定第一块设备到内存转储功能。
在第一方面的一种实现方式中,基于第一块设备实现内存转储,包括:
创建对应预留文件大小的第一虚拟地址空间;
建立第一虚拟地址空间的虚拟地址到第一块设备的物理地址的第一地址映射;
基于第一虚拟地址空间实现内存转储,其中,在将块输出/输入发送给块层之前,根据第一地址映射,将虚拟地址映射到正确的物理地址。
在第一方面的一种实现方式中,为了提高内存转储的存储空间利用灵活性,方法还包括:
在电子设备的存储分区上创建非预留文件;
将非预留文件转换为块设备;
基于第一块设备以及非预留文件对应的块设备实现内存转储。
在第一方面的一种实现方式中,方法还包括:
删除非预留文件以释放存储空间。
在第一方面的一种实现方式中,在电子设备的存储分区上创建预留文件,包括:
在电子设备启动操作系统的过程中,或者,在操作系统启动后,创建非预留文件。
在第一方面的一种实现方式中,基于第一块设备以及非预留文件对应的块设备实现内存转储,包括:
创建对应预留文件以及非预留文件大小之和的第二虚拟地址空间;
建立第二虚拟地址空间的虚拟地址到第一块设备以及非预留文件对应的块设备的物理地址的第二地址映射,其中,从第二虚拟地址空间最高位开始,将连续的虚拟地址映射到第一块设备的物理地址,在第一块设备的物理地址被完全映射后,将剩余的虚拟地址映射到非预留文件对应的块设备的物理地址;
基于第二虚拟地址空间实现内存转储,其中,在将块输出/输入发送给块层之前,根据第二地址映射,将虚拟地址映射到正确的物理地址。
在第一方面的一种实现方式中,非预留文件包括非预留连续文件,非预留连续文件在电子设备上的存储地址为连续物理地址。
在第一方面的一种实现方式中,非预留文件包括非预留非连续文件,非预留非连续文件在电子设备上的存储地址为非连续物理地址。
在第一方面的一种实现方式中,将非预留文件转换为块设备,包括,基于环路设备,将非预留非连续文件转换为块设备。
在第一方面的一种实现方式中,在电子设备的存储分区上创建非预留文件,包括:
确认电子设备的存储分区上是否存在非预留连续文件,非预留连续文件在电子设备上的存储地址为连续物理地址;
在电子设备的存储分区上不存在非预留连续文件的情况下,在电子设备的存储分区上创建非预留连续文件;
在电子设备的存储分区上存在非预留连续文件的情况下,或者,在成功创建非预留连续文件的情况下,校验非预留连续文件;
在非预留连续文件校验成功的情况下,确认电子设备的存储分区上是否存在非预留非连续文件,在存在非预留非连续文件时删除非预留非连续文件,非预留非连续文件在电子设备上的存储地址为非连续物理地址;
在非预留连续文件校验成功的情况下,执行将非预留文件转换为块设备以及后续步骤,包括,将非预留连续文件转换为第二块设备,绑定第二块设备到内存转储功能。
在第一方面的一种实现方式中,在电子设备的存储分区上创建非预留文件,还包括:
在非预留连续文件校验失败的情况下,删除非预留连续文件;
在创建非预留连续文件失败的情况下,或者,在非预留连续文件校验失败的情况下,确认电子设备的存储分区上是否存在非预留非连续文件;
在电子设备的存储分区上不存在非预留非连续文件的情况下,创建非预留非连续文件;
在创建非预留非连续文件成功,或者,在电子设备的存储分区上存在非预留非连续文件的情况下,校验非预留非连续文件;
在非预留非连续文件校验成功的情况下,执行将非预留文件转换为块设备以及后续步骤,包括,将非预留非连续文件转换为第三块设备,绑定第三块设备到内存转储功能。
第二方面,本申请提供一种内存转储装置,装置应用于电子设备,装置包括:
文件创建模块,其用于在电子设备的存储分区上创建预留文件,预留文件在电子设备上的存储地址为连续物理地址;
块设备转换模块,其用于将预留文件转换为第一块设备;
转储模块,其用于基于第一块设备实现内存转储。
第三方面,本申请提供一种电子设备,电子设备包括用于存储计算机程序指令的存储器和用于执行计算机程序指令的处理器,其中,当计算机程序指令被该处理器执行时,触发电子设备执行如第一方面的方法步骤。
第四方面,本申请提供一种计算机可读存储介质,计算机可读存储介质中存储有计算机程序,当其在计算机上运行时,使得计算机执行如第一方面的方法。
附图说明
图1所示为根据本申请一实施例的内存转储示意图;
图2所示为根据本申请一实施例的内存转储示意图;
图3所示为根据本申请一实施例的创建预留文件的流程示意图;
图4所示为根据本申请一实施例的虚拟地址分配示意图;
图5所示为根据本申请一实施例的创建非预留文件的流程示意图;
图6所示为根据本申请一实施例的内存转储装置示意图;
图7所示为根据本申请一实施例的电子设备结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请具体实施例及相应的附图对本申请技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请的实施方式部分使用的术语仅用于对本申请的具体实施例进行解释,而非旨在限定本申请。
针对现有技术下如何改善内容空间小的问题,本申请一实施例提供了一种存储空间管理方法,在电子设备的存储空间中划分出一个增强交换(Enhanced swap,eswap)分区,在电子设备系统运行时,将电子设备的内存中不常用的匿名页转储到eswap分区中(内存转储),从而增加内存的空余容量。
图1所示为根据本申请一实施例的内存转储示意图。
如图1所示,在一应用场景中,在电子设备操作系统的设置层面100(应用层),构造有智慧内存模块111。智慧内存模块111提供设置页面,用户或技术人员可以基于设置页面,在智慧内存模块111中设置内存转储的相关参数。例如,智慧内存模块111包含容量管理单元112,通过管理单元112设置eswap分区的大小;或者,在智慧内存模块111中设置内存转储策略,设置内存转储是否开启。
智慧内存模块111将存转储的相关参数发送到内存转储模块120(例如,hyperhold转储模块)(系统框架层)。内存转储模块120包括:
eswap空间管理模块121,其用于管理内存转储时用于实现内存转储的存储空间。例如,根据智慧内存模块111下发的设置参数设置eswap分区中的可用区域;又例如,根据智慧内存模块111下发的设置参数改变eswap分区的大小(例如,进入恢复(recover)模式,刷新操作系统以及电子设备的分区列表,重新划分eswap分区)。
加解密模块122,其用于在进行内存转储操作时进行加解密操作。
block IO调度模块123,其用于在进行内存转储操作时调度块设备的输入输出(IO)。
内存转储模块120对内存中的文件进行转储,转储文件形式为内存转储模块120将内存中的文件直接转储到电子设备存储模块的裸分区(eswap分区130)。
在文件系统(例如,UFS文件系统)层150,电子设备的硬件存储空间中被划分出一个eswap分区151(例如,2GB大小的hyperhold分区)。eswap分区151直接挂载在块(block)层140的block管理模块141下。
基于图1所示的结构,在内存转储过程中,内存转储模块120从内存中读取需要转储的文件,基于block IO调度模块123调度block管理模块141,block管理模块141直接管理eswap分区151(裸分区),需要转储的文件被写入到eswap分区151。
由于eswap分区151为裸分区,其大小配置被写入电子设备的分区表,因此,如果需要对eswap分区151进行调整(例如,调整大小),就需要重写电子设备的分区表,而为了确保操作系统稳定运行,电子设备的分区表是不能轻易刷新的。因此,在实现内存转储功能时,电子设备中需要始终保持一个固定大小的eswap分区,即使内存转储功能关闭,也无法立即释放eswap分区的空间(关闭转储功能仅相当于停止内存转储操作,eswap分区一直存在),这就降低了电子设备的空间使用灵活性,降低了用户体验。
针对上述问题,本申请一实施例提供了另一种内存转储方法,在电子设备的存储分区(例如,数据(data)分区)上创建一个预留文件(reserved file)(第一文件)。预留文件被创建后,其存储位置固定。在电子设备系统运行时,将电子设备的内存中的文件转储到预留文件对应的存储位置,从而实现内存转储。
由于预留文件的创建不需要修改分区表,因此,用户可以通过删除以及重新创建预留文件调整预留文件的大小;并且,在关闭内存转储功能时可以通过删除预留文件直接释放空间,这就提高了内存转储的应用灵活性,提高了电子设备的空间使用灵活性,提高了用户体验。
图2所示为根据本申请一实施例的内存转储示意图。
如图2所示,在一应用场景中,在电子设备操作系统的设置层面200(应用层),构造有智慧内存模块211。智慧内存模块211提供设置页面,用户或技术人员可以基于设置页面,在智慧内存模块211中设置内存转储的相关参数。
具体的,智慧内存模块211将存转储的相关参数发送到内存转储模块220(例如,hyperhold转储模块)(系统框架层)。内存转储模块220包括:
eswap空间管理模块221,其用于管理内存转储时用于实现内存转储的存储空间管理。(参照eswap空间管理模块121)
加解密模块222,其用于在进行内存转储操作时进行加解密操作。(参照加解密模块122)
block IO调度模块223,其用于在进行内存转储操作时调度块设备的输入输出(IO)。
内存转储模块220对内存中的文件进行转储,转储文件形式为内存转储模块220将内存中的文件转储到预留文件231对应的存储位置。
根据本申请实施例的方法,无需划分转换分区就可以实现内存转储,提高了内存转储的存储空间使用灵活性,提高电子设备存储空间的使用灵活性,提升了电子设备的用户体验。
在管理预留文件的一种实现方式中,为便于管理预留文件,实现将内存转储到预留文件的存储位置,预留文件被转换为bdev使用。
在文件系统(例如,UFS文件系统)层面250,电子设备的数据(data)分区251中预留文件所对应的连续物理地址空间251为转换为一个块设备(block device,bdev)挂载在block层(驱动块设备的代码框架)240的block管理模块241下。
具体的,在一实施例中,为了提高内存转储效率,用于预留文件的存储位置为连续的地址空间。在一应用场景中,预留文件的地址通过F2FS(Flash Friendly File System)接口分配。由于预留文件的存储地址为连续物理地址,预留文件可以直接映射为与其物理地址一致的bdev。
进一步的,为实现将内存转储到预留文件的存储位置,创建虚拟地址空间,虚拟地址空间的虚拟地址映射到预留文件对应的物理连续地址。针对虚拟地址空间进行内存转储,在块输出/输入(block io,bio)发送给block层240之前,根据虚拟地址映射到正确的物理地址(bdev)上。由于预留文件的存储位置为物理连续地址,虚拟地址与物理地址的映射只需要建立起始位置以及终止位置的映射,通过虚拟地址映射到物理地址的过程消耗的处理资源可以忽略不计。因此,相较使用eswap分区(裸分区)实现内存转储,通过预留文件实现内存转储在性能上并未增加损耗。
进一步,在进行内存转储(例如,将内存文件存入电子设备的存储空间、删除内存中已被转储的文件释放内存空间以及将存入电子设备的存储空间的内存文件转移回内存)的过程中,实现内存转储的相关功能模块基于预留文件对应的虚拟地址空间,以针对一个eswap分区(一个bdev)进行操作的方式实现内存转储。实现内存转储的各相关功能模块并不会感知到其操作对象为一个文件所对应的物理地址空间。这样,就可以沿用使用eswap分区(裸分区)实现内存转储时创建的相关功能模块,简化设计内存转储模块220的工作量。
在一实施例中,预留文件可以根据用户需求进行空间释放。例如,智慧内存模块211包含开关单元213,通过开关单元213设置是否开启内存转储。在操作系统运行过程中,当用户关闭内存转储,电子设备将已转储的内存文件移回内存,删除预留文件,释放存储空间。
进一步的,在一实施例中,为了维护操作系统运行稳定性,在操作系统启动后,在操作系统运行过程中,预留文件被设置不可被删除(无法释放预留文件占用的存储空间)。在电子设备重启后,在操作系统启动过程中,预留文件可以被删除以释放空间。在操作系统启动过程中,内存转储尚未进行,预留文件的删除并不影响操作系统稳定运行。
例如,当用户关闭内存转储后,在下一次的操作系统启动过程中,预留文件被删除并不创建新的预留文件,存储空间被释放。
进一步的,在一实施例中,预留文件默认始终保留,当用户关闭内存转储后,重启操作系统并不会删除预留文件。这样,在操作系统运行过程中,在用户开启内存转储后,不需要重启操作系统,也可以直接启用并实现内存转储功能。
在一实施例中,可以根据配置动态调整预留文件的大小。例如,智慧内存模块211还包含容量管理单元212,通过容量管理单元212设置预留文件的大小。在操作系统运行过程中,再用户调整预留文件大小后,电子设备将已转储的内存文件移回内存,调整预留文件大小(例如,删除原始预留文件,创建新大小的新预留文件);之后电子设备继续进行内存转储,将内存中的文件转出到新预留文件对应的存储位置。
进一步的,在一实施例中,为了维护操作系统运行稳定性,在操作系统启动后,在操作系统运行过程中,预留文件的大小无法调整。在操作系统启动过程中,可以根据配置动态调整预留文件的大小。在操作系统启动过程中,内存转储尚未进行,预留文件的删除或修改并不影响操作系统稳定运行。
例如,可以通过删除之前创建的预留文件(第一文件),然后创建新的预留文件(第二文件)的方式来调整预留文件的大小;也可以修改预留文件的文件属性,改变其存储位置,来调整预留文件的大小。
例如,智慧内存模块211还包含容量管理单元212,通过管理单元212设置预留文件的大小。在电子设备重启后,在操作系统启动过程中,容量管理单元212删除之前创建的预留文件,创建新的预留文件以改变预留文件的大小。
具体的,在一实施例中,基于大数据识别用户使用电子设备过程中内存转储量的大小,根据识别结果和/或用户选择进行动态调整预留文件大小。
图3所示为根据本申请一实施例的创建预留文件的流程示意图。
在电子设备启动操作系统的过程中,电子设备执行如图3所示的下述步骤以创建预留文件。
在操作系统启动过程中,当检测到内存转储功能已被开启后,触发电子设备执行内存转储初始化操作,初始化内存转储的相关操作。
在内存转储初始化操作中,创建预留文件。具体的,在内存转储初始化操作开始之后,执行S310。
S310,判断存储器上是否已存在预留文件。
具体的,在电子设备初次启动操作系统时,电子设备之前并未执行过预留文件的创建操作,存储器上不存在预留文件。在电子设备重启操作系统后,如果重启前电子设备已实现了内存转储,即本次启动操作前的某次操作系统中已创建过预留文件且并未删除预留文件以释放空间的情况下,存储器上存在预留文件。
S311,在存储器上不存在预留文件的情况下,根据设定的预留文件大小(例如,用户在容量管理单元212设定的预留文件大小)创建预留文件。
例如,通过F2FS接口分配预留文件地址。确认F2FS接口是否成功分配预留文件的物理地址。例如,在存储器上可用的连续物理地址空间不满足预留文件大小需求时F2FS接口分配预留文件的物理地址失败。
当预留文件创建失败时,判定内存转储初始化失败,执行S301。
S301,采用预设的针对内存转储初始化失败的执行策略。
例如,关闭内存转储功能,在操作系统启动后向用户输出内存转储启动失败的提示。
又例如,重置内存转储功能的相关参数,重新执行文件转储初始化。
在存储器上已存在预留文件或在存储器上成功创建预留文件后,执行S320。
S320,校验预留文件。
例如,校验预留文件是否存在文件系统错误;又例如,校验预留文件的物理地址是否连续;又例如,校验预留文件的大小是否正确;又例如,校验预留文件的物理地址是否可读写,是否存在物理错误。
当预留文件校验失败时,判定内存转储初始化失败,执行S301。
当预留文件校验成功时,执行S330。
S330,将预留文件转换为第一块设备,记录第一块设备(block device1,bdev1)。
具体的,记录bdev1的物理地址的起始/结束扇区(sector)。
S340,绑定bdev1到内存转储功能。指示内存转储功能的相关功能模块,S330记录的bdev1为用于实现内存转储的bdev。
例如,绑定bdev到zram。zram(也称为zRAM,先前称为compcache)是Linux内核的一项功能,可提供虚拟内存压缩。
进一步的,由于在某些应用场景中,为了操作系统运行稳定,在操作系统运行时,预留文件被设置为不可删除以及不可修改大小。为了提高内存转储的可用空间灵活性,本申请一实施例中,在电子设备的文件系统中还建立一个非预留文件(no reserved file)。
如图2所示,内存转储模块220对内存中的文件进行转储,转储文件的方式为内存转储模块220将内存中的文件转储到预留文件231
和/或非预留文件232对应的存储位置。
进一步的,在管理预留文件的一种实现方式中,非预留文件被转换为bdev使用。在文件系统(例如,UFS文件系统)层面250,电子设备的数据(data)分区250中非预留文件所对应的物理地址空间为转换为块设备(block device,bdev)挂载在block层240的block管理模块241下。
在一实施例中,非预留文件可以根据用户需求进行空间释放。例如,智慧内存模块211包含开关单元213,通过开关单元213设置是否开启内存转储。在操作系统运行过程中,当用户关闭内存转储,电子设备将已转储的内存文件移回内存,删除非预留文件(保留预留文件),释放存储空间。由于在释放非预留文件的存储空间的同时,保留预留文件,非预留文件的删除并不影响操作系统稳定运行。
在一实施例中,可以根据配置动态调整非预留文件的大小。例如,智慧内存模块211还包含容量管理单元212,通过管理单元212设置非预留文件的大小。在操作系统运行过程中,在用户调整预留文件大小后,电子设备将对应非预留文件转储的内存文件移回内存,调整非预留文件大小(例如,删除原始非预留文件,创建新大小的新非预留文件);之后电子设备继续进行内存转储,将内存中的文件转出到新的非预留文件对应的存储位置。在修改非预留文件大小时,预留文件不会被修改,非预留文件的修改并不影响操作系统稳定运行。
具体的,在一实施例中,基于大数据识别用户使用电子设备过程中内存转储量的大小,根据识别结果和/或用户选择进行动态调整非预留文件大小。
进一步的,在一实施例中,为了提高内存转储效率,非预留文件包含存储位置为连续地址空间的非预留连续文件(第二文件)。如图2所示,非预留文件232包含非预留连续文件233。
在一应用场景中,非预留连续文件的地址通过F2FS接口分配。非预留连续文件转换为bdev的流程可以参照预留文件。
进一步的,考虑到在创建非预留文件时,电子设备上可用的连续物理地址空间可能并不满足非预留文件的大小需求。因此,在一实施例中,非预留文件包含存储位置为非连续地址空间的非预留非连续文件。如图2所示,非预留文件232还包含非预留非连续文件234。在文件系统(例如,UFS文件系统)层面250,电子设备的数据(data)分区251中非预留非连续文件234所对应的非连续物理地址空间252为转换为块设备(block device,bdev)挂载在block层240的block管理模块241下。
具体的,在一实施例中,设定连续文件阈值(假设为50MB)。在电子设备上可用的连续物理地址空间大于连续文件阈值时,基于电子设备上可用的连续物理地址空间创建非预留连续文件。在电子设备上可用的连续物理地址空间小于等于连续文件阈值时,基于电子设备上可用的不连续物理地址空间拼合,创建一个或多个非预留非连续文件(默认为创建一个非预留非连续文件)。
具体的,在一实施例中,电子设备上可用的连续物理地址空间不满足非预留文件的大小需求时,不创建非预留连续文件,仅创建非预留非连续文件。
在另一实施例中,电子设备上可用的连续物理地址空间不满足非预留文件的大小需求时,基于电子设备上可用的最大的连续物理地址空间创建一个非预留连续文件。针对非预留连续文件不满足非预留文件的大小需求的部分,创建一个非预留非连续文件。非预留连续文件与非预留非连续文件的大小之和,为非预留文件的设定大小。
具体的,在创建非预留文件的过程中,优先通过F2FS接口分配地址空间连续的非预留连续文件;如果F2FS申请非预留连续文件失败,或者,基于电子设备上当前可用的连续物理地址空间建立非预留连续文件后,建立的非预留连续文件小于非预留文件的设定大小,则向操作系统申请建立非预留非连续文件。非预留连续文件的大小与非预留非连续文件的大小之和为非预留文件的大小。
在一实施例中,基于环路设备(loop device,loop设备)将非预留非连续文件转换为bdev。具体的,loop device是一种特殊的bdev,loop device设备是通过映射操作系统上的正常的文件而形成的虚拟块设备。
具体的,如图2所示,内存转储模块220还包含文件转环路设备(file转loop)接口单元224,其用于将非预留非连续文件转换成loop设备。
在操作系统内核中,loop device的使用流程包括:
1.内核态申请普通文件,获取对应文件描述符fd
涉及
API:filp_open/vfs_truncate/vfs_fallocate/get_unused_fd_flags/fd_install/filp_close
2.通过/dev/loop-control节点获取系统可分配的设备号devnr,创建对应loop文件/dev/block/loop_devnr,获取其inode节点,调用系统接口blkdev_get_by_dev将其转换为loop设备,通过ioctl中的LOOP_SET_FD操作绑定步骤1中获取到的文件描述符fd,实现loop设备转换
涉及API:filp_open/filp_close/blkdev_get_by_dev/
进一步的,非预留文件被创建后,其存储位置固定。在电子设备系统运行时,创建虚拟地址空间,虚拟地址空间包含两部分,一部分虚拟地址空间的虚拟地址映射到预留文件对应的物理地址,另一部分虚拟地址空间的虚拟地址映射到非预留文件对应的物理地址。针对虚拟地址空间进行内存转储,将电子设备的内存中的文件转储到虚拟地址空间(优先使用预留文件对应的虚拟地址空间),从而实现内存转储。在块输出/输入(block io,bio)发送给block层240之前,根据虚拟地址映射到正确的物理地址(预留文件的bdev和/或非预留文件的bdev)上。
具体的,在一实施例中,根据预留文件加非预留文件的整体大小分配虚拟地址,预留文件和非预留文件有相应地址分隔阈值,根据上层调用bio的虚拟地址在bio合并和选择对应bdev时进行区分处理。
具体的,如图2所示,内存转储模块220还包含转储文件管理单元225,其用于将虚拟地址映射到bdev(普通bdev和/或loop设备)。
图4所示为根据本申请一实施例的虚拟地址分配示意图。
以预留文件和非预留文件(用于实现内存转储)的总计大小为2GB,预留文件大小为512MB,一个非预留文件(非预留非连续文件,大小为2GB-512MB,非预留连续文件创建失败)为例。
虚拟地址使用位图(bitmap)统一分配管理空间:每个bit位代表32k大小的空间,标记为extent。预留文件和非预留文件的总大小记为extent_total_bit。
如图4所示,虚拟地址(vaddr)为低位(0)-高位(2GB,2*1024*1024*1024bit)。
预留文件与非预留文件的虚拟地址分隔阈值/扇区(threshold_secotr)为虚拟地址(vaddr):threshold_secotr 2G-512MB。
每次分配地址时从bit1位开始寻找尚未使用的记为bit_x,实际所用的虚拟地址(vaddr)为:
vaddr=extent_total_bit-bit_x–1。(式1)
由以上虚拟地址转换关系知道优先使用的是虚拟地址的高位,为保证效率优先使用预留文件,将虚拟地址的高位映射到预留文件后,再将剩余的虚拟地址映射到非预留文件。
如图4所示,虚拟地址(vaddr):低位(0)~threshold_secotr 2G-512MB,映射到bdev3(由非预留非连续文件转换的loop设备),其映射的物理地址(addr)为非预留非连续文件的非连续物理地址(总计大小2GB-512MB)。虚拟地址(vaddr):threshold_secotr 2G-512MB~高位(2GB),映射到bdev1(由预留文件转换的bdev),其映射的物理地址(addr)为预留文件的连续物理地址(总计大小512MB)。
图5所示为根据本申请一实施例的创建非预留文件的流程示意图。
在一实施例中,电子设备在S330之后执行S510。
S510,判断存储器上是否已存在非预留连续文件。
S511,在存储器上不存在非预留连续文件的情况下,根据非预留文件的设定大小,创建一个满足非预留文件的设定大小的非预留连续文件。
在储器上是否已存在非预留连续文件,或者,非预留连续文件创建成功时,执行S520。
S520,校验非预留连续文件。(参照S320)
当非预留连续文件校验成功时,执行S521。
S521,将非预留连续文件转换为第二块设备,记录第二块设备(block device,bdev2)。参照S330。
S522,确认储器上是否已存在非预留非连续文件,如果存在,删除非预留非连续文件。
S523,绑定bdev1(预留文件的块设备)以及bdev2到内存转储功能。参照S340。
当非预留连续文件校验失败时,执行S523。
S523,删除非预留连续文件。
在S523之后,或者,当非预留连续文件创建失败(例如,电子设备当前的可用连续物理地址大小不满足非预留文件的设定大小)时,执行S530。
S530,判断存储器上是否已存在非预留非连续文件。
在存储器上不存在非预留非连续文件的情况下,执行S531。
S531,根据非预留文件的设定大小,创建一个满足非预留文件的设定大小的非预留连续文件。
在非预留非连续文件创建失败时,判定内存转储初始化失败,执行S501。
S501,采用预设的针对内存转储初始化失败的执行策略。参照S301。
在非预留非连续文件创建成功,或者,在存储器上存在非预留非连续文件的情况下,执行S532。
S532,校验非预留非连续文件。(参照S320)
当非预留非连续文件校验失败时,判定内存转储初始化失败,执行S533。
S533,删除非预留非连续文件,之后执行S501。
当非预留非连续文件校验成功时,执行S534。
S534,将非预留非连续文件转换为第三块设备,记录第三块设备(block device,bdev3)。参照S330。
S535,绑定bdev1(预留文件的块设备)以及bdev3到内存转储功能。参照S340。
根据本申请实施例的内存转储方法,本申请一实施例中还提出了一种内存转储装置。该装置应用于电子设备。
图6所示为根据本申请一实施例的内存转储装置示意图。如图6所示,内存转储装置600包括:
文件创建模块610,其用于在电子设备的存储分区上创建预留文件,预留文件在电子设备上的存储地址为连续物理地址;
块设备转换模块620,其用于将预留文件转换为第一块设备;
转储模块630,其用于基于第一块设备实现内存转储。
进一步的,文件创建模块610还用于在电子设备的存储分区上创建非预留文件(非预留连续文件和/或非预留非连续文件);
块设备转换模块620还用于将非预留连续文件转换为第二块设备,和/或,将非预留非连续文件转换为第三块设备;
转储模块630用于基于第一块设备以及第二块设备和/或第三块设备实现内存转储。
在本申请实施例装置的描述中,在装置中构造用于实现方法流程功能的各种模块,模块的划分仅仅是一种逻辑功能的划分,在实施本申请实施例时可以把各模块的功能在同一个或多个软件和/或硬件中实现。
具体的,各个功能模块在实际实现时可以全部或部分集成到一个物理实体上,也可以物理上分开。且这些模块可以全部以软件通过处理元件调用的形式实现;也可以全部以硬件的形式实现;还可以部分模块以软件通过处理元件调用的形式实现,部分模块通过硬件的形式实现。例如,检测模块可以为单独设立的处理元件,也可以集成在电子设备的某一个芯片中实现。其它模块的实现与之类似。此外这些模块全部或部分可以集成在一起,也可以独立实现。在实现过程中,上述方法的各步骤或以上各个模块可以通过处理器元件中的硬件的集成逻辑电路或者软件形式的指令完成。
例如,以上这些模块可以是被配置成实施以上方法的一个或多个集成电路,例如:一个或多个特定集成电路(Application Specific Integrated Circuit,ASIC),或,一个或多个数字信号处理器(Digital Singnal Processor,DSP),或,一个或者多个现场可编程门阵列(Field Programmable Gate Array,FPGA)等。再如,这些模块可以集成在一起,以片上装置(System-On-a-Chip,SOC)的形式实现。
本申请一实施例还提出了一种电子设备。
图7所示为根据本申请一实施例的电子设备结构示意图。
电子设备700包括用于存储计算机程序指令的存储器710和用于执行程序指令的处理器720,其中,当该计算机程序指令被该处理器执行时,触发电子设备执行如本申请实施例所述电子设备所执行的方法步骤。
具体的,在本申请一实施例中,上述一个或多个计算机程序被存储在上述存储器中,上述一个或多个计算机程序包括指令,当上述指令被上述设备执行时,使得上述设备执行本申请实施例所述的方法步骤。
具体的,在本申请一实施例中,电子设备的处理器可以是片上装置SOC,该处理器中可以包括中央处理器(Central Processing Unit,CPU),还可以进一步包括其他类型的处理器。具体的,在本申请一实施例中,电子设备的处理器可以是PWM控制芯片。
具体的,在本申请一实施例中,涉及的处理器可以例如包括CPU、DSP、微控制器或数字信号处理器,还可包括GPU、嵌入式神经网络处理器(Neural-network Process Units,NPU)和图像信号处理器(Image Signal Processing,ISP),该处理器还可包括必要的硬件加速器或逻辑处理硬件电路,如ASIC,或一个或多个用于控制本申请技术方案程序执行的集成电路等。此外,处理器可以具有操作一个或多个软件程序的功能,软件程序可以存储在存储介质中。
具体的,在本申请一实施例中,电子设备的存储器可以是只读存储器(read-onlymemory,ROM)、可存储静态信息和指令的其它类型的静态存储设备、随机存取存储器(random access memory,RAM)或可存储信息和指令的其它类型的动态存储设备,也可以是电可擦可编程只读存储器(electrically erasable programmable read-only memory,EEPROM)、只读光盘(compact disc read-only memory,CD-ROM)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其它磁存储设备,或者还可以是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何计算机可读介质。
具体的,在本申请一实施例中,处理器可以和存储器可以合成一个处理装置,更常见的是彼此独立的部件,处理器用于执行存储器中存储的程序代码来实现本申请实施例所述方法。具体实现时,该存储器也可以集成在处理器中,或者,独立于处理器。
进一步的,本申请实施例阐明的设备、装置、模块,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。
本领域内的技术人员应明白,本申请实施例可提供为方法、装置、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质上实施的计算机程序产品的形式。
在本申请所提供的几个实施例中,任一功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。
具体的,本申请一实施例中还提供一种计算机可读存储介质,该计算机可读存储介质中存储有计算机程序,当其在计算机上运行时,使得计算机执行本申请实施例提供的方法。
本申请一实施例还提供一种计算机程序产品,该计算机程序产品包括计算机程序,当其在计算机上运行时,使得计算机执行本申请实施例提供的方法。
本申请中的实施例描述是参照根据本申请实施例的方法、设备(装置)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
还需要说明的是,本申请实施例中,“至少一个”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示单独存在A、同时存在A和B、单独存在B的情况。其中A,B可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一项”及其类似表达,是指的这些项中的任意组合,包括单项或复数项的任意组合。例如,a,b和c中的至少一项可以表示:a,b,c,a和b,a和c,b和c或a和b和c,其中a,b,c可以是单个,也可以是多个。
本申请实施例中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
本申请可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本申请,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
本申请中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本领域普通技术人员可以意识到,本申请实施例中描述的各单元及算法步骤,能够以电子硬件、计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的装置、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
以上所述,仅为本申请的具体实施方式,任何熟悉本技术领域的技术人员在本申请公开的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。本申请的保护范围应以所述权利要求的保护范围为准。
Claims (17)
1.一种内存转储方法,其特征在于,所述方法应用于电子设备,所述方法包括:
在所述电子设备的存储分区上创建预留文件和非预留文件,所述预留文件在所述电子设备上的存储地址为连续物理地址;
将所述预留文件转换为第一块设备,将所述非预留文件转换为块设备;
基于所述第一块设备以及所述非预留文件对应的块设备实现内存转储;
其中,所述预留文件在内存转储功能被关闭时不被删除,所述非预留文件在内存转储功能被关闭时被删除。
2.根据权利要求1所述的方法,其特征在于,所述电子设备被配置为,在所述电子设备的操作系统处于运行状态下不可删除所述预留文件。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在所述电子设备启动操作系统的过程中,删除所述预留文件以释放存储空间。
4.根据权利要求1所述的方法,其特征在于,所述在所述电子设备的存储分区上创建预留文件,包括:
在所述电子设备启动操作系统的过程中,创建所述预留文件。
5.根据权利要求1所述的方法,其特征在于,所述在所述电子设备的存储分区上创建预留文件,包括:
确认所述电子设备的存储分区上是否存在所述预留文件;
在所述电子设备的存储分区上不存在所述预留文件的情况下,在所述电子设备的存储分区上创建预留文件;
在所述电子设备的存储分区上存在所述预留文件的情况下,或者,在成功创建所述预留文件的情况下,校验所述预留文件;
在所述预留文件校验成功的情况下,执行所述将所述预留文件转换为第一块设备以及后续步骤,包括,绑定所述第一块设备到内存转储功能。
6.根据权利要求1所述的方法,其特征在于,所述基于所述第一块设备实现内存转储,包括:
创建对应所述预留文件大小的第一虚拟地址空间;
建立所述第一虚拟地址空间的虚拟地址到所述第一块设备的物理地址的第一地址映射;
基于所述第一虚拟地址空间实现内存转储,其中,在将块输出/输入发送给块层之前,根据所述第一地址映射,将虚拟地址映射到正确的物理地址。
7.根据权利要求1所述的方法,其特征在于,所述方法还包括:
删除所述非预留文件以释放存储空间。
8.根据权利要求1所述的方法,其特征在于,所述在所述电子设备的存储分区上创建非预留文件,包括:
在所述电子设备启动操作系统的过程中,或者,在所述操作系统启动后,创建所述非预留文件。
9.根据权利要求1所述的方法,其特征在于,所述基于所述第一块设备以及所述非预留文件对应的块设备实现内存转储,包括:
创建对应所述预留文件以及所述非预留文件大小之和的第二虚拟地址空间;
建立所述第二虚拟地址空间的虚拟地址到所述第一块设备以及所述非预留文件对应的块设备的物理地址的第二地址映射,其中,从所述第二虚拟地址空间最高位开始,将连续的虚拟地址映射到所述第一块设备的物理地址,在所述第一块设备的物理地址被完全映射后,将剩余的虚拟地址映射到所述非预留文件对应的块设备的物理地址;
基于所述第二虚拟地址空间实现内存转储,其中,在将块输出/输入发送给块层之前,根据所述第二地址映射,将虚拟地址映射到正确的物理地址。
10.根据权利要求1所述的方法,其特征在于,所述非预留文件包括非预留连续文件,所述非预留连续文件在所述电子设备上的存储地址为连续物理地址。
11.根据权利要求1所述的方法,其特征在于,所述非预留文件包括非预留非连续文件,所述非预留非连续文件在所述电子设备上的存储地址为非连续物理地址。
12.根据权利要求11所述的方法,其特征在于,所述将所述非预留文件转换为块设备,包括,基于环路设备,将所述非预留非连续文件转换为块设备。
13.根据权利要求1所述的方法,其特征在于,所述在所述电子设备的存储分区上创建非预留文件,包括:
确认所述电子设备的存储分区上是否存在非预留连续文件,所述非预留连续文件在所述电子设备上的存储地址为连续物理地址;
在所述电子设备的存储分区上不存在所述非预留连续文件的情况下,在所述电子设备的存储分区上创建非预留连续文件;
在所述电子设备的存储分区上存在所述非预留连续文件的情况下,或者,在成功创建所述非预留连续文件的情况下,校验所述非预留连续文件;
在所述非预留连续文件校验成功的情况下,确认所述电子设备的存储分区上是否存在非预留非连续文件,在存在所述非预留非连续文件时删除所述非预留非连续文件,所述非预留非连续文件在所述电子设备上的存储地址为非连续物理地址;
在所述非预留连续文件校验成功的情况下,执行所述将所述非预留文件转换为块设备以及后续步骤,包括,将所述非预留连续文件转换为第二块设备,绑定所述第二块设备到内存转储功能。
14.根据权利要求13所述的方法,其特征在于,所述在所述电子设备的存储分区上创建非预留文件,还包括:
在所述非预留连续文件校验失败的情况下,删除所述非预留连续文件;
在创建所述非预留连续文件失败的情况下,或者,在所述非预留连续文件校验失败的情况下,确认所述电子设备的存储分区上是否存在所述非预留非连续文件;
在所述电子设备的存储分区上不存在所述非预留非连续文件的情况下,创建所述非预留非连续文件;
在创建所述非预留非连续文件成功,或者,在所述电子设备的存储分区上存在所述非预留非连续文件的情况下,校验所述非预留非连续文件;
在所述非预留非连续文件校验成功的情况下,执行所述将所述非预留文件转换为块设备以及后续步骤,包括,将所述非预留非连续文件转换为第三块设备,绑定所述第三块设备到内存转储功能。
15.一种内存转储装置,其特征在于,所述装置应用于电子设备,所述装置包括:
文件创建模块,其用于在所述电子设备的存储分区上创建预留文件和非预留文件,所述预留文件在所述电子设备上的存储地址为连续物理地址;
块设备转换模块,其用于将所述预留文件转换为第一块设备,将所述非预留文件转换为块设备;
转储模块,其用于基于所述第一块设备以及所述非预留文件对应的块设备实现内存转储;
其中,所述预留文件在内存转储功能被关闭时不被删除,所述非预留文件在内存转储功能被关闭时被删除。
16.一种电子设备,其特征在于,所述电子设备包括用于存储计算机程序指令的存储器和用于执行计算机程序指令的处理器,其中,当所述计算机程序指令被该处理器执行时,触发所述电子设备执行如权利要求1-14中任一项所述的方法步骤。
17.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机程序,当其在计算机上运行时,使得计算机执行如权利要求1-14中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211148848.XA CN116701244B (zh) | 2022-09-20 | 2022-09-20 | 一种内存转储方法、装置和电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211148848.XA CN116701244B (zh) | 2022-09-20 | 2022-09-20 | 一种内存转储方法、装置和电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116701244A CN116701244A (zh) | 2023-09-05 |
CN116701244B true CN116701244B (zh) | 2024-05-24 |
Family
ID=87831738
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211148848.XA Active CN116701244B (zh) | 2022-09-20 | 2022-09-20 | 一种内存转储方法、装置和电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116701244B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN118519783A (zh) * | 2024-07-19 | 2024-08-20 | 浙江大华技术股份有限公司 | 基于嵌入式设备的核心转储方法、装置和计算机设备 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108763099A (zh) * | 2018-04-18 | 2018-11-06 | 华为技术有限公司 | 系统的启动方法、装置、电子设备和存储介质 |
CN108932155A (zh) * | 2018-07-25 | 2018-12-04 | 迈普通信技术股份有限公司 | 虚拟机存储管理方法、装置、电子设备及可读存储介质 |
CN111444113A (zh) * | 2019-01-16 | 2020-07-24 | 阿里巴巴集团控股有限公司 | 非易失性存储介质共享方法、装置、电子设备及存储设备 |
CN114840450A (zh) * | 2022-07-04 | 2022-08-02 | 荣耀终端有限公司 | 一种存储空间整理方法及电子设备 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9804960B2 (en) * | 2013-03-14 | 2017-10-31 | Western Digital Technologies, Inc. | Overprovision capacity in a data storage device |
KR20140145879A (ko) * | 2013-06-14 | 2014-12-24 | 삼성전자주식회사 | 가상 블록 디바이스로 파일 시스템을 마운트하는 전자 장치 및 방법 |
CN111949605B (zh) * | 2019-05-15 | 2024-07-19 | 伊姆西Ip控股有限责任公司 | 用于实现文件系统的方法、设备和计算机程序产品 |
-
2022
- 2022-09-20 CN CN202211148848.XA patent/CN116701244B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108763099A (zh) * | 2018-04-18 | 2018-11-06 | 华为技术有限公司 | 系统的启动方法、装置、电子设备和存储介质 |
CN108932155A (zh) * | 2018-07-25 | 2018-12-04 | 迈普通信技术股份有限公司 | 虚拟机存储管理方法、装置、电子设备及可读存储介质 |
CN111444113A (zh) * | 2019-01-16 | 2020-07-24 | 阿里巴巴集团控股有限公司 | 非易失性存储介质共享方法、装置、电子设备及存储设备 |
CN114840450A (zh) * | 2022-07-04 | 2022-08-02 | 荣耀终端有限公司 | 一种存储空间整理方法及电子设备 |
Non-Patent Citations (1)
Title |
---|
Symbian操作系统的内存管理分析;刘絮颖;尹青;舒辉;蒋烈辉;余弦;;信息工程大学学报;20101215(第06期);47-51+55 * |
Also Published As
Publication number | Publication date |
---|---|
CN116701244A (zh) | 2023-09-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10353586B2 (en) | Memory device and host device | |
US9524233B2 (en) | System and method for efficient swap space allocation in a virtualized environment | |
JP6138774B2 (ja) | コンピュータにより実行される方法及びコンピュータシステム | |
US9535628B2 (en) | Memory system with shared file system | |
JP6370218B2 (ja) | メモリ管理方法、コンピュータシステム、コンピュータプログラム及び記憶媒体 | |
CN106201659B (zh) | 一种虚拟机热迁移的方法及宿主机 | |
US7523280B2 (en) | Storage managing system, storage managing apparatus, and storage managing method | |
CN110704161B (zh) | 虚拟机创建方法、装置及计算机设备 | |
CN108196937B (zh) | 字符串对象的处理方法、装置、计算机设备和存储介质 | |
JP2020511714A5 (zh) | ||
US11640244B2 (en) | Intelligent block deallocation verification | |
CN116701244B (zh) | 一种内存转储方法、装置和电子设备 | |
CN105468538B (zh) | 一种内存迁移方法及设备 | |
JP2014523022A (ja) | コンピュータにより実行される方法及びコンピュータシステム | |
CN111522659B (zh) | 一种空间使用方法和装置 | |
CN109960569B (zh) | 一种虚拟化处理方法及装置 | |
JP5338435B2 (ja) | 情報処理プログラム、情報処理装置および情報処理方法 | |
US8966212B2 (en) | Memory management method, computer system and computer readable medium | |
CN107329836B (zh) | 多系统的内存管理方法、管理装置以及移动终端 | |
CN115712500A (zh) | 内存释放、内存恢复方法、装置、计算机设备及存储介质 | |
CN110659248B (zh) | 基于非易失性内存的用户态文件系统设计方法及系统 | |
Lim et al. | SWAM: Revisiting Swap and OOMK for Improving Application Responsiveness on Mobile Devices | |
CN111597066A (zh) | Ssd修复方法、装置、计算机设备及存储介质 | |
JP3903678B2 (ja) | 計算機システムのダンプ処理方法 | |
WO2016041202A1 (zh) | 一种基于云环境系统的部署方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |