CN116719633A - 管理内存交换分区的方法和电子设备 - Google Patents
管理内存交换分区的方法和电子设备 Download PDFInfo
- Publication number
- CN116719633A CN116719633A CN202211148030.8A CN202211148030A CN116719633A CN 116719633 A CN116719633 A CN 116719633A CN 202211148030 A CN202211148030 A CN 202211148030A CN 116719633 A CN116719633 A CN 116719633A
- Authority
- CN
- China
- Prior art keywords
- file
- storage space
- memory
- electronic device
- unreserved
- 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.)
- Pending
Links
- 230000015654 memory Effects 0.000 title claims abstract description 131
- 238000000034 method Methods 0.000 title claims abstract description 87
- 238000005192 partition Methods 0.000 title claims abstract description 86
- 230000006870 function Effects 0.000 claims abstract description 36
- 230000008569 process Effects 0.000 claims description 17
- 238000013507 mapping Methods 0.000 claims description 11
- 238000004590 computer program Methods 0.000 claims description 8
- 239000002699 waste material Substances 0.000 abstract description 10
- 238000007726 management method Methods 0.000 description 39
- 238000004891 communication Methods 0.000 description 30
- 230000006386 memory function Effects 0.000 description 22
- 238000012545 processing Methods 0.000 description 21
- 238000010295 mobile communication Methods 0.000 description 12
- 238000010586 diagram Methods 0.000 description 8
- 238000006243 chemical reaction Methods 0.000 description 5
- 230000000694 effects Effects 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 5
- 239000008186 active pharmaceutical agent Substances 0.000 description 4
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000013459 approach Methods 0.000 description 2
- 238000013528 artificial neural network Methods 0.000 description 2
- 230000003416 augmentation Effects 0.000 description 2
- 230000003190 augmentative effect Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 230000007774 longterm Effects 0.000 description 2
- 238000009877 rendering Methods 0.000 description 2
- 238000000926 separation method Methods 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000001133 acceleration Effects 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 210000000988 bone and bone Anatomy 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 230000004927 fusion Effects 0.000 description 1
- 230000036541 health Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000004807 localization Effects 0.000 description 1
- 230000001537 neural effect Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000005855 radiation Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000005236 sound signal Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000003786 synthesis reaction Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5016—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5022—Mechanisms to release resources
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请实施例提供了一种管理内存交换分区的方法和电子设备,该方法由电子设备执行,包括:在电子设备接收到第一操作的情况下,在第一存储空间创建第一文件,第一文件包括第一预设数量的字节,其中,第一文件在第一存储空间占用的存储空间为内存交换分区,第一操作为对电子设备的开机操作和/或开启使用内存交换分区的功能的操作;在电子设备接收到第二操作的情况下,在第一存储空间删除第一文件,第二操作为关闭使用内存交换分区的功能的操作。该方法可以根据需要返还内存交换分区的存储空间,减少存储空间浪费问题。
Description
技术领域
本申请涉及存储技术领域,具体涉及一种管理内存交换分区的方法和电子设备。
背景技术
在电子设备的系统中,例如Android系统,为改善内存空间较小的问题,提出了内存交换分区(Swap分区)的方案,目前较流行的方案是将内存、硬盘或其他存储设备中的一部分空间释放出来作为Swap分区,以供当前运行的程序使用。
其中,相关技术在电子设备出厂时,会将存储空间中的固定裸分区作为Swap分区,然而该方案中固定裸分区的存储空间无法进行返还,易造成存储空间浪费的问题。
发明内容
本申请提供了一种管理内存交换分区的方法和电子设备,可以根据需要返还内存交换分区的存储空间,减少存储空间浪费问题。
第一方面,本申请提供一种管理内存交换分区的方法,该方法由电子设备执行,包括:在电子设备接收到第一操作的情况下,在第一存储空间创建第一文件,第一文件包括第一预设数量的字节,其中,第一文件在第一存储空间占用的存储空间为内存交换分区,第一操作为对电子设备的开机操作和/或开启使用内存交换分区的功能的操作;在电子设备接收到第二操作的情况下,在第一存储空间删除第一文件,第二操作为关闭使用内存交换分区的功能的操作。
其中,第一文件可以为非预留文件,该第一文件占用第一预设数量的字节的空间大小;第一存储空间可以为电子设备的存储磁盘,例如可以为数据磁盘。电子设备在开机时或者在接收到开启使用内存交换分区的功能的操作时,可以在第一存储空间创建占用第一预设数量的字节的第一文件,将该第一文件对应的存储空间作为内存交换分区供后续使用。并且,该第一文件在关闭使用内存交换分区的功能时可以被删除掉,以释放其所占用的存储空间。可选地,上述第一操作可以为对电子设备的首次开机操作,即只在电子设备首次开机时创建上述第一文件。
可选地,电子设备还可以定时统计内存交换分区的使用情况,在对内存交换分区的使用频率较小的情况下,可以自动删除第一文件,以进一步减少存储空间浪费。
上述实现方式中,电子设备通过在存储空间上创建文件的方式作为内存交换分区,可以根据需要删除该文件来释放该文件对应的存储空间,以减少存储空间浪费问题。
结合第一方面,在第一方面的有些实现方式中,上述在第一存储空间创建第一文件,包括:确定第一存储空间中是否存在物理地址连续的且占用第一预设数量的字节的可用存储空间;若存在,将可用存储空间分配给第一文件;若不存在,将第一存储空间中物理地址不连续的且占用第一预设数量的字节的可用存储空间分配给第一文件。
也即是说,在创建占用第一预设数量的字节的第一文件时,优先分配物理地址连续的存储空间给该第一文件,以方便管理该第一文件。在不存在足够大的物理地址连续的存储空间时,再分配物理地址不连续的存储空间给该第一文件,使最终的总大小为第一预设数量的字节,以提高创建第一文件的成功率。可选地,在创建物理地址连续的存储空间对应的第一文件时,可以通过F2FS接口来进行创建。
可选地,在第一文件对应的存储空间的物理地址不连续的情况下,第一文件对应的存储空间可以包括多个物理地址连续的子存储空间,每个子存储空间对应一个子文件,也即是说第一文件包括多个物理地址连续的子文件,这些子文件占用的存储空间可以相同,也可以不同。
结合第一方面,在第一方面的有些实现方式中,在第一存储空间创建第一文件之后,上述方法还包括:在第一文件对应的存储空间的物理地址连续的情况下,以块block设备形式存储第一文件;在第一文件对应的存储空间的物理地址不连续的情况下,以loop设备形式存储第一文件。
其中,为适应当前电子设备的I/O管理策略,在创建第一文件之后,电子设备还可以将第一文件转储为block设备。但在第一文件对应的存储空间的物理地址不连续的情况下,其无法直接转换为普通的block设备,则需要将其转储为loop设备,这里的loop设备是一种特殊的块设备。
上述实现方式中,电子设备通过将已创建的第一文件转储为block(或loop设备),以适应当前电子设备的I/O管理策略,提高了上述管理内存交换分区的方法的兼容性。
结合第一方面,在第一方面的有些实现方式中,上述方法还包括:根据电子设备运行过程中对内存交换分区的使用情况,调整第一文件包括的字节数量。
其中,电子设备对内存交换分区的使用情况可以包括使用概率和使用比例,使用概率可以为每月(或每周等)使用内存交换分区的次数,使用比例可以为所使用的空间大小占内存交换分区总大小的比例。如果使用频率较大且使用比例较高,则可以增大第一文件所包括的字节数量,即扩大第一文件对应的存储空间;如果使用频率较小且使用比例较低,则可以减少第一文件所包括的字节数量,即缩小第一文件对应的存储空间。由此,电子设备可以动态调整内存交换分区的大小,以优化存储空间的使用情况。
结合第一方面,在第一方面的有些实现方式中,在电子设备接收到第一操作的情况下,上述方法还包括:在第一存储空间创建第二文件,第二文件包括第二预设数量的字节,第一文件在第一存储空间占用的存储空间和第二文件在第一存储空间占用的存储空间为内存交换分区;在电子设备接收到第二操作的情况下,上述方法还包括:在第一存储空间不删除第二文件。
其中,第二文件可以为预留文件,即在电子设备接收到第一操作的情况下,电子设备同时创建第一文件和第二文件,不同的是,该第二文件在后续并不被删除掉,即不释放第二文件对应的存储空间,由此可以使电子设备始终保留一部分的内存交换分区,以保证电子设备的正常运行。可选地,第一文件和第二文件的所包括的字节数量可以是预先设置的固定数量,也可以是用户输入的可改变的数量。
可选地,该实现方式中,第二文件对应的存储空间的物理地址可以为连续地址,其可以为通过F2FS接口创建的文件。
在一个实现方式中,在内存交换分区已创建完成的情况下,为方便管理对应的第一文件和第二文件,电子设备可以创建虚拟地址与第一文件对应的存储空间的物理地址、虚拟地址与第二文件对应的存储空间的物理地址的对应关系。那么,在后续使用内存交换分区时,电子设备便可以根据尚未使用的存储空间对应的虚拟地址与该对应关系,确定尚未使用的存储空间对应的物理地址,以查找到该物理地址对应于哪个文件,并将待存储数据存储于该文件中。优选地,电子设备可以将第一文件对应的存储空间的物理地址映射于虚拟地址的低位,第二文件对应的存储空间的物理地址映射于虚拟地址的高位,并在使用时优先使用预留文件(即第二文件)。
上述实现方式中,电子设备通过申请预留文件和非预留文件作为内存交换分区的方式,使得后续可以释放非预留文件以返还存储空间,从而减少存储空间的浪费情况;并且可以动态调整非预留文件的大小,进一步优化存储空间的使用情况。
第二方面,本申请提供一种装置,该装置包含在电子设备中,该装置具有实现上述第一方面及上述第一方面的可能实现方式中电子设备行为的功能。功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。硬件或软件包括一个或多个与上述功能相对应的模块或单元。例如,接收模块或单元、处理模块或单元等。
第三方面,本申请提供一种电子设备,电子设备包括:处理器、存储器和接口;处理器、存储器和接口相互配合,使得电子设备执行第一方面的技术方案中任意一种方法。
第四方面,本申请提供一种芯片,包括处理器。处理器用于读取并执行存储器中存储的计算机程序,以执行第一方面及其任意可能的实现方式中的方法。
可选地,芯片还包括存储器,存储器与处理器通过电路或电线连接。
进一步可选地,芯片还包括通信接口。
第五方面,本申请提供一种计算机可读存储介质,计算机可读存储介质中存储了计算机程序,当计算机程序被处理器执行时,使得该处理器执行第一方面的技术方案中任意一种方法。
第六方面,本申请提供一种计算机程序产品,计算机程序产品包括:计算机程序代码,当计算机程序代码在电子设备上运行时,使得该电子设备执行第一方面的技术方案中任意一种方法。
附图说明
图1是本申请实施例提供的一例电子设备的结构示意图;
图2是本申请实施例提供的一例电子设备的软件结构框图;
图3是本申请实施例提供的一例管理内存交换分区的方法的流程示意图;
图4是本申请实施例提供的一例虚拟地址与物理地址的映射关系示意图;
图5是本申请实施例提供的一例智慧内存功能的设置界面示意图;
图6是本申请实施例提供的另一例智慧内存功能的设置界面示意图;
图7是本申请实施例提供的另一例管理内存交换分区的方法的流程示意图;
图8是本申请实施例提供的一例分配预留文件和非预留文件的流程示意图;
图9是本申请实施例提供的一例管理内存交换分区的方法模块交互示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。其中,在本申请实施例的描述中,除非另有说明,“/”表示或的意思,例如,A/B可以表示A或B;本文中的“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,在本申请实施例的描述中,“多个”是指两个或多于两个。
以下,术语“第一”、“第二”、“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”、“第三”的特征可以明示或者隐含地包括一个或者更多个该特征。
目前,在Android系统的使用过程中,为改善内存空间较小的问题,提出了内存节省方案,例如在只读存储器(read only memory,ROM)上创建Swap分区,即将系统中不常用的匿名页转储到ROM的Swap分区中,以扩展内存空间。其中,Swap分区是一种在系统的物理内存不够用的时候,把内存、硬盘或其他存储设备中的一部分空间释放出来,以供当前运行的程序使用的技术。
相关技术中,有一些做法是使用ROM上的裸分区作为Swap分区来扩展内存空间,例如将hyperhold裸分区作为Swap分区。然而,这种方法一般是在电子设备出厂时即划分了固定分区空间,这些固定分区空间后续无法返还给ROM,且固定分区无法动态调整空间大小。
有鉴于此,本申请实施例提供了一种管理内存交换分区的方法,通过申请预留文件和非预留文件作为内存交换分区的方式,灵活扩展内存空间;其中,非预留文件可以被释放,从而返还存储空间,且该方法也可以动态调整预留文件和非预留文件的大小。需要说明的是,本申请实施例提供的管理内存交换分区的方法,可以应用于手机、平板电脑、可穿戴设备、车载设备、增强现实(augmented reality,AR)/虚拟现实(virtual reality,VR)设备、笔记本电脑、超级移动个人计算机(ultra-mobile personal computer,UMPC)、上网本、个人数字助理(personal digital assistant,PDA)等电子设备上,本申请实施例对电子设备的具体类型不作任何限制。
示例性的,图1是本申请实施例提供的一例电子设备100的结构示意图。电子设备100可以包括处理器110,外部存储器接口120,内部存储器121,通用串行总线(universalserial bus,USB)接口130,充电管理模块140,电源管理模块141,电池142,天线1,天线2,移动通信模块150,无线通信模块160,音频模块170,扬声器170A,受话器170B,麦克风170C,耳机接口170D,传感器模块180,按键190,马达191,指示器192,摄像头193,显示屏194,以及用户标识模块(subscriber identification module,SIM)卡接口195等。其中传感器模块180可以包括压力传感器180A,陀螺仪传感器180B,气压传感器180C,磁传感器180D,加速度传感器180E,距离传感器180F,接近光传感器180G,指纹传感器180H,温度传感器180J,触摸传感器180K,环境光传感器180L,骨传导传感器180M等。
处理器110可以包括一个或多个处理单元,例如:处理器110可以包括应用处理器(application processor,AP),调制解调处理器,图形处理器(graphics processingunit,GPU),图像信号处理器(image signal processor,ISP),控制器,存储器,视频编解码器,数字信号处理器(digital signal processor,DSP),基带处理器,和/或神经网络处理器(neural-network processing unit,NPU)等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。
其中,控制器可以是电子设备100的神经中枢和指挥中心。控制器可以根据指令操作码和时序信号,产生操作控制信号,完成取指令和执行指令的控制。
处理器110中还可以设置存储器,用于存储指令和数据。在一些实施例中,处理器110中的存储器为高速缓冲存储器。该存储器可以保存处理器110刚用过或循环使用的指令或数据。如果处理器110需要再次使用该指令或数据,可从存储器中直接调用。避免了重复存取,减少了处理器110的等待时间,因而提高了系统的效率。
在一些实施例中,处理器110可以包括一个或多个接口。接口可以包括集成电路(inter-integrated circuit,I2C)接口,集成电路内置音频(inter-integrated circuitsound,I2S)接口,脉冲编码调制(pulse code modulation,PCM)接口,通用异步收发传输器(universal asynchronous receiver/transmitter,UART)接口,移动产业处理器接口(mobile industry processor interface,MIPI),通用输入输出(general-purposeinput/output,GPIO)接口,用户标识模块(subscriber identity module,SIM)接口,和/或通用串行总线(universal serial bus,USB)接口等。
可以理解的是,本申请实施例示意的各模块间的接口连接关系,只是示意性说明,并不构成对电子设备100的结构限定。在本申请另一些实施例中,电子设备100也可以采用上述实施例中不同的接口连接方式,或多种接口连接方式的组合。
充电管理模块140用于从充电器接收充电输入。其中,充电器可以是无线充电器,也可以是有线充电器。在一些有线充电的实施例中,充电管理模块140可以通过USB接口130接收有线充电器的充电输入。在一些无线充电的实施例中,充电管理模块140可以通过电子设备100的无线充电线圈接收无线充电输入。充电管理模块140为电池142充电的同时,还可以通过电源管理模块141为电子设备供电。
电源管理模块141用于连接电池142,充电管理模块140与处理器110。电源管理模块141接收电池142和/或充电管理模块140的输入,为处理器110,内部存储器121,外部存储器,显示屏194,摄像头193,和无线通信模块160等供电。电源管理模块141还可以用于监测电池容量,电池循环次数,电池健康状态(漏电,阻抗)等参数。在其他一些实施例中,电源管理模块141也可以设置于处理器110中。在另一些实施例中,电源管理模块141和充电管理模块140也可以设置于同一个器件中。
电子设备100的无线通信功能可以通过天线1,天线2,移动通信模块150,无线通信模块160,调制解调处理器以及基带处理器等实现。
天线1和天线2用于发射和接收电磁波信号。图1中的天线1和天线2的结构仅为一种示例。电子设备100中的每个天线可用于覆盖单个或多个通信频带。不同的天线还可以复用,以提高天线的利用率。例如:可以将天线1复用为无线局域网的分集天线。在另外一些实施例中,天线可以和调谐开关结合使用。
移动通信模块150可以提供应用在电子设备100上的包括2G/3G/4G/5G等无线通信的解决方案。移动通信模块150可以包括至少一个滤波器,开关,功率放大器,低噪声放大器(low noise amplifier,LNA)等。移动通信模块150可以由天线1接收电磁波,并对接收的电磁波进行滤波,放大等处理,传送至调制解调处理器进行解调。移动通信模块150还可以对经调制解调处理器调制后的信号放大,经天线1转为电磁波辐射出去。在一些实施例中,移动通信模块150的至少部分功能模块可以被设置于处理器110中。在一些实施例中,移动通信模块150的至少部分功能模块可以与处理器110的至少部分模块被设置在同一个器件中。
调制解调处理器可以包括调制器和解调器。其中,调制器用于将待发送的低频基带信号调制成中高频信号。解调器用于将接收的电磁波信号解调为低频基带信号。随后解调器将解调得到的低频基带信号传送至基带处理器处理。低频基带信号经基带处理器处理后,被传递给应用处理器。应用处理器通过音频设备(不限于扬声器170A,受话器170B等)输出声音信号,或通过显示屏194显示图像或视频。在一些实施例中,调制解调处理器可以是独立的器件。在另一些实施例中,调制解调处理器可以独立于处理器110,与移动通信模块150或其他功能模块设置在同一个器件中。
无线通信模块160可以提供应用在电子设备100上的包括无线局域网(wirelesslocal area networks,WLAN)(如无线保真(wireless fidelity,Wi-Fi)网络),蓝牙(bluetooth,BT),全球导航卫星系统(global navigation satellite system,GNSS),调频(frequency modulation,FM),近距离无线通信技术(near field communication,NFC),红外技术(infrared,IR)等无线通信的解决方案。无线通信模块160可以是集成至少一个通信处理模块的一个或多个器件。无线通信模块160经由天线2接收电磁波,将电磁波信号调频以及滤波处理,将处理后的信号发送到处理器110。无线通信模块160还可以从处理器110接收待发送的信号,对其进行调频,放大,经天线2转为电磁波辐射出去。
在一些实施例中,电子设备100的天线1和移动通信模块150耦合,天线2和无线通信模块160耦合,使得电子设备100可以通过无线通信技术与网络以及其他设备通信。无线通信技术可以包括全球移动通讯系统(global system for mobile communications,GSM),通用分组无线服务(general packet radio service,GPRS),码分多址接入(codedivision multiple access,CDMA),宽带码分多址(wideband code division multipleaccess,WCDMA),时分码分多址(time-division code division multiple access,TD-SCDMA),长期演进(long term evolution,LTE),BT,GNSS,WLAN,NFC,FM,和/或IR技术等。GNSS可以包括全球卫星定位系统(global positioning system,GPS),全球导航卫星系统(global navigation satellite system,GLONASS),北斗卫星导航系统(beidounavigation satellite system,BDS),准天顶卫星系统(quasi-zenith satellitesystem,QZSS)和/或星基增强系统(satellite based augmentation systems,SBAS)。
电子设备100通过GPU,显示屏194,以及应用处理器等实现显示功能。GPU为图像处理的微处理器,连接显示屏194和应用处理器。GPU用于执行数学和几何计算,用于图形渲染。处理器110可包括一个或多个GPU,其执行程序指令以生成或改变显示信息。
电子设备100可以通过ISP,摄像头193,视频编解码器,GPU,显示屏194以及应用处理器等实现拍摄功能。
数字信号处理器用于处理数字信号,除了可以处理数字图像信号,还可以处理其他数字信号。例如,当电子设备100在频点选择时,数字信号处理器用于对频点能量进行傅里叶变换等。
外部存储器接口120可以用于连接外部存储卡,例如Micro SD卡,实现扩展电子设备100的存储能力。外部存储卡通过外部存储器接口120与处理器110通信,实现数据存储功能。例如将音乐,视频等文件保存在外部存储卡中。
内部存储器121可以用于存储计算机可执行程序代码,可执行程序代码包括指令。处理器110通过运行存储在内部存储器121的指令,从而执行电子设备100的各种功能应用以及数据处理。内部存储器121可以包括存储程序区和存储数据区。其中,存储程序区可存储操作系统,至少一个功能所需的应用程序(比如声音播放功能,图像播放功能等)等。存储数据区可存储电子设备100使用过程中所创建的数据(比如音频数据,电话本等)等。此外,内部存储器121可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件,闪存器件,通用闪存存储器(universal flash storage,UFS)等。
电子设备100可以通过音频模块170,扬声器170A,受话器170B,麦克风170C,耳机接口170D,以及应用处理器等实现音频功能。例如音乐播放,录音等。
按键190包括开机键,音量键等。按键190可以是机械按键。也可以是触摸式按键。电子设备100可以接收按键输入,产生与电子设备100的用户设置以及功能控制有关的键信号输入。
马达191可以产生振动提示。马达191可以用于来电振动提示,也可以用于触摸振动反馈。例如,作用于不同应用(例如拍照,音频播放等)的触摸操作,可以对应不同的振动反馈效果。作用于显示屏194不同区域的触摸操作,马达191也可对应不同的振动反馈效果。不同的应用场景(例如:时间提醒,接收信息,闹钟,游戏等)也可以对应不同的振动反馈效果。触摸振动反馈效果还可以支持自定义。
指示器192可以是指示灯,可以用于指示充电状态,电量变化,也可以用于指示消息,未接来电,通知等。
SIM卡接口195用于连接SIM卡。SIM卡可以通过插入SIM卡接口195,或从SIM卡接口195拔出,实现和电子设备100的接触和分离。电子设备100可以支持1个或N个SIM卡接口,N为大于1的正整数。SIM卡接口195可以支持Nano SIM卡,Micro SIM卡,SIM卡等。同一个SIM卡接口195可以同时插入多张卡。多张卡的类型可以相同,也可以不同。SIM卡接口195也可以兼容不同类型的SIM卡。SIM卡接口195也可以兼容外部存储卡。电子设备100通过SIM卡和网络交互,实现通话以及数据通信等功能。在一些实施例中,电子设备100采用eSIM,即:嵌入式SIM卡。eSIM卡可以嵌在电子设备100中,不能和电子设备100分离。
可以理解的是,本申请实施例示意的结构并不构成对电子设备100的具体限定。在本申请另一些实施例中,电子设备100可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。
其中,电子设备100的软件系统可以采用分层架构,事件驱动架构,微核架构,微服务架构,或云架构。本申请实施例以分层架构的Android系统为例,示例性说明电子设备100的软件结构。图2是本申请实施例的电子设备100的软件结构框图。分层架构将软件分成若干个层,每一层都有清晰的角色和分工。层与层之间通过软件接口通信。在一些实施例中,将Android系统从上至下分为应用程序层、系统层以及物理层。
应用程序层可以包括一系列应用程序包。如图2所示,应用程序包可以包括设置应用程序,还可以包括相机,图库,日历,通话,地图,导航,WLAN,蓝牙,音乐,视频,短信息等应用程序(图中未示出)。用户通过设置应用程序可以对电子设备的进行相关的功能设置,例如开关智慧内存功能等。
系统层中的模块可以为应用程序层提供功能实现的支持,以智慧内存功能为例,如图2所示,系统层可以包括转储模块、block模块等。转储模块可以包括文件转储接口、转储文件管理模块、加解密模块、block I/O调度模块以及eswap空间管理模块。其中,eswap空间管理模块可以用来申请和管理内存交换分区空间,例如申请预留文件和非预留文件。文件转储接口可以用来将申请到的物理地址不连续的非预留文件转换为loop设备(其是一种特殊的block设备),也可以将申请到的预留文件和物理地址连续的非预留文件转换为block设备。转储文件管理模块可以用来对转储得到的loop设备和block设备进行管理。block I/O调度模块可以用来对block设备进行调度,以统一I/O管理。加解密模块可以用来对需要存储或使用的数据进行加解密。
继续参见图2,eswap空间管理模块申请到的预留文件可以为物理地址连续的文件,非预留文件可以包括物理地址连续的文件和物理地址不连续的文件。这些文件经过文件转储接口后转换为block设备存储于block模块(也可称为block层)。
物理层可以包括一系列的存储器,例如UFS存储器,其可以用来存储上述申请到的预留文件和非预留文件。
除此之外,电子设备100的软件结构还可以包括应用程序框架层(图中未示出),其为应用程序层的应用程序提供应用编程接口(application programming interface,API)和编程框架,应用程序框架层包括一些预先定义的函数。在一些实施例中,应用程序框架层可以包括窗口管理器,内容提供器,视图系统,电话管理器,资源管理器,通知管理器等。
窗口管理器用于管理窗口程序。窗口管理器可以获取显示屏大小,判断是否有状态栏,锁定屏幕,截取屏幕等。内容提供器用来存放和获取数据,并使这些数据可以被应用程序访问。数据可以包括视频,图像,音频,拨打和接听的电话,浏览历史和书签,电话簿等。视图系统包括可视控件,例如显示文字的控件,显示图片的控件等。视图系统可用于构建应用程序。显示界面可以由一个或多个视图组成的。例如,包括短信通知图标的显示界面,可以包括显示文字的视图以及显示图片的视图。电话管理器用于提供电子设备100的通信功能。例如通话状态的管理(包括接通,挂断等)。资源管理器为应用程序提供各种资源,比如本地化字符串,图标,图片,布局文件,视频文件等等。通知管理器使应用程序可以在状态栏中显示通知信息,可以用于传达告知类型的消息,可以短暂停留后自动消失,无需用户交互。比如通知管理器被用于告知下载完成,消息提醒等。通知管理器还可以是以图表或者滚动条文本形式出现在系统顶部状态栏的通知,例如后台运行的应用程序的通知,还可以是以对话窗口形式出现在屏幕上的通知。例如在状态栏提示文本信息,发出提示音,电子设备振动,指示灯闪烁等。
系统层还可以包括Android runtime(图中未示出),Android runtime包括核心库和虚拟机,负责安卓系统的调度和管理。核心库包含两部分:一部分是java语言需要调用的功能函数,另一部分是安卓的核心库。应用程序层和应用程序框架层运行在虚拟机中。虚拟机将应用程序层和应用程序框架层的java文件执行为二进制文件。虚拟机用于执行对象生命周期的管理,堆栈管理,线程管理,安全和异常的管理,以及垃圾回收等功能。
系统层还可以包括多个功能模块,例如:表面管理器(surface manager),媒体库(media libraries),三维图形处理库(例如:OpenGL ES),2D图形引擎(例如:SGL)等(图中未示出)。
表面管理器用于对显示子系统进行管理,并且为多个应用程序提供了2D和3D图层的融合。媒体库支持多种常用的音频,视频格式回放和录制,以及静态图像文件等。媒体库可以支持多种音视频编码格式,例如:MPEG4,H.264,MP3,AAC,AMR,JPG,PNG等。三维图形处理库用于实现三维图形绘图,图像渲染,合成,和图层处理等。2D图形引擎是2D绘图的绘图引擎。
可以理解的是,上述软件结构并不构成对电子设备100的具体限定,在本申请另一些实施例中,电子设备100可以包括比图示更多或更少的模块。
基于上述图1和图2所示结构的电子设备为例,下面结合附图和应用场景,对本申请实施例提供的管理内存交换分区的方法进行具体阐述。
图3是本申请实施例提供的一例管理内存交换分区的方法的流程示意图,以该方法应用于电子设备为例,该方法包括:
S101,在电子设备首次开机时,分配预留文件和非预留文件作为内存交换分区。
其中,本申请实施例中的电子设备首次开机是指电子设备出厂后的第一次开机启动,此时,电子设备可以申请分配预留文件和非预留文件。这里默认的在电子设备首次开机时,电子设备的智慧内存功能已开启,即开机时可以自动的从电子设备的存储空间上申请分配预留文件和非预留文件。例如,电子设备的存储空间可以被划分为多个存储磁盘(如数据磁盘、系统磁盘等),电子设备可以从数据磁盘上申请分配预留文件和非预留文件。
在一些实施例中,所申请分配的预留文件和非预留文件的大小可以预先设置,示例性地,可以申请分配xGB的预留文件和yGB的非预留文件,例如x为0.5,y为1.5。在另一些实施例中,所申请分配的预留文件和非预留文件的大小可以根据电子设备的内存大小来确定,例如电子设备的内存较大时,所分配的预留文件和非预留文件的大小可以小一些;电子设备的内存较小时,所分配的预留文件和非预留文件的大小可以大一些。在又一些实施例中,电子设备可以在运行过程中统计内存交换分区的使用频率和使用大小,动态调整预留文件和非预留文件的大小,例如内存交换分区的使用频率较小的情况下,减小非预留文件的大小(即释放一部分空间),避免存储空间的浪费;且在动态调整的过程中不影响用户对电子设备的正常使用,用户侧无感知。
在申请分配预留文件时,电子设备可以通过F2FS(flash friendly file system)接口进行分配,所分配的物理地址连续,且在后续关闭智慧内存功能时不释放该预留文件。
在申请分配非预留文件时,电子设备可以优先通过F2FS接口分配物理地址连续的文件(以下简称为连续文件)。若F2FS申请物理地址连续的文件失败,则向系统申请普通文件作为非预留文件,这里普通文件的物理地址可以不连续(以下称为非连续文件)。需要说明的是,在后续关闭智慧内存功能时,非预留文件可以被释放(即将非预留文件删除),将已分配的空间返回给ROM。
可以理解,为区分预留文件和非预留文件,电子设备可以为各文件分配一个标识,不同标识对应的文件类型不同,例如标识1对应预留文件,标识-1对应非预留文件。还可以理解,若申请的非预留文件为非连续文件时,非连续文件的个数可以为多个,为提高申请非预留文件时的成功率,这多个非连续文件可以为多个小空间的连续文件,并且小空间的连续文件后续可以直接转换为block设备,以减少转换过程的性能损耗。例如,申请多个空间大小为2MB的连续文件。
S102,将分配的预留文件和非预留文件转换为block设备并用于存储。
在申请分配到预留文件和非预留文件后,为统一当前的I/O管理,电子设备需要将预留文件和非预留文件转换为block设备使用。需要说明的是,此处的block设备只是预留文件和非预留文件的一种存储形式,原预留文件和非预留文件在存储空间中仍有存储。
对于预留文件和非预留文件中的连续文件,电子设备可以将这些文件直接转换为block设备,具体的转换过程为:获取文件对应的文件描述结构体struct file,通过blkdev_get接口将其转换为block设备,涉及的API为:filp_open/filp_close/bdgrab/blkdev_get。
对于非预留文件中的非连续文件,电子设备可以将这些文件转换为loop设备;其中,loop设备是一种特殊的block设备,其是通过映射操作系统上的正常文件而形成的虚拟块设备。具体的转换过程为:首先通过接口获取对应的文件描述符fd,涉及的API为:filp_open/vfs_truncate/vfs_fallocate/get_unused_fd_flags/fd_install/filp_close;然后通过/dev/loop-control节点获取系统可分配的设备号devnr,创建对应的loop文件/dev/block/loop_devnr,获取其inode节点,调用系统接口blkdev_get_by_dev将其转换为loop设备,通过ioctl中的LOOP_SET_FD操作绑定上述获取到的文件描述符fd,实现loop设备转换,涉及的API为:filp_open/filp_close/blkdev_get_by_dev。
由上述描述可知,预留文件和非预留文件转换为block设备后,各文件和所转换的block设备具有一定的对应关系,例如预留文件和非预留文件的物理地址与block设备的设备号devnr相对应。
在一些实施例中,为方便管理预留文件和非预留文件,电子设备可以采用虚拟地址统一进行管理,虚拟地址可以使用bit map统一分配管理空间:假设每个bit位代表32KB大小的空间,bit位标记为extent,总bit位大小记为extent_total_bit,每次分配时从bit1位开始寻找尚未使用的空间记为bit_x,实际所用的虚拟地址为vaddr=extent_total_bit-bit_x-1。由以上虚拟地址转换关系可知在分配空间时,优先使用的是虚拟地址的高位,为保证效率优先使用预留文件,则将虚拟地址的高位映射到预留文件,再将剩余的虚拟地址映射到非预留文件。
示例性地,电子设备可以根据文件整体大小分配虚拟地址,预留文件和非预留文件有相应的地址分隔阈值,以内存交换分区总大小为2GB,预留文件为512MB,一个非预留文件为例,虚拟地址与物理地址的映射关系参见图4。如图4所示,虚拟地址vaddr是连续的,对应有2GB的空间大小;高位512MB空间的地址与预留文件的物理地址addr对应,该预留文件还对应于block设备bdev1;低位2GB-512MB空间的地址与非预留文件的物理地址addr对应,该非预留文件还对应于block设备bdev2。
需要说明的是,本申请实施例对虚拟地址与物理地址的映射关系不限于预留文件与虚拟地址的高位对应、非预留文件与虚拟地址的地位对应的方式,也可以是其他的映射关系,只要能将虚拟地址与物理地址进行映射即可。
经过上述过程,电子设备便分配成功了预留文件和非预留文件作为内存交换分区,若后续有应用程序运行需要使用该内存交换分区的空间,则可以查找该内存交换分区中尚未使用的空间来满足运行需求。在查找的过程中,因上述已有虚拟地址与物理地址的映射关系,则电子设备可以从虚拟地址中查找尚未使用的地址空间,再根据映射关系确定该尚未使用的地址空间所对应的物理地址,该物理地址所对应的文件空间即为实际可使用的空间。在一个实现方式中,为优先使用预留文件,则电子设备优先使用虚拟地址的高位中尚未使用的地址空间,再使用虚拟地址的地位中尚未使用的地址空间。
由上述S101描述可知,电子设备在首次开机时,智慧内存功能默认已开启,为提高用户的使用体验,电子设备还可以提供用于关闭或开启智慧内存功能的接口,并以界面形式显示给用户。示例性地,如图5所示,以电子设备是手机为例,在电子设备的设置界面,具有智慧内存功能的设置入口,用户点击“智慧内存”控件后,电子设备可以跳转至智慧内存设置界面;在当前智慧内存功能已开启的情况下,用户点击开关控件即可关闭智慧内存功能。
在电子设备接收到用户输入的关闭操作的情况下,电子设备可以释放上述非预留文件对应的存储空间,即删除该非预留文件,以将非预留文件所占用的存储空间返还给ROM。
可选地,在图5所示的智慧内存设置界面的基础上,如图6所示,还可以显示已分配的预留文件和非预留文件的容量大小。除此之外,该界面还可以具有对预留文件和非预留文件的容量设置控件(图中未示出),即用户可以自行设置分配多少大小的预留文件和非预留文件。
上述管理内存交换分区的方法,电子设备通过申请预留文件和非预留文件作为内存交换分区的方式,使得后续可以释放非预留文件以返还存储空间,从而减少存储空间的浪费情况。
针对图3所示的实施例,其是电子设备在开机时自动的申请分配预留文件和非预留文件,在另一些实施例中,电子设备在开机时也可以不自动的申请分配预留文件和非预留文件(即开机时未开启智慧内存功能),而是在用户开启智慧内存功能时再申请分配预留文件和非预留文件。如图7所示,该过程可以包括:
S201,接收用户输入的开启智慧内存功能的操作。
其中,用户可以通过上述图5所示的界面输入开启智慧内存功能的操作,即点击开关控件;也可以通过语音指令指示开启智慧内存功能,本申请实施例对输入操作的方式不做具体限制。
S202,响应于上述操作,电子设备分配预留文件和非预留文件作为内存交换分区。
S203,将分配的预留文件和非预留文件转换为block设备并用于存储。
对于S202中电子设备分配预留文件和非预留文件的过程以及S203中将预留文件和非预留文件转换为block设备的过程,参见上述S101-S102的描述,在此不再赘述。
在此场景下,用户也可以通过上述图5所示的界面,点击开关控件关闭智慧内存功能,在电子设备接收到用户输入的关闭操作的情况下,电子设备可以释放上述非预留文件,即删除该非预留文件,以将非预留文件所占用的存储空间返还给ROM。
上述管理内存交换分区的方法,在用户开启智慧内存功能时,电子设备通过申请预留文件和非预留文件作为内存交换分区的方式,使得后续可以释放非预留文件以返还存储空间,从而减少存储空间的浪费情况。并且,用户开启智慧内存功能时电子设备才执行相应操作,也满足了用户需求。
对于上述S101的过程,在一些实施例中,电子设备可以先申请预留文件,再申请非预留文件,因为电子设备在首次开机时存储空间使用还比较少,预留文件的申请成功率较高。那么,如图8所示,S101的步骤可以包括:
S101a,判断当前是否已有预留文件,若否执行S101b,若是执行S101d。
其中,电子设备可以根据预留文件的标识查找当前是否已有预留文件,例如在预留文件的标识为1的情况下,电子设备可以查找当前存储空间中是否有标识为1的文件。
S101b,分配预留文件。
其中,电子设备可以通过F2FS接口分配物理地址连续的预留文件。
S101c,判断是否分配成功预留文件,若是执行S101d,若否结束流程。
S101d,校验预留文件是否正常,若是执行S101e,若否结束流程。
在校验预留文件是否正常时,可以对其文件名、文件标识、文件大小等属性进行校验,若各属性都正常则执行后续步骤。
S101e,记录预留文件对应的block设备以及起止物理地址。
其中,电子设备分配预留文件成功后会将其转换为block设备,此步骤在此实施例中不再描述。
S101f,判断当前是否已有物理地址连续的非预留文件,若否执行S101g,若是执行S101i。
其中,电子设备也可以根据非预留文件的标识查找当前是否已有非预留文件,例如在非预留文件的标识为-1的情况下,电子设备可以查找当前存储空间中是否有标识为-1的文件,并判断该文件的物理地址是否连续。
S101g,分配物理地址连续的非预留文件。
其中,电子设备也可以通过F2FS接口分配物理地址连续的非预留文件。
S101h,判断是否分配成功物理地址连续的非预留文件,若是执行S101i,若否执行S101n。
S101i,校验非预留文件是否正常,若是执行S101j,若否S101m。
在校验非预留文件是否正常时,可以对其文件名、文件标识、文件大小等属性进行校验,若各属性都正常则执行后续步骤。
S101j,记录物理地址连续的非预留文件对应的block设备以及起止物理地址。
其中,电子设备分配物理地址连续的非预留文件成功后会将其转换为block设备,此步骤在此实施例中不再描述。
S101k,绑定block设备到zram,内存交换分区初始化成功。
其中,zram是linux的一种内存优化技术,其通过划定一片区域,将压缩过后的硬盘数据放入该区域,以实现高速读取。
S101m,删除物理地址连续的非预留文件。
也即是说,若物理地址连续的非预留文件校验不正常,则可以将其删除,以后续再申请物理地址不连续的非预留文件。
S101n,判断当前是否已有物理地址不连续的非预留文件,若否执行S101p,若是执行S101r。
S101p,分配物理地址不连续的非预留文件。
S101q,判断是否分配成功物理地址不连续的非预留文件,若是执行S101r,若否结束流程。
S101r,校验非预留文件是否正常,若是执行S101s,若否S101u。
S101s,将物理地址不连续的非预留文件转换为loop设备。
S101t,记录物理地址不连续的非预留文件对应的loop设备以及起止物理地址,并返回执行S101k。
S101u,删除物理地址不连续的非预留文件,并结束流程。
其中,与物理地址连续的非预留文件不同之处在于,电子设备是将物理地址不连续的非预留文件转换为loop设备,转换过程参见上述S102的描述。
经过上述过程,电子设备便申请到了预留文件和非预留文件作为内存交换分区,使得后续可以释放非预留文件以返还存储空间,从而减少存储空间的浪费情况。
针对图4所示的实施例,也可以结合上述图2所示的软件结构来实现,下面结合上述图2所示的软件结构对本申请实施例提供的管理内存交换分区的方法进行描述,如图9所示,其是本申请实施例提供的一例管理内存交换分区的方法的时序流程示意图,具体可以包括:
S11,设置应用程序接收用户输入的开启智慧内存功能的操作。
其中,设置应用程序接收用户输入开启智慧内存功能的操作可以是通过上述图5所示的界面进行输入的。
S12,设置应用程序向eswap空间管理模块发送申请内存交换分区的指令。
S13,eswap空间管理模块根据接收到的指令,申请分配预留文件和非预留文件。
S14,eswap空间管理模块向文件转储接口发送预留文件的标识和非预留文件的标识。
S15,文件转储接口根据预留文件的标识和非预留文件的标识,将物理地址不连续的非预留文件转换为loop设备,将物理地址连续的预留文件转换为block设备。
可选地,各模块之间所发送的指令可以为进程间通信(inter-processcommunication,IPC)指令,也可以为其他方式的通信指令,本申请实施例对此不作限制。eswap空间管理模块申请分配预留文件和非预留文件的方式、以及文件转储接口转换block设备的方式可以参见上述实施例的描述,在此不再赘述。
上文详细介绍了本申请实施例提供的管理内存交换分区的方法的示例。可以理解的是,电子设备为了实现上述功能,其包含了执行各个功能相应的硬件和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,本申请能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。本领域技术人员可以结合实施例对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
本申请实施例可以根据上述方法示例对电子设备进行功能模块的划分,例如,可以对应各个功能划分为各个功能模块,例如检测单元、处理单元、显示单元等,也可以将两个或两个以上的功能集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。需要说明的是,本申请实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
需要说明的是,上述方法实施例涉及的各步骤的所有相关内容均可以援引到对应功能模块的功能描述,在此不再赘述。
本实施例提供的电子设备,用于执行上述管理内存交换分区的方法,因此可以达到与上述实现方法相同的效果。
在采用集成的单元的情况下,电子设备还可以包括处理模块、存储模块和通信模块。其中,处理模块可以用于对电子设备的动作进行控制管理。存储模块可以用于支持电子设备执行存储程序代码和数据等。通信模块,可以用于支持电子设备与其他设备的通信。
其中,处理模块可以是处理器或控制器。其可以实现或执行结合本申请公开内容所描述的各种示例性的逻辑方框,模块和电路。处理器也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,数字信号处理(digital signal processing,DSP)和微处理器的组合等等。存储模块可以是存储器。通信模块具体可以为射频电路、蓝牙芯片、Wi-Fi芯片等与其他电子设备交互的设备。
在一个实施例中,当处理模块为处理器,存储模块为存储器时,本实施例所涉及的电子设备可以为具有图1所示结构的设备。
本申请实施例还提供了一种计算机可读存储介质,计算机可读存储介质中存储了计算机程序,当计算机程序被处理器执行时,使得处理器执行上述任一实施例的管理内存交换分区的方法。
本申请实施例还提供了一种计算机程序产品,当该计算机程序产品在计算机上运行时,使得计算机执行上述相关步骤,以实现上述实施例中的管理内存交换分区的方法。
另外,本申请的实施例还提供一种装置,这个装置具体可以是芯片,组件或模块,该装置可包括相连的处理器和存储器;其中,存储器用于存储计算机执行指令,当装置运行时,处理器可执行存储器存储的计算机执行指令,以使芯片执行上述各方法实施例中的管理内存交换分区的方法。
其中,本实施例提供的电子设备、计算机可读存储介质、计算机程序产品或芯片均用于执行上文所提供的对应的方法,因此,其所能达到的有益效果可参考上文所提供的对应的方法中的有益效果,此处不再赘述。
通过以上实施方式的描述,所属领域的技术人员可以了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个装置,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是一个物理单元或多个物理单元,即可以位于一个地方,或者也可以分布到多个不同地方。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该软件产品存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本申请各个实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上内容,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。
Claims (14)
1.一种管理内存交换分区的方法,其特征在于,所述方法由电子设备执行,包括:
在所述电子设备接收到第一操作的情况下,在第一存储空间创建第一文件,所述第一文件包括第一预设数量的字节,其中,所述第一文件在所述第一存储空间占用的存储空间为内存交换分区,所述第一操作为对所述电子设备的开机操作和/或开启使用内存交换分区的功能的操作;
在所述电子设备接收到第二操作的情况下,在所述第一存储空间删除所述第一文件,所述第二操作为关闭使用所述内存交换分区的功能的操作。
2.根据权利要求1所述的方法,其特征在于,所述在第一存储空间创建第一文件,包括:
确定所述第一存储空间中是否存在物理地址连续的且占用所述第一预设数量的字节的可用存储空间;
若存在,将所述可用存储空间分配给所述第一文件;
若不存在,将所述第一存储空间中物理地址不连续的且占用所述第一预设数量的字节的可用存储空间分配给所述第一文件。
3.根据权利要求2所述的方法,其特征在于,在第一存储空间创建第一文件之后,所述方法还包括:
在所述第一文件对应的存储空间的物理地址连续的情况下,以块block设备形式存储所述第一文件;
在所述第一文件对应的存储空间的物理地址不连续的情况下,以loop设备形式存储所述第一文件。
4.根据权利要求2或3所述的方法,其特征在于,在所述第一文件对应的存储空间的物理地址不连续的情况下,所述第一文件对应的存储空间包括多个物理地址连续的子存储空间,每个子存储空间对应一个子文件。
5.根据权利要求1至4中任一项所述的方法,其特征在于,所述方法还包括:
根据所述电子设备运行过程中对所述内存交换分区的使用情况,调整所述第一文件包括的字节数量。
6.根据权利要求1至5中任一项所述的方法,其特征在于,在所述电子设备接收到第一操作的情况下,所述方法还包括:
在所述第一存储空间创建第二文件,所述第二文件包括第二预设数量的字节,所述第一文件在所述第一存储空间占用的存储空间和所述第二文件在所述第一存储空间占用的存储空间为所述内存交换分区;
在所述电子设备接收到第二操作的情况下,所述方法还包括:
在所述第一存储空间不删除所述第二文件。
7.根据权利要求6所述的方法,其特征在于,所述第二文件对应的存储空间的物理地址连续。
8.根据权利要求7所述的方法,其特征在于,所述第二文件为通过F2FS接口创建的文件。
9.根据权利要求6至8中任一项所述的方法,其特征在于,所述方法还包括:
在使用所述内存交换分区时,根据尚未使用的存储空间对应的虚拟地址、以及映射关系,确定尚未使用的存储空间对应的第一物理地址,所述映射关系包括虚拟地址与所述第一文件对应的存储空间的物理地址之间的对应关系、以及虚拟地址与所述第二文件对应的存储空间的物理地址之间的对应关系;
将待存储数据存储于所述第一物理地址对应的文件中,所述文件为所述第一文件或者所述第二文件。
10.根据权利要求9所述的方法,其特征在于,在使用所述内存交换分区之前,所述方法还包括:
建立虚拟地址与所述第一文件对应的存储空间的物理地址之间的对应关系、以及虚拟地址与所述第二文件对应的存储空间的物理地址之间的对应关系。
11.根据权利要求10所述的方法,其特征在于,所述第一文件对应的存储空间的物理地址映射于所述虚拟地址的低位,所述第二文件对应的存储空间的物理地址映射于所述虚拟地址的高位。
12.根据权利要求1至11中任一项所述的方法,其特征在于,所述第一操作为对所述电子设备的首次开机操作。
13.一种电子设备,其特征在于,包括:
一个或多个处理器;
一个或多个存储器;
所述存储器存储有一个或多个程序,当所述一个或多个程序被所述处理器执行时,使得所述电子设备执行如权利要求1至12中任一项所述的方法。
14.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储了计算机程序,当所述计算机程序被处理器执行时,使得所述处理器执行权利要求1至12中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211148030.8A CN116719633A (zh) | 2022-09-20 | 2022-09-20 | 管理内存交换分区的方法和电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211148030.8A CN116719633A (zh) | 2022-09-20 | 2022-09-20 | 管理内存交换分区的方法和电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116719633A true CN116719633A (zh) | 2023-09-08 |
Family
ID=87868445
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211148030.8A Pending CN116719633A (zh) | 2022-09-20 | 2022-09-20 | 管理内存交换分区的方法和电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116719633A (zh) |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0652059A (ja) * | 1992-07-27 | 1994-02-25 | Nec Corp | スワップ領域自動追加/削除方式 |
US7624240B1 (en) * | 2006-10-17 | 2009-11-24 | Vmware, Inc. | Separate swap files corresponding to different virtual machines in a host computer system |
CN103150211A (zh) * | 2013-02-07 | 2013-06-12 | 宝龙计算机系统(湖南)有限公司 | 一种类unix操作系统转移交换空间的方法及装置 |
CN103150179A (zh) * | 2013-02-07 | 2013-06-12 | 宝龙计算机系统(湖南)有限公司 | 一种类unix操作系统获取交换空间的方法及装置 |
CN103176832A (zh) * | 2013-02-07 | 2013-06-26 | 宝龙计算机系统(湖南)有限公司 | 一种类unix操作系统运行虚拟操作系统的方法及装置 |
CN105373421A (zh) * | 2014-07-29 | 2016-03-02 | 华为技术有限公司 | 终端和终端中处理数据的方法 |
CN105917317A (zh) * | 2014-12-18 | 2016-08-31 | 联发科技股份有限公司 | 具有动态阈值的异构交换空间 |
CN110727534A (zh) * | 2019-09-27 | 2020-01-24 | 苏州浪潮智能科技有限公司 | 一种文件系统的修复方法、设备以及存储介质 |
CN111522659A (zh) * | 2020-04-15 | 2020-08-11 | 联想(北京)有限公司 | 一种空间使用方法和装置 |
-
2022
- 2022-09-20 CN CN202211148030.8A patent/CN116719633A/zh active Pending
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0652059A (ja) * | 1992-07-27 | 1994-02-25 | Nec Corp | スワップ領域自動追加/削除方式 |
US7624240B1 (en) * | 2006-10-17 | 2009-11-24 | Vmware, Inc. | Separate swap files corresponding to different virtual machines in a host computer system |
CN103150211A (zh) * | 2013-02-07 | 2013-06-12 | 宝龙计算机系统(湖南)有限公司 | 一种类unix操作系统转移交换空间的方法及装置 |
CN103150179A (zh) * | 2013-02-07 | 2013-06-12 | 宝龙计算机系统(湖南)有限公司 | 一种类unix操作系统获取交换空间的方法及装置 |
CN103176832A (zh) * | 2013-02-07 | 2013-06-26 | 宝龙计算机系统(湖南)有限公司 | 一种类unix操作系统运行虚拟操作系统的方法及装置 |
CN105373421A (zh) * | 2014-07-29 | 2016-03-02 | 华为技术有限公司 | 终端和终端中处理数据的方法 |
CN105917317A (zh) * | 2014-12-18 | 2016-08-31 | 联发科技股份有限公司 | 具有动态阈值的异构交换空间 |
CN110727534A (zh) * | 2019-09-27 | 2020-01-24 | 苏州浪潮智能科技有限公司 | 一种文件系统的修复方法、设备以及存储介质 |
CN111522659A (zh) * | 2020-04-15 | 2020-08-11 | 联想(北京)有限公司 | 一种空间使用方法和装置 |
Non-Patent Citations (1)
Title |
---|
行走江湖: "Linux系统增加交换空间的方法", Retrieved from the Internet <URL:https://blog.csdn.net/adermxl/article/details/41017689> * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP4002108B1 (en) | Application start method and electronic device | |
CN116244067B (zh) | 虚拟内存管理方法和电子设备 | |
CN114116191B (zh) | 内存冷页的处理方法及电子设备 | |
CN115809139A (zh) | 内存管理的方法及电子设备 | |
CN114461375B (zh) | 内存资源管理方法及电子设备 | |
CN111382087A (zh) | 一种内存管理方法及电子设备 | |
CN113326498A (zh) | 权限复用方法、基于权限复用的资源访问方法及相关设备 | |
CN114968836A (zh) | 垃圾回收的方法及电子设备 | |
WO2024027544A1 (zh) | 内存管理方法及电子设备 | |
CN116126744A (zh) | 一种内存回收方法、装置及终端设备 | |
CN117130541A (zh) | 存储空间配置方法及相关设备 | |
CN116719633A (zh) | 管理内存交换分区的方法和电子设备 | |
CN112783418B (zh) | 一种存储应用程序数据的方法及移动终端 | |
CN113590346B (zh) | 处理业务请求的方法和电子设备 | |
CN116136826A (zh) | 内存访问方法、芯片、电子设备及计算机可读存储介质 | |
CN115278642A (zh) | 获取sim卡的信息的方法、电子设备及终端设备 | |
CN116627855B (zh) | 内存处理方法及相关装置 | |
CN115794413B (zh) | 一种内存处理方法及相关装置 | |
CN114916017B (zh) | 数据传输的方法、电子设备及可读存储介质 | |
WO2023231900A1 (zh) | 一种内存管理方法及相关装置 | |
WO2024032430A1 (zh) | 管理内存的方法和电子设备 | |
CN116662270B (zh) | 文件解析方法及相关装置 | |
CN116860429A (zh) | 内存管理方法及电子设备 | |
CN117687770A (zh) | 内存申请方法及相关装置 | |
CN116932178A (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 |