電源管理
電源管理,是作業系統如何用更少的能量完成同樣的工作——這對一支必須靠電池撐一整天的手機至關重要,對一座電費與散熱都極為龐大的資料中心同樣重要。想像把空房間的燈關掉、把幾乎用不到的燈調暗:作業系統替硬體做這件事,把閒置的部件關掉、把沒有壓力的部件放慢,使能量不至於白白消耗在無所事事上。
主要有兩個控制桿。睡眠狀態把閒置硬體置入逐步加深的低功耗模式:一個無事可做的核心可以停下、幾乎不耗電,直到一個中斷把它喚醒,而整台機器也能暫停,讓記憶體保持存活、其餘一切熄滅。作業系統必須決定睡多深,因為從更深的狀態醒來要花更久。第二個控制桿是動態電壓與頻率調整(dynamic voltage and frequency scaling, DVFS):作業系統在工作負載輕時降低 CPU 的時脈與電壓,在重時調高。由於晶片的動態功耗大致隨電壓平方乘以頻率上升,以較低電壓較慢執行能大幅省電。在手機上,這正是背景任務被批次化、而往往是最大耗電源的螢幕被積極調暗與關閉的原因;在資料中心,這正是閒置伺服器被關機或整併的原因。
誠實的張力是「搶著進入閒置」的取捨:有時最省電的選擇是讓 CPU 全速執行以快點完成、然後深度睡眠,而不是整段時間都以低頻率慢慢爬——這取決於工作負載與晶片。而且電源管理可能與效能、反應靈敏度相衝突:一個深度睡眠的核心要花時間才能醒來,所以省電可能增加延遲。作業系統不斷在能量與速度之間權衡,而正確答案隨情境改變。
你的手機放在桌上沒人碰。作業系統把閒置的 CPU 核心降入深度睡眠狀態,把仍在處理背景同步的那一個核心的時脈調低,並把螢幕完全關閉。當你拿起它,一個中斷喚醒一個核心,並在幾毫秒內把它的頻率重新拉高——快到讓手機感覺立刻就靈敏。
讓閒置的睡眠、讓輕鬆的放慢、在需要時迅速喚醒。
更慢不一定更省。「搶著進入閒置」意味著:全速執行、完成、然後深度睡眠,可能比以低頻率慢慢爬更省電——最佳選擇取決於工作負載與硬體。