Friday, April 20, 2012

Arsitektur Sistem Operasi Android

Arsitektur Android

 Sesuai gambar di atas, android mempunyai kernel linux, dan menggunakan android runtime dan application framework sendiri yang memungkinkan development dengan menggunakan java.
Kernel dan Dalvik Virtual Machine
Sejak versi 2.6.23, kernel Linux standar menggunakan Completely Fair Scheduler (CFS), yang menerapkan kerataan dalam waktu penggunaan CPU untuk task yang diberikan. Keseimbangan ini menjamin bahwa semua task akan mempunyai jatah CPU yang sama dan oleh karena itu setiap kali terjadi ketidak rataan telah ditemukan, algoritma tersebut akan melakukan penyeimbangan kembali task yang ada. Walaupun fairness dijamin, algoritma ini tidak menyediakan penjaminan sementara untuk task dan oleh karena itu Android juga tidak melakukan penjadwalan karena operasi penjadwalan diserahkan pada kernel Linux.
Android menggunakan Virtual Machine nya sendiri yang dinamakan Dalvik, yang dikembangkan dari scratch untuk device mobile dan mempertimbangkan optimasi memori, penghematan daya baterai, dan frekuensi CPU yang rendah. Dalvik  ini mengandalkan kernel Linux sebagai fitur inti sistem operasi seperti manajemen memori dan penjadwalan yang dimiliki oleh kernel Linux dan karena itu juga mengakibatkan kekurangan yaitu tidak melakukan penjaminan sementara sebagai pertimbangan.  Arsitektur android seperti yang digambarkan dalam gambar 1, terdiri atas 5 lapis: Applications, Application Framework, Libraries, Android Runtime, dan Kernel Linux. Pada lapis paling atas, lapis aplikasi menyediakan sekumpulan fungsi aplikasi yang secara umum tidak ditawarkan oleh mobile device lainnya.

Layer framework application menyediakan framework API yang digunakan oleh aplikasi yang berjalan pada layer paling atas. selain API, , ada sekumpulan layanan yang memungkinkan mengakses fitur inti dari android sebagai contoh seperti komponen grafis, manager pertukaran informasi, manajer event, dan manajer activity. Di bawah layer, framework application, terdapat lapisan lain yang terdiri atas: Library dan Android Runtime. Library menyediakan fitur inti untuk aplikasi. Di antara semua library yang tersedia, yang paling penting adalah libc, yang merupakan library standar untuk sistem C yang disesuaikan untuk device berbasis embedded Linux; Library Media yang memberikan dukungan untuk memainkan dan merekam beberapa format audio dan video; Graphics Engine, Font, dan engine relational database ringan dan library 3D berbasis OpenGL ES.
Dengan melihat Android Runtime, selain library inti, Android menyediakan Virtual Machine nya sendiri yaitu Dalvik. Dalvik menjalankan aplikasi Java di atas nya dan tidak seperti standar Virtual Machine(VM) pada java yang berbasis stack, Dalvik adalah sebuah mesin berbasis register yang tidak terbatas. Sebagai sebuah mesin register,  hal ini memberikan dua keuntungan ketika dibandingkan dengan mesin berbasis stack. Contohnya, Dalvik hanya membutuhkan 30% instruksi lebih sedikit untuk melaksanakan komputasi yang sama jika dibandingkan dengan Stack Machine tertentu, yang menyebabkan pengurangan pemanggilan instruksi dan akses memoru; dan membutuhkan waktu komputasi lebih sedikit, yang mana diturunkan dari pengurangan expression yang sama dari instruksi. Namun, Dalvik menghadirkan 35% byte lebih banyak pada aliran isntruksi daripada sebuah stack machine tertentu. Kerugian ini diambil dengan konsumsi dari 2 byte pada saat melaksanakan instruksi. Dalvik menggunakan format byte-code nya sendiri yang disebut Dalvik Executable (.dex), dengan kemampuan untuk memasukkan beberapa class  dalam satu buah file saja. Hal ini juga bisa melakukan beberapa optimisasi selama pembangkitan dex file ketika memperhatikan penyimpanan internal terhadap tipe dan konstanta dengan menggunakan prinsip pengulangan sesedikit mungkin; untuk setiap tipe aliran; dan pelabelan implicit. Dengan menerapkan prinsip ini, dimungkinkan untuk menghasilkan file tipe dex yang lebih kecil daripada file tipe Java Archive(.jar). Selama waktu instalasi, setiap file dex dipastikan dan dilakukan optimasi seperti byteswapping dan padding, static-linking dan in-lining method dan pada saat yang sama untuk menghindari pelanggaran keamanan kode.
Kernel linux versi 2.6 pada lapis paling bawah dan juga lapis abstraksi hardware yang memungkinkan interaksi antara lapis yang lebih tinggi dengan lapis hardware melalui driver device. Lebih jauh lagi, kernel juga menyediakan layanan sistem yang paling fundamental seperti sekuritas, manajemen memori, manajemen proses, dan stack jaringan.

No comments:

Post a Comment