999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于LINUX的電源管理cpuidle模塊研究及應用

2018-01-04 16:26:29趙婉芳
中國科技縱橫 2017年22期

趙婉芳

摘 要:本文主要針對LINUX嵌入式系統的電源管理部分,分析了目前存在的主要的電源管理技術,重點研究了LINUX系統中當系統處于空閑狀態時負責電源管理的CPUIDLE模塊結構特點以及接口核心編碼,對基于LINUX系統的電源管理研究有一定的參考意義。

關鍵詞:LINUX系統;CPUIDLE模塊;接口

中圖分類號:TP368 文獻標識碼:A 文章編號:1671-2064(2017)22-0019-01

隨著移動互聯技術的發展,越來越多的便攜式移動終端被鏈接入網,對于移動終端的待機時長,安全性和穩定性提出了更高的要求,由于便攜式終端具有移動性強,體積小的特點,主要選擇使用電池供電,因此如何對具有電能消耗的嵌入式系統進行動態電源規劃管理,使得電池的壽命延長,最大限度的提升電能的使用率是該領域的研究熱點之一。

1 電源管理技術

目前電源管理技術主要分為靜態電源管理和動態電源管理兩種方式。靜態電源管理(SPM)主要使用在PC機端,目前有兩個工業標準,分別是高級電源管理APM和高級配置和電源管理接口ACPI,在兩個標準中都對靜態電源管理的實現進行了詳細的狀態定義。靜態電源管理的基本思想是把系統看作一個有限狀態機,其中包括多種工作狀態,每種工作狀態對應一個參數集合,這個參數集合表示的是該工作狀態下的功耗和性能參數等。系統可以根據自身的負載情況在各個工作狀態之間進行切換,也可以由用戶根據自身需要進行某個工作狀態的設置。當系統空閑,零負載或者負載比較小的時候,系統就會控制設備進入低性能狀態或者低功耗狀態,當系統請求較多,負載較高時,系統就會控制設備進入高性能狀態或者高功耗狀態。系統主要的四個狀態為:正常運行態,待機態,掛起態,深度休眠態。

動態電源管理(DPM)則廣泛應用于嵌入式移動終端設備,是一種系統級的功耗控制技術。動態電源管理的基本思想是設想系統由多個部件組成,每個部件可以有多種工作狀態,每種工作狀態對應著不同的電壓和時鐘頻率,因此有著不同的功率消耗。動態電源管理主要依據系統運行時各部件的具體負載情況,調整設備進入適合的功耗狀態,以此來節省功耗。由于動態管理系統隨時在繁忙和空閑等工作狀態之間進行切換,在進入和退出工作狀態時會帶來一定的延時,因此,如果狀態切換太過頻繁,帶來的延時會抵消節省功耗帶來的益處,降低系統性能。所以在動態電源管理中,最重要的是選擇好正確的管理策略,取得功耗和延時及性能之間的最佳平衡點。動態電源管理策略通常分為四種類型:(1)超時策略;(2)貪婪策略;(3)基于隨機過程策略;(4)預測策略。

2 CPUIDLE模塊

Linux系統中,支持CPU電源管理的模塊主要分為CpuIdle和cpufreq兩個模塊,當系統處于空閑狀態時主要由cpuidle framework來負責管理這種空閑狀態時的電源功耗,當 CPU活躍時,則由cpufreq模塊來負責管理電源的使用。在Linux內核中,cpuidle架構位于“drivers/cpuidle”文件夾中,分別包含三個模塊,分別為:cpuidle core:負責實現cpuidle framework的整體框架;cpuidle governors:負責管理方案的選?。?cpuidle drivers:定義每一個狀態的功耗和延遲分別是多少并負責idle機制的實現,即:如何進入idle狀態,什么條件下會退出,等等。以上三個模塊再結合位于kernel sched中的cpuidle entry,共同完成cpu的空閑管理,CpuIdle模塊的軟件結構如圖1所示。

在cpuidle架構中最重要的就是cpuidle governor部分,它負責具體電源管理方案的選取,因此電源管理是否有效,關鍵在于governor的配置使用。在當前的系統內核中CpuIdle模塊主要有兩個governor部件,分別為ladder governor和menu governor,它們分別使用于不同的系統中。對于現在的大部分系統,由于電源管理的原因以及延遲容忍度的處理,大多系統都是使用menu governor來選擇一個合適的空閑狀態。在menu governor工作過程中,其綜合考慮并計算系統切換不同狀態時所花費的功耗以及帶來的延遲容忍程度,最終來選擇所要進入的空閑狀態,因此該部分是cpuidle模塊中電源管理的核心部分,如何使用該部分成為系統處于空閑狀態是時能否達到最佳節能目的關鍵。

3 governor接口

Governor的使用是通過接口程序來實現的,cpuidle_ governor結接口程序通過cpuidle core使用struct cpuidle_ governor結構抽象得到,以下是governor的標準接口程序:

struct cpuidle_governor {

char name[CPUIDLE_NAME_LEN];

struct list_head governor_list;

int (*init) (struct cpuidle_device *dev);

void (*exit) (struct cpuidle_device *dev);

void (*scan) (struct cpuidle_device *dev);

int (*select) (struct cpuidle_device *dev);

void (*reflect) (struct cpuidle_device *dev);

struct module *owner;

};

其中,由cpuidle調用init()方法來初始化控制器;

調用exit()方法可以退出控制器;

scan()方法用于重新檢測設備所處的狀態。這樣能保證及時獲取到狀態的變化;

select() 方法在系統進入空閑狀態之前被調用,該方法根據當前系統的運行狀況,以及各個idle state的特性,選擇一個決策;

cpuidle_register_governor()方法和cpuidle_unregister _governor()方法用于注冊或注銷一個cpuidle governor;

reflect()是個回調函數,通過該函數告知governor,系統上一次所處的空閑狀態是哪一個(即系統從哪一個state回來)。

4 結語

隨著物聯網的發展,對于終端電源的能耗將要求越來越高,電源管理將會成為行業發展的關鍵點。本文主要分析了目前存在的靜態和動態電源管理技術,研究了LINUX系統中當系統處于空閑狀態時負責電源管理的CPUIDLE模塊結構特點以及接口核心編碼,對基于LINUX系統的電源管理方面研究有一定的參考意義。

參考文獻

[1]鄒思軼.嵌入式Linux設計與應用[M].北京:清華大學出版社,2001.

[2]許海燕,付炎.嵌入式系統技術和應用[M].北京:機械工業出版社,2002.

主站蜘蛛池模板: 亚洲九九视频| 亚洲精品国产成人7777| 国产精品第三页在线看| 刘亦菲一区二区在线观看| 欧美激情福利| 91麻豆精品视频| 成人免费网站久久久| 日韩123欧美字幕| 丁香六月激情婷婷| 最新亚洲人成网站在线观看| 伊人久久大香线蕉aⅴ色| 亚洲成人黄色在线观看| 国产一区二区三区免费| 亚洲成人精品| 日韩成人高清无码| 日韩无码黄色网站| 欧美不卡二区| 91久久偷偷做嫩草影院电| 亚洲人成网站在线观看播放不卡| 国产在线视频欧美亚综合| 国产成人综合日韩精品无码首页| 亚洲精品在线观看91| 国产亚洲美日韩AV中文字幕无码成人| 国产香蕉国产精品偷在线观看| 在线播放国产99re| av无码久久精品| 免费高清毛片| 国产91丝袜在线播放动漫| 久久黄色免费电影| 亚洲第一综合天堂另类专| 97se亚洲综合在线韩国专区福利| 一本视频精品中文字幕| 五月激情婷婷综合| 综合色天天| 午夜国产不卡在线观看视频| 国产凹凸视频在线观看| 亚洲IV视频免费在线光看| 色婷婷久久| AV网站中文| 久久精品丝袜高跟鞋| 亚洲区一区| 欧洲av毛片| 婷婷色狠狠干| 精品视频在线观看你懂的一区| 日韩国产亚洲一区二区在线观看| a级毛片免费网站| 女同国产精品一区二区| 午夜精品一区二区蜜桃| 国产日韩AV高潮在线| 国产成人免费高清AⅤ| 国产人成在线视频| 在线国产综合一区二区三区| 日韩在线永久免费播放| 久久国产亚洲欧美日韩精品| 久久久受www免费人成| 国产三级视频网站| 中文字幕人妻无码系列第三区| 伊人中文网| 中日无码在线观看| 国产一级α片| 91美女视频在线| 国产情侣一区二区三区| 亚洲成人播放| 久久semm亚洲国产| 在线精品视频成人网| 亚洲中文字幕av无码区| 亚洲天堂视频在线播放| 456亚洲人成高清在线| 天天综合网色| JIZZ亚洲国产| www.91在线播放| 欧美在线导航| 制服无码网站| 日本亚洲成高清一区二区三区| 国产综合无码一区二区色蜜蜜| 亚洲男人的天堂在线观看| 青青青国产视频| 99视频精品在线观看| 免费Aⅴ片在线观看蜜芽Tⅴ| 看av免费毛片手机播放| 国产精品欧美激情| 国产粉嫩粉嫩的18在线播放91|