Latar Belakang
Untuk dpt dieksekusi, program harus
dibawa ke memori dan menjadi suatu
proses
Tugas sistem operasi:
mengatur peletakan banyak proses pada suatu
memori
Meminimalkan waktu akses memori utama
Bagaimana urutan alamat memori yang
dibuat oleh proses ?
Binding Instruksi & Data ke Memori
Binding alamat instruksi dan data ke alamat
memori dapat terjadi dalam 3 tahap yg berbeda:
Compile time: jika lokasi memori tlh diketahui
sebelumnya, kode absolut dpt dibangkitkan; kompilasi
ulang kode jika lokasi awal berubah
Load time: harus membangkitkan kode relocatable jika
lokasi memori tidak diketahui pada saat kompilasi
Execution time: Binding ditunda hingga run time jika
proses dapat dipindahkan dari satu segmen memori ke
segmen lainnya selama eksekusi berlangsung; butuh
dukungan H/W utk pemetaan alamat
Binding Instruksi & Data ke Memori
Dynamic Loading
Rutin tdk di-load hingga dipanggil
Rutin yang tidak digunakan tidak di-load
penggunaan ruang memori lebih baik
Bermanfaat jika banyak kode yang
diperlukan untuk menangani kasus yg
jarang terjadi
Tidak ada dukungan khusus dari OS yg
diperlukan; diimplementasikan melalui
rancangan program
Overlays
Diperlukan jika ukuran proses lebih besar
dari memori yg dialokasikan untuknya
Idenya untuk menjaga agar di dalam
memori berisi hanya instruksi dan data
yang dibutuhkan dalam satuan waktu.
Diimplementasikan oleh user, tidak ada
dukungan khusus dari OS
Rutinnya dimasukkan ke memori secara
bergantian
Overlays
Ruang Alamat Logika vs Fisik
Alamat Logika alamat yang dibentuk di
CPU, disebut juga alamat virtual.
Alamat fisik alamat yang telihat
(diketahui) oleh memori
CompileTime dan Load Time
menghasilkan daerah dimana alamat
logika dan alamat fisik sama
Execution Time menghasilkan alamat fisik
dan logika yang berbeda
Ruang Alamat Logika vs Fisik
Kumpulan alamat logika yang dibuat oleh
program adalah ruang alamat logika
Kumpulan alamat fisik yang
berkorespondensi dengan alamat logika
disebut ruang alamat fisik
Untuk mengubah dari alamat logika ke
alamat fisik diperlukan suatu perangkat
keras yang bernama Memory
Management Unit (MMU)
Memory Management Unit
Memory Management Unit
MMU: perangkat hardware yg memetakan
alamat virtual ke alamat fisik
Pada MMU, nilai di register relokasi
ditambahkan ke setiap alamat yg
dibangkitkan oleh proses user pd saat
dikirim ke memori
Program user hanya berurusan dgn
alamat logika, tidak pernah dgn alamat
fisik yg sebenarnya
Swapping
Proses bisa di-swap sementara dari memori ke backing store,
dan nantinya dibawa kembali untuk meneruskan eksekusi
Backing store – fast disk yg cukup besar utk mengakomodasi
salinan semua image memori utk semua user; harus
menyediakan akses langsung ke memori image ini
Roll out, roll in – varian swapping yg digunakan utk algoritma
penjadwalan berbasis prioritas; proses dgn prioritas lebih
rendah di-swap out sehingga proses prioritas lebih tinggi dpt
di-load dan dieksekusi
Kebanyakan waktu swap terpakai utk melakukan transfer;
waktu transfer total terkait langsung dgn banyaknya memori
yg di-swap
Versi modifikasi dari swapping digunakan pd berbagai sistem,
seperti UNIX dan Microsoft Windows
Swapping
Alokasi Memori Berkesinambungan
Alokasi memori berkesinambungan berarti
alamat memori diberikan kepada proses
secara berurutan dari kecil ke besar.
Keuntungan :
Sederhana
Cepat
Mendukung proteksi memori
Kerugian :
apabila tidak semua proses dialokasikan di
waktu yang sama, akan menjadi sangat tidak
efektif sehingga mempercepat habisnya
memori.
Alokasi Memori Berkesinambungan
Alokasi memori berkesinambungan dapat
dilakukan pada sistem partisi banyak maupun
sistem partisi tunggal
Sistem partisi tunggal alamat memori yang
akan dialokasikan untuk proses adalah alamat
memori pertama setelah pengalokasian
sebelumnya
Sistem partisi banyak sistem operasi
menyimpan informasi tentang semua bagian
memori yang tersedia untuk dapat diisi oleh
proses-proses (disebut lubang)
Sistem Partisi Banyak