Untuk Memenuhi Tugas Dasar Komputer: Makalah Virtual Memory [PDF]

  • 0 0 0
  • Suka dengan makalah ini dan mengunduhnya? Anda bisa menerbitkan file PDF Anda sendiri secara online secara gratis dalam beberapa menit saja! Sign Up
File loading please wait...
Citation preview

MAKALAH VIRTUAL MEMORY Untuk memenuhi tugas Dasar Komputer



Dosen pengampu : Muhammad Sipan ,S.T.,MT.



Disusun oleh: 1. Didik Cahyono



C.411.19.0070



JURUSAN TEKNIK ELEKTRO FAKULTAS TEKNIK UNIVERSITAS SEMARANG 2019



BAB I PENDAHULUAN A. Latar Belakang Memori virtual adalah teknik yang memisahkan memori logika user dari memori fisik. Menyediakan memori virtual yang sangat besar diperuntukkan untuk programmer bila tersedia memori fisik yang lebih kecil. Programmer tidak perlu khawatir jumlah memori fisik yang tersedia, sehingga dapat berkonsentrasi pada permasalahan pemrograman. Memori virtual melakukan pemisahan dengan menaruh memori logis ke disk sekunder dan hanya membawa halaman yang diperlukan ke memori utama. Teknik ini menjadikan seolah-olah ukuran memori fisik yang dimiliki lebih besar dari yang sebenarnya dengan menempatkan keseluruhan program di disk sekunder dan membawa halaman halaman yang diperlukan ke memori fisik. Jadi jika proses yang sedang berjalan membutuhkan instruksi atau data yang terdapat pada suatu halaman tertentu maka halaman tersebut akan dicari di memori utama. Jika halaman yang diinginkan tidak ada maka akan dicari di disk. Ide ini seperti menjadikan memori sebagai cache untuk disk.



B. Rumusan Masalah 1. Apa pengertian memory virtual? 2. Bagaimana fungsi dari virtual memory? 3. Bagaimana manfaat dari virtual memory? 4. Bagaimana contoh cara kerja dari virtual memory? 5. Bagaimana arsitektur atau organisasi dari virtual memory?



BAB II PEMBAHASAN



2.1 Pengertian Virtual Memory Virtual Memori adalah sebuah sistem yang digunakan oleh sistem operasi untuk menggunakan sebagian dari Memori Sekunder yaitu Harddisk seolah-olah ia menggunakannya sebagai memori internal/utama (RAM) fisik yang terpasang di dalam sebuah sistem komputer. Sistem ini beroperasi dengan cara memindahkan beberapa kode yang tidak dibutuhkan ke sebuah berkas di dalam hard drive yang disebut dengan page file. Memori virtual adalah teknik yang memisahkan memori logika user dari memori fisik. Menyediakan memori virtual yang sangat besar diperuntukkan untuk programmer bila tersedia memori fisik yang lebih kecil. Programmer tidak perlu khawatir jumlah memori fisik yang tersedia, sehingga dapat berkonsentrasi pada permasalahan pemrograman. Teknik ini menyembunyikan aspek-aspek fisik memori dari pengguna dengan menjadikan memori sebagai lokasi alamat virtual berupa byte yang tidak terbatas dan menaruh beberapa bagian dari memori virtual yang berada di memori logis. Konsep memori virtual dikemukakan pertama kali oleh John Fotheringham pada tahun 1961 dengan menggunakan dynamic storage allocation pada sistem komputer atlas di Universitas Manchester. Sedangkan istilah memori virtual dipopulerkan oleh Peter J. Denning yang mengambil istilah 'virtual' dari dunia optik. Memori virtual melakukan pemisahan dengan menaruh memori logis ke disk sekunder dan hanya membawa halaman yang diperlukan ke memori utama. Teknik ini menjadikan seolah-olah ukuran memori fisik yang dimiliki lebih besar dari yang sebenarnya dengan menempatkan keseluruhan program di disk sekunder dan membawa halaman halaman yang diperlukan ke memori fisik. Jadi jika proses yang sedang berjalan membutuhkan instruksi atau data yang terdapat pada suatu halaman tertentu maka halaman tersebut akan dicari di memori utama. Jika halaman yang diinginkan tidak ada maka akan dicari di disk. Ide ini seperti menjadikan memori sebagai cache untuk disk. Jadi Virtual Memori adalah sebuah sistem yang digunakan oleh sistem operasi untuk menggunakan sebagian dari Memori Sekunder yaitu Harddisk seolah-olah ia menggunakannya sebagai memori internal/utama (RAM) fisik yang terpasang di dalam sebuah sistem komputer. Sistem ini beroperasi dengan cara memindahkan beberapa kode yang tidak dibutuhkan ke sebuah berkas di dalam hard drive yang disebut dengan page file. Proses pemakaian Virtual memori di windows umumnya dapat dilihat di Task manager, Virtual memory juga bisa dikatakan sebagai Memori Tambahan yang menjadi fitur setiap masing masing Sistem Operasi, misalnya Linux terdapat Swap. Memori virtual ini, digunakan Sistem Operasi ketika Komputer sedang menjalankan sebuah Program aplikasi yang kapasitasnya melebih Memori yang tersedia. Teknik memori virtual akan memudahkan pekerjaan seorang programmer ketika besar data dan programnya



melampaui kapasitas memori utama. Sebuah multiprogramming dapat mengimplementasikan teknik memori virtual sehingga sistem multiprogramming menjadi lebih efisien. Contohnya: 10 program dengan ukuran 2 MB dapat berjalan di memori berkapasitas 4 MB. Tiap program dialokasikan 256 Kbyte dan bagian-bagian proses (swap in) masuk ke dalam memori fisik begitu diperlukan dan akan keluar (swap out) jika sedang tidak diperlukan.



2.2 Fungsi Virtual Memory 1.Menangani kelebihan “beban” RAM Seperti telah disampaikan sebelumnya, jika RAM dengan kapasitas 2GB diharuskan menampung data lebih dari kapasitas maksilmalnya (sebut saja 2.3GB), maka dapat dipastikan komputer akan mengalami “stress” dan akibatnya komputer akan hang, lag, atau bahkan tidak merespon sama sekali, kemungkinan terburuk adalah RAM dipaksa bekerja melebihi kemampuannya dan over-heat (panas berlebih) sehingga merusak chip pada RAM tersebut, oleh karena itu virtual memory berperan aktif dalam menangani kelebihan beban tersebut, kapasitas virtual memory diambil dari kapasitas hard disk drive, bahkan sistem operasi linux (misalnya Ubuntu, Lubuntu, Mint, dan lain sebagainya) mengharuskan komputer memiliki partisi SWAP untuk virtual memory, kapasitas partisi SWAP biasanya 2kali lipat dari kapasitas RAM fisik, misalnya jika RAM yang terpasang berkapasitas 2GB, maka kapasitas partisi SWAP yang harus diatur idealnya sekitar 4GB.) 2. Berperan sebagai RAM cadangan, tapi tidak menggantikan fungsi RAM. Secara umum RAM berfungsi menyimpan data yang akan diproses oleh processor atau data dari aktivitas yang sedang berjalan (misalnya data dari aplikasi yang sedang digunakan), dengan adanya Virtual Memory tidak berarti komputer tidak membutuhkan RAM dan dapat berjalan dengan tidak adanya RAM terpasang dikomputer. RAM masih sangat dibutuhkan saat proses booting, tanpa RAM komputer tidak akan dapat masuk ke mode booting. Hal tersebut masuk akal karena keberadaan RAM lebih dulu diperiksa oleh ROM (BIOS) saat pertama booting, sedangkan virtual memory terletak di hard disk drive (atau salah satu partisi hard disk drive), tanpa hard disk drive kompuer tetap bisa beroperasi (misalnya saja kita menggunakan sistem operasi linux live CD/DVD atau linux live USB, bahkan versi windows live CD/DVD/USB pun ada 3.Menyimpan data dari RAM, tapi tidak meneruskannya ke processor Sebut saja virtual memory ini sebagai memori cadangan (sebenarnya memang seperti itu) yang hanya membantu mengatasi kekurangan kapasitas memori namun tidak seperti RAM, virtual memory tidak meneruskan data yang disimpan untuk diproses oleh processor. Jadi, saat data yang disimpan di virtual memory akan (harus) diproses, virtual memory akan meneruskannya ke RAM dan RAM yang akan meneruskan ke processor. Begitupun dengan data yang ada didalamnya, tidak bisa kita akses layaknya data umum (dokumen, gambar, dan lain sebagainya). Bahkan sistem operasi linux menempatkan virtual memori pada partisi dengan file system khusus yang bernama “SWAP” (telah kita singgung sebelumnya), jadi partisi lain selain SWAP (misalnya ext2, ext3, ext4, ntfs, fat, fat32) tidak dapat dijadikan ruang untuk virtual memori pada sistem operasi linux.(Baca juga : 4. Data yang disimpan pada virtual memory (paging file) bersifat sementara



Seperti halnya data didalam RAM yang akan kosong setelah komputer mati, paging file atau data yang ada di dalam partisi SWAP juga akan dihapus setelah komputer mati, memang berbeda dengan konsep penyimpanan data di hard disk drive meskipun medianya sama (virtual memory mengambil kapasitas hard disk drive). Pada sistem operasi Windows virtual memory disebut paging file, bukan berupa partisi seperti pada sistem operasi linux (partisi swap), ukuran dari paging file itu sendiri telah diatur secara default sebesar RAM yang terpasang pada komputer ditambah 300MB (misalnya pada komputer terpasang RAM sebesar 2GB atau 2048MB, maka ukuran paging file sebesar 2348MB, ukuran tersebut masih bberupa hitungan kasar, nyatanya RAM 2GB tidak selalu tepat 2048MB), dan maksimal 3kali ukuran RAM yang terpasang (hingga 6GB jika mengacu pada contoh) namun jika dirasa kurang (biasanya sering atau setidaknya pernah muncul pemberitahuan “virtual memory is low”) maka ukuran paging file dapat ditambah. Paging file dapat dihapus dengan tujuan untuk menambah ruang kosong pada partisi hard disk drive, namun hal tersebut sangat tidak disarankan mengingat pentingnya fungsi virtual memory bagi performa komputer terlebih saat RAM yang terpasang relatif kurang untuk pekerjaan tertentu Virtual Memory digunakan dengan membuat suatu file khusus yang disebut swapfile. Virtual memory digunakan pada saat sistem operasi kehabisan memori, dimana sistem operasi akan memindahkan data yang paling terakhir diakses kedalam swapfile di hardisk. Hal ini yang mengsongkan/membebaskan bebrapa ruang kosong pada memori untuk aplikasi yang akan digunakan selanjutnya. Sistem operasi akan melakukan hal ini secara terus menerus ketika data baru diisi pada RAM. Pada saat data yang tersimpan di swapfile diperlukan, data tersebut ditukar (swap) dengan data yang paling terakhir dipakai di dalam memory (RAM). Hal ini mengakibatkan swapfile bersifat seperti RAM, walaupun program tidak dapat secara langsung dijalankan dari swapfile. Satu hal yang perlu dicatat bahwa karena sistem operasi tidak dapat secara langsung menjalankan program dari swapfile, bebrapa program mungkin tidak akan berjalan walau dengan swapfile yang besar jika kita hanya memiliki RAM yang kecil.



2.3 Manfaat virtual memory Beberapa keuntungan penggunaan memori virtual adalah sebagai berikut: 1. Berkurangnya proses I/O yang dibutuhkan (lalu lintas I/O menjadi rendah). Misalnya untuk program butuh membaca dari disk dan memasukkan dalam memory setiap kali diakses. 2. Ruang menjadi lebih leluasa karena berkurangnya memori fisik yang digunakan. Contoh, untuk program 10 MB tidak seluruh bagian dimasukkan dalam memori fisik. Pesan-pesan error hanya dimasukkan jika terjadi error. 3. Meningkatnya respon, karena menurunnya beban I/O dan memori.



4. Bertambahnya jumlah pengguna yang dapat dilayani. Ruang memori yang masih tersedia luas memungkinkan komputer untuk menerima 4. Bertambahnya jumlah pengguna yang dapat dilayani. Ruang memori yang masih tersedia luas memungkinkan komputer untuk menerima lebih banyak permintaan dari pengguna.



2.4 contoh cara kerja virtual memory Virtual Memory digunakan dengan membuat suatu file khusus yang disebut swapfile atau paging file. Virtual memory digunakan pada saat operating system kehabisan memory, dimana o.s. akan memindahkan data yang paling terakhir diakses ke dalam swapfile di hardisk. Hal ini mengosongkan/ membebaskan beberapa ruang kosong pada memory untuk aplikasi yang akan digunakan selanjutnya. Operating system akan melakukan hal ini secara terus menerus ketika data baru diisi pada ram. Kemudian, pada saat data yang tersimpan di swapfile diperlukan, data tersebut ditukar (swap) dengan data yang paling terakhir dipakai di dalam memory (ram). Hal ini mengakibatkan swapfile bersifat seperti ram, walaupun program tidak dapat secara langsung dijalankan dari swapfile. Satu hal yang perlu dicatat bahwa karena operating system tidak dapat secara langsung menjalankan program dari swapfile, beberapa program mungkin tidak akan berjalan walau dengan swapfile yang besar jika kita hanya memiliki ram yang kecil. Dalam sistem operasi berbasis Windows NT, terdapat sebuah komponen yang mengatur memori virtual yaitu Virtual Memory Manager (VMM) yang memiliki fungsi untuk dapat memetakan alamat-alamat virtual yang dimiliki oleh sebuah proses yang berjalan ke dalam page memori fisik di dalam komputer. Dengan cara ini maka setiap proses dapat memperoleh memori virtual yang cukup agar dapat berjalan dan tidak mengganggu memori yang sedang digunakan oleh proses lainnya. VMM menangani paging antara RAM dan page file agar setiap aplikasi 32-bit dapat mengakses memori hingga 4 Gigabyte, meskipun Windows hanya membatasinya pada kisaran 2 Gigabyte. Jadi, untuk komputer yang mempunyai memori / RAM kecil ada baiknya memperbesar virtual memori agar tetap dapat menjalankan aplikasi yang membutuhkan memori yang besar terutama untuk game. Berikut adalah langkah-langkah untuk memperbesar virtual memori di Windows XP (Experience) : 1. 2. 3. 4. 5. 6. 7. 8.



click tombil start. Pilih / masuk ke control panel. Click pilihan System. Maka muncul window “System properties”. Dan pilih tab Advanced click tombol Setting pada frame Performance. Maka muncul window “Performance Option”. Dan pilih tab Advanced kemudian click tombol Change pada frame Virtual Memory. Maka akan muncul gambar dibawah ini.



9. 9. Ubahlah nilai yang saya lingkari menjadi lebih besar dari nilai default/ nilai standar, minimal sesuai dengan nilai yang ada di gambar ini. Yaitu berkisar antara 1024 – 2048 Megabyte. 10. 10. Click tombol Set dan OK. 11. 11. Jika Windows anda memerlukan restart maka click tombil ok untuk me-restart komputer anda. 12. Sebenarnya konsep virtual memory ini juga berlaku untuk Sistem operasi lainnya seperti pada sistem operasi Linux, pada sistem operasi linux konsep virtual memory ini lebih dikenal dengan Swap memory yang telah dipartisi sebelumnya. Ini berlaku untuk semua distro linux seperti: redhat (fedora core), ubuntu/debian, mandriva/mandrake , suse dan lainnya. Tetapi dalam sistem operasi linux biasanya virtual memory telah di tetapkan sebelum proses instalasi-nya yaitu dalam bentuk partisi harddisk untuk swap memory. 13. Semoga tips / tutorial ini bermanfaat untuk



Gagasan utama dari memori virtual adalah ukuran gabungan program, data dan stack melampaui jumlah memori fisik yang tersedia. Sistem operasi menyimpan bagianbagian proses yang sedang digunakan di memori fisik (memori utama) dan sisanya diletakkan di disk. Begitu bagian yang berada di disk diperlukan, maka bagian di memori yang tidak diperlukan akan dikeluarkan dari memori fisik (swap-out) dan diganti (swap-in) oleh bagian disk yang diperlukan itu. Memori virtual diimplementasikan dalam sistem multiprogramming. Misalnya: 10 program dengan ukuran 2 Mb dapat berjalan di memori berkapasitas 4 Mb. Tiap program dialokasikan 256 Kbyte dan bagian-bagian proses swap in) masuk ke dalam memori fisik begitu diperlukan dan akan keluar (swap out) jika sedang tidak diperlukan. Dengan demikian, sistem multiprogramming menjadi lebih efisien. Prinsip dari memori virtual yang perlu diingat adalah bahwa "Kecepatan maksimum eksekusi proses di memori virtual dapat sama, tetapi tidak pernah melampaui kecepatan eksekusi proses yang sama di sistem yang tidak menggunakan memori virtual". Memori virtual biasanya diimplementasikan menggunakan demand paging atau demand segmentation juga digunakan. Tetapi algoritma segment-replacement lebih kompleks daripada algoritma page-replacement karena segmen mempunyai ukuran yang bervariasi.



A. Demand Paging Demand paging adalah sistem paging dengan swapping. Page diletakkan di memori hanya jika diperlukan. Hal ini menyebabkan kebutuhan I/O lebih rendah, kebutuhan memori lebih rendah, respon lebih cepat dan lebih banyak user yang menggunakan. Proses disimpan di memori sekunder (disk). Jika proses akan dieksekusi, maka dipindah (swap) ke memori. Menggunakan lazy swapper untuk melakukan swapping bila page tersebut akan digunakan yang berarti sebuah page tidak pernah ditukar ke memori kecuali page diperlukan. Jika page diperlukan, dilakukan acuan ke page tersebut, tetapi jika acuan invalid maka dilakukan penghentian. Page yang sedang tidak berada di memori tersebut akan dibawa ke memori dari backing store.



Untuk membedakan antara page pada memori dengan page pada disk digunakan validinvalid bit. Tabel page untuk page yang berada di memori diset “valid’, sedangkan tabel page untuk page yang tidak sedang di memori (ada pada disk) diset “invalid”. Akses ke page yang diset “invalid” menyebabkan page fault, yang menyebabkan trap ke sistem operasi. Karena status (register, kode kondisi, counter instruksi) dari proses terinterrupt disimpan bila terjadi page fault, proses dapat dimulai lagi pada tempat dan status yang sama, kecuali page yang cocok sedang di memori dan sedang diakses. Prosedur untuk menangani page fault sebagai berikut : 1. Sistem operasi melihat tabel untuk menentukan jika acuan invalid maka proses dihentikan dan page sedang tidak berada di memori. 2. Jika acuan invalid dilakukan trap ke sistem operasi. 3. Sistem mencari frame kosong. 4. Sistem melakukan proses swapping ke frame bebas. 5. Tabel page di-reset, bit valid-invalid diset 1 atau valid 6. instruksi di-restart.



Apabila tidak ditemukan frame bebas maka dilakukan page replacement yaitu mencari beberapa page di memori yang tidak digunakan kemudian dilakukan swap out ke backing store. Terdapat beberapa algoritma page replacement dimana performansi algoritma diharapkan menghasilkan jumlah page fault minimum. Beberapa page kemungkinan dibawa ke memori beberapa kali. Perangkat keras yang dibutuhkan untuk mendukung demand paging sama dengan perangkat keras untuk sistem paging dengan swapping yaitu : 1) Tabel page : tabel mempunyai kemampuan untuk memberi entry bit valid-invalid atau nilai khusus untuk bit proteksi 2) Memori sekunder : digunakan untuk membawa page yang tidak di memori danbiasanya adalah disk kecepatan tinggi yang disebut swap device. B. Page Replacement Page replacement diperlukan pada situasi dimana proses dieksekusi perlu frame bebas tetapi tidak tersedia frame bebas. Sistem harus menemukan satu frame yang sedang tidak digunakan dan membebaskannya. Untuk membebaskan frame dengan cara menulis isinya untuk ruang swap dan mengubah tabel page (dan tabel lain) yang menunjukkan page tidak lagi di memori. Langkah-langkah untuk page fault yang memerlukan page replacement seperti berikut : 1. Carilah lokasi page yang diharapkan pada disk.



2. Carilah frame kosong dg cara : a) Bila ada frame kosong, gunakan. b) Bila tidak ada, gunakan algoritma page replacement untuk menyeleksi frameyang akan menjadi korban. c) Simpan page korban ke disk, ubah tabel page. 3. Baca page yang diinginkan ke frame kosong yang baru, ubah tabel page. 4. Mulai kembali proses user. C. Algoritma Page Replacement Terdapat beberapa algoritma page replacement, setiap sistem operasi mempunyai skema yang unik. Algoritma page replacement secara umum diinginkan yang mempunyai ratarata page fault terendah. Algoritma dievaluasi dengan menjalankannya pada string tertentu dari memory reference dan menghitung jumlah page fault. String yang mengacu ke memori disebut reference string (string acuan).String acuan dibangkitkan secara random atau dengan menelusuri sistem danmenyimpan alamat dari memori acuan. Misalnya jika ditelusuri proses tertentu, disimpan alamat berikut : 0100, 0432, 0101, 0612, 0102, 0103, 0104, 0101, 0611, 0102, 0103, 0104, 0101, 0610, 0102, 0103, 0104, 0101, 0609, 0102, 0105 dimana 100 byte per page direduksi ke string acuan : 1, 4, 1, 6, 1, 6, 1, 6, 1, 6, 1 Untuk menentukan jumlah page fault untuk string acuan dan algoritma pagereplacement tertentu, harus diketahui jumlah page frame tersedia juga harus diketahui. Semakin tinggi jumlah frame lebih tinggi, semakin rendah jumlah page fault.



Terdapat beberapa algoritma page replacement antara lain algoritma first in first our (FIFO), optimal dan least recently use (LRU). Pada sub bab berikut akan diilustrasikan algoritma page replacement tersebut dengan menggunakan string acuan 7, 0, 1, 2, 0, 3, 0, 4, 2, 3, 0, 3, 2, 1, 2, 0, 1, 7, 0, 1



D. Algoritma FIFO Algoritma FIFO merupakan algoritma paling sederhana. Algoritma FIFO diasosiasikan dengan sebuah page bila page tersebut dibawa ke memori. Bila ada suatu page yang akan ditempatkan, maka posisi page yang paling lama yang akan digantikan. Algoritma ini tidak perlu menyimpan waktu pada saat sebuah page dibawa ke memori.



Meskipun algoritma FIFO mudah dipahami dan diimplementasikan, performansitidak selalu bagus karena algoritma FIFO menyebabkan Belady’s anomaly. Belady’s anomaly mematahkan fakta bahwa untuk beberapa algoritma page replacement, bila rata-rata page fault meningkat, akan meningkatkan jumlah alokasi frame. Sebagai contoh, jika menggunakan string acuan : 1, 2, 3, 4, 1, 2, 5, 1, 2, 5, 1, 2, 3, 4, 5 dengan algoritma FIFO terjadi Belady’s anomaly. E. Algoritma Optimal Algoritma optimal merupakan hasil penemuan dari Belady’s anomaly. Algoritma ini mempunyai rata-rata page fault terendah. Algoritma optimal akan mengganti page yang tidak akan digunakan untuk periode waktu terlama. Algoritma ini menjamin rata-rata page fault terendah untuk jumlah frame tetap tetapi sulit implementasinya. F. Algoritma Least Recently Use (LRU) Algoritma LRU merupakan perpaduan dari algoritma FIFO dan optimal. Prinsip dari algoritma LRU adalah mengganti page yang sudah tidak digunakan untuk periode waktu terlama. Untuk mengimplementasikan algoritma LRU, digunakan dua model yaitu : 1. Counter : setiap entry tabel pagee diasosiasikan dengan sebuah “time-of-use” dan sebuah clock logika atau counter ditambahkan ke CPU. Clock ini dinaikkan untuk setiap acuan ke memori. Jika sebuah acuan ke page dibuat, isi clock register dicopy ke time-ofuse pada tabel page untuk page tersebut. 2. Stack : stack dari nomor page diatur. Jika sebuah page digunakan acuan, maka page dihapus dari stack dan meletakkan pada top of stack. Dengan cara ini, stack selalu digunakan page dan bagian bawah untuk page LRU. Implementasi stack untuk algoritma LRU. G. Alokasi Frame Alokasi frame berhubungan dengan mekanisme alokasi sejumlah memori bebas yang tetap diantara beberapa proses. Meskipun terdapat beberapa variasi pengalokasian frame bebas ke beberapa proses, tetapi strategi dasar jelas yaitu : proses user dialokasikan untuk sembarang frame bebas. Jumlah minimum frame per proses ditentukan oleh arsitektur dimana jumlah maksimum tergantung jumlah memori fisik yang tersedia. Jumlah minimim frameditentukan oleh arsitektur instruction-set. Bila terjadi page fault sebelum eksekusi instruksi selesai, instruksi harus di-restart. Sehingga tersedia frame yang cukup untukmembawa semua page yang berbeda dimana sembarang instruksi dapat mengacu. Misalnya mikrokomputer menggunakan memori 128K yang dikomposisikan dengan page ukuran 1K, maka terbentuk 128 frame. Jika sistem operasi menggunakan 35K, maka 93 frame sisa digunakan program user. Bila suatu program menyebabkan page fault sebanyak 93 kali, maka menempati 93 frame bebas tersebut.



Jika terjadi page faultke 94, dari 93 frame yang terisi harus dipilih salah satu untuk diganti yang baru. Bila program selesai, 93 frame tersebut dibebaskan kembali. Terdapat 2 bentuk algoritma alokasi yaitu equal allocation dan proportional allocation. Pada equal allocation, jika terdapat m frame dan n proses, maka setiap proses dialokasikan sejumlah frame yang sama (m/n frame). Pada proportionalallocation setiap proses dialokasikan secara proporsional berdasarkan ukurannya. Jika ukuran virtual memori untuk proses pi adalah si dan total jumlah frame yang tersedia m,maka frame ke ai dapat dialokasikan ke proses pi sama dengan : Dimana S = Σsi Selain itu terdapat algoritma alokasi berprioritas yang menggunakan skema proporsional dengan lebih melihat prioritas proses daripada ukuran proses. Jika proses Pi membangkitkan page fault, dipilih satu dari frame-frame dari proses yang mempunyai nomor prioritas terendah. H. Alokasi Global dan Alokasi Lokal Page replacement adalah faktor terpenting lain yang harus dipertimbangkan dalam alokasi frame. Pada multiple process yang berkompentisi mendapatkan frame, algoritma page replacement dikelompokkan dalam 2 kategori yaitu global replacement dan local replacement. Global replacement mengijinkan suatu proses untuk menyeleksi suatu frameyang akan dipindah dari sejumlah frame, meskipun frame tersebut sedang dialokasikan ke proses yang lain. Pada local replacement, jumlah frame yang dialokasikan untuk proses tidak berubah. Setiap proses dapat memilih dari frame-frame yang dialokasikan untuknya. Permasalahan pada global replacement adalah proses tidak dapat mengontrolrata-rata page fault. Sejumlah page pada memori untuk sebuah proses tidak hanya tergantung pada perilaku paging untuk proses tersebut, tetapi juga perilaku paging untuk proses yang lain. Bagaimanapun, karena algoritma global replacement menghasilkan throughput yang lebih besar, metode ini sering digunakan. I. Thrashing Misalnya sembarang proses tidak mempunyai frame yang cukup. Meskipun secara teknis dapat mengurangi jumlah frame yang dialokasikan sampai minimum, terdapat sejumlah page yang sedang aktif digunakan. Jika suatu proses tidak memiliki jumlah frame yang cukup, maka sering terjadi page fault. Sehingga harus mengganti beberapa page. Tetapi karena semua page sedang digunakan, harus mengganti page yang tidak digunakan lagi kemudian. Konsekuensinya, sering terjadi page fault lagi dan lagi. Proses berlanjut page fault, mengganti page untuk page fault dan seterusnya. Kegiatan aktifitas paging yang tinggi disebut thrashing. Sebuah proses mengalami thrashing jika menghabiskan lebih banyak waktu untuk paging daripada eksekusi. Efek thrashing dapat dibatasi dengan menggunakan algoritma local (priority) replacement. Grafik terjadinya proses thrashing pada sistem multiprogramming.



2.5 . ARSITEKTUR ATAU ORGANISASI VIRTUAL MEMORY Proses pemakaian Virtual memori di windows umumnya dapat dilihat di Task manager, seperti gambar di bawah ini.



Dalam sistem operasi berbasis Windows NT, terdapat sebuah komponen yang mengatur memori virtual yaitu Virtual Memory Manager (VMM) yang memiliki fungsi untuk dapat memetakan alamat-alamat virtual yang dimiliki oleh sebuah proses yang berjalan ke dalam page memori fisik di dalam komputer. Dengan cara ini maka setiap proses dapat memperoleh memori virtual yang cukup agar dapat berjalan dan tidak mengganggu memori yang sedang digunakan oleh proses lainnya. VMM menangani paging antara RAM dan page file agar setiap aplikasi 32-bit dapat mengakses memori hingga 4 Gigabyte, meskipun Windows hanya membatasinya pada kisaran 2 Gigabyte. Jadi, untuk komputer yang mempunyai memori / RAM kecil ada baiknya memperbesar virtual memori agar tetap dapat menjalankan aplikasi yang membutuhkan memori yang besar terutama untuk game.



ARSITEKTUR SISTEM MEMORI



I. TEKNOLOGI DAN BIAYA SISTEM MEMORI Ada 2 teknologi yang mendominasi industri memori sentral dan memori utama, yaitu : a. Memori Magnetic Core (tahun 1960) Sel penyimpanan yang ada dalam memori inti dibuat dari elemen besi yang berbentuk donat yang disebut magnetic core (inti magnetis) atau hanya disebut core saja. Para pembuat(pabrikan) yang membuat core ini menyusun core plane bersama dengan sirkuit lain yang diperlukan, menjadi memori banks(bank memori).



b. Memori Solid State Komputer yang pertama diproduksi untuk tujuan komersil adaalah UNIVAC dimana :  CPU nya menggunakan teknologi vacuum tube (tabung hampa udara) dan menjalankan aritmatika decimal.  Memori utamanya 1000 word (setiap word besarnya 60 bit dan menyimpan 12 karakter 5 bit) II. ORGANISASI MEMORI  



Salah satunya adalah menggunakan Inteleaving dimana tujuannya adalah untuk meningkatkan kecepatan pengaksesan system penyimpanan yang besar. Sistem penyimpanan yang besar terdiri atas beberapa bank memori independent yang diakses oleh CPU dan peralatan I/O melalui pengontrolan port memori Contoh : Cross bar switch



Sistem penyimpanan menggunakan Interleave High Order  



Setiap bank (penyimpanan) berisi blok alamat yang berurutan. Setiap peralatan, termasuk CPU, menggunakan bank memori yang berbeda untuk program dan datanya, maka semua bank dapat mentransfer data secara serentak.



Sistem penyimpanan menggunakan Interleave Low Order 



Alamat yang berurutan berada dalam bank yang terpisah, sehingga setiap peralatan perlu mengakses semua bank selagi menjalankan programnya atau mentransfer data. Contohnya : suatu siklus memori lebih lama daripada waktu siklus CPU.







Apabila word yang berurutan berada dalam bank yang berbeda, maka system penyimpanan bila dilengkapi dengan putaran yang cocok dapat melengkapi akses memori yang berurutan, dengan kata lain setelah CPU meminta untuk mengakses word pertama yang disimpan dalam salah satu bank, maka ia dapat bergerak ke bank kedua dan mengawali akses word kedua sementara penyimpanan tetap mendapatkan kembali word pertama sementara penyimpanan tetap mendapatkan kembali word pertama.Pada CPU kembali ke bank pertama, system penyimpanan diharapkan telah menyelesaikan mengakses word pertama dan telah siap mengakses lagi. Banyak komputer berkinerja tinggi menggunakan Inteleave Low Order







III. JENIS MEMORI a. Memory Read Only (ROM) 



Peralatan memori yang dapat dibaca namun tidak dapat ditulis oleh CPU Contoh : Switch Mekanis (computer menggunakannya untuk menyimpan konstansta yang digunakan untuk menentukan konfigurasi system(jumlah memori utama).







PROM (Programming Read Only Memory) adalah ROM yang diprogram oleh pabrik pembuatnya dan kita tidak bisa mengubah isinya. EPROM (Erasable PROM) adalah ROM yang dapat dihapus dengan menggunakan sinar ultraviolet dan kemudian deprogram kembali. EAROM(Electrically Alterable ROM) ROM yang dapat deprogram oleh computer dengan menggunakan operasi arus tinggi (high current) khusus, digunakan untuk menyimpan informasi yang jarang sekali berubah, contohnya : informasi konfigurasi.



 



b. Memory Read / Write Memori Read/Write dapat diklasifikasikan menurut sifat pengoperasiannya adalah : 1. Sifat Fisik  Statis lawan Dinamis Static RAM (SRAM)



 Untuk setiap word apabila telah ditulis tidak perlu lagi dialamatkan atau dimanipulasi untuk menyimpan nilainya.  Tidak perlu penyegaran  Dibentuk dari flip-flop yang nmeggunakan arus kecil untuk memelihara logikanya.  Digunakan untuk register CPU dan peralatan penyimpanan berkecepatan tinggi.  Merupakan sirkuit memori semikonduktor yang cepat dan mahal. Dynamic RAM (DRAM)  Dibentuk dari kapasitor (peralatan yang digunakan untuk menyimpan muatan listrik) dan transistor  Menggunakan sirkuit pembangkit  Waktu siklusnya 2 kali access time (waktu access baca) yaitu waktu yang dibutuhkan untuk memanggil kembali data dari peralatan.  Perlu penyegaran



 Volatil lawan Non-Volatil Memori Volatile Membutuhkan sumber daya yang terus menerus untuk menyimpan nilainya. Contoh : RAM Static dan Dynamic Memori Non Volatile Tidak membutuhkan sumber daya yang terus menerus untuk menyimpan nilainya. Contoh : ROM



 Read Destruktif lawan Read Non-Destruktif Memori Read Destruktif  Apabila dalam proses membaca word memori tersebut juga menghancurkan nilainnya.  Mempunyai 2 fase operasi yaitu read cycle dan restore cycle  Selama akses baca system penyimpan pertama kali akan membaca word dan selama akses tulis system penyimpanan pertama kali akan membaca word, yang mengakibatkan waku akses baca akan lebih pendek daripada waktu tulis. Contoh : DRAM



Memori Read Non-Destruktif  Dalam proses membaca word, memori tersebut tidak dapat dihancurkan.  Contohnya : SRAM dan ROM



 Removable lawan Permanen Memori Removable  Memori yang elemen aktifnya dapat dikeluarkan dari hardware system.  Contoh : disket. Memori Non Removable  Memori yang elemen aktifnya tidak dapat dikeluarkan dari hardware system.  Contoh : RAM dan hard disk 2. Organisasi Logis  Teralamatkan (addressed) Memori yang menggunakan alamat untuk menentukan sel yang dibaca dan ditulis. 



Asosiatif Memori yang menggunakan isi dari bagian word untuk menentukan sel yang dibaca atau ditulis







Akses Urut Memori yang menggunakan piya magnetis untuk mengakses data secara urut.



3. Memori Archival  Memori non volatile yang dapat menyimpan banyak data dengan biaya yang sangat sedikit dan dalam jangka waktu yang lama.Contoh : Tape(Pita), Disk dan Disk Optis  Disk Optis menyimpan data dengan mengubah secara internal sifat reflektif dari bidang kecil yang ada pada disk dan membaca data dengan cara mendeteksi secara visual yang telah diubah.  WORM Memori (Word Once Read Many Times) ideal untuk menyimpan archival, karena bila sekali telah ditulis ia secara fungsional menjadi ROM. IV. SISTEM MEMORI UTAMA    



Tahun 1960-an para programmer system mengembangkan system pengoperasian multiprogramming, yang memanfaatkan atau menggunakan memori utama yang sangat besar. Komputer yang hanya mempunyai satu system memori utama dikatakan mempunyai one-level strorage system(system penyimpanan tingkat satu) Komputer yang mempunyai memori virtual menggunakan multilevel storage system (system penyimpanan bertingkat) Penyimpanan multilevel mempunyai memori sentral(internal) yaitu memori utama dan register CPU sebagai primary memory dan peralatan penyimpanan eksternal seperti hardisk dan disket sebagai secondary memory memori sekunder.



V. RELOKASI PROGRAM DAN PROTEKSI MEMORI  



Multiprogramming adalah cara yang tepat untuk meningkatkan kegunaan CPU dengan cara memungkinkan beberapa tugas berada dalam memori pada waktu yang bersamaan. Berhasilnya multiprogramming ditentukan antara lain oleh : o Relokasi Program - Dengan cara menmpatkan program dimana saja dalam memori - Initial Program Relocation (Relokasi Program Awal) adalah proses merelokasi program tempat system pengoperasian pertama kali. - Dynamic Program Relocation (Relokasi Program Dinamis) adalah system pengoperasian dapat memindahkan program dari suatu tempat ke tempat yang lain dalam memori utama setelah program dijalankan. o Proteksi Program - Mencegah suatu program mengakses memori yang telah diberikan oleh system pengoperasian ke program yang lain. - Contoh relokasi program dan proteksi adalah IBM System/360 dan CDC 6600 - IBM System/360  Menggunakan Register Base untuk merelokasi program  Menggunakan relokasi program awal  Menggunakan key-controlled memory protection untuk proteksi memori. - CDC 6600  Mempunyai register khusus yaitu Relocation Address (RA/Register Alamat Relokasi) untuk merelokasi program.  Menggunakan relokasi program awal



VI. MEMORI CACHE  Buffer berkecepatan tinggi yang digunakan untuk menyimpan data yang diakses pada saat itu dan data yang berdekatan dalam memori utama.  Memori akses random (RAM) berkecepatan tinggi yang ditempatkan diantara system memori dan pemakaiannya untuk mengurangi waktu akses efektif dari system memori.  Dengan memasukan memori chace antara peralatan cepat dan system memori yang lebih lambat, perancangan ini dapat memberikan system memori yang cepat.  Kegunaan Memori Cache adalah :  Program cenderung menjalankan instruksi yang berurutan, menyebabkan instruksi tersebut berada didekat lokasi memori.  Program biasanya mempunyai simpul untuk tempat menjalankan kelompok instruksi secara berulang-ulang.  Compiler menyimpan array dalam blok lokasi memori yang bersebelahan.  Compiler biasanya menempatkan item data yang tidak berhubungan didalam segmen data.  Cache terdiri dari sejumlah cache entries(entry cache) dan setiap entri cache terdiri dari 2 yaitu o Memori Cache  merupakan SRAM berkecepatan tinggi  data yang disimpan merupakan kopi dari data memori utama yang terpilih pada saat itu atau data yang baru disimpan yang belum berada didalam memori. o Address Tag (Tag Alamat)







Menunjukan alamat fisik data yang ada dalam memori utama dan beberapa informasi valid



 Cara kerja Cache adalah : o Ketika CPU mengakses memori maka system penyimpanan akan mengirim alamat fisik ke cache o Membandingkan alamat fisik tersebut dengan semua tag alamat untuk mengetahui apakah ia menyimpan kopi dari sebuah data. o Cache HIT adalah situasi yang terjadi ketika peralatan meminta akses memori ke word yang telah ada didalam memori cache tersebut secara cepat megembalikan item data yang diminta. o Cache MISS adalah situasi yang terjadi ketika peralatan meminta akses ke data yang tidak berada dalam cache, cache akan menjemput item tersebut dari memori, dimana hal ini mebutuhkan waktu yang lebih lama dari cache hit. o Jika cache tidak menyimpan data, maka akan terjadi cache miss dan cache akan menyampaikan alamat ke system memori utama untuk membaca. o Jika data yang dating dari memori utama, maka CPU atau cache akan menyimpan kopinya dengan diberi tag alamat yang tepat.  Ada 2 sebab mengapa cache bekerja dengan baik :  Cache beroperasi secara paralel dengan CPU - Word tambahan yang dimuatkan setelah terjadi cache miss tidak akan mengganggu kinerja CPU. 



Prinsip Lokalitas Referensi - CPU akan meminta data baru



 Setiap cache mempunyai dua sub system yaitu :  Tag Subsystem - Menyimpan alamat dan menentukan apakah ada kesesesuaian data yang diminta. 







Memory subsistem - Menyimpan dan mengantarkan data.



Memori Cache menggunakan teknik pemetaan yang berbeda untuk memetakan alamat memori ke dalam alamat lokalnya, yaitu :  Cache Asosiatif - Disebut juga Fully Associative Cache. - Menyimpan tagnya di dalam memori asosiatif atau memori yang ekuivalen secara fungsional - Cache dapat menempatkan sembarang jalur refill selama akses memori - Membandingkan alamat yang ada dengan semua alamat yang disimpan  Direct Mapped Cache (Cache yang dipetakan langsung) - Membagi memory utama menjadi K kolom dengan N refill line per kolomnya  Set Cache Asosiatif - Mengkombinasikan organisasi asosiatif dan direct (langsung) - Mengorganisir memori utama dan memorinya sendiri menjadi kolom jalur refil N







Sector Mapped Cache (Cache yang dipetakan sector) - Merupakan modifikasi dari cache asosiatif - Jalur refill memori utama dan cache dikelompokan menjadi sector yang disebut row(baris)



VI. MEMORI VIRTUAL 



Ada 2 teknik yang digunakan memori virtual utnuk memetakan alamat efektif kedalam alamat fisik yaitu : 



Paging - Adalah teknik yang berorientasi hardware untuk mengelola memori fisik - Menggunakan paging agar program besar dapat berjalan pada komputer yang mempunyai fisik kecil. - Hardware memori virtual membagi alamat logis menjadi 2 yaitu virtual page number dan word offset. - Membagi alamat logis dan memori menjadi page yang berukuran tertentu.







Segmentasi - Adalah teknik yang berorientasi pada struktur logis dari suatu program. - Membagi alamat logis dan memori menjadi page yang ukuran berubahubah. - Segmen yang berisi kode prosedur disebut kode segmen dan yang berisi data disebut data segmen



Perbedaan Paging dengan Segmentasi adalah :     



Paging berorientasi pada hardware dan segmentasi pada struktur logis dari suatu program. Segmen cenderung jauh lebih besar dari paging. Segmen mempunyai jangkauan ukuran page dan page hanya mempunyai satu ukuran tertentu untuk suatu system tertentu. Dalam segmentasi seluruh program tidak perlu dibuat sebagai modul tunggal untuk diisikan ke dalam memori sebagai sebuah unit Dalam segmentasi, alamat logis mempunyai 2 bagian, yaitu segement number dan byte offset.



VII. MASALAH DESIGN MEMORI 



Kecepatan Memori lawan kecepatan CPU :  Awal tahun 1960 – 1980, kecepatan memori dan CPU meningkat, namun rasio keseluruhan antara keduanya relatif.  Pada era ini kecepatan memori biasanya kurang lebih 10 kali lebih lambat dari kecepatan CPU.  CDC:6600, 7600, CRAY 1 dan CRAY X-MP untuk super komputer waktu akses memorinya 10 sampai 14 waktu siklus CPU.  VAX 11/780, 8600 dan 8700 untuk mini computer waktu akses memorinya 4 sampai 7 kali siklus CPU



 Pertengahan tahun 1980, kecepatan CPU jauh lebih meningkat hingga 50 kali kecepatan memori, contoh CRAY  Keuntungan dari perubahan ini adalah :  Memori besar umumnya memerlukan hardware khusus untuk mendeteksi dan mengoreksi kesalahan, yang menambah waktu akses memori efektif.  CPU yang paling cepat merupakan pipelined. 



Ruang Alamat Memori :  Semakin besar ruang alamat memori yang disediakan maka akan semakin baik namun harus diperhatikan pula bahwa dalam perubahan tersebut tidak harus merubah secara keseluruhan dan mendasar daripada arsitektur yang telah dibangun.







Keseimbangan antara kecepatan dan biaya :  Sifat dari Teknologi Memori - Harga unitnya turun dengan sangat cepat, sedangkan kecepatannya secara perlahan meningkat. - Adanya berbagai kecepatan dan biaya dalam peralatan memori  Ada tiga penggunaan teknologi RAM dalam system computer untuk memanfaatkan variasi ini adalah : - Peralatan lambat, murah untuk memori utama - Peralatan cepat untuk cache - Peralatan sangat cepat, mahal untuk register Memori dalam system computer dapat dibagi menjadi tiga kelompok, yaitu : 1. Internal Processor Memory 2. Main Memory (Primary Memory) 3. Secondary Memory (Auxiliary/Backing Memory) Karakteristik Memori :  Access Time  Access Modes  Alterability  Permanence of Storage  Cycle Time and Data Transfer Rate  Physical Characteristics Metode Akses :  Random Access Memory Lokasi memori dapat dicapai secara acak dan waktu akses tidak bergantung pada lokasi yang sedang diakses















 Serial Access Memory Mekanisme akses digunakan bersama-sama oleh seluruh lokasi



BAB III PENUTUP



1. Kesimpulan Konsep memori virtual dikemukakan pertama kali oleh John Fotheringham pada tahun 1961 dengan menggunakan dynamic storage allocation pada sistem komputer atlas di Universitas Manchester. Memori virtual adalah teknik yang memisahkan memori logika user dari memori fisik. Menyediakan memori virtual yang sangat besar diperuntukkan untuk programmer bila tersedia memori fisik yang lebih kecil. Programmer tidak perlu khawatir jumlah memori fisik yang tersedia, sehingga dapat berkonsentrasi pada permasalahan pemrograman.



2. Kekurangan tulisan ini Kekurangan tulisan ini adalah halaman tridak lebi dari 15.



3. Saran Untuk menjadi tulisan yang bagus harus menyesuaikan perintah yang sudah diberikan.



DAFTAR PUSTAKA Musoho.2013. Rangkuman virtual memory . . https://musohomework.wordpress.com/rangkuman-virtual-memori/. Diakses pada 13 november 2019. Warisman Alfian. 2015. Contoh dan devinisi virtual memory. http://alfianwarisman.blogspot.com/2015/12/contoh-dan-devinisi-virtual-memory.html. Diakses pada 13 november 2019. Watiy Diyana . 2013. virtual memory .http://diyanawatiy.blogspot.com/2013/02/virtualmemori.html. diakses pada 13 november 2019 Yuriz . 2009. Apa itu virtual memori. https://yurizone.wordpress.com/2009/11/15/apa-itu-virtual-memori/ . diakses pada 13 november 2019.