摘要:引用文章链接:http://www.ibm.com/developerworks/cn/linux/l-cn-cpufreq/http://blog.csdn.net/linweig/archive/2010/10/28/5972312.aspxCpufreq 的由来 随着 energy efficient computing 和 performance per watt 等概念的推广以及高级配置与电源接口ACPI(Advanced Configuration and Power Interface)标准的发展,目前市场上的主流 CPU 都提供了对变频(frequency scaling)技.
阅读全文
随笔分类 - 电源管理
摘要:Wake Lock是一种锁的机制, 只要有人拿着这个锁,系统就无法进入休眠,可以被用户态程序和内核获得. 这个锁可以是有超时的或者是没有超时的,超时的锁会在时间过去以后自动解锁. 如果没有锁了或者超时了, 内核就会启动休眠的那套机制来进入休眠.(一).内核维护了:1).两个链表,active_wake_locks[WAKE_LOCK_TYPE_COUNT] active_wake_locks[0]维护的是suspend lock. active_wake_locks[1]维护的是idle lock.2).一个链表,inactive_locks来记录所有处于inactive状态的锁. (二).
阅读全文
摘要:linux低功耗研究也有一段时间了,基本把低功耗的实现方式想清楚了(主要分成机制和策略),这段时间的工作主要在机制上。暂时想实现的主要的机制有:cpu级,设备驱动级,系统平台级。管理颗粒度不断递增,形成三驾马车齐驱的形势。cpu级:主要实现比较容易的在系统处于目标在于频繁发生、更高粒度的电源状态改变,主要的实现方式为idle,包括今天的主要想讲的动态主频。设备驱动级:主要实现对单个设备驱动的管理(suspend,resume等),通过系统监测将闲置的设备,通过从用户态对sys文件目录动态进行单个驱动设备的管理,置于省电模式。系统平台级:目标在于管理较大的、非常见的重大电源状态改变,用于减少产品
阅读全文
摘要:linux下的关机和重启流程对于一般的桌面应用和网络服务器来说并不重要,但是在用户自己定义的嵌入式系统内核中就有一定的研究意义,通过了解Linux 关机重启的流程,我们对它可以修改和自定义,甚至以此为基础开发出全新的功能来。 1.概述 在linux下的关机和重启可能由两种行为引发,一是通过用户编程,一是系统自己产生的消息。用户和系统进行交互的方式也有两个,一个是系统调用:sys_reboot,另一个就是apm或则acpi的设备文件,通过对其操作也可以使系统关机或者重启。 2.通过系统调用sys_reboot的重启 这个系统调用定义了一系列的MAGIC_NUMBER,在调用的开始部分首先...
阅读全文
摘要:Android电源管理的相关内容对出初学者来说是比较复杂的一个知识点。我们可以通过这篇文章介绍的内容初步的掌握一下这方面的知识。对于刚刚接触Android操作系统的朋友来说,他们对这一开源的手机操作系统所带来的功能深深的吸引着。我们在这篇文章中就通过对Android电源管理的相关概念的解读,来对这一系统进行深入的了解。接下来我们从Java应用层面, Android framework层面, Linux内核层面分别进行详细的讨论:Android电源管理应用层的使用:Android提供了现成android.os.PowerManager类,该类用于控制设备的电源状态的切换.该类对外有三个接口函数:
阅读全文
摘要:Android 的电源管理也是很重要的一部分。比如在待机的时候关掉不用的设备,timeout之后的屏幕和键盘背光的关闭,用户操作的时候该打开多少设备等等,这些都直接关系到产品的待机时间,以及用户体验。 framework层主要有这两个文件: frameworks/base/core/java/android/os/PowerManager.java frameworks/base/services/java/com/android/server/PowerManagerService.java 其中PowerManager.java是提供给应用层调用的,最终的核心还是在PowerMan...
阅读全文
摘要:标签:Linux and Kernel Android 版本信息LinuxKernel:v2.6.28Android:v2.0对于休眠(suspend)的简单介绍在Linux中,休眠主要分三个主要的步骤:版本信息Linux Kernel: v2.6.28 Android: v2.0 对于休眠(suspend)的简单介绍在Linux中,休眠主要分三个主要的步骤:冻结用户态进程和内核态任务 调用注册的设备的suspend的回调函数 顺序是按照注册顺序 休眠核心设备和使CPU进入休眠态冻结进程是内核把进程列表中所有的进 程的状态都设置为停止,并且保存下所有进程的上下文. 当这些进程被解冻的时候,他们
阅读全文
摘要:Android电源管理机制分析(zz)总体上来说Android的电源管理还是比较简单的, 主要就是通过锁和定时器来切换系统的状态,使系统的功耗降至最低,整个系统的电源管理架构图如下: (注该图来自Steve Guo)(注该图来自Steve Guo) (见-图1)接下来我们从Java应用层面, Android framework层面, Linux内核层面分别进行详细的讨论:应用层的使用:Android提供了现成android.os.PowerManager类,该类用于控制设备的电源状态的切换.该类对外有三个接口函数: void goToSleep(long time); //强制设备进入Slee
阅读全文
摘要:电池的信息,电压,温度,充电状态等等,都是由BatteryService来提供的。BatteryService是跑在system_process当中,在系统初始化的时候启动,如下 在BatteryService.java中: Log.i(TAG, "Starting Battery Service."); BatteryService battery = new BatteryService(context); ServiceManager.addService("battery", battery);==========================
阅读全文
摘要:简介休眠/唤醒在嵌入式Linux中是非常重要的部分,嵌入式设备尽可能的进入休眠状 态来延长电池的续航时间.这篇文章就详细介绍一下Linux中休眠/唤醒是如何工作 的, 还有Android中如何把这部分和Linux的机制联系起来的.国际化English Version: link中文版: link作者: zhangjiejing <kzjeef#gmail.com> Date: 2010-04-07, http://www.thinksrc.com版本信息Linux Kernel: v2.6.28Android: v2.0对于休眠(suspend)的简单介绍在Linux中,休眠主要分
阅读全文