CN101770385B - 一种基于Linux系统的设备及其应用启动的方法 - Google Patents

一种基于Linux系统的设备及其应用启动的方法 Download PDF

Info

Publication number
CN101770385B
CN101770385B CN201010112878.6A CN201010112878A CN101770385B CN 101770385 B CN101770385 B CN 101770385B CN 201010112878 A CN201010112878 A CN 201010112878A CN 101770385 B CN101770385 B CN 101770385B
Authority
CN
China
Prior art keywords
frequency
bus
cpu
internal memory
application
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.)
Expired - Fee Related
Application number
CN201010112878.6A
Other languages
English (en)
Other versions
CN101770385A (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.)
Hisense Mobile Communications Technology Co Ltd
Original Assignee
Hisense Mobile Communications Technology 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 Hisense Mobile Communications Technology Co Ltd filed Critical Hisense Mobile Communications Technology Co Ltd
Priority to CN201010112878.6A priority Critical patent/CN101770385B/zh
Publication of CN101770385A publication Critical patent/CN101770385A/zh
Priority to PCT/CN2011/070549 priority patent/WO2011095086A1/zh
Application granted granted Critical
Publication of CN101770385B publication Critical patent/CN101770385B/zh
Expired - Fee Related 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/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/485Task life-cycle, e.g. stopping, restarting, resuming execution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/48Indexing scheme relating to G06F9/48
    • G06F2209/482Application

Landscapes

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

Abstract

为了解决现有技术中基于Linux系统的设备存在的启动一个全新的应用,且物理内存已经全部分配完时,新应用启动的速度非常慢的问题,本发明公开了一种基于Linux系统的设备及其应用启动的方法,该方法包括:当基于Linux系统的设备的一个新应用进行启动,且内存不够新应用使用时,将当前CPU的频率提高;基于提高后的CPU的频率进行内存释放,并启动新应用,正是由于当物理内存已经全部分配完时,将CPU的频率提高,进而基于提高后的CPU的频率进行内存释放,并进行新应用的启动,加快了基于Linux系统的设备新应用启动的速度。

Description

一种基于Linux系统的设备及其应用启动的方法
技术领域
本发明属于计算机技术领域,特别涉及一种基于Linux系统的设备及其应用启动的方法。
背景技术
Linux内存管理的原则是利用贪梦算法尽可能的使用物理内存,和Windows 2K/XP使用的均衡算法相比,Linux内存管理的出发点和使用的算法都不相同。Windows在应用退出后立刻释放占用的内存,所以查看内存的时候,空闲的内存空间跟当前正在运行的程序多少有关系,如果运行的应用多,那么空闲内存就小,如果运行的应用少,那么空闲的内存就比较大。而Linux则不同,开机后运行一些应用后,把这些应用都退出,却发现内存空间已经所剩无几,差不多全部被占用。从深层次上看,Linux充分利用了内存作为缓存使得再次打开应用程序的速度大大加快;而且在没有必要的情况下,尽量减少使用硬盘作为缓冲以提高硬盘的寿命。
但是,如果Linux的物理内存使用得差不多时,再运行一个大点的应用程序,此时Linux会根据内存不够(为了方便描述,后续文档中将这种内存空间不够的情况统称为物理内存已经全部分配完),唤醒Kswapd内核线程(用于释放内存空间的内核线程)来释放一些内存空间,当释放出空间后,再从内存的空闲列表申请内存,所以Linux启动一个全新的应用就比较慢。
发明内容
为了解决现有技术中基于Linux系统的智能移动终端存在的启动一个全新的应用,且物理内存已经全部分配完时,新应用启动的速度非常慢的问题,本发明实施例提供了一种基于Linux系统的设备应用启动的方法,包括:
当需要启动新应用但内存不够新应用使用时,提高CPU频率;
基于提高后的CPU的频率进行内存释放;
在内存释放后启动新应用。
同时本发明实施例还提供一种基于Linux系统的智能移动终端,包括:
变频模块,用于当需要启动新应用但内存不够新应用使用时,提高CPU频率;
释放模块,用于基于提高后的CPU的频率进行内存释放;
启动模块,用于在内存释放后启动新应用。
由本发明提供的具体实施方案可以看出,正是由于当物理内存已经全部分配完时,将CPU的频率提高,进而基于提高后的CPU的频率进行内存释放,并进行新应用的启动,加快了基于Linux系统的智能移动终端新应用启动的速度。
附图说明
图1为本发明提供的第一实施例方法流程图;
图2为本发明提供的第二实施例设备拓扑图。
具体实施方式
为了解决现有技术中基于Linux系统的智能移动终端存在的启动一个全新的应用,且物理内存已经全部分配完时,新应用启动的速度非常慢的问题,本发明第一实施例提供了一种基于Linux系统的智能移动终端应用启动的方法,该方法应用于基于Linux系统的手机(后序的描述均采用手机代替)中,当启动手机的MP3播放器进行MP3播放时,Linux系统会通过_alloc_pages函数来分配物理内存,如果有空闲的物理内存,那么直接从空闲列表中得到内存,返回内存地址。如果内存已经全部分配,则将当前CPU的频率由60M提高到624M,当CPU工作在624M时,基于624M的CPU频率,进行内存释放,并启动MP3播放器进行MP3播放。其中内存释放具体过程为,通过wakeup_kswapd函数发送唤醒kswapd内核线程事件,来唤醒kswapd内核线程来进行内存释放。释放的内存被重新放置到内存的空闲列表中,_alloc_pages再次从内存的空闲列表申请内存时就可以得到需要的内存空间。由于得到需要的内存空间进而可以启动MP3播放器进行MP3播放。在Linux系统中kswapd内核线程是一个释放内存空间的内核线程。当然本实施例不限于基于Linux系统的手机,同样也可实施于其它基于Linux系统的设备,如基于Linux系统的计算机等。启动MP3播放器进行MP3播放也只是本实施例的一个优选的方案,本实施例的方法也适用于其它新应用的启动,如启动浏览器进行网页的浏览等。当然为了进一步的提高启动MP3播放器的速度,在CPU的频率提高的同时,还可以提高总线的频率。
本实施例方案的关键就是当物理内存全部分配后,发送调频的事件通知频率控制的线程将CPU的频率和总线频率提高,使得CPU和其他资源都处于一个高性能状态,然后再通过wakeup_kswapd函数发送唤醒kswapd内核线程事件,通过kswapd的内核线程来释放内存,这样就可以保证内存的空闲列表有足够的内存空间进行分配,进而启动MP3播放器进行MP3播放,具体的流程如图1所示,包括:
步骤101:启动手机的一个全新的应用MP3播放器。
启动一个全新的应用需要重新分配内存空间,由于Linux内存管理机制,所有的物理内存已经分配完。
步骤102:内存分配完,启动MP3播放器时内存申请失败,发送调节CPU频率的事件,提高当前CPU频率且延时50毫秒。
本实施例在本步骤具体实施时,作为优选方案是让CPU频率控制的线程将频率由60M提高到624M,总线频率提高到312M,并启动定时器,延时50毫秒,当然如前述,也可以只提高CPU频率而不提高总线频率。
其中本实施例中的CPU的频率可工作在60M、104M、208M和624M,在进行CPU频率时,如果当前CPU的频率工作在60M,还可以将CPU的频率提高到104M和208M,如果当前CPU的频率工作在104M,还可以将CPU的频率提高到208M和624M,总之要将当前CPU的频率提高。
Linux系统是通过_alloc_pages函数来分配物理内存,当内存已经全部分配时,将当前CPU的频率由60M提高到624M,启动定时器,延时50毫秒让CPU频率工作在624M,总线频率工作在到312M。其中,延时50毫秒可以是根据手机中不同的应用,综合考虑确定的统一的经验值,也可以根据手机中不同的应用,分别确定的对应不同应用的延时,如启动MP3播放器对应的时延是50毫秒,启动浏览器对应的时延是40毫秒。
频率提高的总线包括存储空间(NAND)总线和内存空间(SDRAM,即本实施例中使用的内存)总线,其中启动新应用如启动MP3播放器和启动浏览器所需数据均存储于存储空间(NAND),存储空间(NAND)总线为读取启动新应用所需数据的总线。由存储空间(NAND)读取出来的启动新应用所需的数据,均被写入内存空间(SDRAM)中供新应用启动使用,内存空间(SDRAM)总线为向内存中写入由存储空间(NAND)总线读取的数据的总线。
提高CPU频率和总线的频率,具体实施时是通过调频函数increase_cpu_freq发送调频事件,通知频率控制线程将CPU和总线的频率提高。
步骤103:在CPU和总线频率提高的情况下,发送唤醒kswapd的内核线程事件。
本步骤在具体实施时,是在CPU和总线频率提高的情况下,通过wakeup_kswapd函数发送唤醒kswapd内核线程事件,来唤醒kswapd内核线程来进行内存释放。
步骤104:kswapd内核线程被唤醒后进行内存释放。
本步骤在具体实施时,释放内存完成后kswapd的内核线程继续睡眠。
步骤105:再次从内存空闲列表申请内存。
由于kswapd内核线程已经释放了内存,所以可以申请到内存,保证MP3播放器启动需要的资源。具体是将释放的内存被重新放置到内存的空闲列表中,由于内存已经被释放,分配物理内存的_alloc_pages函数再次从内存的空闲列表申请内存时,就可以得到MP3播放器启动需要的内存空间。
步骤106:在定时器延时的50毫秒内,完成新应用MP3播放器的启动。
以上CPU和总线一直工作在高性能状态,保证操作的快速性。当定时器延时50毫秒到时后,新应用MP3播放器的启动已经完成,再次将CPU的频率根据CPU当前的负载进行调节,以降低手机的功耗。
当然,还可以是定时器设定的延时为20毫秒,在20毫秒内,在CPU和总线频率提高的情况下(也可以是只提高CPU的频率)进行内存释放,之后降低CPU和总线频率,在降低CPU和总线频率后启动MP3播放器。具体的方案可根据需求进行选择。但是作为本实施例方案的核心思想是,内存不够新应用MP3播放器使用时,将当前CPU的频率提高,基于提高后的CPU的频率进行内存的释放,使得有足够的内存供新应用启动。
本实施例中的手机上采取的电源管理方法为动态的调节CPU的频率,也就是根据当前CPU的负载,来调节CPU的频率,如表1所示。
  操作点   低门限值(%)   高门限值(%)
  60M   NULL   95
  104M   28   70
  208M   30   95
  624M   65   NULL
表1
当CPU的频率在60M,如果CPU的负载大于等于95%时,将CPU的频率提高到104M;
当CPU的频率在104M,如果CPU的负载大于等于70%时,将CPU的频率提高到208M;如果CPU的负载小于等于28%时,将CPU的频率降低到60M;
当CPU的频率在208M,如果CPU的负载大于等于95%时,将CPU的频率提高到624M;如果CPU的负载小于等于30%时,将CPU的频率降低到104M;
当CPU的频率在624M,如果CPU的负载小于等于65%时,将CPU的频率降低到208M。
基于上述的CPU频率调整策略,本实施例中CPU的频率被调整到624M并完成新应用MP3播放器的启动后,将会根据CPU的频率在624M时,CPU的负载小于等于65%,将CPU频率调整到208M。再根据CPU的频率在208M时,CPU的负载小于等于30%,将CPU频率调整到104M,最终根据CPU的频率在104M时,CPU的负载在28%和70%之间,停止负载调整。
根据当前CPU的负载不同,动态的调节CPU的频率,进一步很好的解决了功耗和性能的矛盾,能让手机速度比较快的情况下,功耗相对较低。
本发明实施例的方案,根据内存分配的机制,可以精确了解内存的使用情况,而内存的使用情况直接影响了应用的启动速度,所以可以在很恰当的时间来提高CPU的频率,保证手机的运行速度;并且进一步也能在很恰当的时候将CPU的频率降低,减小手机的功耗。这样就很好的解决了性能和功耗的矛盾,让手机既有快速响应的性能,又保持在较低功耗状态工作。
本发明提供的第二实施例是一种基于Linux系统的智能移动终端,如图2所示,包括:
变频模块201,用于当需要启动新应用但内存不够新应用使用时,提高CPU频率;
释放模块202,用于基于提高后的CPU的频率进行内存释放;
启动模块203,用于在内存释放后启动新应用。
进一步,变频模块201,还用于将当前CPU的频率提高的同时,提高总线的频率,频率提高的总线包括第一总线和第二总线,第一总线为读取启动新应用所需数据的总线,第二总线为向内存中写入由第一总线读取的数据的总线;
释放模块202,还用于基于提高后的CPU的频率和总线的频率进行内存释放;
启动模块203,还用于基于提高后的CPU的频率和总线的频率启动新应用。
进一步,释放模块202,还用于提高CPU的频率和总线的频率后,启动定时器在预定时间进行内存释放;
启动模块203,还用于提高CPU的频率和总线的频率后,启动定时器在预定时间启动新应用。
进一步,变频模块201,还用于将当前CPU的频率提高为CPU所支持的最高频率,以及进行新应用启动后,根据CPU此时的负载小于等于阈值对CPU的频率进行调节,降低CPU的频率。
进一步,变频模块201,还用于通过一个调频函数发送调频事件,通知频率控制线程将CPU和总线的频率提高。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

Claims (8)

1.一种基于Linux系统的智能移动终端应用启动的方法,其特征在于,包括:
当需要启动新应用但内存不够新应用使用时,将CPU的频率提高并提高总线的频率,频率提高的总线包括第一总线和第二总线,第一总线为读取启动新应用所需数据的总线,第二总线为向内存中写入由第一总线读取的数据的总线;
基于提高后的CPU的频率和总线的频率进行内存释放;
在内存释放后基于提高后的CPU的频率和总线的频率启动新应用。
2.如权利要求1所述的方法,其特征在于,进行内存释放并启动新应用具体为:
提高CPU的频率和总线的频率后,启动定时器在预定时间进行内存释放并启动新应用。
3.如权利要求1所述的方法,其特征在于,将当前CPU的频率提高具体为:
将当前CPU的频率提高为CPU所支持的最高频率;
进行新应用启动后还包括:
根据CPU此时的负载小于等于阈值对CPU的频率进行调节,降低CPU的频率。
4.如权利要求1所述的方法,其特征在于,通过一个调频函数发送调频事件,通知频率控制线程将CPU和总线的频率提高。
5.一种基于Linux系统的智能移动终端,其特征在于,包括:
变频模块,用于当需要启动新应用但内存不够新应用使用时,将CPU的频率提高并提高总线的频率,频率提高的总线包括第一总线和第二总线,第一总线为读取启动新应用所需数据的总线,第二总线为向内存中写入由第一总线读取的数据的总线;
释放模块,用于基于提高后的CPU的频率和总线的频率进行内存释放;
启动模块,用于在内存释放后基于提高后的CPU的频率和总线的频率启动新应用。
6.如权利要求5所述的智能移动终端,其特征在于,释放模块,还用于提高CPU的频率和总线的频率后,启动定时器在预定时间进行内存释放;
启动模块,还用于还用于提高CPU的频率和总线的频率后,启动定时器在预定时间启动新应用。
7.如权利要求5所述的智能移动终端,其特征在于,变频模块,还用于将当前CPU的频率提高为CPU所支持的最高频率,以及进行新应用启动后,根据CPU此时的负载小于等于阈值对CPU的频率进行调节,降低CPU的频率。
8.如权利要求5所述的智能移动终端,其特征在于,变频模块,还用于通过一个调频函数发送调频事件,通知频率控制线程将CPU和总线的频率提高。
CN201010112878.6A 2010-02-04 2010-02-04 一种基于Linux系统的设备及其应用启动的方法 Expired - Fee Related CN101770385B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201010112878.6A CN101770385B (zh) 2010-02-04 2010-02-04 一种基于Linux系统的设备及其应用启动的方法
PCT/CN2011/070549 WO2011095086A1 (zh) 2010-02-04 2011-01-25 一种基于linux系统的设备及其应用启动的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201010112878.6A CN101770385B (zh) 2010-02-04 2010-02-04 一种基于Linux系统的设备及其应用启动的方法

Publications (2)

Publication Number Publication Date
CN101770385A CN101770385A (zh) 2010-07-07
CN101770385B true CN101770385B (zh) 2013-05-22

Family

ID=42503264

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201010112878.6A Expired - Fee Related CN101770385B (zh) 2010-02-04 2010-02-04 一种基于Linux系统的设备及其应用启动的方法

Country Status (2)

Country Link
CN (1) CN101770385B (zh)
WO (1) WO2011095086A1 (zh)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101770385B (zh) * 2010-02-04 2013-05-22 青岛海信移动通信技术股份有限公司 一种基于Linux系统的设备及其应用启动的方法
CN102984580B (zh) * 2012-11-12 2016-04-20 北京奇虎科技有限公司 内存清理方法及系统
CN103024538A (zh) * 2012-11-12 2013-04-03 北京奇虎科技有限公司 内存管理方法及系统
CN104008062B (zh) * 2013-02-25 2018-03-27 腾讯科技(深圳)有限公司 内存管理方法及内存管理装置
CN103500003B (zh) * 2013-09-30 2017-02-08 北京奇虎科技有限公司 便携式终端的cpu频率调节方法及调节装置
CN105224469A (zh) * 2014-06-16 2016-01-06 陈宏达 主动式内存管理方式
CN104850423B (zh) * 2015-01-16 2017-12-26 中国矿业大学 识别android系统下应用程序启动阶段的方法
CN106155870B (zh) * 2015-04-27 2020-02-28 腾讯科技(深圳)有限公司 一种终端的优化处理方法、装置及终端
CN105740020A (zh) * 2016-01-29 2016-07-06 宇龙计算机通信科技(深圳)有限公司 应用程序的启动方法、启动装置和终端
CN106095567B (zh) * 2016-05-31 2019-08-30 Oppo广东移动通信有限公司 一种安装任务的分配方法及移动终端
CN107220076B (zh) 2016-09-27 2018-10-30 华为技术有限公司 一种内存回收方法及装置
CN106708241A (zh) * 2016-11-24 2017-05-24 捷开通讯(深圳)有限公司 移动终端及提高其在低功耗模式下的性能的方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2003075137A1 (fr) * 2002-03-04 2003-09-12 Sony Corporation Dispositif et procede de traitement de l'information
CN1515974A (zh) * 2003-01-07 2004-07-28 纬创资通股份有限公司 可切换工作频率的计算机系统及其切换方法
CN1631035A (zh) * 2000-11-29 2005-06-22 索尼公司 数据处理器

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1770125A (zh) * 2004-11-04 2006-05-10 华为技术有限公司 一种分配内存的方法
CN100349098C (zh) * 2005-11-28 2007-11-14 北京中星微电子有限公司 基于任务的动态调节cpu工作频率的方法及系统
KR101460114B1 (ko) * 2008-03-10 2014-11-10 삼성전자주식회사 기억장치 직접 접근을 위한 메모리 할당 방법 및 이를 위한단말기
CN101770385B (zh) * 2010-02-04 2013-05-22 青岛海信移动通信技术股份有限公司 一种基于Linux系统的设备及其应用启动的方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1631035A (zh) * 2000-11-29 2005-06-22 索尼公司 数据处理器
WO2003075137A1 (fr) * 2002-03-04 2003-09-12 Sony Corporation Dispositif et procede de traitement de l'information
CN1515974A (zh) * 2003-01-07 2004-07-28 纬创资通股份有限公司 可切换工作频率的计算机系统及其切换方法

Also Published As

Publication number Publication date
CN101770385A (zh) 2010-07-07
WO2011095086A1 (zh) 2011-08-11

Similar Documents

Publication Publication Date Title
CN101770385B (zh) 一种基于Linux系统的设备及其应用启动的方法
US8255713B2 (en) Management of link states using plateform and device latencies
US10248343B2 (en) Architectures and techniques for providing low-power storage mechanisms
US8522004B2 (en) Method and system for power management for a handheld mobile electronic device executing-in-place an application kernel from execute-in-place non-volatile memory (XIP NVM)
CN102955549B (zh) 一种多核cpu的电源管理方法、系统及cpu
CN104204999B (zh) 用于个体核性能状态的方法和装置
US8370667B2 (en) System context saving based on compression/decompression time
US10115442B2 (en) Demand-based provisioning of volatile memory for use as non-volatile memory
EP3345070B1 (en) Systems and methods for dynamically adjusting memory state transition timers
WO2013002864A1 (en) Method and system for determining an energy-efficient operating point of a platform
US10936038B2 (en) Power control for use of volatile memory as non-volatile memory
US20170168853A1 (en) Dynamic predictive wake-up techniques
CN101673191A (zh) 数据写入方法、装置及数据存储系统
CN101661327A (zh) 一种调节中央处理器主频的方法及装置
CN105446916A (zh) Usb总线状态切换方法及装置
CN103324508A (zh) 启动应用的方法及装置
US10001830B2 (en) Input-output device management using dynamic clock frequency
CN103076868A (zh) 电源管理方法及应用该方法的电子系统
CN102141920B (zh) 一种动态配置C-State方法和通信设备
CN113791738A (zh) 基于固态硬盘的归一化低功耗处理方法、装置及计算机设备
CN104424142B (zh) 一种多核处理器系统中访问共享资源的方法与装置
CN104750425A (zh) 一种存储系统及其非易失性存储器的控制方法
CN116126127A (zh) 一种供电方法、硬盘及计算设备
CN109814804A (zh) 一种降低分布式存储系统能耗的方法和装置
US20150194951A1 (en) Toggling a clocked component using a slow clock to address bias temperature instability aging

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C53 Correction of patent of invention or patent application
CB02 Change of applicant information

Address after: 266071 Shandong city of Qingdao province Jiangxi City Road No. 11

Applicant after: Qingdao Hisense Mobile Communication Technology Co., Ltd.

Address before: 266100 Zhuzhou Road, Laoshan District, Shandong, No. 151, No.

Applicant before: Qingdao Hisense Mobile Communication Technology Co., Ltd.

C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20130522

Termination date: 20190204