Поширені процесори, які переходять на смартфони, ноутбуки та навіть настільні ПК, мають різну тактову частоту. Коли планувальник виявить, що у нього час простою, він може зменшити тактову частоту та знову збільшити її, якщо буде більше процесів, що конкурують за час процесора.
Процесори, оптимізовані для пристроїв, що працюють на акумуляторах, як правило, складаються з багатьох функціональних компонентів, у кожного з яких є свій годинник (приклад: ARM Cortex A8 ). Коли один компонент не працює, операційна система може вимкнути його (або зменшити його годинник), що заощадить енергію. Наприклад, на багатьох багатоядерних процесорах (наприклад, на мобільних пристроях високого класу) кожне ядро можна включати або вимикати окремо. ARM особливо хороший у цій грі, що є однією з причин того, що більшість смартфонів мають процесори ARM.
Варіювання тактової частоти або відключення годин електронних компонентів відоме як управління енергією . Це, як правило, є складною частиною написання та оптимізації операційної системи для пристрою, що працює від акумулятора, з багатьма залежностями від точної апаратної моделі.
Те, що стосується процесора, стосується і периферійних пристроїв. Дисплей з підсвічуванням є основним споживачем живлення на смартфоні, наприклад, за ним слід радіо. Операційна система CPU може відігравати певну роль в управлінні енергією периферійних пристроїв; вторинні мікросхеми також запускають власну прошивку, яка також здійснює управління живленням.
Програми мають свою роль у зменшенні споживання електроенергії: вони повинні дозволити операційній системі робити все, що потрібно. Найгірше, що може зробити програма - опитування - запуск циклу на зразок while (not_ready()) {}
. Навіть введення невеликої затримки, як в while (not_ready()) {usleep(100);}
, не допомагає, оскільки це не дає достатньо часу, щоб процесор перейшов у режим низької потужності, або, якщо це станеться, кожен невмілий прокидання означає марну енергію. Таким чином, API API операційної системи повинні бути розроблені так, що додатки ніколи не потребують опитування, але можуть замість цього підписатись на якийсь механізм подій і залишатися в режимі очікування, поки не будуть повідомлені про відповідну подію. Програми, в свою чергу, повинні скористатися такими механізмами, тому дизайн всього програмного пакету впливає на споживання енергії.
Ви можете отримати деяку інформацію про те, що відповідає за витрату енергії вашого ПК за допомогою утиліти Powertop від Intel . Смартфони, як правило, мають змогу побачити, скільки споживаються додатків для живлення. Облік споживання електроенергії за допомогою програми складно: якщо компонент прокидається за двома програмами, час пробудження може бути віднесено до одного з них дещо довільно або ні до одного; Споживання електроенергії на периферійних пристроях також не завжди легко відслідковувати до відповідальної програми.
Чіп оперативної пам'яті не знає, який з його бітів зберігає дані активного процесу, тому його не можна вибірково вимкнути таким чином. Споживання енергії процесу не пов'язане з обсягом пам'яті, яку він використовує (за винятком випадків, коли оперативна пам'ять використовує споживану потужність, але повторне використання тієї самої пам'яті або використання різних областей ОЗУ не має жодних змін щодо споживання енергії).