You are on page 1of 7

ORGANISASI MEMORI: VIRTUAL MEMORY

Virtual memory (VM) mendeskripsikan suatu hirarki memori minimal dua tingkat, yang dikelola oleh operating system (OS) sehingga pemrogram memandang seperti memori utama tunggal yang besar dan dapat dialamati secara langsung. Terdapat tiga alasan utama penggunaan virtual memory. 1. Untuk membebaskan pemrogram dari kebutuhan mengadakan alokasi penyimpanan dan untuk mengijinkan pemakaian bersama ruang memori antar pemakai yang berbeda secara efisien. 2. Menciptakan program yang tidak tergantung pada kapasitas dan konfigurasi sistem memori yang digunakan selama eksekusi. 3. Untuk mencapai tingkat (laju) akses yang tinggi dan biaya per bit yang rendah dimungkinkan menggunakan hirarki memori. Virtual memory menggunakan hirarki dua tingkat terdiri dari memori utama M1 dengan kapasitas S1 dan memori sekunder M2 dengan kapasitas S2. Para pemakai biasa, yang hanya dapat memprogram dengan bahasa tingkat tinggi, memandang sistem sebagai memori virtual atau memori lojik tunggal dengan kapasitas yang hampir tidak terbatas. Virtual memory ditunjuk oleh seperangkat alamat lojik L yang berasal dari pengenal (identifier) ekslisit atau implisit ditentukan di dalam program objek pemakai. Lokasi penyimpanan fisik yang tetap dalam unit memori diidentifikasi oleh seperangkat alamat fisik P. Konsep virtual memory mengacu pada kasus dimana ruang alamat lojik L jauh lebih besar (banyak) dari pada ruang alamat fisik P. Dengan demikian virtial memory dimplementasikan dengan menyediakan mekanisme otomatis untuk pemetaan alamat, dari alamat lojik L ke alamat fisik P. Untuk memperjelas uraian diatas, berikut diberikan contoh kasus.

Cotoh 5-1:
Suatu komputer memiliki field alamat 16-bit pada instruksinya dan memiliki alamat fisik (RAM) dengan kapasitas 4096 word (4 K). Program pada komputer ini dapat memiliki ruang alamat lojik atau alamat virtual sebesar 65536 word (216), dengan alamat 0, 1, 2, ...., 65535. Pada gambar 5.2 ditunjukkan dua ruang alamat tersebut. Tanpa virtual memory, pemetaan hanya dilaksanakan antara alamat lojik 4096..8191 ke alamat fisik 0..4095.

Alamat 0 4095 4096 8191 8192 12287

Virtual address 64 K Main memory 4K


Alamat 0 4095

61440 65535

Gambar 5.2 Pemetaan alamat virtual 64K ke alamat fisik 4K Bagaimana jika instruksi program melompat ke alamat 8192..12287? Pada mesin tanpa virtual memory program akan menyebabkan error trap dan menampilkan pesan Nonexistent memory refferenced dan program berhenti. Pada mesin dengan virtual memory, urutan langkah berikut ini akan terjadi: 1. Isi memori utama akan disimpan ke memori sekunder 2. Word 8192..12287 terletak di memori sekunder 3. Word 8192..12287 di muat ke memori utama 4. Peta alamat diubah untuk memetakan alamat 8192 .. 12287 ke lokasi memori 0 .. 4095 5. Eksekusi dilanjutkan, seolah-olah tidak terjadi sesuatu Teknik overlaying otomatis di atas disebut dengan paging dan potongan potongan program yang dibaca dari memori sekunder disebut pages. Pada prinsipnya kasus di atas menunjukkan bahwa program yang tersimpan di dalam meori sekunder (disk) tidak dapat seluruhnya di load ke memori utama (RAM).

5.2.1 Implementasi Paging


Ruang virtual address dibagi menjadi sejumlah page dengan ukuran yang sama. Ukuran page berkisar antara 512 sampai 4096 alamat setiap page yang umum saat ini. Ukuran page selalu kelipatan 2. Ruang alamat fisik dibagi menjadi potongan-potongan (page) dengan cara yang serupa, yang disebut dengan page frame. Ukuran page frame sama dengan ukuran page. Pada Gambar 5.2 memori utama hanya memiliki satu page frame. Pada kenyataanya, page frame dapat berjumlah puluhan, ratusan, bahkan ribuan untuk mesin yang besar. Gambar 5.3 menunjukkan cara yang mungkin untuk membagi ruang alamat 64K. Virtual memory Gambar 5.3 diimplementasikan pada tingkat 2 berkenaan dengan page table 16word. Ketika program mencoba mengacu memori ini, apakah fetch data, menyimpan 2

data, fetch instruksi atau jump, terlebih dahulu akan membangkitkan alamat 16-bit sesuai dengan alamat virtual antara 0 dan 65535. Indexing, direct addessing, ataupun teknik yang lain dapat digunakan untuk membangkitkan alamat ini. Pada contoh ini, alamat 16 bit dibagia menjadi dua, yaitu: 4 bit menunjukkan nomor virtual page dan 12 bit menunjukkan alamat di dalam page yang dipilih, seperti pada Gambar 5.4(a). Pada Gambar ini alamat 16 bit menunjukkan 12310, yang berkaitan dengan alamat 22 pada page 3. Hubungan antara page dan virtual address untuk contoh ini ditunjukkan pada Gambar 5.4(b). Bila virtual address 0dan page 3 ada pada alamat fisik 12288, maka virtual address 22 harus berada pada alamat 12310. Setelah mengetahui bahwa virtual page 3 diperlukan, operating system akan mencari dimana virtual page 3 diletakkan. terdapat sembilan kemungkinan: delapan page frame di main memory, atau di mana saja di memori sekunder, karena tidak semua virtual page dapat berada di main memory pada saat yang bersaman. Untuk mencari yang mana dari sembilan kemungkinan ini benar, operating system melihat di dalam page table, yang memiliki satu entri untuk setiap 16 virtual page.
64K Virtual address space Virtual address 0 Page 0 4096 Page 1 8192 Page 2 12288 Page 3 16384 Page 4 20480 Page 5 24576 Page 6 28672 Page 7 32768 Page 8 36864 Page 9 40960 Page10 45056 Page 11 49152 Page 12 53248 Page 13 57344 Page14 61440 Page 15 28672 Page frame 7 24576 Page frame 6 20480 Page frame 5 16384 Page frame 4 12288 Page frame 3 8192 Page frame 2 32K Main memory Main memory address

} 4K

0 Page frame 0 4096 Page frame 1

} 4K

(b)

(a)

Gambar 5.3 Pembagian page dan page frame: (a) Address space 64K dibagi menjadi 16 page masing-masing 4K (b) Main memory 32K dibagi menjadi 8 page frame masing-masing 4K 3

Virtual address 16-bit 0 1 1 0 0 0 0 0 0 0 1 0 1 1 0

4-bit nomor virtual page = 3

12-bit alamat di dalam virtual page yang dipilih = 22

(a)
Page 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 Virtual address 0 - 4095 4096 - 8191 8192 - 12287 12288 - 16383 16384 - 20479 20480 - 24575 24576 - 28671 28672 - 32767 32768 - 36863 36864 - 40959 40960 - 45055 45056 - 49151 49152 - 53247 53284 - 57343 57344 - 61439 61440 - 65535

(b)

Gambar 5.4 (a) Virtual address terdiri dari 4-bit nomor virtual page dan 12-bit offset. (b) Nomor page dan virtual address-nya. Page table contoh pada Gambar 5.5 terdiri dari 3 field. Yang pertama adalah satu bit yang menunjukkan apakah virtual page ada di main memory atau tidak. Nilai 0 berarti virtual page tidak ada di main memory, nilai 1 berarti ada di main memory. Kedua memberitahukan alamat dimana virtual page tersimpan di dalam memori sekunder (sector dan track) ketika tidak berada di main memory. Alamat ini diperlukan agar dapat ditemukan dan dibawa bila diperlukan dan kemudian dikembalikan ke tempat semula di memori sekunder ketika tidak diperlukan lagi di main memory. Ketiga adalah field 3-bit yang menunjukkan page frame apabila page berada di main memory. Jika page tidak ditemukan di main memory, field ketiga tidak berarti sehingga diabaikan.

Page Table Page 0 Page 1 Page 2 Page 3 Page 4 Page 5 Page 6 Page 7 Page 8 Page 9 Page 10 Page 11 Page 12 Page 13 Page 14 Page 15
1 jika page berada di main meory 0 jika page tidak berada di main meory

Alamat memori Page sekunder frame 001101101101 110

(b)

(a)
Gambar 5.5 (a) Page table harus berisi sebanyak virtual page yang ada; (b) Contoh page table berisi tiga field. Diasumsikan bahwa virtual page ada di dalam main memory, page frame 3-bit menentukan dimana page berada. Nomor page frame kemudian dimasukkan kedalam MAR (memory address register) pada posisi 3-bit paling kiri (MSB), dan alamat di dalam virtual page --yaitu 12 bit paling kanan--dimasukkan ke dalam MAR pada posisi 12-bit paling kanan. Dengan cara ini alamat memori utama akan terbentuk, seperti pada Gambar 5.6. Page frame 3-bit ditambah 12-bit offset memberikan alamat 15-bit, untuk mengakses main memory 32-bit.

Virtual address 16-bit 0 0 1 1 0 0 0 0 0 0 0 1 0 1 1 0 Virtual Address 12310

Virtual page 3

Alamat di dalam virtual page 3 = 22 Page frame 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

110

Page table

MAR
15-bit

Alamat fisik main memori 24598

Alamat main memory 15-bit

Gambar 5.6 Formasi alamat main memory dari virtual address

Pada Gambar 5.7 menunjukan kemungkinan pemetaan antara virtual page dan page frame fisik. Virtual page 0 berada pada page frame 1. Virtual page 1 berada pada page frame 0. Virtual page 2 tidak berada di main memory. Virtual page 3 berada pada page frame 2. Virtual page 4 tidak berada di main memory. Virtual page 5 berada pada page frame 6, dan seterusnya Apabila operating system telah mengkonversi setiap alamat virtual mesin level 3 ke dalam alamat nyata, mesin level 3 dengan virtual memory akan bekerja beberapa kali lebih lambat daripada mesin tanpa virtual memory. Untuk meningkatkan penterjemahan alamat virtual ke alamat fisik, page table biasanya dikelola dalam register perangkat keras khusus, transformasi dari alamat virtual ke alamat nyata dikerjakan secara langsung dalam perangkat keras. Cara lain untuk melakukan hal ini adalah memelihara peta dalam register cepat dan micriprogram akan melakukan transformasi dengan pemrograman eksplisit. Tergantung dari arsitektur level microprogramming, microprogram dapat

melakukan transformasi sama cepatnya dengan melakukan transformasi di perangkat keras, dan tidak memerlukan rangkaian khusus atau modifikasi perangkat keras.

Page table Virtual page 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 1 1 0 1 0 1 1 0 1 0 0 1 0 0 1 0 1 0 Page frame 1 0 0 2 0 6 7 0 3 0 0 5 0 0 4 0 = ada di main memory = tidak ada di main memory Page Main memory frame Virtual page 0 Virtual page 1 Virtual page 2 Virtual page 3 Virtual page 4 Virtual page 5 Virtual page 6 Virtual page 7 0 1 2 3 4 5 6 7

Gambar 5.7 Kemungkinan pemetaan ruang alamat dengan 16 page ke dalam main memory dengan 8 page frame.

You might also like