Telah dijelaskan sebelumnya bahwa alamat yang terdapat dalam kode instruksi tidak selamanya berupa alamat fisik, tapi dapat berupa alamat logika yang harus ditranslasi terlebih dahulu. Aktivitas translasi alamat ini disebut juga dengan istilah address binding.
Translasi alamat dapat terjadi pada saat kompilasi (compile time), pada saat alokasi ke memori utama (loading-time), ataupun pada saat eksekusi (execution time) seperti ditunjukkan 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 absolut (fisik) dapat dituliskan dalam kode program. Konsekuensinya adalah pada saat program di-load ke memori, program harus diletakkan pada lokasi tertentu di memori yang bersesuaian, dan tidak boleh direlokasi selama eksekusi. Sistem yang menggunakan pengalamatan fisik melakukan address binding pada saat kompilasi program.
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 direlokasi pada saat eksekusi. Selain itu, seluruh bagian program haruslah diletakkan pada are memori utama yang utuh.
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 di memori utama hanyalah berupa alamat logika. Alamat logika ini akan ditranslasi ke alamat fisik ketika intruksi yang mengandung alamat referensi tersebut dieksekusi oleh prosesor.
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.
Gambar 5.4 Kemungkinan saat terjadinya address binding
Tidak ada komentar:
Posting Komentar