2. Cari tahu tentang memory management pada mobile device? apakah sistem pada mobile
device selalu menggunakan swapping?
Sumber daya yang terbatas pada memori mobile device dapat menyebabkan
banyaknya ponsel yang macet dalam satu waktu. Sebagian besar ponsel harus direstart
dalam situasi seperti itu. Saat aplikasi pada mobile device diluncurkan ada waktu
memuatnya. Jika aplikasi disimpan dalam memori saat diluncurkan kembali, aplikasi akan
memuat dari memori dengan waktu yang lebih singkat dibandingkan dengan waktu
peluncuran dan itu akan memulihkan ketempat pengguna berhenti. Teknik ini digunakan
sebagian besar OS modern. Tetapi jika sisa memori menjadi rendah, tiba-tiba beberapa
aplikasi yang ada dimemori tersebut terpaksa dihentikan secara paksa. Sebelum
menghentikan aplikasi, sistem tidak memeriksa apakah ini yang prioritas atau lainnya.
Semua platform menerapkan siklus hidup aplikasi dan reklamasi memori yang serupa
skema. Android adalah OS utama yang digunakan dalam mobile device khusunya
smartphone.
Pada android terdapat Mesin virtual Android Runtime (ART) dan Dalvik
menggunakan paging dan pemetaan memori (mmapping) untuk mengelola
memori. Artinya, memori apa pun yang diubah aplikasi — baik dengan mengalokasikan
objek baru atau menyentuh halaman yang dipetakan — tetap berada di RAM dan tidak
dapat dialihkan. Satu-satunya cara untuk melepaskan memori dari aplikasi adalah dengan
melepaskan referensi objek yang dipegang aplikasi, sehingga memori tersebut tersedia
untuk pengumpul sampah. Itu dengan satu pengecualian: file apa pun yang dipetakan tanpa
modifikasi, seperti kode, dapat disimpan dari RAM jika sistem ingin menggunakan memori
itu di tempat lain. Saat pengguna beralih antar-aplikasi, Android akan menyimpan aplikasi
yang tidak berjalan di latar depan—artinya, yang tidak terlihat oleh pengguna atau
menjalankan layanan latar depan, seperti pemutaran musik— di dalam cache. Misalnya,
saat pengguna meluncurkan aplikasi untuk pertama kalinya, sebuah proses akan dibuat
untuk peristiwa tersebut; tetapi saat pengguna menutup aplikasi, proses
tersebut tidak berhenti. Sistem menyimpannya di dalam cache. Jika nanti pengguna
kembali ke aplikasi itu, sistem akan menggunakan kembali proses tersebut, sehingga
peralihan aplikasi berlangsung lebih cepat.
Jika memiliki proses yang tersimpan dalam cache dan mempertahankan resource
yang saat ini tidak diperlukan, aplikasi dapat memengaruhi performa sistem secara
keseluruhan, bahkan saat pengguna tidak sedang menggunakannya. Jika resource seperti
memori hampir penuh, sistem akan mengakhiri proses dalam cache. Sistem juga
memperhitungkan proses yang menggunakan memori terbanyak, dan dapat
menghentikannya untuk mengosongkan RAM.
Sistem mobile device tidak selalu menggunakan swapping karena swapping sering
kali tidak dapat mengosongkan cukup memori untuk sistem. Jika cara swapping tidak
cukkup efisien maka umumnya mobile device akan memulai proses penghentian (killing)
untuk mengosongkan memori. Pada Android misalnya, jika kswap pada Andoid dinilai
tidak cukup untuk mengosongkan memori maka Low Memory Killer (LMK) digunakan
untuk keperluan ini.
Swapping adalah skema manajemen memori di mana setiap proses dapat ditukar
sementara dari memori utama ke memori sekunder sehingga memori utama dapat tersedia
untuk proses lain. Ini digunakan untuk meningkatkan pemanfaatan memori utama. Di
memori sekunder, tempat penyimpanan proses swapped-out disebut ruang swap. Tujuan
dari swapping dalam sistem operasi adalah untuk mengakses data yang ada di hard disk
dan membawanya ke RAM sehingga program aplikasi dapat menggunakannya. Hal yang
perlu diingat adalah swapping hanya digunakan ketika data tidak ada di RAM . Meskipun
proses swapping mempengaruhi kinerja sistem, ini membantu menjalankan lebih dari satu
proses. Inilah alasan mengapa swapping juga disebut sebagai pemadatan memori. Konsep
swapping terbagi menjadi dua konsep lagi: Swap-in dan Swap-out.
o Swap-out adalah metode untuk menghapus proses dari RAM dan
menambahkannya ke hard disk.
o Swap-in adalah metode untuk menghapus program dari hard disk dan
memasukkannya kembali ke memori utama atau RAM.
6. Apa perlu seluruh program yang sedang dieksekusi harus berada di memory?
Perlu, seluruh program untuk dapat dieksekusi harus dibawa kememori dan
menjadi suatu proses. Sesuai konsep binding, sebelum eksekusi program berada didalam
disk dan saat dieksekusi program tersebut perlu berada pada suatu lokasi dalam memori
fisik. Meskipun proses harus berada dimemori untuk dieksekusi, tapi proses dapat
diswap sementara keluar memori kebacking store dan kemudian membawanya kembali
ke memori untuk eksekusi lanjutan.
7. Bagaimana virtual memory bekerja pada sistem operasi ?
Virtual Memory digunakan dengan membuat suatu file khusus yang disebut
swapfile atau paging file. Virtual memory digunakan pada saat operating system kehabisan
memory, dimana OS akan memindahkan data yang paling terakhir diakses ke dalam
swapfile di hardisk. Hal ini mengosongkan/ membebaskan beberapa ruang kosong pada
memory untuk aplikasi yang akan digunakan selanjutnya. OS akan melakukan hal ini
secara terus menerus ketika data baru diisi pada RAM. Kemudian, pada saat data yang
tersimpan di swapfile diperlukan, data tersebut ditukar (swap) dengan data yang paling
terakhir dipakai di dalam memory (ram). Hal ini mengakibatkan swapfile bersifat seperti
RAM, walaupun program tidak dapat secara langsung dijalankan dari swapfile. Satu hal
yang perlu dicatat bahwa karena OS tidak dapat secara langsung menjalankan program dari
swapfile, beberapa program mungkin tidak akan berjalan walau dengan swapfile yang
besar jika kita hanya memiliki RAM yang kecil.