MANAJEMEN MEMORI Kelompok 115-28: Agung Widiyarto(1204000068) Fahrurrozi(1204000319) Reynaldo(120400075Y)
MANAJEMEN MEMORI A. Latar belakang B. Address binding C. Ruang alamat logika dan fisik D. Pemanggilan dinamis E. Dynamic Linking dan Shared Library F. Overlays
Latar Belakang Setiap proses yang akan dijalankan harus melalui memori terlebih dahulu. Kumpulan proses yang ada pada disk harus menunggu dalam antrian (input queue) sebelum dibawa ke memori dan dieksekusi. Program melalui beberapa langkah sebelum dijalankan.
Address Binding Binding instruksi dan data ke memori dapat dapat terjadi dalam tiga cara yang berbeda: - Compile time: Jika kita tahu bahwa pada waktu mengcompile, lokasi di memori sudah diketahui, maka kode yang absolut dapat dibuat. Kita harus meng-compile ulang kode jika lokasi berubah. - Load time: Kita harus membuat kode alamat untuk ditempatkan di memori jika pada saat meng-compile kita tidak tahu proses akan ditempatkan dimana pada memori. - 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.
Ruang alamat logika dan fisik Alamat Logika adalah alamat yang dibentuk di CPU Alamat fisik adalah alamat yang tersedia di memori utama fisik Kumpulan alamat logika yang dibuat oleh program adalah ruang alamat logika Memory Managemen Unit(MMU)
Logical-versus Physical- Address Space Logical Address(Virtual address): alamat memori yang dihasilkan oleh CPU. Physical address: alamat memori yang sebenarnya. Logical-address space: kumpulan alamat virtual yang dihasilkan oleh suatu program. Physical-address space: kumpulan alamat fisik memori yang berkorespondensi dengan alamat virtual.
Logical-versus Physical- Address Space Hardware yang memetakan alamatalamat virtual ke alamat-alamat yang sebenarnya(fisik) adalah Memory Management Unit (MMU). Setiap alamat virtual yang akan diakses ke memori akan ditambahkan suatu nilai yang berasal dari relocation register yang berada di MMU.
Dynamic Loading Untuk meningkatkan utilitas memori, hanya routine yang diperlukan saja yang di-load ke memori. Mekanisme ini disebut Dynamic Loading. Dynamic Loading dapat digunakan untuk mengatasi kasus-kasus yang jarang terjadi / pengeksekusian program besar.
Dynamic Linking Digunakan di system library Konsep hampir sama dengan dynamic Loading Caranya yaitu dengan memasukkan stub ke setiap reference dari library rutin Stub adalah small piece of code yang mengalokasian library routin yang dimaksud Dapat pula digunakan untuk library updates Tidak semua OS menggunakan dynamic linking
Cara Kerja: Ketika sebuah stub dieksekusi, ia memeriksa apakah suatu routine yang dibutuhkan sudah ada dimemory Jika tidak, maka program akan meload routin tersebut ke memory Cara lain, stub menggantikan dirinya dengan alamat dari routine tersebut
Overlays Latar Belakang: Size dari proses yang ingin dieksekusi lebih besar dari alokasi memory untuk proses tersebut
Solusi: Overlays (cont'd) Overlays memungkinkan proses lebih besar daripada jumlah memory yang dialokasikan untuknya. Idenya yaitu dengan menyimpan di memory hanya instruksi dan data yang dibutuhkan pada satu waktu. Ketika instruksi lain dibutuhkan, maka ia diload kedalam space sebelumnya dari instruksi yang sudah tidak dibutuhkan lagi
Contoh: Pass 1 : 80kb Pass 2 : 60kb Symbol table : 20kb Common routines : 30kb Memory availabe : 150kb
Symbol Table 20kb 80kb Common routines Overlay driver 30kb 10kb 60kb Pass 1 Pass 2