CN114153621B - 系统进程调控方法、装置、电子设备及可读存储介质 - Google Patents

系统进程调控方法、装置、电子设备及可读存储介质 Download PDF

Info

Publication number
CN114153621B
CN114153621B CN202210120852.9A CN202210120852A CN114153621B CN 114153621 B CN114153621 B CN 114153621B CN 202210120852 A CN202210120852 A CN 202210120852A CN 114153621 B CN114153621 B CN 114153621B
Authority
CN
China
Prior art keywords
system process
inter
thread lock
background
thread
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
Application number
CN202210120852.9A
Other languages
English (en)
Other versions
CN114153621A (zh
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.)
Honor Device Co Ltd
Original Assignee
Honor Device 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 Honor Device Co Ltd filed Critical Honor Device Co Ltd
Priority to CN202210120852.9A priority Critical patent/CN114153621B/zh
Publication of CN114153621A publication Critical patent/CN114153621A/zh
Application granted granted Critical
Publication of CN114153621B publication Critical patent/CN114153621B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • 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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/505Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5018Thread allocation

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)
  • Telephone Function (AREA)

Abstract

本申请涉及性能优化技术领域,提供一种系统进程调控方法、装置、电子设备及可读存储介质,该方法包括:监测系统进程的检测参数,在所述检测参数满足预设条件时,调整所述系统进程对后台进程的访问响应,通过对后台进程的线程锁进行管控,限制所述后台进程访问所述系统进程的进程间通信持有线程锁,从而避免前台应用的进程间调用因锁争用造成线程阻塞的情况,提高了用户体验。

Description

系统进程调控方法、装置、电子设备及可读存储介质
技术领域
本申请涉及性能优化技术领域,尤其涉及一种系统进程调控方法、装置、电子设备及可读存储介质。
背景技术
安卓Android手机的系统进程,是手机基础服务的集合体,通过进程间(binder)调用为应用提供诸如定位、安装应用、切换界面以及访问网络等基础服务。前台应用工作时,会存在大量的对系统进程的进程间调用以获取系统相应服务。
在实现本发明过程中,发明人发现现有技术中至少存在如下问题,Android手机在使用过程中,打开多个应用后,很容易出现系统进程负载过高的情况,导致前台应用的进程间调用因锁争用而被某个存在耗时操作的线程阻塞的情况。用户在操作前台应用时,就会感知到明显的卡顿。
发明内容
本申请提供一种系统进程调控方法、装置、电子设备及可读存储介质,目的在于避免前台应用的进程间调用因锁争用造成线程阻塞的情况,提高用户体验。
第一方面,本申请提供了一种系统进程调控方法,该方法包括:
监测系统进程的检测参数;
在所述检测参数满足预设条件时,调整所述系统进程对后台进程的访问响应,其中,所述调整所述系统进程对所述后台进程的访问响应,包括:限制所述后台进程访问所述系统进程的进程间通信持有线程锁。
本申请所提供的系统进程调控方法,通过对后台进程的线程锁进行管控,限制所述后台进程访问所述系统进程的进程间通信持有线程锁,从而避免前台应用的进程间调用因锁争用造成线程阻塞的情况,提高了用户体验。
在一种可能的实现方式中,所述在所述检测参数满足预设条件时,调整所述系统进程对后台进程的访问响应,包括:
通过负载计算模块检测到所述检测参数满足预设条件时,发送系统进程状态指令至系统进程管理模块;
所述系统进程管理模块接收所述系统进程状态指令,根据所述系统进程状态指令将系统进程的负载标志位调整为预设值,并发送调控指令至响应控制模块;
所述响应控制模块接收所述调控指令,并根据所述调控指令调整所述系统进程对后台进程的访问响应。
在一种可能的实现方式中,所述根据所述调控指令调整所述系统进程对后台进程的访问响应,包括:
所述响应控制模块发送线程锁判断指令至线程锁管理模块;
所述线程锁管理模块接收所述线程锁判断指令,根据所述线程锁判断指令判断后台进程访问所述系统进程的进程间通信是否需要持有线程锁;
在所述后台进程访问所述系统进程的进程间通信需要持有线程锁时,判断是否存有进程间通信调用列表;
在存有进程间通信调用列表时,通过所述进程间通信调用列表控制所述后台进程访问所述系统进程的进程间通信不持有线程锁;
在未存有进程间通信调用列表时,按照预设休眠时间延迟所述后台进程访问所述系统进程的响应时间。
在一种可能的实现方式中,所述通过进程间通信调用列表控制所述后台进程访问所述系统进程的进程间通信不持有线程锁之前,还包括:
创建进程间通信调用列表,其中,所述进程间通信调用列表仅包括前台进程访问所述系统进程的进程间通信。
在一种可能的实现方式中,所述判断所述后台进程访问所述系统进程的进程间通信是否需要持有线程锁,包括:
获取需要持有线程锁的进程间通信名单;
在所述后台进程访问所述系统进程的进程间通信匹配进程间通信名单时,确定所述后台进程访问所述系统进程的进程间通信需要持有线程锁。
在一种可能的实现方式中,所述限制所述后台进程访问所述系统进程的进程间通信持有线程锁之后,还包括:
获取预设时间内所述后台进程访问所述系统进程的进程间通信的缓存数据;
根据所述缓存数据响应所述后台进程对所述系统进程的访问。
在一种可能的实现方式中,所述检测参数包括所述系统进程的CPU负载参数;
所述监测系统进程的检测参数,包括:
通过负载计算模块发送检测参数请求至时间模块;
所述时间模块接收到所述检测参数请求,根据所述检测参数请求取所述系统进程中各个线程在目标采样周期内的CPU运行时间,并反馈CPU运行时间至所述负载计算模块;
所述负载计算模块接收所述CPU运行时间,根据所述CPU运行时间,得到CPU占用时间,根据所述CPU占用时间与所述目标采样周期,得到所述系统进程的CPU负载参数;
所述监测系统进程的检测参数之后,还包括:
所述负载计算模块检测到所述系统进程的CPU负载参数大于等于CPU负载阈值时,确定CPU负载参数满足第一预设条件,并发送第一调控指令至响应控制模块;
所述响应控制模块接收所述第一调控指令,并根据所述第一调控指令调整所述系统进程对后台进程的访问响应。
在一种可能的实现方式中,所述检测参数还包括所述系统进程中目标线程获取线程锁的等待时间;
所述监测系统进程的检测参数,包括:
通过负载计算模块发送检测参数请求至时间模块;
所述时间模块接收所述检测参数请求,并根据所述检测参数请求判断连续预设数量的目标采样周期内是否获取到目标线程对线程锁的获取时间;
在连续预设数量的目标采样周期内获取到目标线程对线程锁的获取时间时,获取所述目标线程对线程锁的请求时间以及所述线程锁的获取时间;
判断所述请求时间以及所述获取时间是否均处于所述目标采样周期;
在所述请求时间以及所述获取时间均处于所述目标采样周期时,根据所述请求时间以及所述获取时间,得到所述目标线程获取线程锁的等待时间,并反馈所述线程锁的等待时间至所述负载计算模块;
在所述请求时间以及所述获取时间均未处于所述目标采样周期时,获取所述请求时间所处的采样周期的目标采集时间,根据所述目标采集时间以及所述获取时间,得到所述目标线程获取线程锁的等待时间,并反馈所述线程锁的等待时间至所述负载计算模块;
在连续预设数量的目标采样周期内未获取到目标线程对线程锁的获取时间时,将所述目标采样周期作为所述目标线程获取线程锁的等待时间,并反馈所述线程锁的等待时间至所述负载计算模块;
所述监测系统进程的检测参数之后,还包括:
所述负载计算模块接收所述线程锁的等待时间,在所述线程锁的等待时间大于等于线程锁等待时间阈值时,确定所述线程锁的等待时间满足第二预设条件,并发送第二调控指令至响应控制模块;
所述响应控制模块接收所述第二调控指令,并根据所述第二调控指令调整系统进程对后台进程的访问响应。
在一种可能的实现方式中,所述检测参数还包括后台进程访问所述系统进程的访问次数;
所述监测系统进程的检测参数,包括:
通过负载计算模块遍历所述系统进程的访问信息,得到进程标识;
根据所述进程标识得到所述访问信息中的后台进程;
根据所述后台进程统计所述后台进程访问所述系统进程的访问次数;
所述监测系统进程的检测参数之后,还包括:
所述负载计算模块检测到所述后台进程访问所述系统进程的访问次数大于等于访问次数阈值时,确定访问次数满足第三预设条件,并发送第三调控指令至响应控制模块;
所述响应控制模块接收所述第三调控指令,并根据所述第三调控指令调整系统进程对后台进程的访问响应。
在一种可能的实现方式中,所述方法还包括:
应用进程通过进程间通信访问系统进程服务;
在所述系统进程服务对前台进程和后台进程的进程间通信响应时,根据前台进程和后台进程的进程号对前台进程和后台进程进行识别,判断是否是后台进程的进程间通信;
在识别出后台进程的进程间通信时,查询负载标志位,判断是否启用后台进程间通信的访问控制;
在启用后台进程间通信的访问控制时,获取需要持有线程锁的进程间通信名单,通过进程间通信名单判断后台进程间通信是否需要持有线程锁;
在后台进程访问系统进程的进程间通信需要持有线程锁时,判断是否存有进程间通信调用列表,其中,所述进程间通信调用列表仅包括前台进程访问所述系统进程的进程间通信;
在存有进程间通信调用列表时,启动第一后台进程的进程间通信访问控制策略,走后台调用流程,使用调控前的缓存数据,使后台进程的进程间通信不持有线程锁;
在未存有进程间通信调用列表时,启动第二后台进程的进程间通信访问控制策略,延迟固定时间后响应,并继续执行已有后台进程的进程间通信流程。
第二方面,本申请提供了一种系统进程调控装置,包括:
监测模块,用于监测系统进程的检测参数;
调整模块,用于在所述检测参数满足预设条件时,调整所述系统进程对后台进程的访问响应,其中,所述调整所述系统进程对所述后台进程的访问响应,包括:限制所述后台进程访问所述系统进程的进程间通信持有线程锁。
第三方面,本申请提供了一种电子设备,包括:
一个或多个处理器;存储器;以及一个或多个计算机程序,其中所述一个或多个计算机程序被存储在所述存储器中,所述一个或多个计算机程序包括指令,当所述指令被所述电子设备执行时,使得所述电子设备执行如上述第一方面或第一方面的可能的实现方式中任一项所述的系统进程调控方法。
第四方面,本申请提供了一种计算机可读存储介质,所述计算机可读存储介质中存储了计算机程序,当所述计算机程序被处理器执行时,使得处理器执行如上述第一方面或第一方面的可能的实现方式中任一项所述的系统进程调控方法。
第五方面,本申请提供了一种芯片,所述芯片包括处理器与数据接口,所述处理器通过所述数据接口读取存储器上存储的指令,执行第一方面或第一方面的可能的实现方式中任一项所述的系统进程调控方法。
可选的,作为一种可能的实现方式,所述芯片还可以包括存储器,所述存储器中存储有指令,所述处理器用于执行所述存储器上存储的指令,当所述指令被执行时,所述处理器用于执行第一方面或第一方面的可能的实现方式中任一项所述的系统进程调控方法。
附图说明
图1为现有技术应用进程处理的一个示意性场景图;
图2为现有技术应用进程处理的另一个示意性系统框架图;
图3为本申请实施例提供的电子设备的一种结构示意图;
图4为本申请实施例提供的电子设备的一种软件结构框图;
图5为本申请一个实施例提供的系统进程调控方法的模块交互图;
图6为本申请另一个实施例提供的系统进程调控方法的模块交互图;
图7为本申请另一个实施例提供的系统进程调控方法的模块交互图;
图8为本申请另一个实施例提供的系统进程调控方法的整体流程示意图;
图9为本申请另一个实施例提供的系统进程调控方法的整体流程示意图;
图10为本申请另一个实施例提供的系统进程调控方法的模块交互图;
图11为本申请另一个实施例提供的系统进程调控方法的模块交互图;
图12为本申请另一个实施例提供的系统进程调控方法的模块交互图;
图13为本申请提供的一种系统进程调控装置的结构示意图。
具体实施方式
本申请说明书和权利要求书及附图说明中的术语“第一”、“第二”和“第三”等是用于区别不同对象,而不是用于限定特定顺序。
在本申请实施例中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本申请实施例中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。
为了下述各实施例的描述清楚简洁,首先给出一种系统进程调控的实现方案的简要介绍:
目前,安卓Anrdoid手机的系统进程,是手机基础服务的集合体,通过进程间(binder)调用为应用提供诸如定位、安装应用、切换界面以及访问网络等基础服务。前台应用工作时,会存在大量的对系统进程的进程间调用以获取系统相应服务。
现有技术中,Android手机在使用过程中,打开多个应用后,很容易出现系统进程负载过高的情况,导致前台应用的进程间调用因锁争用而被某个存在耗时操作的线程阻塞的情况。用户在操作前台应用时,就会感知到明显的卡顿。例如当用户首先打开微信、QQ、百度地图以及美团等然后快速退出,立即打开淘宝,浏览一些主页面后,快速退出,打开京东应用,进行购物操作,但是在后台进程较多的情况,容易出现前后台应用的进程间调用出现锁争用,导致应用加载过慢,影响用户体验,如图1所示,图1为现有技术对应用进程处理的一个示意性场景图,在后台进程较多时,打开蜗牛视频应用程序,出现加载中的情况,其原因是前后台应用的进程间调用出现锁争用,如图2所示,前台进程与多个后台进程,后台进程包括后台进程1、后台进程2、后台进程3等,前台进程与多个后台进程通过进程间通信访问系统进程的场景。
基于上述技术方案中存在的问题,本申请提供了一种系统进程调控方法,通过监测系统进程的检测参数,在所述检测参数满足预设条件时,调整所述系统进程对后台进程的访问响应,通过限制所述后台进程访问所述系统进程的进程间通信持有线程锁,从而对后台进程进行管控,避免前后台应用的进程间调用因锁争用造成线程阻塞的情况,提高用户体验。所提供的系统进程调控方法,可以适用于手机、平板电脑、桌面型、膝上型、笔记本电脑、超级移动个人计算机(ultra-mobile personal computer,UMPC)、手持计算机、上网本、个人数字助理(Personal Digital Assistant,PDA)、可穿戴电子设备、智能手表等电子设备。其中,适用该系统进程调控方法的电子设备,其结构可以如图3所示。
如图3所示,图3为本申请提供的一种电子设备的组成示例图,电子设备200可以包括处理器210,外部存储器接口220,内部存储器221,通用串行总线(universal serialbus,USB)接口230,充电管理模块240,电源管理模块241,电池242,天线1,天线2,移动通信模块250,无线通信模块260,音频模块270,扬声器270A,受话器270B,麦克风270C,耳机接口270D,传感器模块280,按键290,马达291,指示器292,摄像头293,显示屏294,以及用户标识模块(subscriber identification module,SIM)卡接口295等。其中传感器模块280可以包括压力传感器280A,陀螺仪传感器280B,气压传感器280C,磁传感器280D,加速度传感器280E,距离传感器280F,接近光传感器280G,指纹传感器280H,温度传感器280J,触摸传感器280K,环境光传感器280L,骨传导传感器280M等。
可以理解的是,本实施例示意的结构并不构成对该电子设备200的具体限定。在另一些实施例中,该电子设备200可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。
处理器210可以包括一个或多个处理单元,例如:处理器210可以包括应用处理器(application processor,AP),调制解调处理器,图形处理器(graphics processingunit,GPU),图像信号处理器(image signal processor,ISP),控制器,视频编解码器,数字信号处理器(digital signal processor,DSP),基带处理器,和/或神经网络处理器(neural-network processing unit,NPU)等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。
其中,控制器可以是电子设备200的神经中枢和指挥中心。控制器可以根据指令操作码和时序信号,产生操作控制信号,完成取指令和执行指令的控制。
处理器210中还可以设置存储器,用于存储指令和数据。在一些实施例中,处理器210中的存储器为高速缓冲存储器。该存储器可以保存处理器210刚用过或循环使用的指令或数据。如果处理器210需要再次使用该指令或数据,可从所述存储器中直接调用。避免了重复存取,减少了处理器210的等待时间,因而提高了系统的效率。
在一些实施例中,处理器210可以包括一个或多个接口。接口可以包括集成电路(inter-integrated circuit,I2C)接口,集成电路内置音频(inter-integratedcircuitsound,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)接口等。
可以理解的是,本实施例示意的各模块间的接口连接关系,只是示意性说明,并不构成对电子设备200的结构限定。在本申请另一些实施例中,电子设备200也可以采用上述实施例中不同的接口连接方式,或多种接口连接方式的组合。
电子设备200的无线通信功能可以通过天线1,天线2,移动通信模块250,无线通信模块260,调制解调处理器以及基带处理器等实现。
无线通信模块260可以提供应用在电子设备200上的包括无线局域网(wirelesslocal area networks,WLAN)(如无线保真(wireless fidelity,Wi-Fi)网络),蓝牙(bluetooth,BT),全球导航卫星系统(global navigation satellite system,GNSS),调频(frequency modulation,FM),近距离无线通信技术(near field communication,NFC),红外技术(infrared,IR)等无线通信的解决方案。无线通信模块260可以是集成至少一个通信处理模块的一个或多个器件。无线通信模块260经由天线2接收电磁波,将电磁波信号调频以及滤波处理,将处理后的信号发送到处理器210。无线通信模块260还可以从处理器210接收待发送的信号,对其进行调频,放大,经天线2转为电磁波辐射出去。
在一些实施例中,电子设备200的天线1和移动通信模块250耦合,天线2和无线通信模块260耦合,使得电子设备200可以通过无线通信技术与网络以及其他设备通信。所述无线通信技术可以包括全球移动通讯系统(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)。
电子设备200通过GPU,显示屏294,以及应用处理器等实现显示功能。GPU为图像处理的微处理器,连接显示屏294和应用处理器。GPU用于执行数学和几何计算,用于图形渲染。处理器210可包括一个或多个GPU,其执行程序指令以生成或改变显示信息。
电子设备200的显示屏294上可以显示一系列图形用户界面(graphicaluserinterface,GUI),这些GUI都是该电子设备200的主屏幕。一般来说,电子设备200的显示屏294的尺寸是固定的,只能在该电子设备200的显示屏294中显示有限的控件。控件是一种GUI元素,它是一种软件组件,包含在应用程序中,控制着该应用程序处理的所有数据以及关于这些数据的交互操作,用户可以通过直接操作(direct manipulation)来与控件交互,从而对应用程序的有关信息进行读取或者编辑。一般而言,控件可以包括图标、按钮、菜单、选项卡、文本框、对话框、状态栏、导航栏、Widget等可视的界面元素。例如,在本申请实施例中,显示屏294可以显示虚拟按键(一键编排、开始编排、场景编排)。
电子设备200可以通过ISP,摄像头293,视频编解码器,GPU,显示屏294以及应用处理器等实现拍摄功能。
电子设备200可以通过音频模块270,扬声器270A,受话器270B,麦克风270C,耳机接口270D,以及应用处理器等实现音频功能。例如音乐播放,录音等。
另外,在上述部件之上,运行有操作系统。例如鸿蒙系统,iOS操作系统,Android开源操作系统,Windows操作系统等。在该操作系统上可以安装运行应用程序。
图4为本申请实施例提供的电子设备的一种软件结构框图。
分层架构将软件分成若干个层,每一层都有清晰的角色和分工。层与层之间通过软件接口通信。在本申请的一些实施例中,电子设备的软件架构至少包括三层,从上至下分别为应用程序层,应用程序框架层,以及硬件抽象层。
应用程序层可以包括一系列应用程序包。这些应用程序包可以包括相机,图库,日历,通话,地图,导航,WLAN,蓝牙,音乐,视频,短信息等应用程序。
应用程序框架层为应用程序层的应用程序提供应用编程接口(applicationprogramming interface,API)和编程框架。应用程序框架层包括一些预先定义的函数。如图3所示,应用程序框架层可以包括窗口管理器,内容提供器,视图系统,电话管理器,资源管理器,通知管理器等。例如,在本申请的一些实施例中,应用程序框架层还可以包括负载计算模块、响应控制模块、线程锁管理模块以及系统进程管理模块,负载计算模块用于监测系统进程的检测参数,以及判断检测参数是否满足预设条件,响应控制模块用于调整所述系统进程对后台进程的访问响应,线程锁管理模块用于创建进程间通信调用列表、判断所述线程锁是否存有进程间通信调用列表以及获取需要持有线程锁的进程间通信名单,系统进程管理模块用于调整系统进程的标志位。
窗口管理器用于管理窗口程序。窗口管理器可以获取显示屏大小,判断是否有状态栏,锁定屏幕,截取屏幕等。
内容提供器用来存放和获取数据,并使这些数据可以被应用程序访问。所述数据可以包括视频,图像,音频,拨打和接听的电话,浏览历史和书签,电话簿等。
视图系统包括可视控件,例如显示文字的控件,显示图片的控件等。视图系统可用于构建应用程序。显示界面可以由一个或多个视图组成的。例如,包括短信通知图标的显示界面,可以包括显示文字的视图以及显示图片的视图。
电话管理器用于提供电子设备的通信功能。例如通话状态的管理(包括接通,挂断等)。
资源管理器为应用程序提供各种资源,比如本地化字符串,图标,图片,布局文件,视频文件等等。
通知管理器使应用程序可以在状态栏中显示通知信息,可以用于传达告知类型的消息,可以短暂停留后自动消失,无需用户交互。比如通知管理器被用于告知下载完成,消息提醒等。通知管理器还可以是以图表或者滚动条文本形式出现在系统顶部状态栏的通知,例如后台运行的应用程序的通知,还可以是以对话窗口形式出现在屏幕上的通知。例如在状态栏提示文本信息,发出提示音,电子设备振动,指示灯闪烁等。
硬件抽象层为电子设备200的操作系统内核与硬件电路之间的接口层,其目的在于将硬件抽象化。在本申请的一些实施例中硬件抽象层包括时间模块。该时间模块用于提供时间信息。
为了便于理解,本申请以下实施例将以具有图3和图4所示结构的电子设备200为例,结合附图和应用场景,对本申请实施例提供的系统进程调控方法进行具体阐述。
图5为本申请一个实施例提供的系统进程调控方法的模块交互图。
如图5所示,上述系统进程调控方法可以包括:
步骤S401:负载计算模块监测系统进程的检测参数。
需要说明的是,检测参数包括系统进程的CPU负载参数、线程锁的等待时间以及前台进程和后台进程访问所述系统进程的访问次数,还可包括其他实现相同或相似功能的系统检测的参数,本实施例对此不作限制,本实施通过将系统进程的CPU负载参数、线程锁的等待时间以及前台进程和后台进程访问所述系统进程的访问次数作为检测参数,判断系统进程的负载,在系统进程的负载达到一定阈值时,则说明后台进程与前台进程在访问系统进程时容易出现线程锁争用的情况,可根据检测的情况及时对后台进程进行调控,从而达到降低系统进程负载的目的。
可以理解的是,前台进程为涉及到与用户交互的应用程序的进程,需要较高的响应速度,优先级别较高,后台进程基本上不与用户交互,优先级别稍低一些。通常,前台应用数量为1个,后台进程一般会比较多且不活跃,但数量增加后,也会产生一定数量的对系统进程的进程间通信,即binder调用,并且前台进程与后台进程可随时切换。
另外,每个进程可包括多个线程,例如某进程A中有3个并发执行的线程thread1、thread2和thread3,由于不同进程无法直接访问,因此前台进程或后台进程中的各个线程无法直接访问系统进程,需要通过binder调用实现前台进程或后台进程对系统进程的访问。
步骤S402,在所述检测参数满足预设条件时,发送系统进程状态指令至系统进程管理模块,步骤S403,系统进程管理模块接收所述系统进程状态指令,根据所述系统进程状态指令将系统进程的负载标志位调整为预设值,并发送调控指令至响应控制模块,使响应通知模块执行步骤S405,接收所述调控指令,并根据所述调控指令调整所述系统进程对后台进程的访问响应。
可以理解的是,预设条件包括系统进程的CPU负载参数大于等于CPU负载阈值、线程锁的等待时间大于等于线程锁等待时间阈值,以及后台进程访问系统进程的访问次数大于等于访问次数阈值中的至少一项。其中,CPU负载阈值可设定为200%,记为TC,线程锁等待时间阈值可设定为2s,记为TL,前台进程和后台进程访问系统进程的访问次数为前台进程和后台进程对系统进程的binder调用,后台进程对系统进程的binder调用阈值可设定为50,记为TB,还可设定为其他参数,本实施例对此不做限制,在本实施例仅做说明,以上参数均可根据用户需求进行灵活调整。
在具体实现中,以预设条件为系统进程的CPU负载参数大于等于CPU负载阈值、所述线程锁的等待时间大于等于线程锁等待时间阈值,以及后台进程访问所述系统进程的访问次数大于等于访问次数阈值均满足为例进行说明,在监测到系统进程的CPU负载参数为210%、所述线程锁的等待时间为3s,以及后台进程访问所述系统进程的访问次数为60次时,则均满足系统进程的CPU负载参数大于等于CPU负载阈值、线程锁的等待时间大于等于线程锁等待时间阈值,以及后台进程访问所述系统进程的访问次数大于等于访问次数阈值,判定当前系统进程的负载过大,如果预设条件为系统进程的CPU负载参数大于等于CPU负载阈值时,则仅满足系统进程的CPU负载参数大于等于CPU负载阈值就可判定当前系统进程的负载过大,还可根据各个预设条件中的检测参数满足的数量以及对应的权重进行综合分析,在所述检测参数满足预设条件时,系统进程的负载标志位的预设值可为1,还可为其他参数,本实施例对此不做限制,在负载标志位的预设值为1时,表明当前系统进程处于负载过高的情况,在负载标志位的预设值为0时,表明当前系统进程未处于负载过高的情况,通过检测参数以及负载标志位的判断,从而提高系统进程的负载状态判定的准确性。
图6为本申请另一个实施例提供的系统进程调控方法的模块交互图,如图6所示,步骤S405,包括:
步骤S501,所述响应控制模块发送线程锁判断指令至线程锁管理模块。
可以理解的是,线程锁是当多个线程几乎同时修改一个共享数据的时候,需要进行同步控制,线程同步能够保证多个线程安全的访问竞争资源,其是系统中的一段代码块,当某个线程要更改共享数据时,先通过线程锁将其锁定,此时资源的状态为锁定状态,其他线程无法进行更改,直到该线程将资源状态改为非锁定状态,也就是释放资源,其他的线程才能再次锁定资源。
需要说明的是,并不是所有的线程访问系统进程都需要线程锁,而是仅针对一些特定的访问需求时才允许持有线程锁,而本实施例限制后台进程访问所述系统进程的进程间通信持有线程锁,在进行线程锁的处理时,需要发送线程锁判断指令至线程锁管理模块,通过线程锁管理模块识别需要持有线程锁的进程间通信。
步骤S502,所述线程锁管理模块接收所述线程锁判断指令。
步骤S503,根据所述线程锁判断指令判断后台进程访问所述系统进程的进程间通信是否需要持有线程锁。
需要说明的是,在后台进程访问所述系统进程中的数据时,通过进程间通信,即binder调用实现后台进程对所述系统进程的访问,但是通过binder调用访问对所述系统进程时,并不是所有访问的进程都需要对系统进程访问持有线程锁,如果后台进程访问系统进程的binder调用不需要持有线程锁,则无法出现锁争用的问题,因此,无需进行后台进程的调控,如果后台进程访问系统进程的binder调用需要持有线程锁,则会出现锁争用的问题,再进行后台进程的调控,从而提高系统处理效率。
步骤S504,在所述后台进程访问所述系统进程的进程间通信需要持有线程锁时,判断是否存有进程间通信调用列表。
在一种可能实现的方式中,进程间通信调用列表为维护的binder调用列表控制,进程间通信调用列表为对线程锁的代码块进行改造得到的进程间通信调用列表,在存有所述进程间通信调用列表,则表明线程锁的代码块已进行改造,可对后台进程的binder调用进行控制,在未存有所述进程间通信调用列表,则表明线程锁的代码块未进行改造,无法对后台进程的binder调用进行控制。
步骤S505,在存有进程间通信调用列表时,通过所述进程间通信调用列表控制所述后台进程访问所述系统进程的进程间通信不持有线程锁。
在一种可能实现的方式中,为了限制所述后台进程访问所述系统进程的进程间通信持有线程锁,通过进程间通信调用列表可将线程锁的代码块分为前台和后台两种模式:前台模式保持原有流程,即在binder调用为前台进程时,使需要持有线程锁的前台进程binder调用持有线程锁,使不需要持有线程锁binder调用不持有线程锁;后台模式为在binder调用为后台进程时,使需要持有线程锁后台进程的binder调用均不持有线程锁,从而对后台进程的binder调用进行控制,限制所述后台进程访问所述系统进程的进程间通信持有线程锁,降低系统进程的线程锁争用。
为了保证用户体验,在限制所述后台进程访问所述系统进程的进程间通信持有线程锁之后,还包括:获取预设时间内所述后台进程访问所述系统进程的进程间通信的缓存数据,根据所述缓存数据响应所述后台进程对所述系统进程的访问。
在本实施例中,设有缓存区,获取后台进程访问系统进程的binder调用在调控前的响应数据,将响应数据存在缓存区,在通过限制所述后台进程访问所述系统进程的进程间通信持有线程锁后,从缓存区中取出调控前的响应数据,将调控前的响应数据反馈给后台进程,其中,预设时间为调控前的binder调用的数据,从而保证后台进程得到相应的数据反馈,保证进程间通信工作的顺畅。
所述步骤S504之前,还包括:
创建进程间通信调用列表,其中,所述进程间通信调用列表仅包括前台进程访问所述系统进程的进程间通信。
步骤S506,在未存有进程间通信调用列表时,按照预设休眠时间延迟所述后台进程访问所述系统进程的响应时间。
在一种可能实现的方式中,按照休眠时间延迟所述后台进程访问所述系统进程的响应时间,具体为:调用休眠函数,其中,所述休眠函数设有休眠时间,按照所述休眠时间延迟所述后台进程访问所述系统进程的响应时间。
在本实施例中,休眠函数可为SLEEP函数,还可为其他可实现延迟功能的函数,本实施例对此不做限制。以SLEEP函数为例进行说明,休眠时间可设为500ms,还可设为其他参数。例如当前系统进程的负载过大,可通过调用休眠函数,使系统进程延迟500ms响应后台进程,本实施例仅对后台进程访问所述系统进程的响应时间进行延时,对前台进程访问所述系统进程的响应时间不进行延迟,从而保证前台进程及时访问所述系统进程,通过延迟所述后台进程访问所述系统进程的响应时间,使同一时刻访问系统进程的前台进程和后台进程的响应时间错开,避免出现同时访问系统进程,导致线程锁争用的情况。
本实施例所提供的系统进程调控方法,通过监测系统进程的检测参数,在所述检测参数满足预设条件时,调整所述系统进程对后台进程的访问响应,从而对后台进程进行管控,避免前台应用的进程间调用因锁争用造成线程阻塞的情况,提高用户体验。
图7为本申请另一个实施例提供的系统进程调控方法的模块交互图,如图7所示,步骤S503,包括:
步骤S5031,根据所述线程锁判断指令获取需要持有线程锁的进程间通信名单。
在本实施例中,为了确定后台进程访问系统进程的binder调用是否需要持有线程锁,通过创建进程间通信名单进行判断,进程间通信名单中存有设定的需要持有线程锁进程间通信,获取所述后台进程访问所述系统进程的binder调用信息,判断binder调用信息是否存在进程间通信名单中,在binder调用信息存在进程间通信名单中,则说明当前的binder调用需要持有线程锁,在binder调用信息不存在进程间通信名单中,则说明当前的binder调用不需要持有线程锁,从而确定binder调用的类型。
步骤S5032,在所述后台进程访问所述系统进程的进程间通信匹配进程间通信名单时,确定所述后台进程访问所述系统进程的进程间通信需要持有线程锁。
如图8所示的整体流程示意图,应用进程通过进程间通信,即binder调用访问系统进程服务,应用进程通过进程间通信访问系统进程服务,在所述系统进程服务对前台进程和后台进程的进程间通信响应时,根据前台进程和后台进程的进程号对前台进程和后台进程进行识别,判断是否是后台进程的进程间通信,在识别出后台进程的进程间通信时,查询负载标志位,判断是否启用后台进程间通信的访问控制,在未识别出后台进程的进程间通信时,则不(二通)进出管控,在启用后台进程间通信的访问控制时,获取需要持有线程锁的进程间通信名单,通过进程间通信名单判断后台进程间通信是否需要持有线程锁,在不启用后台进程间通信的访问控制是,则不进行管控。
在后台进程访问系统进程的进程间通信需要持有线程锁时,判断是否存有进程间通信调用列表,在后台进程访问系统进程的进程间通信不需要持有线程锁时,则不进行管控,其中,所述进程间通信调用列表仅包括前台进程访问所述系统进程的进程间通信,在存有进程间通信调用列表时,启动第一后台进程的进程间通信访问控制策略,即走后台调用流程,使用调控前的缓存数据,使后台进程的进程间通信不持有线程锁,在未存有进程间通信调用列表时,启动第二后台进程的进程间通信访问控制策略,即延迟固定时间后响应,并继续执行已有后台进程的进程间通信流程,最后调用返回,结束。
在具体实现中,例如图9所示的具体实施例说明,在前台微信应用进程和后台淘宝、百度以及QQ等应用进程通过进程间通信访问系统进程服务,在系统进程服务对前台进程和后台进程的进程间通信响应时,根据前台进程和后台进程的进程号对前台进程和后台进程进行识别,判断是否是后台淘宝、百度、QQ等应用的进程间通信,在没有后台淘宝、百度、QQ等应用的进程间通信时,则不进行管控,在识别到后台淘宝、百度、QQ等应用的进程间通信时,查询负载情况标志位,决定是否启用后台进程间通信访问控制,例如根据进程号判断是否为后台进程,在是后台进程时,则根据负载情况标志位,决定是否启用后台进程间通信binder访问控制,在不为后台进程时,则不启用后台进程间通信访问控制,即不进行管控,在为后台进程时,且根据负载情况标志位,判定当前负载为负载过大时,则启用对后台淘宝、百度以及QQ等应用进程间通信控制,判定当前负载不为负载过大时,则不启用对后台淘宝、百度以及QQ等应用进程间通信控制,然后判断后台淘宝、百度以及QQ等应用进程间通信是否需要持有线程锁,在后台淘宝、百度以及QQ等应用进程间通信需要持有线程锁时,则判断是否存有进程间通信调用列表,其中,所述进程间通信调用列表仅包括前台进程访问所述系统进程的进程间通信,即是否对线程锁代码块进行改造,在对线程锁代码块进行改造时,则启动对持有线程锁的应用进程间通信访问控制策略1,走后台调用流程,使用调控前的缓存数据,不持有线程锁,在未对线程锁代码块进行改造时,则启动后台持有线程锁应用进程间通信访问控制策略2,延迟固定时间后响应,继续执行现有后台进程间通信流程,最后调用返回,结束。
图10为本申请另一个实施例提供的系统进程调控方法的模块交互图,如图10所示,所述检测参数包括所述系统进程的CPU负载参数;
所述步骤S401,包括:
通过负载计算模块发送检测参数请求至时间模块。
步骤S101,所述时间模块接收到所述检测参数请求,根据所述检测参数请求取所述系统进程中各个线程在目标采样周期内的CPU运行时间,并反馈CPU运行时间至所述负载计算模块。
步骤S102,所述负载计算模块接收所述CPU运行时间,根据所述CPU运行时间,得到CPU占用时间,步骤S103,根据所述CPU占用时间与所述目标采样周期,得到所述系统进程的CPU负载参数。
所述步骤S401之后,还包括:
步骤S104,所述负载计算模块检测到所述系统进程的CPU负载参数大于等于CPU负载阈值时,确定CPU负载参数满足第一预设条件,并发送第一调控指令至响应控制模块。
步骤S405,所述响应控制模块接收所述第一调控指令,并根据所述第一调控指令调整所述系统进程对后台进程的访问响应。
需要说明的是,目标采样周期可设定为5s,还可为其他参数,例如10s以及20s等,本实施例对此不做限制,在本实施例中,以5s为例进行说明,通过统计CPU运行时间,根据统计CPU运行时间得到CPU占用时间。
在本实施例中,目标采样周期为上一个采样周期,记为T,获取系统进程各个线程在前一个采样周期内总的CPU运行时间,记为A,系统进程的CPU负载记为SC,根据以下公式得到系统进程的CPU负载:
Figure 715557DEST_PATH_IMAGE001
在具体实现中,系统进程的CPU负载参数,具体包括:获取所述系统进程中各个线程在目标采样周期内的CPU运行时间,根据所述的CPU运行时间,得到CPU占用时间,根据所述CPU占用时间与所述目标采样周期,得到所述系统进程的CPU负载参数,通过在系统侧保持一个记录系统进程CPU运行时间长整型变量sysCpuTime,在每个目标采样周期,获取系统进程的累积CPU运行时间,通过Framework层的接口获取底层采集的CPU运行时间,并减去上一个采样周期保存的累积CPU运行时间,得到上一个采样周期系统进程CPU占用时间,然后更新累积CPU运行时间sysCpuTime,系统进程的CPU负载即CPU使用率,根据系统进程上一个采样周期的CPU占用时间/目标采样周期时间得到,例如当前累积CPU运行时间为1h50min30s,目标采样周期为5s,将当前时间向前推5s,从累积CPU运行时间中得到向前推5s对应的CPU运行时间为1h50min18s,则得到上一个采样周期5s内的CPU占用时间为12s,则CPU负载参数为240%,设定的CPU负载阈值为200%,则系统进程的CPU负载参数大于等于CPU负载阈值,以实现CPU负载参数的检测,并反馈检测参数给负载计算模块,负载计算模块在所述系统进程的CPU负载参数大于等于CPU负载阈值,即满足第一预设条件,则启动对后台进程的控制,发送调控指令至响应控制模块,通过响应控制模块调整系统进程对后台进程的访问响应。
在一种可能实现的方式中,图11为本申请另一个实施例提供的系统进程调控方法的模块交互图,如图11所示,所述检测参数包括所述系统进程中目标线程获取线程锁的等待时间;
所述步骤S401,包括:
通过负载计算模块发送检测参数请求至时间模块;
步骤S201,所述时间模块接收所述检测参数请求,并根据所述检测参数请求判断连续预设数量的目标采样周期内是否获取到目标线程对线程锁的获取时间。
步骤S202,在连续预设数量的目标采样周期内获取到目标线程对线程锁的获取时间时,获取所述目标线程对线程锁的请求时间以及所述线程锁的获取时间。
在具体实现中,在系统侧保持一个记录上一个采样周期时间点的长整型变量mLastSampleTime,一个记录系统进程线程锁等待时间的长整型变量mLockTime,一个用于辅助统计线程锁等待时间的数组mVect,新建一个数据类型LockTimePair,包含两个长整型变量star和end,通过每个加锁的代码块,获取锁前状态,记录系统时间,保存在一个新建的LockTimePair对象的star变量中,end置为0,放在数据mVect中。获取锁后状态,记录系统时间,并从LockTimePair取出之前保存的数据,或减去star或上一采样周期时间点较大者,将增量累加到mLockTime上,并从mVect删除对应对象,即从mLockTime中得到目标线程获取线程锁的等待时间,例如在同一采样周期检测到锁前状态和锁后状态,锁前状态的star值为14:13:03,锁后状态记录的系统时间为14:13:06,将锁后的系统时间减去锁前记录的时间,得到3s,设定的线程锁等待时间阈值为2s,则线程锁等待时间大于线程锁等待时间阈值,重置mLockTime,更新mLastSampleTime,并进入下一个采样周期,从而实现线程锁的等待时间的检测。
步骤S203,判断所述请求时间以及所述获取时间是否均处于所述目标采样周期。
需要说明的是,由于系统时间是通过每个采样周期依次获取得到的,在当前采集周期检测到线程锁请求时间,但是在当前采集周期有可能并没有获取到线程锁,而是在下一个采样周期获取到线程锁的获取时间,在这种情况下,由于并不是处于同一个采样周期,线程锁的等待时间出现误差,因此,为了保证线程锁的等待时间检测的正确,需要保证请求时间以及获取时间是处于同一目标采样周期内,从而保证线程锁等待时间检测的准确性。
步骤S204,在所述请求时间以及所述获取时间均处于所述目标采样周期时,根据所述请求时间以及所述获取时间,得到所述目标线程获取线程锁的等待时间,并反馈所述线程锁的等待时间至所述负载计算模块,例如在同一采样周期检测到锁前状态和锁后状态,锁前状态的star值为14:13:03,即请求时间,锁后状态记录的系统时间为14:13:06,即获取时间,将锁后的系统时间减去锁前记录的时间,得到3s,即线程锁的等待时间。
步骤S205,在所述请求时间以及所述获取时间均未处于所述目标采样周期时,获取所述请求时间所处的采样周期的目标采集时间,根据所述目标采集时间以及所述获取时间,得到所述目标线程获取线程锁的等待时间,并反馈所述线程锁的等待时间至所述负载计算模块。
在本实施例中,在所述请求时间以及所述获取时间均未处于所述目标采样周期内时,则说明请求时间是处于采样周期A,获取时间是处于采样周期B,在这种情况下,为了获取线程锁的等待时间,将采样周期A中的时间的最大值作为目标采集时间,将采样周期B的获取时间减去采样周期A中的时间的最大值,得到线程锁的等待时间,从而保证线程锁等待时间检测的准确性。
步骤S206,在连续预设数量的目标采样周期内未获取到目标线程对线程锁的获取时间时,将所述目标采样周期作为所述目标线程获取线程锁的等待时间,并反馈所述线程锁的等待时间至所述负载计算模块。
在本实施例中,在多个采样周期中均没有得到线程锁的获取时间时,将目标采样周期作为线程锁的等待时间,例如在上一个采样周期A,得到线程锁的请求时间,在当前采样周期B未获取到线程锁的获取时间,则将目标采样周期作为线程锁的等待时间,其中,预设个目标采样周期可为相邻的两个采样周期,还可设定为大于2个的采样周期,在本实施例中,以2个采样周期为例。
在多个采样周期中均没有得到线程锁的获取时间时,无需等待得到线程锁的获取时间,而是直接将目标采样周期作为线程锁的等待时间,从而保证进程的处理效率,在获取到检测参数之后,负载计算模块执行步骤S207,接收所述线程锁的等待时间,在所述线程锁的等待时间大于等于线程锁等待时间阈值时,确定所述线程锁的等待时间满足第二预设条件,并发送第二调控指令至响应控制模块,步骤S405,所述响应控制模块接收所述第二调控指令,并根据所述第二调控指令调整系统进程对后台进程的访问响应,从而提高线程锁等待时间检测的准确性。
在一种可能实现的方式中,图12为本申请另一个实施例提供的系统进程调控方法的模块交互图,如图12所示,所述检测参数还包括后台进程访问所述系统进程的访问次数;
所述步骤S401,包括:
步骤S301,通过遍历所述系统进程的访问信息,得到进程标识,步骤S302,根据所述进程标识得到所述访问信息中的后台进程,步骤S303,根据所述后台进程统计所述后台进程访问所述系统进程的访问次数,在获取到检测参数之后,负载计算模块执行步骤S304,在所述后台进程访问所述系统进程的访问次数大于等于访问次数阈值时,确定访问次数满足预设条件,发送第三调整指令至响应控制模块,通过响应控制模块调整系统进程对后台进程的访问响应。
在具体实现中,系统侧保存前台进程的进程号,前台发生切换时更新,保存两个变量分别用于记录前台binder访问次数和后台binder访问次数,binder访问时,匹配前台进程号,如果匹配成功,前台访问次数+1,否则后台访问次数+1,在每个目标采集周期计算负载后,将前后台binder次数置于0,从而实现前台进程和后台进程的识别,以及后台进程的访问次数的检测。
图13示出了本申请提供的一种系统进程调控装置的结构示意图。本申请提供的系统进程调控装置900包括:
监测模块901,用于监测系统进程的检测参数。
调整模块902,用于在所述检测参数满足预设条件时,调整所述系统进程对后台进程的访问响应,其中,所述调整所述系统进程对所述后台进程的访问响应,包括:限制所述后台进程访问所述系统进程的进程间通信持有线程锁。
本申请所提供的系统进程调控方法,通过对后台进程进行管控,限制后台进程访问所述系统进程的进程间通信持有线程锁,避免前台应用的进程间调用因锁争用造成线程阻塞的情况,提高了用户体验。
在一种可能的实现方式中,所述调整模块902,还用于通过负载计算模块检测到所述检测参数满足预设条件时,发送系统进程状态指令至系统进程管理模块;
所述系统进程管理模块接收所述系统进程状态指令,根据所述系统进程状态指令将系统进程的负载标志位调整为预设值,并发送调控指令至响应控制模块;
所述响应控制模块接收所述调控指令,并根据所述调控指令调整所述系统进程对后台进程的访问响应。
在一种可能的实现方式中,所述调整模块902,还用于所述响应控制模块发送线程锁判断指令至线程锁管理模块;
所述线程锁管理模块接收所述线程锁判断指令,根据所述线程锁判断指令判断后台进程访问所述系统进程的进程间通信是否需要持有线程锁;
在所述后台进程访问所述系统进程的进程间通信需要持有线程锁时,判断是否存有进程间通信调用列表;
在存有进程间通信调用列表时,通过所述进程间通信调用列表控制所述后台进程访问所述系统进程的进程间通信不持有线程锁;
在未存有进程间通信调用列表时,按照预设休眠时间延迟所述后台进程访问所述系统进程的响应时间。
在一种可能的实现方式中,所述调整模块902,还用于创建进程间通信调用列表,其中,所述进程间通信调用列表仅包括前台进程访问所述系统进程的进程间通信。
在一种可能的实现方式中,所述调整模块902,还用于获取需要持有线程锁的进程间通信名单;
在所述后台进程访问所述系统进程的进程间通信匹配进程间通信名单时,确定所述后台进程访问所述系统进程的进程间通信需要持有线程锁。
在一种可能的实现方式中,所述调整模块902,还用于获取预设时间内所述后台进程访问所述系统进程的进程间通信的缓存数据;
根据所述缓存数据响应所述后台进程对所述系统进程的访问。
在一种可能的实现方式中,所述检测参数包括所述系统进程的CPU负载参数;
所述监测模块901,还用于通过负载计算模块发送检测参数请求至时间模块;
所述时间模块接收到所述检测参数请求,根据所述检测参数请求取所述系统进程中各个线程在目标采样周期内的CPU运行时间,并反馈CPU运行时间至所述负载计算模块;
所述负载计算模块接收所述CPU运行时间,根据所述CPU运行时间,得到CPU占用时间,根据所述CPU占用时间与所述目标采样周期,得到所述系统进程的CPU负载参数;
所述监测模块901,还用于所述负载计算模块检测到所述系统进程的CPU负载参数大于等于CPU负载阈值时,确定CPU负载参数满足第一预设条件,并发送第一调控指令至响应控制模块;
所述响应控制模块接收所述第一调控指令,并根据所述第一调控指令调整所述系统进程对后台进程的访问响应。
在一种可能的实现方式中,所述检测参数包括所述系统进程中目标线程获取线程锁的等待时间;
所述监测模块901,还用于通过负载计算模块发送检测参数请求至时间模块;
所述时间模块接收所述检测参数请求,并根据所述检测参数请求判断连续预设数量的目标采样周期内是否获取到目标线程对线程锁的获取时间;
在连续预设数量的目标采样周期内获取到目标线程对线程锁的获取时间时,获取所述目标线程对线程锁的请求时间以及所述线程锁的获取时间;
判断所述请求时间以及所述获取时间是否均处于所述目标采样周期;
在所述请求时间以及所述获取时间均处于所述目标采样周期时,根据所述请求时间以及所述获取时间,得到所述目标线程获取线程锁的等待时间,并反馈所述线程锁的等待时间至所述负载计算模块;
在所述请求时间以及所述获取时间均未处于所述目标采样周期时,获取所述请求时间所处的采样周期的目标采集时间,根据所述目标采集时间以及所述获取时间,得到所述目标线程获取线程锁的等待时间,并反馈所述线程锁的等待时间至所述负载计算模块;
在连续预设数量的目标采样周期内未获取到目标线程对线程锁的获取时间时,将所述目标采样周期作为所述目标线程获取线程锁的等待时间,并反馈所述线程锁的等待时间至所述负载计算模块;
所述监测模块901,还用于所述负载计算模块接收所述线程锁的等待时间,在所述线程锁的等待时间大于等于线程锁等待时间阈值时,确定所述线程锁的等待时间满足第二预设条件,并发送第二调控指令至响应控制模块;
所述响应控制模块接收所述第二调控指令,并根据所述第二调控指令调整系统进程对后台进程的访问响应。
在一种可能的实现方式中,所述检测参数包括后台进程访问所述系统进程的访问次数;
所述监测模块901,还用于通过负载计算模块遍历所述系统进程的访问信息,得到进程标识;
根据所述进程标识得到所述访问信息中的后台进程;
根据所述后台进程统计所述后台进程访问所述系统进程的访问次数;
所述监测模块901,还用于所述负载计算模块检测到所述后台进程访问所述系统进程的访问次数大于等于访问次数阈值时,确定访问次数满足第三预设条件,并发送第三调控指令至响应控制模块;
所述响应控制模块接收所述第三调控指令,并根据所述第三调控指令调整系统进程对后台进程的访问响应。
在一种可能的实现方式中,所述系统进程调控装置,还包括应用进程通过进程间通信访问系统进程服务;
在所述系统进程服务对前台进程和后台进程的进程间通信响应时,根据前台进程和后台进程的进程号对前台进程和后台进程进行识别,判断是否是后台进程的进程间通信;
在识别出后台进程的进程间通信时,查询负载标志位,判断是否启用后台进程间通信的访问控制;
在启用后台进程间通信的访问控制时,获取需要持有线程锁的进程间通信名单,通过进程间通信名单判断后台进程间通信是否需要持有线程锁;
在后台进程访问系统进程的进程间通信需要持有线程锁时,判断是否存有进程间通信调用列表,其中,所述进程间通信调用列表仅包括前台进程访问所述系统进程的进程间通信;
在存有进程间通信调用列表时,启动第一后台进程的进程间通信访问控制策略,走后台调用流程,使用调控前的缓存数据,使后台进程的进程间通信不持有线程锁;
在未存有进程间通信调用列表时,启动第二后台进程的进程间通信访问控制策略,延迟固定时间后响应,并继续执行已有后台进程的进程间通信流程。
应理解的是,这里的电子设备以功能模块的形式体现。这里的术语“模块”可以通过软件和/或硬件形式实现,对此不作具体限定。例如,“模块”可以是实现上述功能的软件程序、硬件电路或二者结合。所述硬件电路可能包括应用特有集成电路(applicationspecificintegrated circuit,ASIC)、电子电路、用于执行一个或多个软件或固件程序的处理器(例如共享处理器、专有处理器或组处理器等)和存储器、合并逻辑电路和/或其它支持所描述的功能的合适组件。
本申请还提供一种电子设备,包括:一个或多个处理器;存储器;以及一个或多个计算机程序,其中所述一个或多个计算机程序被存储在所述存储器中,所述一个或多个计算机程序包括指令,当所述指令被所述电子设备执行时,使得所述电子设备执行如上述第一方面或第一方面的可能的实现方式中任一项所述的系统进程调控方法。
本申请还提供一种计算机可读存储介质,所述计算机可读存储介质中存储了计算机程序,当所述计算机程序被处理器执行时,使得处理器执行如上述第一方面或第一方面的可能的实现方式中任一项所述的系统进程调控方法。
本申请还提供一种芯片,所述芯片包括处理器与数据接口,所述处理器通过所述数据接口读取存储器上存储的指令,执行第一方面或第一方面的可能的实现方式中任一项所述的系统进程调控方法。
可选的,该芯片还可以包括存储器,所述存储器中存储有指令,所述处理器用于执行所述存储器上存储的指令,当所述指令被执行时,所述处理器用于执行第一方面或第一方面的可能的实现方式中任一项所述的系统进程调控方法。
存储器可以是只读存储器(read-only memory,ROM)、可存储静态信息和指令的其它类型的静态存储设备、随机存取存储器(random access memory,RAM)或可存储信息和指令的其它类型的动态存储设备,也可以是电可擦可编程只读存储器(electricallyerasable 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可以是单个,也可以是多个。
本领域普通技术人员可以意识到,本文中公开的实施例中描述的各单元及算法步骤,能够以电子硬件、计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,任一功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read-only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本申请的具体实施方式,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。本申请的保护范围应以所述权利要求的保护范围为准。

Claims (10)

1.一种系统进程调控方法,其特征在于,所述系统进程调控方法,包括:
监测系统进程的检测参数;
在所述检测参数满足预设条件时,调整所述系统进程对后台进程的访问响应,其中,所述调整所述系统进程对所述后台进程的访问响应,包括:限制所述后台进程访问所述系统进程的进程间通信持有线程锁,通过进程间通信调用列表控制所述后台进程访问所述系统进程的进程间通信不持有线程锁,其中,所述进程间通信调用列表仅包括前台进程访问所述系统进程的进程间通信,所述进程间通信调用列表为对线程锁的代码块进行改造得到的;
所述限制所述后台进程访问所述系统进程的进程间通信持有线程锁之后,还包括:
获取预设时间内所述后台进程访问所述系统进程的进程间通信的缓存数据;
根据所述缓存数据响应所述后台进程对所述系统进程的访问;
所述检测参数包括:所述系统进程的CPU负载参数、所述系统进程中目标线程获取线程锁的等待时间以及后台进程访问所述系统进程的访问次数;
获取所述系统进程中各个线程在目标采样周期内的CPU运行时间,根据所述CPU运行时间,得到CPU占用时间,根据所述CPU占用时间与目标采样周期,得到所述系统进程的CPU负载参数,在所述系统进程的CPU负载参数大于等于CPU负载阈值时,确定CPU负载参数满足第一预设条件,根据第一调控指令调整所述系统进程对后台进程的访问响应;
连续预设数量的目标采样周期内获取到目标线程对线程锁的获取时间;在所述目标线程对线程锁的请求时间以及所述线程锁的获取时间均处于目标采样周期时,根据所述请求时间以及所述获取时间,得到所述目标线程获取线程锁的等待时间;在所述请求时间以及所述获取时间均未处于目标采样周期时,根据目标采集时间以及所述获取时间,得到所述目标线程获取线程锁的等待时间;在连续预设数量的目标采样周期内未获取到目标线程对线程锁的获取时间时,将目标采样周期作为所述目标线程获取线程锁的等待时间;在所述线程锁的等待时间大于等于线程锁等待时间阈值时,确定所述线程锁的等待时间满足第二预设条件,并根据第二调控指令调整系统进程对后台进程的访问响应;
在所述后台进程访问所述系统进程的访问次数大于等于访问次数阈值时,确定访问次数满足第三预设条件,并根据第三调控指令调整系统进程对后台进程的访问响应。
2.如权利要求1所述的系统进程调控方法,其特征在于,所述在所述检测参数满足预设条件时,调整所述系统进程对后台进程的访问响应,包括:
通过负载计算模块检测到所述检测参数满足预设条件时,发送系统进程状态指令至系统进程管理模块;
所述系统进程管理模块接收所述系统进程状态指令,根据所述系统进程状态指令将系统进程的负载标志位调整为预设值,并发送调控指令至响应控制模块;
所述响应控制模块接收所述调控指令,并根据所述调控指令调整所述系统进程对后台进程的访问响应。
3.如权利要求2所述的系统进程调控方法,其特征在于,所述根据所述调控指令调整所述系统进程对后台进程的访问响应,包括:
所述响应控制模块发送线程锁判断指令至线程锁管理模块;
所述线程锁管理模块接收所述线程锁判断指令,根据所述线程锁判断指令判断后台进程访问所述系统进程的进程间通信是否需要持有线程锁;
在所述后台进程访问所述系统进程的进程间通信需要持有线程锁时,判断是否存有进程间通信调用列表;
在存有进程间通信调用列表时,通过所述进程间通信调用列表控制所述后台进程访问所述系统进程的进程间通信不持有线程锁;
在未存有进程间通信调用列表时,按照预设休眠时间延迟所述后台进程访问所述系统进程的响应时间。
4.如权利要求3所述的系统进程调控方法,其特征在于,所述通过进程间通信调用列表控制所述后台进程访问所述系统进程的进程间通信不持有线程锁之前,还包括:
创建进程间通信调用列表。
5.如权利要求3所述的系统进程调控方法,其特征在于,所述判断所述后台进程访问所述系统进程的进程间通信是否需要持有线程锁,包括:
获取需要持有线程锁的进程间通信名单;
在所述后台进程访问所述系统进程的进程间通信匹配进程间通信名单时,确定所述后台进程访问所述系统进程的进程间通信需要持有线程锁。
6.如权利要求1至5中任一项所述的系统进程调控方法,其特征在于,所述监测系统进程的检测参数,包括:
通过负载计算模块遍历所述系统进程的访问信息,得到进程标识;
根据所述进程标识得到所述访问信息中的后台进程;
根据后台进程统计后台进程访问所述系统进程的访问次数。
7.如权利要求1至5中任一项所述的系统进程调控方法,其特征在于,所述方法还包括:
应用进程通过进程间通信访问系统进程服务;
在所述系统进程服务对前台进程和后台进程的进程间通信响应时,根据前台进程和后台进程的进程号对前台进程和后台进程进行识别,判断是否是后台进程的进程间通信;
在识别出后台进程的进程间通信时,查询负载标志位,判断是否启用后台进程间通信的访问控制。
8.一种系统进程调控装置,其特征在于,所述系统进程调控装置包括:
监测模块,用于监测系统进程的检测参数;
调整模块,用于在所述检测参数满足预设条件时,调整所述系统进程对后台进程的访问响应,其中,所述调整所述系统进程对所述后台进程的访问响应,包括:限制所述后台进程访问所述系统进程的进程间通信持有线程锁,通过进程间通信调用列表控制所述后台进程访问所述系统进程的进程间通信不持有线程锁,其中,所述进程间通信调用列表仅包括前台进程访问所述系统进程的进程间通信,所述进程间通信调用列表为对线程锁的代码块进行改造得到的;
所述调整模块,还用于获取预设时间内所述后台进程访问所述系统进程的进程间通信的缓存数据;
根据所述缓存数据响应所述后台进程对所述系统进程的访问;
所述检测参数包括:所述系统进程的CPU负载参数、所述系统进程中目标线程获取线程锁的等待时间以及后台进程访问所述系统进程的访问次数;
获取所述系统进程中各个线程在目标采样周期内的CPU运行时间,根据所述CPU运行时间,得到CPU占用时间,根据所述CPU占用时间与目标采样周期,得到所述系统进程的CPU负载参数,在所述系统进程的CPU负载参数大于等于CPU负载阈值时,确定CPU负载参数满足第一预设条件,根据第一调控指令调整所述系统进程对后台进程的访问响应;
连续预设数量的目标采样周期内获取到目标线程对线程锁的获取时间;在所述目标线程对线程锁的请求时间以及所述线程锁的获取时间均处于目标采样周期时,根据所述请求时间以及所述获取时间,得到所述目标线程获取线程锁的等待时间;在所述请求时间以及所述获取时间均未处于目标采样周期时,根据目标采集时间以及所述获取时间,得到所述目标线程获取线程锁的等待时间;在连续预设数量的目标采样周期内未获取到目标线程对线程锁的获取时间时,将目标采样周期作为所述目标线程获取线程锁的等待时间;在所述线程锁的等待时间大于等于线程锁等待时间阈值时,确定所述线程锁的等待时间满足第二预设条件,并根据第二调控指令调整系统进程对后台进程的访问响应;
在所述后台进程访问所述系统进程的访问次数大于等于访问次数阈值时,确定访问次数满足第三预设条件,并根据第三调控指令调整系统进程对后台进程的访问响应。
9.一种电子设备,其特征在于,包括:一个或多个处理器;存储器;以及一个或多个计算机程序,其中所述一个或多个计算机程序被存储在所述存储器中,所述一个或多个计算机程序包括指令,当所述指令被所述电子设备执行时,使得所述电子设备执行如权利要求1至7中任一项所述的系统进程调控方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储了计算机程序,当所述计算机程序被处理器执行时,使得处理器执行权利要求1至7中任一项所述的系统进程调控方法。
CN202210120852.9A 2022-02-09 2022-02-09 系统进程调控方法、装置、电子设备及可读存储介质 Active CN114153621B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210120852.9A CN114153621B (zh) 2022-02-09 2022-02-09 系统进程调控方法、装置、电子设备及可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210120852.9A CN114153621B (zh) 2022-02-09 2022-02-09 系统进程调控方法、装置、电子设备及可读存储介质

Publications (2)

Publication Number Publication Date
CN114153621A CN114153621A (zh) 2022-03-08
CN114153621B true CN114153621B (zh) 2022-06-07

Family

ID=80450117

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210120852.9A Active CN114153621B (zh) 2022-02-09 2022-02-09 系统进程调控方法、装置、电子设备及可读存储介质

Country Status (1)

Country Link
CN (1) CN114153621B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116089110B (zh) * 2022-07-01 2023-11-21 荣耀终端有限公司 控制进程交互的方法及相关装置
CN116662024B (zh) * 2022-12-30 2023-11-07 荣耀终端有限公司 进程间通信监控方法、装置、电子设备及存储介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10242022B1 (en) * 2016-08-10 2019-03-26 Veritas Technologies Llc Systems and methods for managing delayed allocation on clustered file systems

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103577237B (zh) * 2013-11-15 2017-09-05 北京奇虎科技有限公司 应用程序启动的控制方法及装置
JP7006780B2 (ja) * 2017-09-30 2022-01-24 ホアウェイ・テクノロジーズ・カンパニー・リミテッド システムサービスタイムアウト処理方法および装置
CN109992438A (zh) * 2017-12-29 2019-07-09 广东欧珀移动通信有限公司 信息处理方法、装置、计算机设备和计算机可读存储介质
CN110018885B (zh) * 2017-12-29 2021-06-01 Oppo广东移动通信有限公司 应用程序冻结方法、装置、存储介质和终端
CN109445930A (zh) * 2018-05-30 2019-03-08 Oppo广东移动通信有限公司 程序优化方法、装置、终端及存储介质
CN109032814B (zh) * 2018-06-29 2020-10-02 Oppo(重庆)智能科技有限公司 一种移动终端及其进程间通信的监控方法、存储介质
CN110413417A (zh) * 2019-08-02 2019-11-05 广州小鹏汽车科技有限公司 车载系统进程的运行优化方法、装置和系统

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10242022B1 (en) * 2016-08-10 2019-03-26 Veritas Technologies Llc Systems and methods for managing delayed allocation on clustered file systems

Also Published As

Publication number Publication date
CN114153621A (zh) 2022-03-08

Similar Documents

Publication Publication Date Title
CN114153621B (zh) 系统进程调控方法、装置、电子设备及可读存储介质
US11914446B2 (en) Electronic device control method and apparatus, and electronic device
EP3872807A1 (en) Voice control method and electronic device
KR102148948B1 (ko) 전자 장치의 멀티 태스킹 방법 및 그 전자 장치
WO2022262530A1 (zh) 内存管理的方法及电子设备
KR20210068097A (ko) 시스템 탐색 바 표시 제어 방법, 그래픽 사용자 인터페이스 및 전자 디바이스
US10609276B2 (en) Electronic device and method for controlling operation of camera-related application based on memory status of the electronic device thereof
WO2021063090A1 (zh) 一种建立应用组合的方法与电子设备
CN107463437B (zh) 应用管控方法、装置、存储介质及电子设备
WO2022089208A1 (zh) 一种文件拖拽方法及电子设备
CN110837343B (zh) 处理快照的方法、装置及终端
CN109992364B (zh) 应用冻结方法、装置、计算机设备和计算机可读存储介质
WO2021052070A1 (zh) 一种帧率识别方法及电子设备
US10432926B2 (en) Method for transmitting contents and electronic device thereof
AU2017435235B2 (en) Application management method and terminal
US20240176628A1 (en) Display method for card component, graphical user interface, and related apparatus
WO2019024641A1 (zh) 数据同步方法、装置、存储介质以及电子设备
WO2021057472A1 (zh) 一种显示控制方法与电子设备
CN106708575B (zh) 移动终端及其加载运行应用的方法和装置
CN116069209A (zh) 焦点窗口处理方法、装置、设备和存储介质
CN109992376B (zh) 应用冻结方法、装置、终端及计算机可读存储介质
CN112416584B (zh) 一种进程通信方法、装置、存储介质及移动终端
CN115828227B (zh) 识别广告弹窗的方法、电子设备及存储介质
CN116055443B (zh) 识别社交场景的方法、电子设备及计算机可读存储介质
CN116916093B (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