Proteksi Perangkat Keras Konsep Dasar Memori

Gambar 1.4. Gambar Relokasi Dinamis dengan Menggunakan Relocation Register

1.5. Pemuatan Dinamis

Ukuran dari memori fisik terbatas. Supaya utilitas memori berjalan dengan baik, maka kita menggunakan pemuatan dinamis. Dengan cara ini, routine-routine hanya akan dipanggil jika dibutuhkan. Ilustrasi sebagai berikut, semua routine disimpan di disk dalam format yang dapat dialokasikan ulang relocatable load format. Program utama diletakkan di memori dan dieksekusi. Ketika sebuah routine memanggil routine yang lain, hal pertama yang dilakukan adalah mengecek apakah ada routine lain yang sudah di-load. Jika tidak, relocatable linking loader dipanggil untuk menempatkan routine yang dibutuhkan ke memori dan memperbaharui tabel alamat program. Lalu, kontrol diberikan pada routine baru yang dipanggil. Keuntungan dari pemuatan dinamis adalah routine yang tidak digunakan tidak pernah dipanggil. Metode ini berguna pada kode yang berjumlah banyak, ketika muncul kasus seperti routine yang salah. Walaupun ukuran kode besar , porsi yang digunakan bisa jauh lebih kecil. Sistem operasi tidak membuat mekanisme pemuatan dinamis, tetapi hanya menyediakan routine-routine untuk menerapkan mekanisme ini. User-lah yang merancang programnya sendiri agar programnya menggunakan sistem pemuatan dinamis.

1.6. Linking Dinamis

Pustaka bisa bersifat statik, dikenal dengan archive yang terdiri dari kumpulan routine yang diduplikasi ke sebuah program oleh compiler, linker, atau binder, sehingga menghasilkan sebuah aplikasi yang dapat dieksekusi bersifat stand alone atau dapat berjalan sendiri. Compiler menyediakan standard libraries, misalnya C standard library, tetapi programmer bisa juga membuat pustakanya untuk digunakan sendiri atau disebarkan. Pustaka statis ini menyebabkan memori menjadi berat. Oleh karena itu, seiring dengan perkembangan teknologi, terdapat pustaka yang bersifat dinamis. Mekanismenya disebut linking dinamis, sedangkan pustakanya disebut dynamically linked library. Linking Dinamis artinya data kode di pustaka tidak diduplikasi ke dalam program pada compile time, tapi tinggal di file terpisah di disk Linker hanya membutuhkan kerja sedikit pada compile time. Fungsi linker adalah mencatat apa yang dibutuhkan oleh pustaka untuk eksekusi dan nama indeks atau nomor. Kerja yang berat dari linking akan selesai pada load time atau selama run time. Kode penghubung yang diperlukan adalah loader. Pada waktu yang tepat, loader menemukan pustaka yang relevan di disk dan menambahkan data dari pustaka ke proses yang ada di ruang memori. Keuntungan dari linking dinamis adalah memori program tidak menjadi berat.

1.7. Pustaka Bersama

6 Satu pustaka dipakai bersama-sama oleh banyak program pada waktu yang bersamaan. Sekumpulan data dapat diperbaharui versinya dan semua program yang menggunakan pustaka tersebut secara otomatis menggunakan versi baru. Metode yang dipakai adalah linking dinamis. Tanpa adanya metode ini, semua program akan melakukan proses linking ulang untuk dapat mengakses pustaka yang baru, sehingga program tidak bisa langsung mengeksekusi yang baru, informasi versi terdapat di program dan pustaka. Lebih dari satu versi dari pustaka bisa masuk ke memori sehingga setiap program menggunakan informasi versinya untuk memutuskan versi mana yang akan digunakan dari salinan pustaka.

1.8. Rangkuman

Memori merupakan sumber daya yang paling penting untuk dijaga sebaik-baiknya karena merupakan pusat dari kegiatan di komputer. Terdapat proteksi perangkat keras yang dilakukan dengan menggunakan dua register, yaitu base dan limit register sehingga proses hanya bisa mengakses di alamat yang dilegalkan. Alamat yang dihasilkan oleh CPU disebut alamat logika yang kemudian dipetakan oleh MMU menjadi alamat fisik yang disimpan di memori. Untuk mendapatkan utilitas memori yang baik, maka diperlukan metode pemuatan dinamis, linking dinamis, dan pustaka bersama. Rujukan [Silberschatz2005] Avi Silberschatz, Peter Galvin, dan Grag Gagne. 2005. Operating Systems Concepts. Seventh Edition. John Wiley Sons. [Tanenbaum1997] Andrew S Tanenbaum dan Albert S Woodhull. 1997. Operating Systems Design and Implementation. Second Edition. Prentice-Hall. [WEBAmirSch2000] Yair Amir dan Theo Schlossnagle. 2000. Operating Systems 00.418: Memory Management – http:www.cs.jhu.edu ~yairamir cs418 os5 . Diakses 29 Mei 2006. [WEBFunkhouser2002] Thomas Funkhouser. 2002. Computer Science 217 Introduction to Programming Systems: Memory Paging – http:www.cs.princeton.edu courses archive spring02 cs217 lectures paging.pdf . Diakses 28 Juni 2006. [WEBGottlieb2000] Allan Gottlieb. 2000. Operating Systems: Page tables – http:allan.ultra.nyu.edu ~gottlieb courses 1999-00-spring os lecture-11.html . Diakses 28 Juni 2006. [WEBSolomon2004] Marvin Solomon. 2004. CS 537 Introduction to Operating Systems: Lecture Notes Part 7 – http:www.cs.wisc.edu ~solomon cs537 paging.html . Diakses 28 Juni 2006. [Wikipedia2007] Anonim. 2007. Shared Library – http:en.wikipedia.orgwikiShared_library . Diakses 16 maret 2007. [KUR2003] David A.S, Habib A.M, dan Endah W. 2003. Makalah IF3191 Sistem Operasi: Manajemen Memori– kur2003.if.itb.ac.idfileFKML-K1-07.pdf . Diakses 16 maret 2007. [Suny2005] Suny. 2005. Address Binding–