专栏首页Linux内核深入分析Linux电源管理-概述

Linux电源管理-概述

前言

在如今嵌入式可移动设备大热的时期,功耗是检测此设备一项重要的指标。如何能做到手机待机时间长久,而且用户还能玩的尽兴,这时候就必须对设备进行省电管理。那用什么省电方式呢? 比如在手机听音乐的时候关闭屏幕,在看电影的时候调节屏幕亮度等都可以用来省电。这些方法在linux操作系统中已经做了统一的实现: suspend/resume机制。本节就简单认识下linux下的电源管理。

电源状态

  1. On (on) S0-Working
  2. Standby (standby) S1- CPU and RAM are powed but not executed
  3. Suspend to Ram (mem) S2- RAM is powered and the running content is saved to RAM
  4. Suspend to Disk (disk) S3 - All content is saved to Disk and power down

S0状态也就是计算机正常工作状态。

S1状态简称standby状态,此状态下CPU处于低功耗状态,并且没有数据保存到RAM或者disk中,此状态待机和恢复通常很快。

S2状态简称STR,此状态下计算机会冻结所有的活动并将当前工作状态保存到RAM中,然后关闭屏幕进入低功耗模式,通常睡眠和唤醒需要几秒。

S3状态简称SRD或者Hibernate,代表冬眠,意识是比较长久,一般在window系统中常见到。此状态下计算机将所有活动的状态保存到磁盘中,然后处于关机状态,此模式下是不耗电的,而相比之前的模式,休眠和唤醒的速度都比较慢。

下图是四种状态的功耗和唤醒速度对比。

关于suspend/standby/hibernate的区别可以看此地址:http://blog.csdn.net/vaqeteart/article/details/4158058

睡眠唤醒体验

如果你用的系统是window,就可以直接在开始按钮出,选择各种睡眠类型。

如果你用的是linux,就可以直接通过命令行操作,以我的系统Ubuntu为例子:

1. 查看系统支持的睡眠方式

root@test:~$ cat /sys/power/state 
mem disk

可以看到ubuntu系统支持的睡眠方式有,suspend to ram和suspend to disk

2. echo mem > /sys/power/state

此方式就可以达到睡眠,按任意按键可以唤醒计算机。

在android手机上查看睡眠方式。

root@test:/ # cat /sys/power/state                                    
standby mem

可以看到手机上没有disk方式,因为嵌入式都不带disk设备的。

通过echo mem > /sys/power/state可以使手机睡眠,同时按下power按键可以唤醒手机。

Loopers

发布了176 篇原创文章 · 获赞 99 · 访问量 36万+

他的留言板 关注

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Linux音频驱动-IIS总线标准

    许多数字音频系统正被引入消费者音频市场,包括CD,磁带,数字声音处理器和数字电视声音。在这些系统中的数字音频信号需要由许许多多(Very-large-scale...

    DragonKingZhu
  • 信号量(semaphore)

    信号量也是一种锁,相对于自旋锁,当资源不可用的时候,它会使进程挂起,进入睡眠。而自旋锁则是让等待者忙等。这意味着在使用自旋锁获得某一信号量的进程会出现对处理器拥...

    DragonKingZhu
  • Linux音频驱动-ASOC(ALSA System on Chip)

    此处还需引入之前说过的话: 新事物的出现必然是为了解决旧事物中的不足。这句话在现实生活中和程序世界中道理一样。ASOC的出现就是为了解决ALSA无法解决的问题...

    DragonKingZhu
  • Java的wait()、notify()学习三部曲之一:JVM源码分析

    综述 Java的wait()、notify()学习三部曲由三篇文章组成,内容分别是: 一、通过阅读openjdk8的源码,分析和理解wait,notify在...

    程序员欣宸
  • Java的wait和notify学习三部曲之一:JVM源码分析

    Java的wait()、notify()学习三部曲由三篇文章组成,内容分别是:一、通过阅读openjdk8的源码,分析和理解wait,notify在JVM中的具...

    程序员欣宸
  • 本周末的QQ群视频--还是电商网站的事

    主要讲了如何开发“点击某商品,进入商品详情页”。 产品列表页,就是这个电商网站的首页,也是一般多数电商网站的首页,在首页上尽量多的把商品展示出来。 一般来讲,它...

    web前端教室
  • 企业级SpringBoot与Dubbo的并用

    SpringBoot越来越热门以至于达到烂大街可见的程度,而Dubbo这个基于二进制的微服务框架又捐献给Apache孵化,如果不会如何使用那么是不是很不好意思呢...

    lyb-geek
  • 面试官问:为什么 Java 线程没有 Running 状态?我懵了

    Java虚拟机层面所暴露给我们的状态,与操作系统底层的线程状态是两个不同层面的事。具体而言,这里说的 Java 线程状态均来自于 Thread 类下的 Stat...

    芋道源码
  • 关于ThreadLocal内存泄露的备忘

    还记得第一次接触到ThreadLocal可能导致内存泄露的问题是有一次面试的时候被问到了ThreadLocal的缺陷是什么。当然由于后来没有面试官的联系方式很遗...

    哲洛不闹
  • 剑指 offer 第一题: 二维数组中的查找

    在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个...

    五分钟学算法

扫码关注云+社区

领取腾讯云代金券