匿名页面管理方法、装置、终端设备及可读存储介质与流程

文档序号:18163570发布日期:2019-07-13 09:27阅读:159来源:国知局
匿名页面管理方法、装置、终端设备及可读存储介质与流程

本申请涉及进程执行管理技术领域,具体而言,涉及一种匿名页面管理方法、装置、终端设备及可读存储介质。



背景技术:

随着科学技术的不断发展,各式各样的应用程序被开发了出来,终端设备(例如,智能手机)在运行有多个应用程序以向用户提供相应服务的同时,也面临着内存空间有限的现状。为此终端设备通常会根据lru(leastrecentlyused,最近最少使用)机制及kswapd进程将不常使用的与应用程序的进程对应的匿名页面从内存空间回收到交换空间(swapspace)中,以将该匿名页面所对应的内存空间释放给终端设备。

而当终端设备在执行某个存在被回收到交换空间内的匿名页面的进程时,通常需阻塞该进程并当即从交换空间中提取出该进程对应匿名页面,而后通过构建页面错误的方式将该匿名页面重新写入到内存空间中,才能根据被写入到内存空间中的匿名页面正式执行该进程。其中,页面提取过程所消耗的时长要远远大于页面错误构建过程所消耗的时长,接连发生的这两个过程容易给该进程造成随机卡顿,影响该进程的执行效能。



技术实现要素:

为了克服现有技术中的上述不足,本申请的目的在于提供一种匿名页面管理方法、装置、终端设备及可读存储介质,所述匿名页面管理方法可对匿名页面保存在交换空间内的待执行进程进行匿名页面预读取,以在执行该待执行进程时直接使用被预读取出的匿名页面,从而降低该待执行进程出现随机卡顿的概率,确保该待执行进程的执行效能。

就方法而言,本申请实施例提供一种匿名页面管理方法,所述方法应用于终端设备。所述方法包括:

实时监测所述终端设备中是否存在优先级发生变化的进程;

根据监测到的每个进程的优先级变化情况确定目标待执行进程;

检测所述目标待执行进程对应的目标匿名页面是否保存在交换空间中,其中所述交换空间用于回收匿名页面;

若检测到所述目标匿名页面保存在所述交换空间中,则从所述交换空间中预读取所述目标匿名页面,以在所述目标待执行进程被执行时,直接使用所述目标匿名页面。

就方法而言,本申请实施例还提供一种匿名页面管理方法,所述方法应用于终端设备。所述方法包括:

实时监测所述终端设备中是否存在优先级发生变化的进程;

根据监测到的每个进程的优先级变化情况确定目标待回收进程;

检测所述目标待回收进程对应的目标匿名页面是否保存在内存空间中;

若检测到所述目标匿名页面保存在所述内存空间中,则从所述内存空间中将至少一个所述目标匿名页面回收到交换空间中,其中交换空间用于回收匿名页面。所述匿名页面管理方法可根据每个进程的优先级变化情况来回收匿名页面,而非如现有技术那般直接回收不常使用的匿名页面,以避免出现如现有技术那般直接将当前需要马上执行或正在执行的进程所对应的属于不常使用的匿名页面进行回收处理的现象,从而灵活地对各匿名页面进行回收处理,降低终端设备的内存压力。

就装置而言,本申请实施例提供一种匿名页面管理装置,所述装置应用于终端设备。所述装置包括:

进程监测模块,用于实时监测所述终端设备中是否存在优先级发生变化的进程;

进程确定模块,用于根据监测到的每个进程的优先级变化情况确定目标待执行进程;

页面检测模块,用于检测所述目标待执行进程对应的目标匿名页面是否保存在交换空间中,其中所述交换空间用于回收匿名页面;

页面预读取模块,用于若检测到所述目标匿名页面保存在所述交换空间中,则从所述交换空间中预读取所述目标匿名页面,以在所述目标待执行进程被执行时,直接使用所述目标匿名页面。

就装置而言,本申请实施例提供还一种匿名页面管理装置,所述装置应用于终端设备。所述装置包括:

进程监测模块,用于实时监测所述终端设备中是否存在优先级发生变化的进程;

进程确定模块,用于根据监测到的每个进程的优先级变化情况确定目标待回收进程;

页面检测模块,用于检测所述目标待回收进程对应的目标匿名页面是否保存在内存空间中;

页面回收模块,用于若检测到所述目标匿名页面保存在所述内存空间中,则从所述内存空间中将至少一个所述目标匿名页面回收到交换空间中,其中所述交换空间用于回收匿名页面。

就设备而言,本申请实施例提供一种终端设备,所述终端设备包括处理器及存储有计算机指令的非易失性存储器,所述计算机指令被所述处理器执行时,所述终端设备执行上述的匿名页面管理方法。

就存储介质而言,本申请实施例提供一种可读存储介质,所述可读存储介质包括计算机程序,所述计算机程序运行时控制所述可读存储介质所在终端设备执行上述的匿名页面管理方法。

相对于现有技术而言,本申请实施例提供的匿名页面管理方法、装置、终端设备及可读存储介质具有以下有益效果:所述匿名页面管理方法可在对匿名页面保存在交换空间内的待执行进程进行执行时,降低该待执行进程出现随机卡顿的概率,确保该待执行进程的执行效能。首先,所述方法实时监测所述终端设备中是否存在优先级发生变化的进程,并根据监测到的每个进程的优先级变化情况确定目标待执行进程;然后,所述方法检测该目标待执行进程对应的目标匿名页面是否保存在交换空间中;最后,所述方法在检测到所述目标匿名页面保存在所述交换空间中时,从所述交换空间中预读取所述目标匿名页面,以在该目标待执行进程被执行时,直接使用被预读取出的所述目标匿名页面,从而降低该待执行进程出现随机卡顿的概率,确保该待执行进程的执行效能。

为使本申请的上述目的、特征和优点能更明显易懂,下文特举本申请较佳实施例,并配合所附附图,作详细说明如下。

附图说明

为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对本申请权利要求保护范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。

图1为本申请实施例提供的终端设备的一种方框示意图;

图2为本申请实施例提供的匿名页面管理方法的第一种流程示意图;

图3为图2中所示的步骤s220包括的子步骤的流程示意图;

图4为本申请实施例提供的匿名页面管理方法的第二种流程示意图;

图5为图4中所示的步骤s250包括的子步骤的流程示意图;

图6为本申请实施例提供的匿名页面管理方法的第三种流程示意图;

图7为本申请实施例提供的匿名页面管理装置的第一种方框示意图;

图8为本申请实施例提供的匿名页面管理装置的第二种方框示意图;

图9为本申请实施例提供的匿名页面管理装置的第三种方框示意图。

图标:10-终端设备;11-存储器;12-处理器;13-通信单元;100-匿名页面管理装置;110-进程监测模块;120-进程确定模块;130-页面检测模块;140-页面预读取模块;150-页面回收模块。

具体实施方式

为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。

因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。下面结合附图,对本申请的一些实施方式作详细说明。在不冲突的情况下,下述的实施例及实施例中的特征可以相互组合。

请参照图1,是本申请实施例提供的终端设备10的一种方框示意图。在本申请实施例中,所述终端设备10可用于执行不同应用程序各自对应的进程,以实现每个应用程序各自对应的功能,其中每个应用程序所对应的进程数目为至少一个,所述应用程序可以是,但不限于,视频程序、音频程序及浏览器程序等。其中,所述终端设备10可以是,但不限于,智能手机、个人电脑(personalcomputer,pc)、平板电脑、个人数字助理(personaldigitalassistant,pda)、移动上网设备(mobileinternetdevice,mid)等。在本实施例的一种实施方式中,所述终端设备10为智能手机。

在本实施例中,所述终端设备10包括匿名页面管理装置100、存储器11、处理器12及通信单元13。所述匿名页面管理装置100、所述存储器11、所述处理器12及所述通信单元13各个元件相互之间直接或间接地电性连接,以实现数据的传输或交互。例如,所述存储器11、所述处理器12及所述通信单元13这些元件相互之间可通过一条或多条通讯总线或信号线实现电性连接。

在本实施例中,所述存储器11为非易失性存储器,所述存储器11可用于存储多个应用程序各自包括的进程,同一应用程序下的每个进程对应多个匿名页面,同一个匿名页面可由多个进程切换式地占用。其中,所述存储器11可划分为多个存储空间,所述存储器11以多个存储空间中的一个存储空间作为该终端设备10的内存空间,以多个存储空间中的一个存储空间作为该终端设备10的交换空间。当所述终端设备10需要执行某个进程时,该进程所对应的所有匿名页面需均写入到该内存空间中,以使所述终端设备10基于该进程所对应的所有匿名页面执行该进程所对应的程序代码。而当所述终端设备10不需对某个进程进行执行时,所述终端设备10可将该进程所对应的一部分匿名页面或所有匿名页面回收到所述交换空间内,以释放被回收的所述一部分匿名页面或所有匿名页面在所述内存空间中对应的存储资源,从而确保所述内存空间能够给其他进程提供足够的存储资源。在本申请实施例的一种实施方式中,所述终端设备10可如现有技术那般采用lru机制及kswapd进程将不常使用的与应用程序的进程对应的匿名页面从内存空间回收到交换空间,其中现有技术中的页面回收方式因只根据各匿名页面的使用频率而进行回收处理,易出现将当前需要马上执行或正在执行的进程所对应的属于不常使用的匿名页面进行回收处理的现象,影响各进程的执行效率。

在本实施例中,所述存储器11还用于存储每个进程在所述终端设备10处的优先级,所述优先级用于表示对应进程在所述终端设备10处被执行的优先程度,同一进程的优先级在不同时刻可随用户操作发生变化。当某个进程的优先级达到一定阈值时,所述终端设备10将对应执行该进程。其中,优先级越高的进程越有可能被所述终端设备10执行。在本实施例的一种实施方式中,所述终端设备10的操作系统为安卓(android)系统,则所述终端设备10可采用安卓系统对优先级(adj)定义(adj0所对应的优先级最大,adj1000所对应的优先级最小)来对每个进程当前的优先级进行表示。

在本实施例中,所述存储器11还用于存储第一预设优先级及第二预设优先级,所述第二预设优先级不高于所述第一预设优先级,所述第一预设优先级及所述第二预设优先级用于对每个进程当前的优先级进行数值分类。其中,所述第一预设优先级与所述第二预设优先级在操作系统为安卓系统的所述终端设备10中对应表示出的adj数值中,所述第一预设优先级所表示出的adj数值不大于所述第二预设优先级所表示出的adj数值,以确保所述第二预设优先级不高于所述第一预设优先级。在本实施例中,所述存储器11还用于存储计算机指令或计算机程序,所述处理器12在接收到执行指令后,可相应地执行所述计算机指令或所述计算机程序。

在本实施例中,所述处理器12可以是一种具有信号的处理能力的集成电路芯片。所述处理器12可以是通用处理器,包括中央处理器(centralprocessingunit,cpu)、图形处理器(graphicsprocessingunit,gpu)、网络处理器(networkprocessor,np)等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等,可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。

在本实施例中,所述通信单元13用于通过网络建立所述终端设备10与其他外部设备之间的通信连接,并通过所述网络收发数据。例如,所述终端设备10通过所述通信单元13从应用服务器处下载对应的应用程序。

在本实施例中,所述匿名页面管理装置100包括至少一个能够以软件或固件的形式存储于所述存储器11中或固化在所述终端设备10的操作系统中的软件功能模块。所述处理器12可用于执行所述存储器11存储的可执行模块,例如所述匿名页面管理装置100所包括的软件功能模块及计算机程序等。

可以理解的是,图1所示的框图仅为终端设备10的一种结构组成示意图,所述终端设备10还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。图1中所示的各组件可以采用硬件、软件或其组合实现。

请参照图2,是本申请实施例提供的匿名页面管理方法的第一种流程示意图。在本申请实施例中,图2所示的匿名页面管理方法应用于上述终端设备10,用于对匿名页面保存在交换空间内的待执行进程进行匿名页面预读取,以在执行该待执行进程时直接使用被预读取出的匿名页面,从而降低该待执行进程出现随机卡顿的概率,确保该待执行进程的执行效能。下面对图2所示的匿名页面管理方法的具体流程和步骤进行详细阐述。

步骤s210,实时监测终端设备10中是否存在优先级发生变化的进程。

在本实施例中,所述终端设备10会实时地对每个应用程序所对应的进程进行优先级监测,以监测每个进程当前优先级是否发生变化。

步骤s220,根据监测到的每个进程的优先级变化情况确定目标待执行进程。

在本实施例中,所述终端设备10在获取到每个进程当前的优先级变化情况后,将从该终端设备10当前存储的所有进程中确定出目标待执行进程,其中所述待执行进程为当前可能需要被所述终端设备10执行的进程,此时所述待执行进程的优先级变化情况为优先级变高。

可选地,请参照图3,是图2中所示的步骤s220包括的子步骤的流程示意图。在本申请的一种实施例中,所述步骤s220基于所述第一预设优先级来确定所述目标待执行进程,此时所述步骤s220包括子步骤s221、子步骤s222及子步骤s223。

子步骤s221,根据监测到的每个进程的优先级变化情况,筛选出所有的当前优先级变高的待执行进程。

在本实施例中,所述终端设备10在检测到每个进程的优先级变化情况后,将从存储的所有进程中筛选出当前优先级变高的待执行进程。其中,当某个待执行进程当前优先级变高时,表明该待执行进程当前被所述终端设备10执行的概率有所提高。

子步骤s222,针对每个筛选出的待执行进程,检测该待执行进程变高后的优先级是否不低于第一预设优先级。

在本实施例中,针对每个筛选出的待执行进程,所述终端设备10均会检测该待执行进程当前变高后的优先级是否不低于第一预设优先级,以判断该待执行进程当前是否需要进行匿名页面预读取。其中,当所述第一预设优先级在操作系统为安卓系统的所述终端设备10中所表示出的adj数值,不大于某个待执行进程当前的优先级所表示的adj数值时,表明该待执行进程当前的优先级不低于所述第一预设优先级。

子步骤s223,若检测到该待执行进程变高后的优先级不低于所述第一预设优先级,则选定该待执行进程作为一个目标待执行进程。

在本实施例中,当所述终端设备10检测到某个待执行进程当前变高后的优先级不低于所述第一预设优先级时,所述终端设备10将选定该待执行进程作为一个目标待执行进程。其中,所述目标待执行进程,可以是变高前的优先级低于所述第一预设优先级而变高后的优先级不低于所述第一预设优先级的待执行进程,也可以是变高前后的优先级均不低于所述第一预设优先级的待执行进程。

在本申请的另一种实施例中,所述步骤s220无须基于所述第一预设优先级来确定所述目标待执行进程,此时所述终端设备10可在根据监测到的优先级变化情况筛选出所有的当前优先级变高的待执行进程后,直接将筛选出的所述待执行进程作为对应的所述目标待执行进程,此时所述目标待执行进程变化前后的优先级与所述第一预设优先级无关联关系。

步骤s230,检测所述目标待执行进程对应的目标匿名页面是否保存在交换空间中,其中所述交换空间用于回收匿名页面。

在本实施例中,所述交换空间用于回收匿名页面。所述终端设备10在确定了某个目标待执行进程后,将检测该目标待执行进程所对应的目标匿名页面(该目标待执行进程的部分匿名页面或全部匿名页面)是否保存在所述交换空间内。

步骤s240,若检测到所述目标匿名页面保存在所述交换空间中,则从所述交换空间中预读取所述目标匿名页面,以在所述目标待执行进程被执行时,直接使用所述目标匿名页面。

在本实施例中,当所述终端设备10检测到某个目标待执行进程对应的目标匿名页面保存在所述交换空间中时,所述终端设备10将从所述交换空间中预读取出该目标待执行进程所对应的目标匿名页面,以在该目标待执行进程被执行时,使所述终端设备10在阻塞该目标待执行进程的情况下,无须如现有技术那般需要当即对该目标待执行进程的被回收到所述交换空间内的匿名页面进行提取,可直接基于页面错误机制将被预读取的所述目标匿名页面写入到所述内存空间中,以直接使用所述目标匿名页面来执行所述目标待执行进程,从而降低该目标待执行进程被执行时出现随机卡顿的概率,确保该待执行进程的执行效能。

其中,图2所示的匿名页面管理方法可如现有技术那般采用lru机制及kswapd进程将不常使用的与应用程序的进程对应的匿名页面从内存空间回收到交换空间,以实现页面回收处理。

请参照图4,是本申请实施例提供的匿名页面管理方法的第二种流程示意图。在本申请实施例中,与图2所示的匿名页面管理方法相比,图4所示的匿名页面管理方法还包括步骤s250、步骤s260及步骤s270,所述匿名页面管理方法可通过执行所述步骤s250、所述步骤s260及所述步骤s270的方式,来对某个待回收进程的匿名页面进行回收处理。其中,所述步骤s250、所述步骤s260及所述步骤s270可使所述终端设备10根据每个进程的优先级变化情况来回收匿名页面,而非如现有技术那般直接回收不常使用的匿名页面,以避免出现如现有技术那般直接将当前需要马上执行或正在执行的进程所对应的属于不常使用的匿名页面进行回收处理的现象,从而确保图4所示的匿名页面管理方法能够灵活地对各匿名页面进行回收处理,降低所述终端设备10的内存压力。

步骤s250,根据监测到的每个进程的优先级变化情况确定目标待回收进程。

在本实施例中,所述待回收进程为需要回收匿名页面的进程,该待回收进程当前优先级变化情况为优先级变低。所述终端设备10在得到每个进程当前的优先级变化情况后,将从该终端设备10当前存储的所有进程中筛选出优先级变低的需要回收匿名页面的待回收进程,并相应确定出目标待回收进程。

可选地,请参照图5,是图4中所示的步骤s250包括的子步骤的流程示意图。在本申请的一种实施例中,所述步骤s250需基于第二预设优先级及第一预设优先级来确定所述目标待回收进程,此时所述步骤s250包括子步骤s251、子步骤s252、子步骤s253及子步骤s254,其中所述第二预设优先级不高于所述第一预设优先级。

子步骤s251,根据监测到的每个进程的优先级变化情况,筛选出所有的当前优先级变低的需要回收匿名页面的待回收进程。

在本实施例中,所述终端设备10在检测到每个进程的优先级变化情况后,将从存储的所有进程中筛选出当前优先级变低的待回收进程。其中,当某个待回收进程当前优先级变低时,表明该待回收进程当前被所述终端设备10执行的概率有所降低,所述终端设备10可优选地对该待回收进程的匿名页面进行回收处理,以降低所述终端设备10的内存压力。

子步骤s252,针对每个筛选出的待回收进程,将该待回收进程变低后的优先级与第二预设优先级进行比较。

在本实施例中,针对每个筛选出的待回收进程,所述终端设备10均会将该待回收进程当前变低后的优先级与第二预设优先级进行比较,以根据比较结果判断该待回收进程当前是否需要进行匿名页面回收。其中,当所述第二预设优先级在操作系统为安卓系统的所述终端设备10中所表示出的adj数值,大于某个待回收进程当前的优先级所表示的adj数值时,表明该待回收进程当前的优先级低于所述第二预设优先级。

子步骤s253,若该待回收进程变低后的优先级低于所述第二预设优先级,则选定该待回收进程作为一个目标待回收进程。

在本实施例中,当所述终端设备10检测到某个待回收进程当前变低后的优先级低于所述第二预设优先级时,所述终端设备10将选定该待回收进程作为一个目标待回收进程。其中,所述目标待回收进程,可以是变低前后的优先级均低于所述第二预设优先级的待回收进程,也可以是变低前的优先级不低于所述第二预设优先级且变低后的优先级低于所述第二预设优先级的待回收进程。所述变低前的优先级不低于所述第二预设优先级的情况,包括变低前的优先级不低于所述第一预设优先级,以及变低前的优先级处于所述第二预设优先级与所述第一预设优先级之间的优先级范围。

子步骤s254,若该待回收进程变低后的优先级不低于第二预设优先级,则将该待回收进程变低前后的优先级与第一预设优先级进行比较,并在该待回收进程变低前的优先级不低于所述第一预设优先级且变低后的优先级低于所述第一预设优先级时,选定该待回收进程作为一个目标待回收进程。

在本实施例中,当所述终端设备10检测到某个待回收进程当前变低后的优先级不低于所述第二预设优先级时,所述终端设备10将会将该待回收进程变低前后的优先级与第一预设优先级进行比较,以根据比较结果来判断该待回收进程当前是否需要进行匿名页面回收。可选地,当该待回收进程变低前的优先级不低于所述第一预设优先级,且该待回收进程变低后的优先级低于所述第一预设优先级时,表明该待回收进程当前优先级是从不低于所述第一预设优先级变低为低于所述第一预设优先级的,且该待回收进程变低后的优先级低于所述第一预设优先级而不低于所述第二预设优先级,则所述终端设备10也会将该待回收进程作为一个目标待回收进程。

在本申请的另一种实施例中,所述步骤s250无须基于所述第一预设优先级及所述第二预设优先级来确定所述目标待回收进程,此时所述终端设备10可在根据监测到的优先级变化情况筛选出所有的当前优先级变低的待回收进程后,直接将筛选出的所述待回收进程作为对应的所述目标待回收进程,此时所述目标待回收进程变化前后的优先级与所述第一预设优先级及所述第二预设优先级均无关联关系。

步骤s260,检测所述目标待回收进程对应的目标匿名页面是否保存在内存空间中。

在本实施例中,所述终端设备10在确定了某个目标待回收进程后,将检测该目标待回收进程所对应的目标匿名页面(该目标待回收进程的部分匿名页面或全部匿名页面)是否在所述内存空间中有所保存。

步骤s270,若检测到所述目标匿名页面保存在所述内存空间中,则从所述内存空间中将至少一个所述目标匿名页面回收到所述交换空间中。

在本实施例中,当所述终端设备10检测到某个目标待回收进程对应的目标匿名页面保存在所述内存空间中时,所述终端设备10将从所述内存空间中将与该目标待回收进程对应的至少一个目标匿名页面回收到所述交换空间中,以释放所述内存空间中被所述目标匿名页面占用的存储资源,从而降低所述终端设备10的内存压力。

可选地,在本实施例的一种实施方式中,所述从所述内存空间中将至少一个所述目标匿名页面回收到所述交换空间中的步骤包括:

检测该目标待回收进程当前保存在所述内存空间中的每个目标匿名页面是否被所述目标待执行进程占用;

根据检测结果从该目标待回收进程当前保存在所述内存空间中的所有目标匿名页面中,选取出至少一个未被所述目标待执行进程占用的目标匿名页面,并将选取出的所述目标匿名页面回收到所述交换空间中。

其中,所述目标待执行进程为当前优先级不低于第一预设优先级的优先级变高的待执行进程。当该目标待回收进程当前保存在所述内存空间中的所有目标匿名页面均未被其他目标待执行进程占用时,所述终端设备10会将所述所有目标匿名页面回收到所述交换空间中;当该目标待回收进程当前保存在所述内存空间中的部分目标匿名页面未被其他目标待执行进程占用时,所述终端设备10会将未被其他目标待执行进程占用的所有目标匿名页面回收到所述交换空间中。

可选地,在本实施例的另一种实施方式中,所述从所述内存空间中将至少一个所述目标匿名页面回收到所述交换空间中的步骤包括:

直接将该目标待回收进程当前保存在所述内存空间中的所有目标匿名页面回收到所述交换空间中。

其中,所述终端设备10可无须在意该目标待回收进程与其他进程(包括其他待回收进程及其他待回收进程)之间的匿名页面占用关系,并在检测到该目标待回收进程对应的目标匿名页面保存在所述内存空间中时,所述终端设备10将直接将该目标待回收进程当前保存在所述内存空间中的所有目标匿名页面回收到所述交换空间中,以释放所述内存空间中被所述目标匿名页面占用的存储资源,从而降低所述终端设备10的内存压力。

请参照图6,是本申请实施例提供的匿名页面管理方法的第三种流程示意图。在本申请实施例中,与图4所示的匿名页面管理方法相比,图6所示的匿名页面管理方法不包括有图2所示的匿名页面管理方法的相关步骤,而仅包括用于对所述终端设备10中各匿名页面进行灵活的回收处理的步骤s310、步骤s320、步骤s330及步骤s340。图6所示的匿名页面管理方法可使所述终端设备10根据每个进程的优先级变化情况来回收匿名页面,而非如现有技术那般直接回收不常使用的匿名页面,以避免出现如现有技术那般直接将当前需要马上执行或正在执行的进程所对应的属于不常使用的匿名页面进行回收处理的现象,从而灵活地对各匿名页面进行回收处理,降低所述终端设备10的内存压力。其中,所述步骤s310、所述步骤s320、所述步骤s330及所述步骤s340各自对应的执行过程,可依次参照上文中步骤s210、步骤s250、步骤s260及步骤s270的详细描述。

步骤s310,实时监测终端设备10中是否存在优先级发生变化的进程。

步骤s320,根据监测到的每个进程的优先级变化情况确定目标待回收进程。

步骤s330,检测所述目标待回收进程对应的目标匿名页面是否保存在内存空间中。

步骤s340,若检测到所述目标匿名页面保存在所述内存空间中,则从所述内存空间中将至少一个所述目标匿名页面回收到交换空间中,其中所述交换空间用于回收匿名页面。

其中,针对步骤s320,所述步骤s320可基于第二预设优先级及第一预设优先级来确定所述目标待回收进程,也可无须基于所述第一预设优先级及所述第二预设优先级来确定所述目标待回收进程。其中所述第二预设优先级不高于所述第一预设优先级。

可选地,在本申请的一种实施例中,当所述步骤s320需基于第二预设优先级及第一预设优先级来确定所述目标待回收进程,此时所述步骤s320包括:

根据监测到的每个进程的优先级变化情况,筛选出所有的当前优先级变低的需要回收匿名页面的待回收进程;

针对每个筛选出的待回收进程,将该待回收进程变低后的优先级与第二预设优先级进行比较;

若该待回收进程变低后的优先级低于所述第二预设优先级,则选定该待回收进程作为一个目标待回收进程;

若该待回收进程变低后的优先级不低于第二预设优先级,则将该待回收进程变低前后的优先级与第一预设优先级进行比较,并在该待回收进程变低前的优先级不低于所述第一预设优先级且变低后的优先级低于所述第一预设优先级时,选定该待回收进程作为一个目标待回收进程。

其中,所述步骤s320包括的各子步骤的执行过程,可依次参照上文中对子步骤s251、子步骤s252、子步骤s253及子步骤s254的详细描述,在此就不再赘述。

可选地,在本申请的另一种实施例中,当所述步骤s320无须基于所述第一预设优先级及所述第二预设优先级来确定所述目标待回收进程时,所述终端设备10可在根据监测到的优先级变化情况筛选出所有的当前优先级变低的待回收进程后,直接将筛选出的所述待回收进程作为对应的所述目标待回收进程,此时所述目标待回收进程变化前后的优先级与所述第一预设优先级及所述第二预设优先级均无关联关系。

其中,针对所述步骤s340,所述步骤s340可对应两种实施方式,其中一种实施方式需考虑其他当前优先级变高且变高后的优先级不低于第一预设优先级的待执行进程(即目标待执行进程)的影响,另一种实施方式则无需考虑目标待执行进程的影响。

可选地,在本实施例的一种实施方式中,所述从所述内存空间中将至少一个所述目标匿名页面回收到交换空间中的步骤包括:

检测该目标待回收进程当前保存在所述内存空间中的每个目标匿名页面是否被所述目标待执行进程占用;

根据检测结果从该目标待回收进程当前保存在所述内存空间中的所有目标匿名页面中,选取出至少一个未被所述目标待执行进程占用的目标匿名页面,并将选取出的所述目标匿名页面回收到所述交换空间中。

可选地,在本实施例的另一种实施方式中,所述从所述内存空间中将至少一个所述目标匿名页面回收到交换空间中的步骤包括:

直接将该目标待回收进程当前保存在所述内存空间中的所有目标匿名页面回收到所述交换空间中。

其中,所述步骤s340所对应的两种实施方式的执行过程,可依次参照上文中对步骤s270所包括的两种实施方式的详细描述,在此就不再赘述。

请参照图7,是本申请实施例提供的匿名页面管理装置100的第一种方框示意图。在本申请实施例中,图7所示的匿名页面管理装置100可以执行图2所示的匿名页面管理方法,所述匿名页面管理装置100包括进程监测模块110、进程确定模块120、页面检测模块130及页面预读取模块140。

所述进程监测模块110,用于实时监测终端设备10中是否存在优先级发生变化的进程。

在本实施例中,所述进程监测模块110可以执行图2中的步骤s210,具体的描述可参照上文中对步骤s210的详细描述。

所述进程确定模块120,用于根据监测到的每个进程的优先级变化情况确定目标待执行进程。

在本实施例中,所述进程确定模块120可具体用于:

根据监测到的每个进程的优先级变化情况,筛选出所有的当前优先级变高的待执行进程;

针对每个筛选出的待执行进程,检测该待执行进程变高后的优先级是否不低于第一预设优先级;

若检测到该待执行进程变高后的优先级不低于所述第一预设优先级,则选定该待执行进程作为一个目标待执行进程。

其中,所述进程确定模块120可以执行图2中的步骤s220及图3中的子步骤s221、子步骤s222及子步骤s223,具体的描述可参照上文中对步骤s220、子步骤s221、子步骤s222及子步骤s223的详细描述。

所述页面检测模块130,用于检测所述目标待执行进程对应的目标匿名页面是否保存在交换空间中,其中所述交换空间用于回收匿名页面。

在本实施例中,所述页面检测模块130可以执行图2中的步骤s230,具体的描述可参照上文中对步骤s230的详细描述。

所述页面预读取模块140,用于若检测到所述目标匿名页面保存在所述交换空间中,则从所述交换空间中预读取所述目标匿名页面,以在所述目标待执行进程被执行时,直接使用所述目标匿名页面。

在本实施例中,所述页面预读取模块140可以执行图2中的步骤s240,具体的描述可参照上文中对步骤s240的详细描述。

请参照图8,是本申请实施例提供的匿名页面管理装置100的第二种方框示意图。在本申请实施例中,图8所示的匿名页面管理装置100可以执行图2及图4所示的匿名页面管理方法,与图7所示的匿名页面管理装置100相比,图8所示的匿名页面管理装置100还包括页面回收模块150。

所述进程确定模块120,还用于根据监测到的每个进程的优先级变化情况确定目标待回收进程。

在本实施例中,所述进程确定模块120还具体用于:

根据监测到的每个进程的优先级变化情况,筛选出所有的当前优先级变低的需要回收匿名页面的待回收进程;

针对每个筛选出的待回收进程,将该待回收进程变低后的优先级与第二预设优先级进行比较,其中所述第二预设优先级不高于第一预设优先级;

若该待回收进程变低后的优先级低于所述第二预设优先级,则选定该待回收进程作为一个目标待回收进程;

若该待回收进程变低后的优先级不低于第二预设优先级,则将该待回收进程变低前后的优先级与第一预设优先级进行比较,并在该待回收进程变低前的优先级不低于所述第一预设优先级且变低后的优先级低于所述第一预设优先级时,选定该待回收进程作为一个目标待回收进程。

其中,所述进程确定模块120还可以执行图4中的步骤s250及图5中的子步骤s251、子步骤s252、子步骤s253及子步骤s254,具体的描述可参照上文中对步骤s250、子步骤s251、子步骤s252、子步骤s253及子步骤s254的详细描述。

所述页面检测模块130,还用于检测所述目标待回收进程对应的目标匿名页面是否保存在内存空间中。

在本实施例中,所述页面检测模块130还可以执行图4中的步骤s260,具体的描述可参照上文中对步骤s260的详细描述。

所述页面回收模块150,用于若检测到所述目标匿名页面保存在所述内存空间中,则从所述内存空间中将至少一个所述目标匿名页面回收到所述交换空间中。

在本实施例的一种实施方式中,所述页面回收模块150具体用于:

检测该目标待回收进程当前保存在所述内存空间中的每个目标匿名页面是否被所述目标待执行进程占用;

根据检测结果从该目标待回收进程当前保存在所述内存空间中的所有目标匿名页面中,选取出至少一个未被所述目标待执行进程占用的目标匿名页面,并将选取出的所述目标匿名页面回收到所述交换空间中。

在本实施例的另一种实施方式中,所述页面回收模块150具体用于:

直接将该目标待回收进程当前保存在所述内存空间中的所有目标匿名页面回收到所述交换空间中。

其中,所述页面回收模块150可以执行图4中的步骤s270,具体的描述可参照上文中对步骤s270的详细描述。

请参照图9,是本申请实施例提供的匿名页面管理装置100的第三种方框示意图。在本申请实施例中,图9所示的匿名页面管理装置100可以执行图6所示的匿名页面管理方法,所述匿名页面管理装置100包括进程监测模块110、进程确定模块120、页面检测模块130及页面回收模块150。

所述进程监测模块110,用于实时监测终端设备10中是否存在优先级发生变化的进程。

在本实施例中,所述进程监测模块110可以执行图6中的步骤s310,具体的描述可参照上文中对步骤s310的详细描述。

所述进程确定模块120,用于根据监测到的每个进程的优先级变化情况确定目标待回收进程。

在本实施例中,所述进程确定模块120可以执行图6中的步骤s320,具体的描述可参照上文中对步骤s320的详细描述。在本实施例的一种实施方式中,所述进程确定模块120根据监测到的每个进程的优先级变化情况确定目标待回收进程的方式,包括:

根据监测到的每个进程的优先级变化情况,筛选出所有的当前优先级变低的需要回收匿名页面的待回收进程;

针对每个筛选出的待回收进程,将该待回收进程变低后的优先级与第二预设优先级进行比较,其中所述第二预设优先级不高于第一预设优先级;

若该待回收进程变低后的优先级低于所述第二预设优先级,则选定该待回收进程作为一个目标待回收进程;

若该待回收进程变低后的优先级不低于第二预设优先级,则将该待回收进程变低前后的优先级与第一预设优先级进行比较,并在该待回收进程变低前的优先级不低于所述第一预设优先级且变低后的优先级低于所述第一预设优先级时,选定该待回收进程作为一个目标待回收进程。

所述页面检测模块130,用于检测所述目标待回收进程对应的目标匿名页面是否保存在内存空间中。

在本实施例中,所述页面检测模块130可以执行图6中的步骤s330,具体的描述可参照上文中对步骤s330的详细描述。

所述页面回收模块150,用于若检测到所述目标匿名页面保存在所述内存空间中,则从所述内存空间中将至少一个所述目标匿名页面回收到交换空间中,其中所述交换空间用于回收匿名页面。

在本实施例中,所述页面回收模块150可以执行图6中的步骤s340,具体的描述可参照上文中对步骤s340的详细描述。

可选地,在本实施例的一种实施方式中,所述页面回收模块150从所述内存空间中将至少一个所述目标匿名页面回收到交换空间中的方式,包括:

检测该目标待回收进程当前保存在所述内存空间中的每个目标匿名页面是否被所述目标待执行进程占用;

根据检测结果从该目标待回收进程当前保存在所述内存空间中的所有目标匿名页面中,选取出至少一个未被所述目标待执行进程占用的目标匿名页面,并将选取出的所述目标匿名页面回收到所述交换空间中。

可选地,在本实施例的另一种实施方式中,所述页面回收模块150从所述内存空间中将至少一个所述目标匿名页面回收到交换空间中的方式,包括:

直接将该目标待回收进程当前保存在所述内存空间中的所有目标匿名页面回收到所述交换空间中。

本申请实施例还提供一种可读存储介质,所述可读存储介质存储有计算机程序,所述计算机程序运行时控制所述可读存储介质所在终端设备10执行上述的匿名页面管理方法。其中,所述可读存储介质可以是终端设备10(比如,个人计算机、服务器等)能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,dvd)、或者半导体介质(例如固态硬盘solidstatedisk(ssd))等各种可以存储程序代码的介质。

综上所述,在本申请实施例提供的匿名页面管理方法、装置、终端设备及可读存储介质中,所述匿名页面管理方法可在对匿名页面保存在交换空间内的待执行进程进行执行时,降低该待执行进程出现随机卡顿的概率,确保该待执行进程的执行效能。首先,所述方法实时监测所述终端设备中是否存在优先级发生变化的进程,并根据监测到的每个进程的优先级变化情况确定目标待执行进程;然后,所述方法检测该目标待执行进程对应的目标匿名页面是否保存在交换空间中;最后,所述方法在检测到所述目标匿名页面保存在所述交换空间中时,从所述交换空间中预读取所述目标匿名页面,以在该目标待执行进程被执行时,直接使用被预读取出的所述目标匿名页面,从而降低该待执行进程出现随机卡顿的概率,确保该待执行进程的执行效能。

以上所述仅为本申请的优选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1