Berbagi Memori

Berbagi halaman atau berbagi memori merupakan salah satu teknik yang dapat digunakan untuk menghemat pengalokasian memori. Keuntungan yang dapat diperoleh dari teknik berbagi halaman ini adalah suatu kode dapat digunakan secara bersama-sama. Hal ini sangatlah penting dalam kondisi berbagi waktu (time-sharing environment). Bayangkan jika sebuah sistem harus menangani 40 pengguna. Masing-masing dari pengguna tersebut menggunakan sebuah text editor. Jika text editor tersebut terdiri dari 150 KB kode dan 50 KB data maka ruang memori yang dibutuhkan adalah 8000 KB. Jika text editor tersebut adalah kode reentrant (programming routine yang dapat digunakan oleh banyak program secara simultan) maka ia dapat digunakan secara bersama-sama oleh beberapa program (dapat dibagi). Ilustrasi berbagi halaman ini dapat dilihat pada gambar berikut ini:

Gambar 2.5. Contoh Berbagi Halaman

Contoh Berbagi Halaman

Kode reentrant dapat dieksekusi oleh 2 atau lebih proses dalam waktu yang bersamaan. Tiap-tiap proses tersebut memiliki salinan dari register dan tempat penyimpanan data untuk memperoleh data proses yang akan dieksekusi. Oleh karena itu 2 proses berbeda akan memiliki data yang berbeda pula.

Dalam berbagi halaman, hanya satu salinan dari editor yang akan disimpan dalam memori. Tiap halaman tabel pengguna akan memetakan editornya masing-masing ke alamat fisik yang sama namun halaman data mereka akan dipetakan ke alamat fisik yang berbeda-beda. Sehingga untuk kasus 40 pengguna diatas, kita hanya butuh satu buah salinan dari editor (150 KB) serta 40 salinan masing-masing sebesar 50 KB. Maka jumlah ruang memori yang dibutuhkan adalah 2.150 KB yang jauh lebih sedikit dibandingkan dengan 8.000 KB jika tidak menggunakan teknik berbagi memori.

Program-program lain yang dapat dilakukan pembagian memori contohnya kompilator, window systems, run-time libraries, sistem basis data dan lain-lain.