S2R
1.Linux內核的suspend狀態
Linux內核支持多種類型睡眠狀態,目前存在四種模式:suspend to idle(freeze)、power-on standby(standb)、suspend to ram(memory;STR)和suspend to disk(hibernate),分別對應ACPI狀態的S0、S1、S3和S4狀態。
State in Linux ?? ?Label ?? ?state ?? ?ACPI ??? ?備注
#define? PM_SUSPEND_ON???????? ((__force suspend_state_t) 0) ?? ? ??? ? ??? ? ??? ?正常
#define? PM_SUSPEND_FREEZE????? ((__force suspend_state_t) 1) ?? ?freeze ?? ?suspend-to-idle ?? ?S0 ?? ?凍結進程+掛起設備+CPU空閑
#define? PM_SUSPEND_STANDBY??? ((__force suspend_state_t) 2) ?? ?standby ?? ?power-on suspend ?? ?S1 ?? ?凍結進程+掛起設備+關閉nonbootCPU
#define? PM_SUSPEND_MEM???? ((__force suspend_state_t) 3) ?? ?mem ?? ?suspend-to-ram ?? ?S3 ?? ?僅保留RAM自刷新
#define? PM_SUSPEND_MAX????? ((__force suspend_state_t) 4) ?? ?disk ?? ?suspend-to-disk ?? ?S4 ?? ?關閉所有設備包括RAM,也被稱為Hibernate
??? Suspend-To-Idle
??????? 此狀態包括frozen processes+suspended devices+idle processors,具有輕量化的特點;并且相對于相對于Idle狀態能節省更多的功耗,因為此時的用戶空間被凍結且I/O設備進入了低功耗狀態。
??????? 相對于Suspend-To-RAM它具有低延時的優勢。
??? Power-On Suspend
??????? 此狀態簡稱standby狀態,包括frozen processes+suspended devices+offline nonboot CPUs+suspend low-level system,對CPU的處理更近一步。所以相對于Suspend-To-Idle節省了更多的功耗,但是由于需要恢復CPU和一些底層功能也花費了更多的時間。
??? Suspend-to-RAM
??????? 掛起到內存,簡稱待機。計算機將目前的運行狀態等數據存放在內存,關閉硬 盤、外設等設備,進入等待狀態。此時內存仍然需要電力維持其數據,但整機耗電很少?;謴蜁r計算機從內存讀出數據,回到掛起前的狀態,恢復速度較快。對 DDR的耗電情況進行優化是S3性能的關鍵,大多數手持設備都是用S3待機。此狀態下計算機會凍結所有的活動并將當前工作狀態保存到RAM中,然后關閉屏幕進入低功耗模式,通常睡眠和喚醒需要幾秒。此狀態使所有的設備進入低功耗狀態,僅保留RAM自刷新。所有的設備和系統狀態都保存在RAM中,所有外設被掛起。
??? Suspend-to-disk
???????? 此狀態是最省功耗的模式,簡稱休眠。相對Suspend-to-RAM能節省更多功耗的原因是數據會被寫入磁盤中,RAM也可以被關閉。但是這也導致了,更多的恢復延時,在resume的時候讀回到RAM,然后在進行系統和設備狀態恢復工作。把運行狀態等數據存放在硬盤上某個文件或者某個特定的區域,關閉硬盤、外設等設備,進入關機狀態。此時計算機完全關閉,不耗電?;謴蜁r計算機從休眠文件/分區中讀出數據,回到休眠前的狀態,恢復速度較慢。電子書項目中,見過一款索尼的電子書,沒有定義關機狀態,只定義了S4,從而提高開機速度。一般在window系統中常見到。此狀態下計算機將所有活動的狀態保存到磁盤中,然后處于關機狀態,此模式下是不耗電的,而相比之前的模式,休眠和喚醒的速度都比較慢。但是在一般的嵌入式設備上,此種狀態不支持。
總結
- 上一篇: c1和c2语言水平,为什么驾校不建议考C
- 下一篇: 深度之眼课程打卡-统计学习方法01