• Tidak ada hasil yang ditemukan

Gambar 2.5. 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.

2.7. Rangkuman

Memori merupakan salah satu sumber daya yang penting dalam pengeksekusian sebuah proses. Agar suatu proses dapat dieksekusi, ia harus terletak di dalam memori sebelum CPU mengambil instruksi-instruksi pada alamat yang ditunjuk oleh program counter.

Swapping menukarkan sebuah proses keluar dari memori untuk sementara waktu ke sebuah

penyimpanan sementara (biasanya berupa sebuah fast disk dengan kapasitas yang dapat menampung semua salinan dari semua gambaran memori serta menyediakan akses langsung ke gambaran tersebut) dengan sebuah proses lain yang sedang membutuhkan sejumlah alokasi memori untuk dieksekusi. Swapping roll out, roll in menggunakan algoritma berbasis prioritas dimana ketika proses dengan prioritas lebih tinggi tiba maka memory manager akan mengeluarkan proses dengan prioritas yang lebih rendah serta memasukkan proses dengan prioritas yang lebih tinggi tersebut. Pemetaan memori memetakan alamat logis yang dihasilkan CPU ke alamat fisik yang nantinya akan dibawa ke memori pada saat akan dieksekusi.Pada pemetaan memori ini terdapat limit register yang terdiri dari rentang nilai alamat logis (range of logical address). Dengan adanya limit register dan register relokasi, tiap alamat logis haruslah lebih kecil dari limit register. Proses pemetaan dilakukan oleh MMU (Memory Management Unit) dengan menjumlahkan nilai register relokasi ke alamat logis

Partisi memori ada dua jenis yaitu statis (tetap) dan dinamis (berubah-ubah). Pada partisi dinamis ada beberapa teknik untuk memenuhi permintaan berukuran n dengan lubang-lubang yang tersedia yaitu first fit (menemukan lubang pertama yang cukup besar), next fit (sama seperti first fit namun pencarian tidak dari awal), best fit (lubang terkecil yang cukup), dan worst fit (lubang terbesar yang ada dalam daftar).

Fragmentasi merupakan peristiwa munculnya lubang-lubang kecil yang tidak cukup menampung permintaan proses. Terdiri dari dua jenis, yaitu eksternal (biasanya pada partisi dinamis dengan total kapasitas lubang-lubang cukup menampung sebuah proses namun letaknya terpisah-pisah, solusinya dengan penghalaman, segmentasi dan pemadatan) serta internal (biasanya pada partisi tetap dengan adanya kapasitas sisa sebuah lubang yang tidak dapat digunakan karena menjadi milik proses yang dialokasikan lubang tersebut).

Berbagi halaman memungkinkan beberapa proses untuk mengakses kode yang sama namun dengan data yang berbeda-beda. Hal ini jelas akan mengurangi jumlah ruang memori yang dibutuhkan untuk memenuhi permintaan beberapa proses tersebut.

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.

[WEBPCMag] The Computer Language Company. 2007. PCMag http://www.pcmag.com/

encyclopedia_term/ 0,2542,t=reentrant+code&i=50332,00.asp . Diakses 29 Maret 2007.

Bab 3. Pemberian Halaman

3.1. Pendahuluan

Pada bab-bab sebelumnya telah dijelaskan bahwa memori harus digunakan dengan baik sehingga dapat memuat proses dalam satu waktu. Dalam implementasinya telah dijelaskan bahwa terdapat dua macam alamat memori yaitu alamat logika dan alamat fisik. Alamat logika (logical address) adalah alamat yang dihasilkan oleh CPU atau sering disebut virtual address. Sedangkan alamat fisik

(physical address) adalah alamat yang terdapat di memori. Salah satu cara pengalokasian memori

adalah dengan contiguous memory allocation di mana alamat yang diberikan kepada proses berurutan dari kecil ke besar. Selanjutnya sangat mungkin terjadi fragmentasi, yaitu munculnya lubang-lubang yang tidak cukup besar untuk menampung permintaan dari proses. Fragmentasi terdiri dari 2 macam, yaitu fragmentasi intern dan fragmentasi ekstern. Fragmentasi ekstern terjadi apabila jumlah seluruh memori kosong yang tersedia memang mencukupi untuk menampung permintaan tempat dari proses, tetapi letaknya tidak berkesinambungan atau terpecah menjadi beberapa bagian kecil sehingga proses tidak dapat masuk. Sedangkan fragmentasi intern terjadi apabila jumlah memori yang diberikan oleh penjadualan CPU lebih besar daripada yang diminta proses dan fragmentasi ini tidak dapat dihindari.

Salah satu solusi untuk mencegah fragmentasi ekstern adalah dengan paging. Paging adalah suatu metode yang memungkinkan suatu alamat fisik memori yang tersedia dapat tidak berurutan (non

contiguous).

3.2. Metode Dasar

Metode dasar dari paging adalah dengan memecah memori fisik menjadi blok-blok yang berukuran tertentu yang disebut dengan frame dan memecah memori logika menjadi blok-blok yang berukuran sama dengan frame yang disebut dengan page. Selanjutnya sebuah page table akan menerjemahkan alamat logika ke alamat fisik.

Alamat logika terdiri dari 2 bagian yaitu nomor page dan nomor offset. Bila digunakan ruang alamat logika 2 pangkat m dan ukuran page 2 pangkat n bytes, maka m-n bit paling kiri menunjukkan nomor page dan n bit paling kanan menunjukkan offset.