CN111290843A - 进程管理方法及装置 - Google Patents

进程管理方法及装置 Download PDF

Info

Publication number
CN111290843A
CN111290843A CN201910390286.1A CN201910390286A CN111290843A CN 111290843 A CN111290843 A CN 111290843A CN 201910390286 A CN201910390286 A CN 201910390286A CN 111290843 A CN111290843 A CN 111290843A
Authority
CN
China
Prior art keywords
oom
target process
value
adj
adjusting
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
Application number
CN201910390286.1A
Other languages
English (en)
Inventor
梁兵
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Spreadtrum Semiconductor Nanjing Co Ltd
Original Assignee
Spreadtrum Semiconductor Nanjing Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Spreadtrum Semiconductor Nanjing Co Ltd filed Critical Spreadtrum Semiconductor Nanjing Co Ltd
Priority to CN201910390286.1A priority Critical patent/CN111290843A/zh
Publication of CN111290843A publication Critical patent/CN111290843A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

本公开涉及一种进程管理方法及装置,所述方法包括:在目标进程为后台进程的情况下,根据所述目标进程的运行状态调整所述目标进程的内存不足调整值oom_adj;根据调整后的oom_adj值设置所述目标进程的优先级。本公开根据目标进程的运行状态调整目标进程的oom_adj值,可以调整目标进程的优先级,从而合理利用内存资源,改善用户体验。

Description

进程管理方法及装置
技术领域
本公开涉及计算机技术领域,尤其涉及一种进程管理方法及装置。
背景技术
随着通信技术的不断发展,终端设备如手机、平板电脑等的功能日趋丰富,运行在终端设备上的应用也越来越多。终端设备中的应用程序在不被使用时,其进程还会继续存在于该终端设备中,以便再次启动该应用程序时缩短响应时间。由于终端设备中运行的进程并不都是用户当前所需的进程,且一些进程占用终端设备的内存几乎不被回收,随着终端设备长时间使用,这些进程占用的内存资源越来越多,这使得终端设备的运行速度越来越慢,出现卡机、报错或无响应的情况。
当终端设备的内存小于一定值时,系统通常会利用内存终结机制(LowMemoryKiller,LMK)将一些低优先级的进程终结,然而,由于LMK机制存在的缺陷,通常LMK会出现将不能终结的进程终结。
发明内容
有鉴于此,根据本公开的一个方面,本公开提出了一种进程管理方法,所述方法包括:
在目标进程为后台进程的情况下,根据所述目标进程的运行状态调整所述目标进程的内存不足调整值oom_adj;
根据调整后的oom_adj值设置所述目标进程的优先级。
在一种可能的实施方式中,所述根据所述目标进程的运行状态调整所述目标进程的内存不足调整值oom_adj,包括:
在所述目标进程的运行状态为正在服务的状态的情况下,在所述目标进程的原始oom_adj值的基础上以预设值为步长逐渐降低所述原始oom_adj值,直到将所述原始oom_adj值降低到预期值。
在一种可能的实施方式中,所述预期值为0或小于0。
在一种可能的实施方式中,所述根据所述目标进程的运行状态调整所述目标进程的内存不足调整值oom_adj,还包括:
在所述目标进程的运行状态为正在服务的状态的情况下,将所述oom_adj值调整为小于或等于0。
在一种可能的实施方式中,所述根据所述目标进程的运行状态调整所述目标进程的内存不足调整值oom_adj,包括:
在所述目标进程的运行状态为暂停服务或停止服务的情况下,获取所述目标进程的当前oom_adj值;
在所述当前oom_adj值小于所述目标进程的原始oom_adj值的情况下,将所述当前oom_adj值调整为所述原始oom_adj值。
根据本公开的另一方面,提出了一种进程管理装置,所述装置包括:
调整模块,用于在目标进程为后台进程的情况下,根据所述目标进程的运行状态调整所述目标进程的内存不足调整值oom_adj;
设置模块,连接于所述调整模块,用于根据调整后的oom_adj值设置所述目标进程的优先级。
在一种可能的实施方式中,所述调整模块,包括:
第一调整子模块,用于在所述目标进程的运行状态为正在服务的状态的情况下,在所述目标进程的原始oom_adj值的基础上以预设值为步长降低所述原始oom_adj值,直到将所述原始oom_adj值降低到预期值。
在一种可能的实施方式中,所述预期值为0或小于0。
在一种可能的实施方式中,所述调整模块,还包括:
第二调整子模块,用于在所述目标进程的运行状态为正在服务的状态的情况下,将所述oom_adj值调整为小于或等于0。
在一种可能的实施方式中,所述调整模块,还包括:
获取子模块,用于在所述目标进程的运行状态为暂停服务或停止服务的情况下,获取所述目标进程的当前oom_adj值;
第三调整子模块,连接于所述获取子模块,用于在所述当前oom_adj值小于所述目标进程的原始oom_adj值的情况下,将所述当前oom_adj值调整为所述原始oom_adj值。
根据本公开的另一方面,提供了一种进程管理装置,包括:处理器;用于存储处理器可执行指令的存储器;其中,所述处理器被配置为执行上述方法。
根据本公开的另一方面,提供了一种非易失性计算机可读存储介质,其上存储有计算机程序指令,其中,所述计算机程序指令被处理器执行时实现上述方法。
通过以上方法,本公开可以在目标进程为后台进程的情况下,根据所述目标进程的运行状态调整所述目标进程的内存不足调整值oom_adj,根据调整后的oom_adj值设置所述目标进程的优先级。在用户设备的内存较小的情况下,位于后台的进程在内存资源紧张的时候,容易被LMK终结,而当进程的优先级较高但并没有提供服务的情况下,又容易造成资源的浪费。本公开根据目标进程的运行状态调整目标进程的oom_adj值,可以调整目标进程的优先级,从而合理利用内存资源,改善用户体验。
根据下面参考附图对示例性实施例的详细说明,本公开的其它特征及方面将变得清楚。
附图说明
包含在说明书中并且构成说明书的一部分的附图与说明书一起示出了本公开的示例性实施例、特征和方面,并且用于解释本公开的原理。
图1示出了根据本公开一实施方式的进程管理方法的流程图。
图2示出了根据本公开一实施方式的进程管理装置的框图。
图3示出了根据本公开一实施方式的进程管理装置的框图。
具体实施方式
以下将参考附图详细说明本公开的各种示例性实施例、特征和方面。附图中相同的附图标记表示功能相同或相似的元件。尽管在附图中示出了实施例的各种方面,但是除非特别指出,不必按比例绘制附图。
在这里专用的词“示例性”意为“用作例子、实施例或说明性”。这里作为“示例性”所说明的任何实施例不必解释为优于或好于其它实施例。
另外,为了更好的说明本公开,在下文的具体实施方式中给出了众多的具体细节。本领域技术人员应当理解,没有某些具体细节,本公开同样可以实施。在一些实例中,对于本领域技术人员熟知的方法、手段、元件和电路未作详细描述,以便于凸显本公开的主旨。
请参阅图1,图1示出了根据本公开一实施方式的进程管理方法的流程图。
所述方法可应用于内存较小(例如小于或等于预设字节数,比如小于或等于512兆字节)的运行有安卓系统的用户设备中,如图1所示,所述方法包括:
步骤S110,在目标进程为后台进程的情况下,根据所述目标进程的运行状态调整所述目标进程的内存不足调整值oom_adj;
步骤S120,根据调整后的oom_adj值设置所述目标进程的优先级。
通过以上方法,本公开可以在目标进程为后台进程的情况下,根据所述目标进程的运行状态调整所述目标进程的内存不足调整值oom_adj,根据调整后的oom_adj值设置所述目标进程的优先级。
在用户设备的内存较小的情况下,位于后台的进程在内存资源紧张的时候,容易被LMK终结,而当进程的优先级较高但并没有提供服务的情况下,又容易造成资源的浪费。本公开根据目标进程的运行状态调整目标进程的oom_adj值,可以调整目标进程的优先级,从而合理利用内存资源,改善用户体验。
安卓(Android)系统中每个进程都有它的优先级,而oom_adj(Out of MemoryAdjustment,内存不足调整)值能够反映进程的优先级。oom_adj值越小,表示进程的优先级越高;oom_adj值越大,表示进程的优先级越低。
通过调整oom_adj值的大小,可以改变进程的优先级。
在一种可能的实施方式中,步骤S110根据所述目标进程的运行状态调整所述目标进程的内存不足调整值oom_adj,可以包括:
在所述目标进程的运行状态为正在服务的状态的情况下,在所述目标进程的原始oom_adj值的基础上以预设值为步长逐渐降低所述原始oom_adj值,直到将所述原始oom_adj值降低到预期值。
在一种可能的实施方式中,可以在对oom_adj值调整之前,获取所述原始oom_adj值,并进行保存。
在一种可能的实施方式中,所述预期值为0或小于0。
在一种可能的实施方式中,所述预设值可以根据实际需要确定,本公开对此不做限制。
在一个示例中,假设原始oom_adj值的大小为100,预设值的大小为20,预期值为0或小于0,则根据“在所述目标进程的原始oom_adj值的基础上以预设值为步长降低所述原始oom_adj值,直到将所述原始oom_adj值降低到预期值”,对原始oom_adj值的调整过程为100-80-60-40-20-0,即最终将原始oom_adj值降低为0,因此,根据“将所述oom_adj值调整为所述预期值”,调整后的oom_adj值为0。
在另一个示例中,当需要将oom_adj值设置为0,且原始oom_adj值为100的情况下,假设预设值为10,则,可以以10步长,依次降低原始oom_adj的值,直到原始oom_adj值为0。
当然,应该明白的是,以上对原始oom_adj值、预设值的描述是示例性的,不应视为是对本公开的限制。
在一种可能的实施方式中,所述目标进程可以是为用户提供服务的各种应用程序(APP),例如音乐播放器、FM收音机、截图软件等。
在一种可能的实施方式中,所述“正在服务的状态”可以是目标进程正在为用户提供服务,例如,在目标进程为音乐播放器进程的情况下,正在服务的状态可以是音乐播放器正在播放音乐、录音等。
通过以上方法,本公开可以降低所述目标进程的oom_adj值以提高所述目标进程的优先级,这样,可以减小正在服务中的所述目标进程被LMK终结的概率。
在一种可能的实施方式中,步骤S110根据所述目标进程的运行状态调整所述目标进程的内存不足调整值oom_adj,还可以包括:
在所述目标进程的运行状态为正在服务的状态的情况下,将所述oom_adj值调整为小于或等于0。
在一种可能的实施方式中,“将所述oom_adj值调整为小于或等于0”可以是直接将所述目标进程的oom_adj值设置为小于或等于0的值在一个示例中,当需要将oom_adj值设置为0的情况下,可以直接将所述目标进程的oom_adj值设置为0。
在目标进程的oom_adj值处于Android系统分配的合理范围内,且进程状态没有异常的情形下,如果运行中的后台目标进程正在为用户提供服务时,却被LowMemoryKiller终结了,而使用Android原生手段(比如应用进程进行释放内存等)无法进一步降低进程adj值以提升优先级的情况下,通过以上方法,本公开可以在目标进程处于正在服务的状态的情况下,将oom_adj值调整为小于或等于0的值,从而避免目标进程被LMK错误地终结,以提高用户体验。
在一种可能的实施方式中,步骤S110根据所述目标进程的运行状态调整所述目标进程的内存不足调整值oom_adj,还可以包括:
在所述目标进程的运行状态为暂停服务或停止服务的情况下,获取所述目标进程的当前oom_adj值;
在所述当前oom_adj值小于所述目标进程的原始oom_adj值的情况下,将所述当前oom_adj值调整为所述原始oom_adj值。
在一种可能的实施方式中,“运行状态为暂停服务或停止服务”可以为目标进程被暂停,或被关闭。例如,在目标进程为音乐播放器进程的情况下,暂停服务可以指音乐播放器被暂停播放、暂停录音等,停止服务可以指音乐播放器被关闭。
当目标进程被暂停服务或停止服务的情况下,如果继续维持目标进程在较高的优先级,那么系统并不会终结目标进程,这会造成内存资源的浪费。因此,本公开可以在目标进程的运行状态为暂停服务或停止服务的情况下,将目标进程的oom_adj值恢复为原始oom_adj值,从而降低目标进程的优先级,这样,内存紧张(例如小于一定值)的情况下,可以将目标进程终结,从而释放内存。
当然,在其他的实施方式中,也可以将当前的oom_adj值提高到0以上的任意值,只要使得目标进程的优先级降低到需要的程度即可(目标进程可以被LMK终结,从而释放内存)。
应该说明的是,本领域技术人员可以利用相关技术判断所述目标进程的运行状态为正在服务的状态、暂停服务的状态及停止服务的状态,对此,本公开不做限定。
可通过对应用程序进行配置,并同时对安卓系统的框架层进行配置,以实施以上方法,并解决以上问题,例如,可调用系统框架层(Framework),设置所述目标进程的oom_adj值,以设置所述目标进程的优先级。
通过利用系统框架层设置目标进程的oom_adj值,以设置所述目标进程的优先级,可以克服相关技术中无法将oom_adj值降低到0以下的问题。
请参阅图2,图2示出了根据本公开一实施方式的进程管理装置的框图。
如图2所示,所述装置包括:
调整模块10,用于在目标进程为后台进程的情况下,根据所述目标进程的运行状态调整所述目标进程的内存不足调整值oom_adj;
设置模块20,连接于所述调整模块10,用于根据调整后的oom_adj值设置所述目标进程的优先级。
通过以上装置,本公开可以在目标进程为后台进程的情况下,根据所述目标进程的运行状态调整所述目标进程的内存不足调整值oom_adj,根据调整后的oom_adj值设置所述目标进程的优先级。
在用户设备的内存较小的情况下,位于后台的进程在内存资源紧张的时候,容易被LMK终结,而当进程的优先级较高但并没有提供服务的情况下,又容易造成资源的浪费。本公开根据目标进程的运行状态调整目标进程的oom_adj值,可以调整目标进程的优先级,从而合理利用内存资源,改善用户体验。
在一种可能的实施方式中,所述调整模块,可以包括:
第一调整子模块,用于在所述目标进程的运行状态为正在服务的状态的情况下,在所述目标进程的原始oom_adj值的基础上以预设值为步长降低所述原始oom_adj值,直到将所述原始oom_adj值降低到预期值。
在一种可能的实施方式中,所述调整模块,还可以包括:
第二调整子模块,用于在所述目标进程的运行状态为正在服务的状态的情况下,将所述oom_adj值调整为小于或等于0。
在一种可能的实施方式中,所述调整模块,还可以包括:
获取子模块,用于在所述目标进程的运行状态为暂停服务或停止服务的情况下,获取所述目标进程的当前oom_adj值;
第三调整子模块,连接于所述获取子模块,用于在所述当前oom_adj值小于所述目标进程的原始oom_adj值的情况下,将所述当前oom_adj值调整为所述原始oom_adj值。
应该说明的是,所述进程管理装置为所述进程管理方法对应的装置,其具体介绍请参考之前对进程管理方法的描述,在此不再赘述。
请参阅图3,图3示出了根据本公开一实施方式的进程管理装置的框图。例如,装置800可以是移动电话,计算机,数字广播终端,消息收发设备,游戏控制台,平板设备,医疗设备,健身设备,个人数字助理等。
参照图3,装置800可以包括以下一个或多个组件:处理组件802,存储器804,电源组件806,多媒体组件808,音频组件810,输入/输出(I/O)的接口812,传感器组件814,以及通信组件816。
处理组件802通常控制装置800的整体操作,诸如与显示,电话呼叫,数据通信,相机操作和记录操作相关联的操作。处理组件802可以包括一个或多个处理器820来执行指令,以完成上述的方法的全部或部分步骤。此外,处理组件802可以包括一个或多个模块,便于处理组件802和其他组件之间的交互。例如,处理组件802可以包括多媒体模块,以方便多媒体组件808和处理组件802之间的交互。
存储器804被配置为存储各种类型的数据以支持在装置800的操作。这些数据的示例包括用于在装置800上操作的任何应用程序或方法的指令,联系人数据,电话簿数据,消息,图片,视频等。存储器804可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。
电源组件806为装置800的各种组件提供电力。电源组件806可以包括电源管理系统,一个或多个电源,及其他与为装置800生成、管理和分配电力相关联的组件。
多媒体组件808包括在所述装置800和用户之间的提供一个输出接口的屏幕。在一些实施例中,屏幕可以包括液晶显示器(LCD)和触摸面板(TP)。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。所述触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与所述触摸或滑动操作相关的持续时间和压力。在一些实施例中,多媒体组件808包括一个前置摄像头和/或后置摄像头。当装置800处于操作模式,如拍摄模式或视频模式时,前置摄像头和/或后置摄像头可以接收外部的多媒体数据。每个前置摄像头和后置摄像头可以是一个固定的光学透镜系统或具有焦距和光学变焦能力。
音频组件810被配置为输出和/或输入音频信号。例如,音频组件810包括一个麦克风(MIC),当装置800处于操作模式,如呼叫模式、记录模式和语音识别模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器804或经由通信组件816发送。在一些实施例中,音频组件810还包括一个扬声器,用于输出音频信号。
I/O接口812为处理组件802和外围接口模块之间提供接口,上述外围接口模块可以是键盘,点击轮,按钮等。这些按钮可包括但不限于:主页按钮、音量按钮、启动按钮和锁定按钮。
传感器组件814包括一个或多个传感器,用于为装置800提供各个方面的状态评估。例如,传感器组件814可以检测到装置800的打开/关闭状态,组件的相对定位,例如所述组件为装置800的显示器和小键盘,传感器组件814还可以检测装置800或装置800一个组件的位置改变,用户与装置800接触的存在或不存在,装置800方位或加速/减速和装置800的温度变化。传感器组件814可以包括接近传感器,被配置用来在没有任何的物理接触时检测附近物体的存在。传感器组件814还可以包括光传感器,如CMOS或CCD图像传感器,用于在成像应用中使用。在一些实施例中,该传感器组件814还可以包括加速度传感器,陀螺仪传感器,磁传感器,压力传感器或温度传感器。
通信组件816被配置为便于装置800和其他设备之间有线或无线方式的通信。装置800可以接入基于通信标准的无线网络,如WiFi,2G或3G,或它们的组合。在一个示例性实施例中,通信组件816经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,所述通信组件816还包括近场通信(NFC)模块,以促进短程通信。例如,在NFC模块可基于射频识别(RFID)技术,红外数据协会(IrDA)技术,超宽带(UWB)技术,蓝牙(BT)技术和其他技术来实现。
在示例性实施例中,装置800可以被一个或多个应用专用集成电路(ASIC)、数字信号处理器(DSP)、数字信号处理设备(DSPD)、可编程逻辑器件(PLD)、现场可编程门阵列(FPGA)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述方法。
在示例性实施例中,还提供了一种非易失性计算机可读存储介质,例如包括计算机程序指令的存储器804,上述计算机程序指令可由装置800的处理器820执行以完成上述方法。
本公开可以是系统、方法和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于使处理器实现本公开的各个方面的计算机可读程序指令。
计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是――但不限于――电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。
这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。
用于执行本公开操作的计算机程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言—诸如Smalltalk、C++等,以及常规的过程式编程语言—诸如“C”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA),该电子电路可以执行计算机可读程序指令,从而实现本公开的各个方面。
这里参照根据本公开实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本公开的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。
也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。
附图中的流程图和框图显示了根据本公开的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
以上已经描述了本公开的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。

Claims (12)

1.一种进程管理方法,其特征在于,所述方法包括:
在目标进程为后台进程的情况下,根据所述目标进程的运行状态调整所述目标进程的内存不足调整值oom_adj;
根据调整后的oom_adj值设置所述目标进程的优先级。
2.根据权利要求1所述的方法,其特征在于,所述根据所述目标进程的运行状态调整所述目标进程的内存不足调整值oom_adj,包括:
在所述目标进程的运行状态为正在服务的状态的情况下,在所述目标进程的原始oom_adj值的基础上以预设值为步长逐渐降低所述原始oom_adj值,直到将所述原始oom_adj值降低到预期值。
3.根据权利要求2所述的方法,其特征在于,所述预期值为0或小于0。
4.根据权利要求1所述的方法,其特征在于,所述根据所述目标进程的运行状态调整所述目标进程的内存不足调整值oom_adj,还包括:
在所述目标进程的运行状态为正在服务的状态的情况下,将所述oom_adj值调整为小于或等于0。
5.根据权利要求1所述的方法,其特征在于,所述根据所述目标进程的运行状态调整所述目标进程的内存不足调整值oom_adj,包括:
在所述目标进程的运行状态为暂停服务或停止服务的情况下,获取所述目标进程的当前oom_adj值;
在所述当前oom_adj值小于所述目标进程的原始oom_adj值的情况下,将所述当前oom_adj值调整为所述原始oom_adj值。
6.一种进程管理装置,其特征在于,所述装置包括:
调整模块,用于在目标进程为后台进程的情况下,根据所述目标进程的运行状态调整所述目标进程的内存不足调整值oom_adj;
设置模块,连接于所述调整模块,用于根据调整后的oom_adj值设置所述目标进程的优先级。
7.根据权利要求6所述的装置,其特征在于,所述调整模块,包括:
第一调整子模块,用于在所述目标进程的运行状态为正在服务的状态的情况下,在所述目标进程的原始oom_adj值的基础上以预设值为步长降低所述原始oom_adj值,直到将所述原始oom_adj值降低到预期值。
8.根据权利要求7所述的装置,其特征在于,所述预期值为0或小于0。
9.根据权利要求6所述的装置,其特征在于,所述调整模块,还包括:
第二调整子模块,用于在所述目标进程的运行状态为正在服务的状态的情况下,将所述oom_adj值调整为小于或等于0。
10.根据权利要求6所述的装置,其特征在于,所述调整模块,还包括:
获取子模块,用于在所述目标进程的运行状态为暂停服务或停止服务的情况下,获取所述目标进程的当前oom_adj值;
第三调整子模块,连接于所述获取子模块,用于在所述当前oom_adj值小于所述目标进程的原始oom_adj值的情况下,将所述当前oom_adj值调整为所述原始oom_adj值。
11.一种进程管理装置,其特征在于,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为:
执行如权利要求1-5任一项所述的方法。
12.一种非易失性计算机可读存储介质,其上存储有计算机程序指令,其特征在于,所述计算机程序指令被处理器执行时实现权利要求1至5中任意一项所述的方法。
CN201910390286.1A 2019-05-10 2019-05-10 进程管理方法及装置 Pending CN111290843A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910390286.1A CN111290843A (zh) 2019-05-10 2019-05-10 进程管理方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910390286.1A CN111290843A (zh) 2019-05-10 2019-05-10 进程管理方法及装置

Publications (1)

Publication Number Publication Date
CN111290843A true CN111290843A (zh) 2020-06-16

Family

ID=71022250

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910390286.1A Pending CN111290843A (zh) 2019-05-10 2019-05-10 进程管理方法及装置

Country Status (1)

Country Link
CN (1) CN111290843A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112148448A (zh) * 2020-09-22 2020-12-29 北京字节跳动网络技术有限公司 资源分配方法、装置、设备和计算机可读介质
CN116055793A (zh) * 2022-06-07 2023-05-02 荣耀终端有限公司 投屏进程的管理方法、设备及存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103617129A (zh) * 2013-12-10 2014-03-05 中科创达软件股份有限公司 一种内存处理的方法及装置
CN105138402A (zh) * 2015-08-25 2015-12-09 海信集团有限公司 一种应用进程内存释放的优先级调整方法及装置
CN107220076A (zh) * 2016-09-27 2017-09-29 华为技术有限公司 一种内存回收方法及装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103617129A (zh) * 2013-12-10 2014-03-05 中科创达软件股份有限公司 一种内存处理的方法及装置
CN105138402A (zh) * 2015-08-25 2015-12-09 海信集团有限公司 一种应用进程内存释放的优先级调整方法及装置
CN107220076A (zh) * 2016-09-27 2017-09-29 华为技术有限公司 一种内存回收方法及装置

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112148448A (zh) * 2020-09-22 2020-12-29 北京字节跳动网络技术有限公司 资源分配方法、装置、设备和计算机可读介质
CN112148448B (zh) * 2020-09-22 2024-01-19 抖音视界有限公司 资源分配方法、装置、设备和计算机可读介质
CN116055793A (zh) * 2022-06-07 2023-05-02 荣耀终端有限公司 投屏进程的管理方法、设备及存储介质
CN116055793B (zh) * 2022-06-07 2024-04-05 荣耀终端有限公司 投屏进程的管理方法、设备及存储介质

Similar Documents

Publication Publication Date Title
EP3188066B1 (en) A method and an apparatus for managing an application
EP2991275B1 (en) Making router management application compatible with router firmware
CN108093315B (zh) 视频生成方法及装置
CN110519655B (zh) 视频剪辑方法、装置及存储介质
CN106991018B (zh) 界面换肤的方法及装置
CN109792320B (zh) 数据传输方法及装置
CN108174269B (zh) 可视化音频播放方法及装置
CN110312300B (zh) 控制方法、装置及存储介质
CN111290843A (zh) 进程管理方法及装置
CN109992754B (zh) 文档处理方法及装置
CN110750226A (zh) 中控设备管理方法、装置、计算机设备和存储介质
CN105227426B (zh) 一种应用界面切换方法、装置及终端设备
CN107436782B (zh) 应用程序静默安装方法及装置
CN106990984B (zh) 更新系统的方法及装置
CN110311692B (zh) 用户设备、控制方法及存储介质
CN111694571B (zh) 编译方法及装置
CN107395724B (zh) 网络请求方法及装置
CN108965976B (zh) 视频窗口的显示控制方法及装置
CN107483605B (zh) 文件下载方法及装置、存储介质
CN107168731B (zh) 系统更新控制方法和装置
CN110858921A (zh) 节目视频的处理方法及装置
CN113238887A (zh) 数据处理方法、装置及存储介质
CN110493298B (zh) 信息同步方法及装置
CN109511114B (zh) 配置种子IMSI/Ki关联密钥的方法及装置
CN110896492B (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
RJ01 Rejection of invention patent application after publication

Application publication date: 20200616

RJ01 Rejection of invention patent application after publication