CPU umum yang masuk ke ponsel cerdas, laptop, dan bahkan PC desktop memiliki laju jam variabel. Ketika scheduler mendeteksi bahwa ia memiliki waktu idle, ia dapat mengurangi laju jam, dan meningkatkannya lagi jika ada lebih banyak proses yang bersaing untuk waktu CPU.
CPU yang dioptimalkan untuk perangkat bertenaga baterai cenderung terdiri dari banyak komponen fungsional yang masing-masing memiliki jam sendiri (contoh: ARM Cortex A8 ). Ketika satu komponen idle, sistem operasi dapat mematikannya (atau mengurangi jamnya), yang menghemat daya. Misalnya, pada banyak CPU multicore (seperti yang ada di perangkat seluler kelas atas), setiap inti dapat dihidupkan atau dimatikan secara terpisah. ARM sangat bagus dalam permainan ini, yang merupakan salah satu alasan mengapa sebagian besar smartphone memiliki CPU ARM.
Memvariasikan laju jam atau mematikan jam komponen elektronik dikenal sebagai manajemen daya . Ini cenderung menjadi bagian yang kompleks dalam penulisan dan pengoptimalan sistem operasi untuk perangkat bertenaga baterai, dengan banyak ketergantungan pada model perangkat keras yang tepat.
Apa yang berlaku untuk CPU juga berlaku untuk periferal. Layar dengan lampu latar adalah konsumen utama daya pada smartphone, misalnya, diikuti oleh radio. Sistem operasi CPU dapat berperan dalam manajemen daya periferal; chip sekunder juga menjalankan firmware sendiri yang juga menjalankan manajemen daya.
Aplikasi memiliki peran mereka dalam menjaga konsumsi daya tetap rendah: mereka harus memungkinkan sistem operasi untuk melakukan hal itu. Hal terburuk yang bisa dilakukan aplikasi adalah polling - menjalankan loop seperti while (not_ready()) {}
. Bahkan memperkenalkan penundaan kecil karena while (not_ready()) {usleep(100);}
tidak membantu karena tidak memberikan cukup waktu bagi prosesor untuk masuk ke mode daya rendah, atau jika ya, setiap bangun yang tidak berbuah berarti membuang-buang energi. Dengan demikian API sistem operasi harus dirancang agar aplikasi tidak perlu melakukan polling, tetapi sebaliknya dapat berlangganan semacam mekanisme acara dan tetap siaga sampai pemberitahuan tentang peristiwa yang relevan. Aplikasi pada gilirannya perlu memanfaatkan mekanisme seperti itu, sehingga desain seluruh tumpukan perangkat lunak berdampak pada konsumsi daya.
Anda dapat memperoleh beberapa informasi tentang apa yang bertanggung jawab atas konsumsi daya PC Anda dengan utilitas Powertop Intel . Smartphone biasanya memiliki cara untuk melihat seberapa banyak daya yang dikonsumsi aplikasi juga. Menghitung konsumsi daya oleh aplikasi justru sulit: jika komponen bangun untuk dua aplikasi, waktu bangun mungkin diperhitungkan salah satu dari mereka agak sewenang-wenang atau tidak sama sekali; Konsumsi daya periferal juga tidak selalu mudah dilacak ke aplikasi yang bertanggung jawab.
Chip RAM tidak tahu bit mana yang menyimpan data proses aktif, jadi tidak bisa dimatikan secara selektif dengan cara ini. Konsumsi daya suatu proses tidak terkait dengan jumlah memori yang digunakannya (kecuali karena RAM mengakses daya konsumsi, tetapi menggunakan kembali memori yang sama atau menggunakan area RAM yang berbeda tidak ada bedanya sehubungan dengan konsumsi daya).