Anda di halaman 1dari 2

ALOKASI MEMORI PADA LINUX

Pada Linux, memori manajer dilakukan dengan tujuan mengefisienskan ruang alamat pada
memori fisik, hal ini bertujuan agar proses yang dapat bekerja di memori lebih banyak dibandingkan
dengan yang sudah ditentukan oleh kernel. Alokasi memori pada Linix dapat dilakukan dengan 2
macam algoritma, yaitu :

1. Algoritma Buddy
Pada algoritma ini blok memori berikutnya akan diperiksa ketika routine pelaksanaan alokasi
ini dipanggil. Setelah diperiksa, jika ditemukan ada blok memori berikutnya, maka blok tersebut
akan dialokasikan. Sedangkan jika tidak ditemukan maka daftar tingkat berikutnya akan
diperiksa.
Ketika ditemukan suatu blok bebas, maka blok tersebut akan dibagi menjadi dua, yang satu
dialokasikan dan yang lain akan dipindahkan ke daftar yang di bawahnya. Alokasi ini ditangani
oleh page allocator yang akan memanggil system call kmalloc() yang kemudian akan
memerintahkan kernel untuk membagi blog-blog yang ada.

Contoh alokasi memori dengan algoritma Buddy

Kekurangan dari algoritma ini ialah kurang efisien dalam pemakaiannya. Karena konsep
kerjanya yang akan membagi 2 tiap blok, maka jika tersedia memori sebesari 1MB setiap blok
yang akan digunakan akan berukuran 512 KB, sehingga akan terjadi ketidakefisienan jika proses
hanya membutuhkan memori 256 KB saja.

2. Algoritma Slab
Alokasi Slab digunakan dengan tujuan mengalokasikan struktur data (obyek) kernel yang
dibutuhkan di memori fisik untuk menjalankan proses tertentu. Alokai ini menggunakan
algoritama slab yaitu dengan cara membentuk slab dari halaman-halaman memori fisik yang
berdekatan. Algoritma ini ditangani oleh slab allocator.sebuah cache pada disk biasanya terdiri
dari satu atau lebih slab dan diisi oleh beberapa obyek yan terbentuk dari intantiasi struktur
data kernel yang telah direpresentasikan oleh cache yang bersangkutan.
Tiap slab yang ada dapat memiliki status sebagai berikut :
- Full ; yaitu saat semua obyek dalam slab telah used
- Empty ; yaitu saat semua obyek di dalam slab sedang free
- Partial ; terdapat obyek yang terpakai dan juga used

Ketika sebuah cache dibentuk maka semua obyek di dalamnya akan berstatus free, statu
tersebut akan berubah menjadi used ketika terjadi permintaan dari suatu proses. Selanjutnya
obyek-oyek dengan status used yang talah dikelompokkan ke dalam slab-slab akan dipetakan
dari cache ke dalam memori fisik.

Contoh alokasi memori dengan algoritma Slab

Pada algoritma slab memori fisik tidak perlu difragmentasi karena ukuran obyek-obyek
tersebut telah ditetapkan sesuai dengan yang dibutuhkan oleh proses. Selain itu, karena kerja
cache yang dibentuk pada disk akan didayagunakan dengan baik, permintaan oleh memori
dapat cepat terpenuhi.

Selain kedua algoritma di atas, Linux juga menggunakan variasi dari algoritma clock. Prinsip
kerjanya ialah pada batas atas dan batas bawah halaman bebas yang ada. Thread akan
dijalankan secara periodik, jika jumlah halaman yang bebas kurang dari batas atas halaman
bebas, maka thread tersebut akan membebaskan 3 halaman. Sedangkan juka halaman yang
bebas kurang dari batas bawah halaman bebas, maka thread akan membebaskan 6 halaman dan
tidur untuk beberapa saat sebelum berjalan kembali.

Referensi :

http://bebas.vlsm.org/v06/Kuliah/SistemOperasi/BUKU/SistemOperasi-4.X-2/ch09.html

Anda mungkin juga menyukai