Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
DEVICE BASED ON LINUX SYSTEM AND METHOD FOR STARTING APPLICATIONS THEREOF
Document Type and Number:
WIPO Patent Application WO/2011/095086
Kind Code:
A1
Abstract:
A device based on the Linux system and its application starting method are provided for solving the problem of the device based on the Linux system in the prior art that when a brand-new application is started and the physical memory has been allocated totally, the starting speed of the new application is very slow. The method comprises: when a new application of the device based on the Linux system is started and the memory can not satisfy the new application, improving the current frequency of the Central Processing Unit (CPU); and releasing the memory based on the improved CPU frequency and starting the new application. It is because the CPU frequency is improved when the physical memory has been allocated totally, then the memory is released based on the improved CPU frequency and the new application is started, that the starting speed of the new application of the device based on the Linux system is quickened.

Inventors:
KONG ZHIQIANG (CN)
Application Number:
PCT/CN2011/070549
Publication Date:
August 11, 2011
Filing Date:
January 25, 2011
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
HISENSE MOBILE COMM TECHNOLOGY (CN)
KONG ZHIQIANG (CN)
International Classes:
G06F9/445; G06F9/50; H04M1/72442; H04M1/72445
Foreign References:
CN1770125A2006-05-10
CN100349098C2007-11-14
EP2101269A12009-09-16
CN101770385A2010-07-07
Attorney, Agent or Firm:
BEIJING TONGDAXINHENG INTELLECTUAL PROPERTY AGENCY LTD. (CN)
北京同达信恒知识产权代理有限公司 (CN)
Download PDF:
Claims:
权 利 要 求

1、 一种基于 Linux系统的智能移动终端应用启动的方法, 其特征在于, 包括:

当需要启动新应用但内存不够所迷新应用使用时, 提高 CPU频率; 基于提高后的 CPU的频率进行内存释放;

在内存释放后启动所述新应用。

2、 如权利要求 1所述的方法, 其特征在于, 提高 CPU频率步骤具体为: 将 CPU的频率提高并提高总线的频率, 频率提高的总线包括第一总线和 第二总线, 第一总线为读取启动新应用所需数据的总线, 第二总线为向内存 中写入由第一总线读取的数据的总线;

内存释放步骤具体为:

基于提高后的 CPU的频率和总线的频率进行内存释放;

启动新应用具体为:

基于提高后的 CPU的频率和总线的频率启动新应用。

3、 如权利要求 2所述的方法, 其特征在于, 进行内存释放具体为: 提高 CPU的频率和总线的频率后, 启动定时器设置预定时间, 并在预定 时间进行内存释放。

4、 如权利要求 2所述的方法, 其特征在于, 将 CPU的频率提高并提高 总线的频率具体为:

通过一个调频函数发送调频事件, 通知频率控制线程将 CPU和总线的频 率提高。

5、 如权利要求 1所述的方法, 其特征在于, 将当前 CPU的频率提高具 体为:

将当前 CPU的频率提高为 CPU所支持的最高频率;

进行新应用启动后还包括:

根据 CPU此时的负载小于等于阈值对 CPU的频率进行调节, 降低 CPU 的频率。

6、 一种基于 Linux系统的智能移动终端, 其特征在于, 包括:

变频模块, 用于当需要启动新应用但内存不够新应用使用时, 提高 CPU 频率;

释放模块, 用于基于提高后的 CPU的频率进行内存释放;

启动模块, 用于在内存释放后启动新应用。

7、 如权利要求 6所述的智能移动终端, 其特征在于, 变频模块, 还用于 将 CPU的频率提高并提高总线的频率, 频率提高的总线包括第一总线和第二 总线, 第一总线为读取启动新应用所需数据的总线, 第二总线为向内存中写 入由第一总线读取的数据的总线;

释放模块,还用于基于提高后的 CPU的频率和总线的频率进行内存幹放; 启动模块, 还用于基于提高后的 CPU的频率和总线的频率启动新应用。

8、 如权利要求 7所述的智能移动终端, 其特征在于, 幹放模块, 还用于 提高 CPU的频率和总线的频率后, 启动定时器在预定时间进行内存释放。

9、 如权利要求 7所述的智能移动终端, 其特征在于, 变频模块, 还用于 通过一个调频函数发送调频事件, 通知频率控制线程将 CPU和总线的频率提 高。

10、 如权利要求 6所述的智能移动终端, 其特征在于, 变频模块, 还用 于将当前 CPU的频率提高为 CPU所支持的最高频率,以及进行新应用启动后, 根据 CPU此时的负栽小于等于阈值对 CPU的频率进行调节, 降低 CPU的频 率。

Description:
一种基于 Linux系统的设备及其应用启动的方法 技术领域

本发明属于计算机技术领域,特别涉及一种基 于 Linux系统的设备及其应 用启动的方法。 背景技术

Linux 内存管理的原则是利用贪梦算法尽可能的使用 物理内存, 和 Windows 2K/XP使用的均衡算法相比, Linux内存管理的出发点和使用的算法 都不相同。 Windows 在应用退出后立刻蜂放占用的内存, 所以查看内存的时 候, 空闲的内存空间跟当前正在运行的程序多少有 关系, 如果运行的应用多, 那么空闲内存就小, 如果运行的应用少, 那么空闲的内存就比较大。 而 Linux 则不同, 开机后运行一些应用后, 把这些应用都退出, 却发现内存空间已经 所剩无几, 差不多全部被占用。 从深层次上看, Linux充分利用了内存作为緩 存使得再次打开应用程序的速度大大加快; 而且在没有必要的情况下, 尽量 减少使用硬盘作为緩冲以提高硬盘的寿命.

但是,如果 Linux的物理内存使用得差不多时,再运行一个 点的应用程 序, 此时 Linuk会根据内存不够(为了方便描述, 后续文档中将这种内存空间 不够的情况统称为物理内存已经全部分配完) , 唤醒 Kswapd内核线程(用于 释放内存空间的内核线程) 来释放一些内存空间, 当释放出空间后, 再从内 存的空闲列表申请内存, 所以 Linux启动一个全新的应用就比较慢。 发明内容

为了解决现有技术中基于 Linux 系统的智能移动终端存在的启动一个全 新的应用, 且物理内存已经全部分配完时, 新应用启动的速度非常慢的问题, 本发明实施例提供了一种基于 Linux系统的设备应用启动的方法, 包括: 当需要启动新应用但内存不够新应用使用时, 提高 CPU频率; 基于提高后的 CPU的频率进行内存锋放;

在内存释放后启动新应用。

同时本发明实施例还提供一种基于 Linux系统的智能移动终端, 包括: 变频模块, 用于当需要启动新应用但内存不够新应用使用 时, 提高 CPU 频率;

释放模块, 用于基于提高后的 CPU的 ^率进行内存释放;

启动模块, 用于在内存释放后启动新应用。

由本发明提供的具体实施方案可以看出,正是 由于当物理内存已经全部分 配完时,将 CPU的频率提高,进而基于提高唐的 CPU的频率进行内存释放, 并 进行新应用的启动,而基于提高后的 CPU的频率会使得 CPU执行指令的周期变 短, 单位时间执行的指令数量增加, 加快了基于 Linux系统的智能移动终端新 应用启动的速度。 附图说明

图 1为本发明提供的第一实施例方法流程图;

图 2为本发明提供的第二实施例设备拓朴图。 具体实施方式

为了解决现有技术中基于 Linux 系统的智能移动终端存在的启动一个全 新的应用, 且物理内存已经全部分配完时, 新应用启动的速度非常慢的问题, 本发明第一实施例提供了一种基于 Linux 系统的智能移动终端应用启动的方 法, 该方法应用于基于 Linux系统的手机(后序的描述均采用手机代替 中, 当启动手机的 MP3播放器进行 MP3播放时, Linux系统会通过— alloc jpages 函数来分配物理内存, 如杲有空闲的物理内存, 那么直接从空闲列表中得到 内存, 返回内存地址。 如果内存已经全部分配, 则将当前 CPU的频率由 60M 提高到 624M, 当 CPU工作在 624M时, 基于 624M的 CPU频率, 进行内存 释放, 并启动 MP3播放器进行 MP3播放。 其中内存释放具体过程为, 通过 wakcup_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系统是通过— allocjmges函数来分配物理内存, 当内存已经全部分 配时, 将当前 CPU的频率由 60M提高到 624M, 启动定时器, 延时 50毫秒 让 CPU频率工作在 624M, 总线频率工作在到 312M。 其中, 延时 50毫秒可 以是根据手机中不同的应用, 综合考虑确定的统一的经验值, 也可以根据手 机中不同的应用, 分别确定的对应不同应用的延时, 如启动 MP3播放器对应 的时延是 50毫秒, 启动浏览器对应的时延是 40毫秒。

频率提高的总线包括存储空间 (NAND ) 总线和内存空间 (SDRAM, 即 本实施例中使用的内存)总线, 其中启动新应用如启动 MP3播放器和启动浏 览器所需数据均存储于存储空间 (NAND ), 存储空间 (NAND ) 总线为读取 启动新应用所需数据的总线。 由存储空间(NAND )读取出来的启动新应用所 需的数据, 均被写入内存空间 (SDRAM ) 中供新应用启动使用, 内存空间 ( SDRAM )总线为向内存中写入由存储空间 (NAND ) 总线读取的数据的总 线。

提高 CPU 频率和总线的频率, 具体实施时是通过调频函数 incrcase_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所示。

表 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和总线的频率提高。

显然, 本领域的技术人员可以对本发明进行各种改动 和变型而不脱离本 发明的精神和范围。 这样, 倘若本发明的这些修改和变型属于本发明权利 要 求及其等同技术的范围之内, 则本发明也意图包含这些改动和变型在内。