Jumat, 15 Oktober 2010

MANAJEMEN MEMORY


Memori merupakan pusat kegiatan pada sebuah komputer, karena setiap proses yang akan
dijalankan harus melalui memori terlebih dahulu. CPU mengambil instruksi dari memori sesuai yang
ada pada program counter. Instruksi memerlukan proses memasukkan/menyimpan ke alamat di
memori. Tugas sistem operasi adalah mengatur peletakan proses pada suatu memori. Algoritma
untuk manajemen memori ini bervariasi dari yang menggunakan pendekatan primitif pada mesin
sampai dengan pemberian halaman (page) dan strategi segmentasi (segment). Memori harus dapat
digunakan dengan baik, sehingga dapat memuat banyak proses pada suatu waktu.
Address Binding
Umumnya sebuah program ditempatkan dalam disk dalam bentuk berkas biner yang dapat dieksekusi.
Sebelum dieksekusi, sebuah program harus ditempatkan di memori terlebih dahulu. Kumpulan proses
yang ada pada disk harus menunggu dalam antrian (input queue) sebelum dibawa ke memori dan
dieksekusi. Prosedur penempatan yang biasa dilakukan adalah dengan memilih salah satu proses
yang ada di input queue, kemudian proses tersebut ditempatkan ke memori. Sebelum dieksekusi,
program akan melalui beberapa tahap. Dalam setiap tahap alamat sebuah program akan
direpresentasikan dengan cara yang berbeda. Alamat di dalam sebuah sumber program biasanya
dalam bentuk simbol-simbol.
Gambar 1 Multistep processing dari program user
Sebuah kompilator akan memetakan simbol-simbol ini ke alamat relokasi. Linkage editor akan
memetakan alamat relokasi ini menjadi alamat absolut. Binding adalah pemetaan dari satu ruang
alamat ke alamat yang lain. Binding instruksi dan data ke memori dapat dapat terjadi dalam tiga cara
yang berbeda:
a. Compilation Time. Jika kita tahu dimana proses akan ditempatkan di memori pada saat
mengkompilasi, maka alamat absolut dapat dibuat. Kita harus mengkompilasi ulang kode jika
lokasi berubah.
b. Load Time. Kita harus membuat kode relokasi jika pada saat mengkompilasi kita tidak
mengetahui proses yang akan ditempatkan dalam memori. Pada kasus ini, binding harus ditunda
sampai load time.
c. Execution Time. Binding harus ditunda sampai waktu proses berjalan selesai jika pada saat
dieksekusi proses dapat dipindah dari satu segmen ke segmen yang lain di dalam memori. Kita
butuh perangkat keras khusus untuk melakukan ini.
2
Pengalamatan Logika dan Fisik
Alamat logika adalah alamat yang dihasilkan oleh CPU, disebut juga alamat virtual. Alamat fisik
adalah alamat memori yang sebenarnya. Pada saat waktu kompilasi dan waktu pemanggilan, alamat
fisik dan alamat logika adalah sama. Sedangkan pada waktu eksekusi menghasilkan alamat fisik dan
alamat virtual yang berbeda.
Kumpulan alamat virtual yang dibuat oleh CPU disebut ruang alamat virtual. Kumpulan alamat fisik
yang berkorespondensi dengan alamat virtual disebut ruang alamat fisik. Untuk mengubah alamat
virtual ke alamat fisik diperlukan suatu perangkat keras yang bernama Memory Management Unit
(MMU).
Register utamanya disebut register relokasi. Nilai pada register relokasi akan bertambah setiap alamat
dibuat oleh proses pengguna dan pada waktu yang sama alamat ini dikirimkan ke memori. Ketika ada
program yang menunjuk ke alamat memori, kemudian mengoperasikannya, dan menaruh lagi ke
memori, akan dilokasikan oleh MMU karena program pengguna hanya berinteraksi dengan alamat
logika. Pengubahan alamat virtual ke alamat fisik merupakan pusat dari manajemen memori.
Gambar 2 Relokasi dinamis menggunakan register relokasi
Pemanggilan Dinamis (Dynamic Loading)
Seluruh proses dan data berada di memori fisik ketika dieksekusi. Ukuran dari memori fisik terbatas.
Untuk mendapatkan penggunaan ruang memori yang baik, kita melakukan pemanggilan secara
dinamis. Dengan pemanggilan dinamis, sebuah rutin tidak akan dipanggil jika tidak diperlukan.
Semua rutin diletakkan dalam disk dengan format yang dapat dialokasikan ulang. Progam utama
ditempatkan dalam memori dan dieksekusi. Jika sebuah rutin memanggil rutin lainnya, maka akan
diperiksa terlebih dahulu apakah rutin tersebut ada di dalam memori atau tidak, jika tidak ada maka
linkage loader akan dipanggil untuk menempatkan rutin-rutin yang diinginkan ke memori dan
memperbaharui tabel alamat program untuk menyesuaikan perubahan. Kemudian kendali diberikan
pada rutin yang baru dipanggil tersebut.
Keuntungan dari pemanggilan dinamis adalah rutin yang tidak digunakan tidak pernah dipanggil.
Metode ini berguna untuk kode dalam jumlah banyak, ketika muncul kasus-kasus yang tidak lazim,
seperti rutin yang salah. Dalam kode yang besar, walaupun ukuran kode besar, tapi yang dipanggil
dapat jauh lebih kecil.
Pemanggilan Dinamis tidak memerlukan bantuan sistem operasi. Ini adalah tanggung jawab para
pengguna untuk merancang program yang mengambil keuntungan dari metode ini. Sistem operasi
dapat membantu pembuat program dengan menyediakan kumpulan data rutin untuk
mengimplementasi pemanggilan dinamis.

0 comments:

Posting Komentar