2.7 Kernel pada Android
Sistem Operasi Android mengunakan kernel linux versi 2.6.x pada versi Android 4.0Ice Cream Sandwich ke bawah dan menggunakan kernel linux versi 3.x.x
pada versi Android 4.1 Jelly Bean ke atas. Nazruddin Safaat, 2012 Arsitektur kernel Linux pada Android telah diubah oleh Google, berbeda
dengan siklus pengembangan kernel Linux biasa. Secara standar, Android tidak memiliki X Window System asli ataupun dukungan set lengkap dari perpustakaan
GNU standar. Oleh sebab itu, sulit untuk memporting perpustakaan atau aplikasi Linux pada Android. Dukungan untuk aplikasi simpel C dan SDL bisa dilakukan
dengan cara menginjeksi shim Java dan menggunakan JNI, misalnya pada port Jagged Alliance 2 untuk Android.
Pada dasarnya kernel pada Android merupakan sebuah kernel monolitik yang didasarkan pada pengembangan kernel linux. Sehingga, seluruh proses
manajemen sumber daya hardware pada sebuah smartphone Android merupakan tanggung jawab dari kernel itu sendiri.
Konfigurasi-konfigurasi tambahan
yang bertujuan
mendukung kemampuan sebuah smartphone berbasis android ditambahkan secara langsung
pada source kernel Android. Baik itu berupa manajemen IO, governor CPU, driver perangkat tambahan, hingga proses penentuan clock CPU. Sehingga, source
yang telah diubah inilah nantinya digunakan untuk pembuatan kernel yang dapat diaplikasikan pada smartphone Android.
Universitas Sumatera Utara
2.8 Governor pada kernel Android
Governor pada kernel android merupakan sebuah profil tentang bagaimana suatu CPUprocessor
pada smartphone
Android bekerja.
Governor akan
menginstruksikan kepada processor apa yang harus dilakukan dengan tepat pada saat berbagai situasi. Governor. 2011. xda-university.comas-a-developeradding-
features-to-your-kernel Pada kernel bawaan pabrikan sendiri hanya terdapat beberapa governor
standar bawaan yang memiliki kemampuan terbatas menangani berbagai situasi smartphone. Sehingga, kinerja dari cpu smartphone itu sendiri menjadi tidak
optimal. Untuk itulah diperlukan governor tambahan yang umumnya di buat oleh pihak ketiga yang memiliki kinerja yang lebih baik daripada governor standar
pabrikan tersebut. Berikut ini adalah beberapa governor yang ada saat ini :
1. Ondemand
Governor bawaan yang hampir ada pada setiap kernel bawaan.. Tujuan utama dari governor Ondemand adalah untuk mengubah keadaan cpu ke
frekuensi maksimal secara langsung setelah terdekteksi aktivitas sistem.. Pada Ondemand CPU langsung melakukan lompatan ke frekuensi tertinggi
ketika memiliki aktivitas yang sangat sibuk dan menurunkan ke frekueni terendah ketika dalam keadaan idle. Meskipun banyak dari kita yang akan
berpikir bawah Ondemand merupakan governor yang sangat ideal akan tetapi nyatanya Ondemand sangat buruk untuk pemakaian baterei maupun
performa pada setingan bawaan. Salah satu alasan utama bahwa governor Ondemand tidaklah efisien yaitu governor ini langsung memutuskan
Universitas Sumatera Utara
frekuensi CPU berikutnya secara langsung bukan melakukan intervcal tertentu.. Perubahan frekuensi secara langsung memang sangat membantu
dalam penanganan banyaknya prose yang dapat ditangani, akan tetapi tidaklah efektif diterapkan dalam pengunaan jangka panjang yang akan
mengakibatkan turunnya frekuensi tinggi dan rendah secara drastis .
2. Ondemandx:
Pada dasarnya merupakan governor Ondemand dengan penambahan wakesuspend mode.
Governor ini dapat dikatakan sebagai governor Ondemand yang hemat daya. Ketika layar dalam keadaan mati, frekuensi
maksimum pada CPU di set pada 500 mhz. Walaupun Ondemand adalah governor bawaan di banyak kernel dan dipertimbangkan karena
amanstabil, akan tetapi untuk mendukung OndemandOndemandx tergantung dari kemampuan CPU untuk melakukan penggantian frekuensi
secara cepat dan memiliki transisi latensi frekuensi yang sangat rendah.. Tidak
semua IO
scheduler cocok
dengan governor
OndemandOndemandx, hanya IO SIO yang sepertinya dapat dikatakan cocok sebagai pasangan OndemandOndemandx.
3. Conservative
Sebuah Ondemand versi yang lebih lambat yang menaikkan frekuensi secara perlahan untuk menghemat penggunaan baterei. Conservative
didasarkan pada Ondemand. Fungsi governor ini seperti governor Ondemand yang secara dinamis mengatur frekuensi berdasarkan utilisasi
prosesorprocessor utilization. Bagaimanapun, governor Conservative
Universitas Sumatera Utara
menaikkan dan menurunkan kecepatan CPU secara lebih bertahap daripada Ondemand. Dengan kata lain, governor ini menaikkan frekueni
secara bertahap ketika CPU digunakan dan langsung melakukan lompatan ke frekuensi terendah ketika dalam keadaan idle.. Target governor
Conservative adalah untuk mengatur frekuensi CPU secara dinamis, tanpa melompat langsung ke frekuensi tertinggi.
4. Interactive
Interactive dianggap sebagai governor yang lebih efisien dari Ondemand. Jadi dapat dikatakan lebih cepat, dan hemat baterei. Interactive di rancang
untuk sensitif-latency, beban kerja yang interaktif. Alih-alih pengambilan sampel pada setiap interval seperti ondemand, Interactive menentukan
bagaimana skala ketika CPU keluar dari status idle. Governor ini memiliki keuntungan sebagai berikut :
1 Lebih responsif, karena governor yang ada melakukan sampel beban CPU dalam konteks penjadwalan kerja, tapi governor Interactive
melakukan hal ini dalam konteks waktu, yang memberikan sampel beban CPU yang lebih konsisten.
2 Peningkatan frekuensi CPU memiliki prioritas yang lebih tinggi, yang kemudian memberikan kemampuan CPU dalam menangani beban kerja
secara lebih baik, tidak seperti governor yang ada yang menjadwalkan penaikkan skala pengerjaan untuk menyelesaikan beban kerja yang ada.
Dapat dikatakan bahwa Interactive merupaka governor Ondemand yang lebih cerdas. Dikarenakan pengambilan sampel pemakaian CPU setiap X
ms seperti Ondemand dapat digunakan untuk menentukan daya bawah
Universitas Sumatera Utara
CPU untuk X ms. 5.
Interactivex: Merupakan governor interactive dengan profile yang lebih hemat baterei
daripada governor Interactive. 6.
Lulzactive: merupakan governor campuran antara Interactive dan Smartass dan
merupakan salah satu governor pilihan para pengembang pihak ketiga. Versi lama : Ketika beban kerja lebih besar atau sama dengan 60,
governor langsung menaikkan skala prosesor ketingkat yang lebih tinggi. Ketika beban kerja kurang dari 60 governor menurunkan skala prosesor
ketingkat yang lebih rendah. Ketika layar dalam posisi mati, frekuensi di kunci ke dalam skala frekuensi minimum yang bersifat global. Tiga
parameter yang di tentukan user adalah inc_cpu_load, pump_up_step, pump_down_step
. Tidak eperti versi lamanya, versi yang baru memberikan kontrol yang lebih baik untuk pengguna. Pengguna dapat menentukan
ambang batas untuk governor dalam menaikkanmenurunkan skala prosesor. Pengguna juga dapat menentukan angka frekuensi yang dapat
dilewatkan ketika menaikkan dan menurunkan frekuensi. Ketika beban kerja lebih besar atau sama dengan inc_cpu_load, governor menaikkan
skala CPU pump_up_step secara bertahap. Ketika beban kerja lebih kecil dari inc_cpu_load, governor meurunkan skala pump_down_step.
7. Lulzactiveq:
Lulzactiveq adalah pengembangan dari governor Lulzactive yang ditulis
Universitas Sumatera Utara
oleh anggota XDA bernama Robertosc. Lulzactiveq mengarah kepada pengoptimalan versi kedua Luzactive yaitu dengan menyediakan sebuah
parameter tambahan dec_cpu_load untuk membuat penentukan skala bawah lebih sensitif dan menggabungkan logika hotplug dengan governor.
Luzactiveq adalah sebuah governor pertama yang menggunakan logika hotplug bawaan. Ketika CPU keluar dari posisi idle kemudian saat itu pula
dibuat penskalaan CPU, jika load = inc_cpu_load skala CPU naik and jika load dec_cpu_load, skala CPU turun. Hanya prosessor dengan inti
banyak yang dapat menerapkan governor ini. 8.
Smartass: Merupakan sebuah hasil penyempurnaan governor Interactive yang
dilakukan oleh Erasmux. Tujuan utamanya adalah untuk menghemat pemakaian baterei tanpa mengurangi performa.
9. SmartassV2:
Versi 2 dari Smartass, salah satu pilihan para pengembang pihak ketiga. Governor ini bertujuan untuk menetapkan frekuensi ideal. governor ini
menggunakan frekuensi ideal yang berbeda untuk keadaan layar hidup dan layar mati, dinamai awake_ideal_freq and sleep_ideal_freq. Governor ini
menurunkan skala CPU sangat cepat untuk segera menuju kondisi sleep_ideal_freq ketika layar dalam keadaan mati dan menaikkan dengan
cepat ke posisi awake_idel_freq ketika layar hidup. Tidak ada batasan penaikkan frekuensi ketika posisi layar mati tidak seperti Smartass. Jadi
dengan keseluruhan jangkauan frekuensi yang tersedia. Jadi seluruh
Universitas Sumatera Utara
jangkauan frekuensi dapat digunakan oleh governor baik itu dalam posisi layar mati idle atau layar hidup awake.
10. Intellidemand:
Intellidemand alias Intelligent Ondemand yang di tulis oleh Faux yang merupakan pengembangan dari governor Ondemand. Perilaku gover ini
didsarkan pada penggunaan GPU Graphic processing Unit. Ketika GPU dalam keadaan sangat sibuk main game, melihat maps, dan lainnya
governor ini berperilaku seperti Ondemand. Ketika GPU sibuk, intellidemand membatasi frekuensi maksimum secara bertahap tergantung
dari frekuensi yang tersedia pada perangkatkernel untuk menghemat baterei. Proses ini disebut dengan “Browsing mode”.
11. Lazy:
Governor ini berasal dari Ezekeel yang dibuat berdasarkan Ondemand dengan tambahan paramater min_time_state yang bertujuan menentukan
waktu minimum CPU untuk tetap pada frekuensi yang ada sebelum skala naikturun. Ide ini bertujuan menghilangkan ketidakstabilan yang
disebabkan oleh penggantian frekuensi secara cepat yang dilakukan Ondemand. Governor ini hanya menetukan frekuensi selanjutnya setelah
melewati waktu yang ditetapkan pada min_time_state. Lazy juga mempunyai screenoff_maxfreq yang ketika digunkan akan menyebabkan
governor ini memilih frekuensi maksimum ketika layar dalam keadaan mati.
12. Lagfree:
Lagfree hampir sama dengan ondemand. Perbedaan utamanya terletak
Universitas Sumatera Utara
pada governor ini dikembangkan untuk penggunaan baterei yang lebih hemat. Frekuens
i secara “anggun” diturunkan dan dinaikkan, tidak seperti Ondeman yang terlalu sering dinaikkan ke posisi 100. Lagfree tidak
melewatkan frekueniapapun ketika skalanya dinaikkn ataupun diturunkan. 13.
Lionheart: Lionheart sangat bagus dipasangkan dengan deadline io scheduler.
14. LionheartX
LionheartX merupakan pengembangan dari governor LionheartX akan tetapi terdapat penambahan beberapa fitur governor Smartass.
15. Brazilianwax:
Hampir sama dengan smartassV2. Akan tetapi lebih ringan, sehingga memiliki performa yang lebih baik dan lebih hemat dalam penggunaan
baterei. 16.
SavagedZen: Salah satu pengembangan governor smartassV2. Yang bertujuan
mendapatkan performa dan ketahanan baterei yang seimbang. 17.
Userspace: Disamping menentukan frekuensi secara otomatis, pengguna dijiinkan
dengan bebas dapat menentukan frekuensi. 18.
Powersave: Mengunci frekuensi maksimum ke frekuensi minimum. Biasanya
menyebabkan lag yang luar biasa. 19.
Performance: Menetapkan frekuensi minimum sebagai frekuensi maksimum.
Universitas Sumatera Utara
2.9 IO Scheduler