zoukankan      html  css  js  c++  java
  • Linux电源管理研究笔记—acpid工作原理

    Linux电源管理研究笔记—acpid工作原理

     

    转载时请注明出处:http://blog.csdn.net/absurd/

     

    在手持设备设计中,电源管理历来为重要的研究课题之一。我们日常所说的省电就属于电源管理的范畴,这也是我们最关心的一个部分。通过挂起不必要的设备、降低CPU的频率或者其它方法,可以减少能量的消耗,达到省电的目的。电源管理实际上是一个系统工程,从应用程序到内核框架,再到设备驱动和硬件设备,都要参与进来,才能达到电源管理的最优化。本文介绍一下acpid的工作原理。

     

    ACPIAdvanced Configuration and Power Interface缩写,acpid中的d则代表daemonAcpid是一个用户空间的服务进程,它充当linux内核与应用程序之间通信的接口,负责将kernel中的电源管理事件转发给应用程序。

     

    acpid与内核的通信方式:acpidpoll函数挂在/proc/acpi/event文件上。内核在drivers/acpi/event.c中实现了该文件的接口,一旦总线事件列表(acpi_bus_event_list)上有电源管理事件发生,内核就会唤醒挂在 /proc/acpi/event上的acpidacpid再从/proc/acpi/event中读取相应的事件。

     

    acpid与应用程序的通信方式有两种,其一是通过本地socket,其文件名为/var/run/acpid.socket,应用程序只要连接到这个socket上,不用发送任何命令就可以接收到acpid转发的电源管理事件。

     

    其二是通过配置文件。在acpid收到来自内核的电源管理事件时,根据配置文件中的规则执行指定的命令。配置文件在/etc/acpi/events/目录下,下面是一个示例:

    event=button/power.*

    action=/sbin/shutdown -h now

     

    事件的格式为:device_class bus_id type datadevice_classbus_id是字符串,typedata是十六制整数。在配置文件中可以使用通配符,来匹配指定的事件。

     

    ~~end~~

     

     

     

     

     

     

     

  • 相关阅读:
    Java中Properties类的操作
    Java中Properties类的使用
    properties类的基本使用方法
    java.util.ResourceBundle使用详解
    java.util.ResourceBundle 用法小介
    java.util.Date和java.sql.Date的区别和相互转化
    response.setHeader()的用法
    Fiddler (二) Script 用法
    HTTP协议 (七) Cookie
    HTTP协议 (六) 状态码详解
  • 原文地址:https://www.cnblogs.com/zhangyunlin/p/6167812.html
Copyright © 2011-2022 走看看