secara umum dipahami bahwa Android adalah sistem operasi dengan banyak ruang untuk konfigurasi khusus. Ini sebagian karena penggunaan kernel Linux pada intinya. Hari ini, kita akan membahas konfigurasi salah satu bagian tingkat terendah dari Kernel Android: Penjadwal Tugasnya. Dengan konfigurasi penjadwal tugas yang tepat, Anda dapat meningkatkan kinerja di Android. Terus membaca untuk mengetahui dengan tepat bagaimana Anda dapat memodifikasi gadget Anda untuk kinerja terbesar.
Tapi apa tepatnya penjadwal tugas kernel?
Penjadwal tugas sistem bertanggung jawab untuk mendistribusikan CPU di antara sejumlah besar tugas yang berjalan. Ia melakukan itu dengan memberikan setiap tugas beberapa waktu berjalan di CPU serta menukarnya dengan satu lagi pada interval waktu tertentu. Secara umum, ada dua jenis penjadwalan tugas: pengaturan preemptive serta penjadwalan kooperatif.
Dalam penjadwalan preemptive, kernel memutuskan kapan harus mendahului (= swap) tugas yang sedang berjalan. Ini dapat melakukannya pada hampir semua jenis waktu, berdasarkan algoritma pengaturan yang kompleks. Sebaliknya, dalam penjadwalan kooperatif, setiap tugas bertanggung jawab untuk memberi tahu kernel ketika tidak memerlukan CPU lagi, dan karena itu dapat ditukar. Dalam hal ini, kernel hanya bertanggung jawab untuk menentukan kandidat terbaik untuk mengatur serta meletakkannya di CPU.
Lihat juga: Mitos Android serta Fakta: Menghancurkan 10 Legenda Metropolitan
Tugas Mengatur di Android
Android berjalan di atas Linux, yang merupakan kernel preemptive. Penjadwal tugas dipicu pada interval konstan yang dikodekan keras, interval pengaturan. Ini biasanya setiap 10 milidetik di perangkat Android. Ketika penjadwal berjalan, ia memutuskan apakah tugas berjalan harus didahului atau tidak, serta tugas mana dari mereka yang menunggu untuk menjalankan harus mengambil lokasinya di CPU. Sejak versi 2.6.23, Kernel Linux menggunakan penjadwal tugas yang sangat canggih, The Tooly Fair Scheduler (CFS). CFS mencoba memberikan setiap tugas dalam jumlah waktu yang cukup pada CPU berdasarkan sejumlah faktor, termasuk bobot tugas serta prioritas. Algoritma penjadwal ini agak rumit untuk dipahami. Itulah sebabnya ada sejumlah kecil desainer kernel yang berkontribusi pada pengembangannya.
Menyewa penjadwal CFS
Prasyarat
Akses root
Aplikasi Emulator Terminal
Terlepas dari kompleksitasnya, CFS Scheduler menawarkan beberapa opsi konfigurasi. Mengubah pilihan ini mungkin sangat memengaruhi kinerja sistem. Secara tradisional, alat baris perintah SYSCTL digunakan untuk memeriksa serta mengubah parameter kernel saat runtime, termasuk parameter penjadwal. Kami akan memanfaatkan alat ini dalam panduan kami karena sudah dipasang sebelumnya di sebagian besar android di luar sana. Namun pertama, kami persyaratan untuk melakukan sedikit pengantar untuk itu:
Cara memanfaatkan sysctl
Parameter daftar serta nilai -nilai sekarang
Untuk mendaftarkan semua parameter kernel yang ditawarkan dengan nilai yang ditetapkan, berikan perintah yang mematuhi di dalam aplikasi terminal:
sysctl -a
Untuk hanya mendapatkan parameter terkait penjadwal tugas, kami dapat memberikan perintah yang mematuhi:
sysctl -a | grep “sced”
Ini memberikan output yang mematuhi pada perangkat contoh kami:
Daftar parameter agak besar. Kami hanya akan membahas beberapa parameter di bawah ini, yang merupakan yang paling penting.
Mengubah parameter
Kita dapat memodifikasi parameter yang menggunakan perintah dalam tipe sysctl -w [parameter] = nilai di mana parameter adalah nama parameter kernel serta nilai adalah nilai baru. Sebagai contoh:
sysctl -w kernel.sched_scaling_enable = 1
Baca di bawah ini untuk lebih banyak contoh penggunaan SYSCTL. Ingatlah bahwa modifikasi tidak berhasil melalui reboot. Anda dapat menggunakan skrip init.d untuk menerapkan semua jenis modifikasi yang diperlukan pada waktu boot. Terakhir, pastikan Anda menjalankan perintah sysctl dengan hak istimewa root. Anda bisa mendapatkan hak istimewa di aplikasi terminal dengan memberikan perintah yang mematuhi:
su
Parameter penjadwal tugas dasar
Jangan lewatkan: masa lalu serta masa depan kernel Linux di perangkat seluler
kernel.sched_min_granularity_ns
Tugas yang terikat prosesor dijamin berjalan untuk waktu minimum ini sebelum mereka didahului. Tugas dianggap sebagai prosesor yang terikat ketika waktu yang dibutuhkan untuk total hanya tergantung pada kecepatan prosesor. Misalnya, tugas yang menunggu di bundel untuk muncul dengan web bukanlah tugas yang terikat prosesor. Secara umum, meningkatkan nilai ini akan meningkatkan throughput sistem. Di sisi lain, nilai dan tinggi dapat mengurangi respons gadget. Parameter ini mengambil nilai dalam nanoseconds. Misalnya, untuk mengaturnya ke 4000000 nanoseconds (4 milidetik), kami dapat memberikan perintah yang mematuhi:
sysctl -w kernel.sched_min_granularity_ns = 4000000
Sesuai dokumentasi kernel Linux resmi, ini adalah penjadwal CFS pusat yang dapat disetel.
kernel.sched_latency_ns
Semua tugas pada antrian Run CFS dijamin akan diatur setidaknya ketika dalam periode ini.null