PERTEMUAN KE-17 PERKULIAHAN SISTEM OPERASI By : Nanda Prasetia, ST
Manajemen memori (Lanjutan-1)
Address Binding Address binding adalah aktivitas translasi alamat. Translasi alamat terjadi pada saat : Kompilasi (compile time) Alokasi ke memori utama (loading-time) Eksekusi (execution time)
Gambar 5.4
1. Compile time Jika lokasi kode instruksi atau data program di memori sudah ditetapkan dengan pasti sebelumnya maka pada saat kompilasi program, alamat fisik dapat dituliskan dalam kode program. Konsekuensinya adalah pada saat program di-load ke memori, program harus diletakkan pada lokasi tertentu dimemori yang bersesuaian, dan tidak boleh direlokasi selama eksekusi.
2. Loading time Address binding pada saat compile time membuat alokasi program ke memori utama menjadi sangat tidak fleksibel, karena kode program hanya dapat diletakkan pada lokasi yang sudah ditentukan pada saat kompilasi. Untuk mengatasi hal ini, proses address binding dapat dilakukan pada saat loading program ke memori utama. Hasil kompilasi program yang disimpan sebagai suatu berkas hanya berisi alamat relatif. Ketika kode program akan dialokasikan ke memori utama maka alamat-alamat relatif tersebut ditranslasi ke alamat fisik sesuai lokasi tempat program akan diletakkan.
Kelemahan address binding pada saat loading time adalah program yang sudah di-load di memori tidak fleksibel untuk di relokasi pada saat eksekusi.
3. Execution time Address binding dapat pula dilakukan pada saat eksekusi kode instruksi program. Jadi, baik alamat referensi pada kode instruksi program yang tersimpan pada berkas program maupun pada kode instruksi program yang dialokasikan ke memori utama hanyalah berupa alamat logika. Alamat logika ini akan ditranslasi ke alamat fisik ketika instruksi yang mengandung alamat. Umumnya address binding pada saat execution time membutuhkan dukungan perangkat keras seperti MMU (memory management unit). Unit ini bertanggung jawab untuk mencatat informasi yang berkaitan dengan alokasi ke memori utama dan juga membantu proses perhitungan translasi alamat logika ke alamat fisik pada saat eksekusi.
3. Manajemen memori pada sistem monoprograming Ciri-ciri manajemen memori pada sistem monoprogramming : Hanya ada satu proses pada suatu saat dan menggunakan seluruh area memori pengguna. Program dimuatkan seluruhnya ke memori dari disk/tape. Pada saat eksekusi, program mengambil kendali seluruh sumber daya komputer. Alokasi memori dilakukan secara berurutan, yang artinya image proses dari program harus menempati area memori yang utuh.
3.1 Alokasi memori Seluruh area memori yang tidak digunakan oleh sistem operasi dan device driver akan dialokasikan semuanya ke proses pengguna. Ada berbagai kemungkinan konfigurasi ruang alamat memori fisik pada sistem monoprogramming seperti gambar 5.5
Gambar 5.5
Gambar 5.5 (a) Memperlihatkan konfigurasi yang cukup umum, yaitu ruang alamat memori sistem komputer yang meliputi seluruh ruang alamat memori utama yang volatile (RAM). Sistem operasi dan proses aplikasi pengguna berbagi pakai kapasitas RAM. Gambar 5.5 (b) Sistem operasi disimpan pada suatu ROM (read only memory) dan ruang alamat memori komputer meliputi kapasitas ruang alamat ROM dan RAM. Gambar 5.5 (c) Ruang alamat memori sistem komputer meliputi kapasitas ruang alamat RAM ditambah dengan kapasitas ROM. ROM digunakan untuk menyimpan kode instruksi sistem operasi sedangkan RAM digunakan untuk program aplikasi maupun bagian lain dari sistem operasi.
3.2 Proteksi memori Kode instruksi dan data dari sistem operasi butuh dilindungi dari akses langsung ataupun modfikasi oleh proses aplikasi pengguna.
Gambar 5.6
Penjelasan gambar 5.6 Proteksi dilakukan dengan bantuan register relokasi dan register pembatas (limit register). Register pembatas berisi jangkauan atau lebar ruang alamat logika dari proses aplikasi pengguna. Jika alamat logika yang diakses lebih besar dari nilai limit register maka sinyal addressing error interrupt akan dibangkitkan. Sedangkan akses ke bagian memori OS dicegah dengan mekanisme relokasi, dimana register relokasi diisi dengan alamat fisik awal dari proses. Translasi alamat proses aplikasi pengguna melibatkan operasi penjumlahan alamat logika dengan nilai register relokasi ini sehingga alamat fisik tidak mungkin mereferensi ke bagian memori sistem operasi yang berada pada alamat bawah.
4. Manajemen memori pada sistem multiprograming Manajemen pada sistem multiprograming memiliki karakteristik sebagai berikut : Terdapat sejumlah proses yang menempati memori utama pada setiap saat. Image proses dari program dapat dimuat seluruhnya atau sebagian saja ke memori utama. Alokasi memori utama ke proses dapat berurutan ataupun tidak berurutan. Dimungkinkan seluruh atau sebagian image proses berpindah lokasi memori utama selama eksekusinya. Dimungkinkan suatu lokasi memori utama diakses bersama oleh sejumlah proses atau disebut dengan memory sharing.
Tabel 5.1 Berbagai pengategorian alokasi memori
Perbedaan antara alokasi berurut dan tak berurut Gambar 5.7 (a) Alokasi berurut berarti seluruh potongan image proses dari program harus diletakkan pada bagian yang berurut di memori fisik dan tidak ada potongan yang tersebar ke lokasi yang berjauhan. Gambar 5.7 (b) Alokasi tak berurut mengijinkan potongan image proses dari program dialokasikan pada bagian yang berjauhan di memori fisik.
Gambar 5.7
4.1 Pengalokasian berurut dengan partisi statis Gambar 5.8
Gambar 5.9
Pengalokasian berurut dengan partisi dinamis Gambar 5.10 Ilustrasi terjadinya fragmentasi eksternal
Gambar 5.11 Perbandingan kinerja beberapa cara memori compaction