一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种交换swap设备匿名页的存储方法、装置、设备和存储介质与流程

2022-06-05 20:49:52 来源:中国专利 TAG:


1.本发明涉及swap设备数据存储技术领域,尤其涉及一种swap设备匿名页的存储方法、装置、设备和存储介质。


背景技术:

2.现有的技术当内存紧张时,系统会挑一些进程的匿名页来交换到swap设备上。这个时候同一进程的匿名页在换出到swap设备时,会被随机交换到swap设备的不同地址,处理方式如图1所示。这种随机交换到swap设备上存在几个问题,第一就是读取效率低,同一进程的匿名页在swap设备上的多个地址,需要多次读取;第二特别是在嵌入式系统,比如手机产品,swap设备为flash,随机读写会导致flash碎片化,影响flash寿命;第三当swap设备为硬盘时,需要多次移动磁头来读取同一进程的多个数据,效率会更低。


技术实现要素:

3.本发明实施例的主要目的在于提出一种swap设备匿名页的存储方法、装置、设备和存储介质,通过同一进程的匿名页连续换出到swap设备,最大程度避免了昂贵的文件io动作,这样可以提高swap设备的读取效率,改善了影响性能的一个因素,尤其是对内存越小,安装的应用越多的手机,性能改善效果会越明显。
4.为实现上述目的,本发明实施例提供了一种swap设备匿名页的存储方法,包括以下步骤:
5.当目标匿名页需要从系统换出到swap设备时,确定所述目标匿名页所属的应用进程;
6.当所述目标匿名页所属的应用进程为第一次从所述系统换出到所述swap设备时,为所述应用进程分配用于存放匿名页的第一块,并将所述应用进程的所述目标匿名页存放到所述第一块的空闲地址中。
7.为实现上述目的,本发明实施例提供了一种swap设备匿名页的存储装置,包括:
8.确定模块,用于当目标匿名页需要从系统换出到swap设备时,确定所述目标匿名页所属的应用进程;
9.存储模块,用于当所述目标匿名页所属的应用进程为第一次从所述系统换出到所述swap设备时,为所述应用进程分配用于存放匿名页的第一块,并将所述应用进程的所述目标匿名页存放到所述第一块的空闲地址中。
10.为实现上述目的,本发明实施例还提出了一种swap设备匿名页的存储设备,所述设备包括存储器、处理器、存储在所述存储器上并可在所述处理器上运行的程序以及用于实现所述处理器和所述存储器之间的连接通信的数据总线,所述程序被所述处理器执行时实现前述方法的步骤。
11.为实现上述目的,本发明实施例还提供了一种存储介质,用于计算机可读存储,所述存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执
行,以实现前述方法的步骤。
12.本发明提出的一种swap设备匿名页的存储方法、装置、设备和存储介质,同一进程的多个匿名页放置在连续的地址上,换入时可以一次性读取,提高swap设备的读取效率和使用寿命,提升用户体验。
附图说明
13.图1是现有技术提供的同一进程的匿名页被随机交换到swap设备的不同地址的示意图。
14.图2是本发明实施例一提供的一种swap设备匿名页的存储方法的流程图。
15.图3是本发明实施例二提供的一种swap设备匿名页的存储装置的示意图。
16.图4是本发明实施例三提供的同一进程的匿名页交换到swap设备的示意图。
17.图5是本发明实施例四提供的swap设备匿名页的存储系统的示意图。
18.图6是本发明实施例四提供的swap设备匿名页的存储方法的流程图。
具体实施方式
19.应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
20.在后续的描述中,使用用于表示元件的诸如“模块”、“部件”或“单元”的后缀仅为了有利于本发明的说明,其本身没有特有的意义。因此,“模块”、“部件”或“单元”可以混合地使用。
21.图2是本发明实施例一提供的一种swap设备匿名页的存储方法的流程图,如图2所示,包括:
22.步骤s101:当目标匿名页需要从系统换出到swap设备时,确定所述目标匿名页所属的应用进程;
23.步骤s102:当所述目标匿名页所属的应用进程为第一次从所述系统换出到所述swap设备时,为所述应用进程分配用于存放匿名页的第一块,并将所述应用进程的所述目标匿名页存放到所述第一块的空闲地址中。
24.本发明实施例还包括:当所述目标匿名页所属的应用进程不为第一次从所述系统换出到所述swap设备时,查找为所述应用进程已分配的用于存放匿名页的第二块;当所述应用进程已分配的第二块未存满匿名页时,将所述应用进程的所述目标匿名页存放到所述第二块的空闲地址中;当所述应用进程已分配的第二块存满匿名页时,则为所述应用进程分配用于存放匿名页的第三块,并将所述应用进程的所述目标匿名页存放到所述第三块的空闲地址中。
25.本发明实施例还包括:当所述应用进程的所述目标匿名页需要从所述swap设备换入到所述系统时,查找所述应用进程的所述目标匿名页所存放的块;从所述应用进程的所述目标匿名页所存放的块中预读所述目标匿名页,并将其缓存到系统的中。
26.本发明实施例还包括:当从所述块中预读所述应用进程的所述目标匿名页到系统缓存后,判断所述块的所有地址是否均空闲;当所述块的所有地址均空闲时,则回收所述块;当所述块的所有地址未均空闲时,则在所述块中擦除所换入的应用进程的目标匿名页。
27.图3是本发明实施例二提供的一种swap设备匿名页的存储装置的示意图,如图3所
示,包括:确定模块及存储模块。其中,所述确定模块,用于当目标匿名页需要从系统换出到swap设备时,确定所述目标匿名页所属的应用进程;所述存储模块,用于当所述目标匿名页所属的应用进程为第一次从所述系统换出到所述swap设备时,为所述应用进程分配用于存放匿名页的第一块,并将所述应用进程的所述目标匿名页存放到所述第一块的空闲地址中。
28.其中,所述存储模块还具体用于当所述目标匿名页所属的应用进程不为第一次从所述系统换出到所述swap设备时,查找为所述应用进程已分配的用于存放匿名页的第二块;当所述应用进程已分配的第二块未存满匿名页时,将所述应用进程的所述目标匿名页存放到所述第二块的空闲地址中;当所述应用进程已分配的第二块存满匿名页时,则为所述应用进程分配用于存放匿名页的第三块,并将所述应用进程的所述目标匿名页存放到所述第三块的空闲地址中。
29.本发明实施例还提出了一种swap设备匿名页的存储设备,所述设备包括存储器、处理器、存储在所述存储器上并可在所述处理器上运行的程序以及用于实现所述处理器和所述存储器之间的连接通信的数据总线,所述程序被所述处理器执行时实现前述方法的步骤。
30.本发明实施例还提供了一种存储介质,用于计算机可读存储,所述存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现前述方法的步骤。
31.本发明应用在所有基于linux操作系统的终端产品上,手机上运行的应用越来越多,占用的内存也就越来越大,而且很多应用都想常驻内存,导致内存比较紧张,此时系统会把进程占用的匿名页交换到swap设备。因此,本发明着眼于改善swap设备数据存储方法以提升系统性能的目的,通过将同一进程的多个匿名页申请放置在连续的地址上,换入时可以一次性读取,提高swap设备的读取效率和使用寿命,提升用户体验。
32.本发明为每个被换出到swap设备上的进程单独分配一个大块空间,比如该大块空间可以存放64个匿名页,如图4所示,当进程的匿名页要被换出时,先看该大块是否存放满,如果未存放满,则把该匿名页存放到空闲地址中;如果该大块空间存放满,则新分配一个大块空间。这样就能保证任何进程起码有64个匿名页存放一起。通过这种方式保证同一进程的匿名页不会随机存放到swap设备上。当换入的时候,可以一次性预读多个页到缓存中。
33.flash闪存是非易失存储器,可以对称为块的存储器单元块进行擦写和再编程。任何flash器件的写入操作只能在空或已擦除的单元内进行,所以大多数情况下,在进行写入操作之前必须先执行擦除。flash以页为单位读写数据,而以块为单位擦除数据,这两个单位不一样。swap设备为flash时,大块空间的大小设置成flash擦除的大小。这样可以避免出现碎片化。当进程退出时,进程匿名页所占的swap空间可以直接擦除,会提升flash使用寿命和效率。通过proc或者sys接口可以设置大块空间的大小。
34.本发明使用操作系统的外部proc或者sys文件系统节点输出块大小设置信息;使用操作系统接口向操作系统注入块设置信息,进行块大小设置;换入时可以一次性预读多个匿名页到缓存中。
35.图5是本发明实施例四提供的swap设备匿名页的存储系统的示意图,如图5所示,包括swap设备模块,进程管理模块,进程匿名页管理模块,缓存模块,预读模块,块管理模
块。
36.其中swap设备管理模块负责进程匿名页的存储及读取;块管理模块负责进程匿名页地址的分配、查找、回收及擦除功能,换出时需要给匿名页分配存储空间,换入时需要擦除相关进程的匿名页所占的空间,块管理模块分配的块可以存放多个匿名页,这样就可以保证每个进程的一些匿名页可以连续存放。当系统需要换入swap设备的数据时,则需要预读模块读取匿名页数据到缓存模块。
37.图6是本发明实施例四提供的swap设备匿名页的存储方法的流程图,如图6所示,包括:
38.步骤s601:内存出现紧张时系统对会挑一些进程的匿名页进行换出;
39.步骤s602:判断匿名页所属的进程是否首次换出,如果是则进入步骤s604,否则进入步骤s603;
40.步骤s603:查找该进程已分配的块;
41.步骤s604:根据块大小设置信息,为该进程分配新的块。分配的块可以存放多个匿名页,这样就确保每个进程的一些匿名页可以连续存放;
42.步骤s605:查找的块是否已经全部存放匿名页,如果块未满,则执行步骤s607,否则执行步骤s606;
43.步骤s606:同一进程再次申请新的块;
44.步骤s607:存放匿名页到块上;
45.步骤s608:当进程匿名页需要换入时,需要预读进程的一些匿名页到系统缓存中;
46.步骤s609:读取后判断块空间是否空闲,若空闲则执行步骤s610,不空闲则执行步骤s611;
47.步骤s610:执行块擦除;
48.步骤s611:执行块回收;
49.步骤s612:预读的匿名页换入成功。
50.本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、系统、设备中的功能模块/单元可以被实施为软件、固件、硬件及其适当的组合。
51.在硬件实施方式中,在以上描述中提及的功能模块/单元之间的划分不一定对应于物理组件的划分;例如,一个物理组件可以具有多个功能,或者一个功能或步骤可以由若干物理组件合作执行。某些物理组件或所有物理组件可以被实施为由处理器,如中央处理器、数字信号处理器或微处理器执行的软件,或者被实施为硬件,或者被实施为集成电路,如专用集成电路。这样的软件可以分布在计算机可读介质上,计算机可读介质可以包括计算机存储介质(或非暂时性介质)和通信介质(或暂时性介质)。如本领域普通技术人员公知的,术语计算机存储介质包括在用于存储信息(诸如计算机可读指令、数据结构、程序模块或其他数据)的任何方法或技术中实施的易失性和非易失性、可移除和不可移除介质。计算机存储介质包括但不限于ram、rom、eeprom、闪存或其他存储器技术、cd-rom、数字多功能盘(dvd)或其他光盘存储、磁盒、磁带、磁盘存储或其他磁存储装置、或者可以用于存储期望的信息并且可以被计算机访问的任何其他的介质。此外,本领域普通技术人员公知的是,通信介质通常包含计算机可读指令、数据结构、程序模块或者诸如载波或其他传输机制之类的调制数据信号中的其他数据,并且可包括任何信息递送介质。
52.以上参照附图说明了本发明的优选实施例,并非因此局限本发明的权利范围。本领域技术人员不脱离本发明的范围和实质内所作的任何修改、等同替换和改进,均应在本发明的权利范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献