Anda di halaman 1dari 25

VIRTUAL MEMORY

Disusun oleh: Daryanto


41508110097 41508110104 41508110178 41508110078 41508110059

Irwan S

Salamudin Sumarsih Susiana Saputri

TEKNIK INFORMATIKA UNIVERSITAS MERCU BUANA JAKARTA

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.

Gb.01 Memori virtual lebih besar daripada memori fisik

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. 1. Demand Paging Demand paging adalah sistem paging dengan swapping seperti pada Gambar 8-2. 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.

Gb.02 Sistem paging dengan swapping 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 seperti Gambar 8-3.

Gb.03 Beberapa page tidak sedang berada di memori


3

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 seperti Gambar 8-4 sebagai berikut : 1. Sistem operasi melihat tabel untuk menentukan jika acuan invalid

maka proses dihentikan dan page sedang tidak berada di memori. 2. 3. 4. 5. 6. Jika acuan invalid dilakukan trap ke sistem operasi. Sistem mencari frame kosong Sistem melakukan proses swapping ke frame bebas. Tabel page di-reset, bit valid-invalid diset 1 atau valid instruksi di-restart.

Gb.04 Langkah-langkah bila terjadi page fault 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
4

ke memori beberapa kali. Perangkat keras yang dibutuhkan untuk mendukung demand paging sama dengan perangkat keras untuk sistem paging dengan swapping yaitu Tabel page : tabel mempunyai kemampuan untuk memberi

entry bit valid-invalid atau nilai khusus untuk bit proteksi Memori sekunder : digunakan untuk membawa page yang tidak

di memori dan biasanya adalah disk kecepatan tinggi yang disebut swap device. 2. Performansi Demand Paging Demand paging memberikan efek yang signifikan dalam kinerja system computer. Diasumsikan ma adalah access time ke memori dan p adalah probabilitas terjadi page fault (0 p 1), maka effective access time didefinisikan sebagai : EAT = (1-p) x ma + p x page_fault-time Untuk menghitung effective access time, harus diketahui berapa waktu yang diperlukan untuk melayani page fault. Page fault menyebabkan terjadi 1. Trap ke sistem operasi. 2. Menyimpan register dan status proses.
3. Menentukan interrupt adalah page fault 4. Memeriksa page acuan legal atau tidak dan menentukan lokasi page pada disk. 5. Membaca dari disk ke frame bebas :

a. Menunggu di antrian untuk perangkat sampai permintaan membaca dilayani. b. Menunggu perangkat mencari dan / atau waktu latency.
c. Memulai transfer dari page ke frame bebas.

6. Sementara menunggu, alokasikan CPU untuk user lain. 7. Interrupt dari disk (melengkapi I/O). 8. Menyimpan register dan status process user lain. 9. Menentukan interrupt dari disk.
10. Memperbaiki tabel page dan tabel lain untuk menunjukkan page yang dimaksud

sudah di memori. 11. Menunggu CPU dialokasikan untuk proses ini kembali.

12. Menyimpan kembali register, status proses dan tabel page baru, kemudian

melanjutkan kembali instruksi yang di-interupsi. Tidak semua langkah diatas diperlukan pada setiap kasus. Pada beberapa kasus, terdapat tiga komponen utama dari waktu pelayanan page fault yaitu 1. Melayani interrupt page fault. 2. Membaca page. 3. Memulai kembali proses. Untuk menghitung effective access time dari sistem demand paging perhatikan contoh berikut. Diasumsikan memory access 100 ns. Rata-rata waktu latency untuk hard disk adalah 8 ms, waktu pencarian 15 ms dan rata-rata transfer sebesar 1 ms. Total waktu paging 25 ms. Effective access time = (1-p) x (100) + p x (25 ms) = (1-p) x 100 + p x 25000000 = 100 + 24999900 x p Apabila satu dari 1000 akses menyebabkan page fault, maka effective access time = 25 micro-sec (lebih lambat dengan faktor 250). Tetapi bila menginginkan degradasi kurang dari 10% maka 110 > 100 + 25000000 x p 10 > 250000000 x p p < 0.0000004 Perlu diperhatikan system harus mempertahankan rata-rata page-fault yang rendah pada sistem demand-paging. Sebaliknya, jika effective access time meningkat maka akan memperlambat eksekusi proses secara drastis. 4. Copy on Write

Teknik ini bekerja dengan memperbolehkan proses anak untuk menginisialisasi penggunaan halaman yang sama secara bersamaan. halaman yang digunakan bersamaan itu disebut dengan "halaman copy-on-write", yang berarti jika salah satu dari proses anak atau
6

proses induk melakukan penulisan pada halaman tersebut, maka akan dibuat juga sebuah salinan dari halaman itu.

Gb.05 Copy on Write Sebagai contoh, sebuah proses anak hendak memodifikasi sebuah halaman yang berisi sebagian dari stack. Sistem operasi akan mengenali hal ini sebagai copy-on-write, lalu akan membuat salinan dari halaman ini dan memetakannya ke alamat memori dari proses anak, sehingga proses anak akan memodifikasi halaman salinan tersebut, dan bukan halaman milik proses induk. Dengan teknik copyon- write ini, halaman yang akan disalin adalah halaman yang dimodifikasi oleh proses anak atau proses induk. Halaman-halaman yang tidak dimodifikasi akan bisa dibagi untuk proses anak dan proses induk. Gambar 5 Sesudah proses 1 memodifikasi page C Saat suatu halaman akan disalin menggunakan teknik copy-on-write, digunakan teknik zero-fill-ondemand untuk mengalokasikan halaman kosong sebagai tempat meletakkan hasil duplikat. Halaman kosong tersebut dialokasikan saat stack atau heap suatu proses akan diperbesar atau untuk mengatur halaman copy-on-write. Halaman Zero-fill-on-demand akan dibuat kosong sebelum dialokasikan, yaitu dengan menghapus isi awal dari halaman. Karena itu, dengan copy-on-write, halaman yang sedang disalin akan disalin ke sebuah halaman zerofill-on. Teknik copy-on-write digunakan oleh beberapa sistem operasi seperti Windows 2000, Linux, dan Solaris2.

Dengan COW, beberapa proses dapat berbagi pakai halaman yang sama, namun jika ada salah satu proses akan menulis atau melakukan modifikasi, maka dibuat halaman baru (sebagai salinan dari halaman copy-on-write). Pada halaman salinan tersebut proses melakukan modifikasi. Halaman yang lama tetap. Halaman Copy-On-Write diberi tanda sebagai "halaman Copy-On-Write" dan bersifat "read only", sedangkan halaman salinan tidak diberi tanda dan bisa dimodifikasi. Misalkan, halaman C digunakan bersama oleh proses 1 dan proses 2. Ketika proses 1 akan melakukan modifikasi terhadap halaman C, maka sistem operasi membuat halaman baru sebagai salinan dari halaman C yang ditunjuk oleh proses 1. Proses 1 melakukan modifikasi pada halaman yang baru tersebut (ditunjuk oleh proses 1), sedangkan halaman C tetap (ditunjuk oleh proses 2).Untuk menentukan halaman baru sebagai salinan dari halaman CopyOn-Write tersebut Sistem Operasi harus mengetahui letak halaman-halaman yang kosong. Beberapa Sistem Operasi menyediakan pool dari halaman-halaman yang kosong. Selain untuk salinan dari halaman Copy-On- Write, halaman-halaman kosong tersebut disediakan untuk proses yang melakukan penambahan stack atau heap. Teknik yang biasa digunakan oleh sistem operasi untuk menyediakan halaman tersebut disebut zerofill- on-demand. Teknik ini dilakukan dengan mengosongkan halaman-halaman sebelum digunakan oleh proses yang baru. Keuntungan teknik COW a. Jika tidak ada modifikasi pada halaman maka pembuatan salinan dari halaman tidak akan pernah dilakukan atau jumlah memori fisik yang dialokasikan untuk proses tidak pernah bertambah sampai terjadi penulisan data. b. Penggunaan memori fisik sangat jarang, memori fisik baru digunakan hanya jika terjadi penyimpanan data. Kekurangan teknik COW adalah bertambahnya kompleksitas pada level kernel, pada saat kernel menulis ke halaman, maka harus dibuat salinan halaman jika halaman tersebut diberi tanda COW 5. 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
8

untuk ruang swap dan mengubah tabel page (dan tabel lain) yang menunjukkan page tidak lagi di memori.

Gb.06 Kebutuhan akan page replacement Langkah-langkah untuk page fault yang memerlukan page replacement seperti gambar adalah sebagai berikut :
1. 2. 3.

Carilah lokasi page yang diharapkan pada disk. Carilah frame kosong dg cara : Bila ada frame kosong, gunakan. Bila tidak ada, gunakan algoritma page replacement untuk menyeleksi frame Simpan page korban ke disk, ubah tabel page. Baca page yang diinginkan ke frame kosong yang baru, ubah tabel Mulai kembali proses user.

yang akan menjadi korban.

page. 4.

Gb.07 Langkah-langkah page replacement 6. Algoritma Page Replacement

Terdapat beberapa algoritma page replacement, setiap sistem operasi mempunyai skema yang unik. Algoritma page replacement secara umum diinginkan yang mempunyai rata-rata 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 dan menyimpan alamat dari memori acuan. Misalnya jika ditelusuri proses tertentu, disimpan alamat berikut : 0100, 0432, 0101, 0612, 0102, 0103, 0104, 101, 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.
10

Gb.08 Grafik jumlah page fault terhadap jumlah frame 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 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.

Gb.09 Algoritma page replacement FIFO Meskipun algoritma FIFO mudah dipahami dan diimplementasikan, performansi tidak selalu bagus karena algoritma FIFO menyebabkan Beladys anomaly. Beladys 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
11

dengan algoritma FIFO terjadi Beladys anomaly seperti berikut

Gb.10 Beladys anomaly Algoritma Optimal Algoritma optimal merupakan hasil penemuan dari Beladys 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.

Gb.13 Algoritma page replacement optimal

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.

Gb.14 Algoritma page replacement LRU


12

Untuk mengimplementasikan algoritma LRU, digunakan dua model yaitu :

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-of-use pada tabel page untuk page tersebut.

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.

Gb.15 Implementasi LRU menggunakan stack 7. 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 frame ditentukan oleh arsitektur instruction-set. Bila terjadi page fault sebelum eksekusi instruksi selesai, instruksi harus di-restart.

Sehingga tersedia frame yang cukup untuk membawa semua page yang berbeda dimana sembarang instruksi dapat mengacu. Dua jenis algoritma yang digunakan untuk alokasi frame: fixed allocation

13

Pada equal allocation, jika terdapat m frame dan n proses, maka setiapproses dialokasikan sejumlah frame yang sama (m/n frame). Pada proportional allocation setiap proses dialokasikan secara proporsional berdasarkan ukurannya. Jika kuran 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 : ai=si / Sm Dimana S = si. Contohnya : Si = besarnya proses Pi S = Si m = jumlah total bingkai ai = alokasi bingkai untuk Pi ((Si/S ) x m) m = 64 S1 = 10 S2 = 127 a1 = (10/137) x 64 = 5 bingkai a2 = (127/137) x 64 = 59 bingkai

priority allocation

Algoritma alokasi berprioritas 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.

8.

Alokasi Global dan Alokasi Lokal Global replacement mengijinkan suatu proses untuk menyeleksi suatu frame

yang akan dipindah dari sejumlah frame, meskipun frame tersebut sedang dialokasikan ke proses yang lain.
14

Local replacement, jumlah frame yang dialokasikan untuk proses tidak

berubah. Setiap proses dapat memilih dari frame-frame yang dialokasikan untuknya. 9. Thrashing

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

Gb.16 Thrashing 9.1 Working Sel Model Working set model merupakan model lokalitas dari eksekusi proses. Model ini menggunakan parameter (delta) untuk definisi working set window. Kumpulan dari halaman dengan halaman yang dituju yang paling sering muncul disebut working set. Keakuratan Working set tergantung pada pemilihan : jika terlalu kecil tidak akan mewakilkan seluruh lokalitas.
jika terlalu besar menyebabkan overlap. jika tidak terbatas working set adalah kumpulan halaman sepanjang eksekusi program. 15

Jika total permintaan > total bingkai, maka akan terjadi thrashing. Jika ini terjadi maka proses yang sedang berjalan akan diblok.

9.2 Skema Frekuensi Page Fault Untuk mencegah thrashing maka kita harus mengatur tingkat page fault yang terjadi. Jika page fault sering terjadi maka dibutuhkan bingkai yang lebih banyak, jika page fault jarang terjadi maka bingkai yang ada terlalu banyak, maka diperlukan batasan untuk menentukan batas atas dan batas bawah dari frekuensi page fault. Jika melewati batas atas maka proses mendapat alokasi bingkai baru, jika melewati batas bawah maka bingkai akan didealokasi dari proses.

Gb.17 Skema frekuensi Page fault 10. Memory Mapped File

Memory-Mapped Files adalah teknik yang digunakan untuk pengaksesan file, dimana blok berkas dalam disk dipetakan ke halaman memori. File tersebut belum berada dalam memori. Karena pengaksesan berkas dilakukan melalui demand paging, akses kali pertama
16

pada berkas akan menghasilkan halaman fault. Namun sesudah itu sebagian dari halaman berkas akan dibaca dari sistem berkas ke memori fisik. Selanjutnya pembacaan dan penulisan pada berkas dilakukan dalam memori. Hal ini menyederhanakan pengaksesan dan penggunaan berkas daripada pengaksesan langsung ke disk melalui sistem call read() dan write().

Gb.18 Memory mapped file 11. Alokasi Memori Kernel

Memori kernel sering dialokasikan dari sebuah daftar kumpulan memori bebas yang berbeda dari daftar yang digunakan untuk memenuhi permintaaan dalam user-mode proses. Terdapat dua alasan untuk hal ini:

Kernel meminta memori untuk struktur data dengan berbagai

ukuran, ada beberapa yang lebih kecil dari ukuran halaman. Jadi, kernel harus bisa meminimalisasi memori yang terbuang karena terjadinya fragmentasi.

Halaman-halaman yang dialokasikan untuk proses-proses saat

user-mode tidak harus dalam halaman yang saling berdekatan. Bagaimanapun juga hardware devices tertentu berinteraksi langsung dengan memori fisik. Hal itu mengakibatkan adanya kebutuhan memori sisa dalam halaman-halaman yang saling berdekatan. Ada dua strategi untuk me- manage memori bebas yang diserahkan untuk proses-proses kernel, yaitu: sistem buddy dan alokasi slab. 11.1 Sistem Buddy
17

Sistem buddy merupakan algoritma pengelolaan alokasi memori dimana pengalokasian memori untuk suatu proses dilakukan dengan memecah satu blok memori bebas menjadi dua bagian yang sama besar. Pemecahan dilakukan secara rekursif sehingga didapat blok yang besarnya sesuai kebutuhan.

Gb.19 Sistem buddy 11.2 Alokasi Slab Alokasi slab bertujuan untuk mengalokasikan struktur data (obyek) kernel yang dibutuhkan di memori fisik untuk menjalankan proses tertentu. Alokasi slab menggunakan algoritma slab. Slab dibentuk dari halaman-halaman memori fisik yang berdekatan serta digunakan terutama untuk kegiatan pengalokasian memori fisik. Sebuah cache pada disk terdiri dari satu atau lebih slab, dan diisi oleh beberapa obyek. Obyek merupakan bentuk instansiasi dari struktur data kernel yang direpresentasikan oleh cache yang bersangkutan. Ketika sebuah cache dibentuk, maka semua obyek di dalam cache tersebut berstatus free, dan ketika terjadi sebuah permintaan dari suatu proses, maka obyek-obyek yang dibutuhkan untuk memenuhi permintaan tersebut akan diset berstatus used. Kemudian obyek-obyek yang berstatus used tersebut yang telah dikelompokkan ke dalam slab-slab akan dipetakan dari cache ke dalam memori fisik. Keuntungan algoritma slab: Tidak terdapatnya fragmentasi pada memori fisik, karena ukuran obyek-obyek tersebut telah ditetapkan sesuai dengan yang dibutuhkan proses dalam membantu melakukan kerjanya di memori fisik.

18

Permintaan oleh memori cepat terpenuhi dengan mendayagunakan kerja dari cache

yang dibentuk pada disk.

Gb.20 Alokasi slab 12. 1. Prepaging Prepaging merupakan suatu cara untuk mengurangi page fault pada saat proses dimulai. Prepaging akan berguna bila biaya yang digunakan prepaging lebih sedikit dari biaya menangani kesalahan halaman yang terjadi, yaitu ketika seluruh halaman yang dibawa terpakai sebagian besar. Namun prepaging juga bisa merugikan, yaitu saat biaya prepaging lebih besar dari biaya menangani kesalahan halaman atau dengan kata lain dari keseluruhan halaman yang dibawa yang terpakai hanya sebagian kecil saja. 2. Page Size Pada dasarnya tidak ada ukuran halaman yang paling baik, karena terdapat beberapa faktor yang mempengaruhinya, yaitu:

Pertimbangan Lain

Ukuran page table waktu yang dibutuhkan untuk membaca atau menulis halaman lokalitas

3. TLB Reach

19

TLB reach atau jangkauan TLB adalah jumlah memori yang dapat diakses dari TLB (Translation Lookaside buffers). Jumlah tersebut merupakan perkalian dari jumlah masukan dengan ukuran halaman. Jangkauan memori = (jumlah masukan TLB) x (ukuran halaman) Idealnya, working set dari sebuah proses disimpan dalam TLB. Jika tidak, maka proses akan menghabiskan waktu yang cukup banyak mengatasi referensi memori di dalam tabel halaman daripada di TLB. Cara lain untuk meningkatkan jangkauan TLB adalah dengan menambah ukuran halaman. Jika ukuran halaman dijadikan dua kali lipatnya, maka jangkauan TLB juga akan menjadi dua kali lipatnya. Namun hal ini akan meningkatkan fragmentasi untuk aplikasi-aplikasi yang tidak membutuhkan ukuran halaman sebesar itu. Sebagai alternatif, Sistem Operasi dapat menyediakan ukuran halaman yang bervariasi. 4. Penguncian I/O Saat demand paging digunakan, kita terkadang harus mengizinkan beberapa halaman untuk dikunci di memori.

Gb.21 Penguncian I/O 13. Windows XP Contoh Sistem Operasi

20

Windows

XP

mengimplementasikan

memori

virtual

dengan

menggunakan

permintaan halaman melalui clustering.


Saat proses pertama dibuat, diberikan working set minimum dan working set

maximum.
working set minimum yaitu jumlah minimum halaman yang dijamin akan dimiliki

oleh proses tersebut dalam memori.


Jika memori yang tersedia mencukupix, proses dapat diberikan halaman sampai

sebanyak working set maximum.


Saat jumlah memori bebas jatuh di bawah nilai batasan, manager memori virtual

menggunakan sebuah taktik yang dikenal sebagai automatic working set trimming untuk mengembalikan nilai tersebut di atas nilai batas.
Jika proses telah mendapat alokasi halaman lebih besar daripada working set

minimum-nya, manager memori virtual akan mengurangi jumlah halamannya sampai working set minimum. Linux Alokasi memori pada Linux menggunakan dua buah alokasi yang utama, yaitu algoritma buddy dan slab. Untuk algoritma buddy, setiap routine pelaksanaan alokasi ini dipanggil, maka blok memori berikutnya akan diperiksa. Jika ditemukan dia dialokasikan, namun jika tidak maka daftar tingkat berikutnya akan diperiksa. Jika ada blok bebas, maka akan dibagi jadi dua, yang satu dialokasikan dan yang lain dipindahkan ke daftar yang dibawahnya. Sedangkan algoritma slab menggunakan slab yang dibentuk dari halaman-halaman memori fisik yang berdekatan dan digunakan terutama untuk kegiatan pengalokasian memori fisik. Referensi: http://imam_muiz.staff.gunadarma.ac.id http://bebas.ui.ac.id/v06/Kuliah/SistemOperasi/BUKU/SistemOperasi-4.X-2/ch05.html http://g.randicha.students-blog.undip.ac.id/2010/10/01/chapter-9-virtual-memory/ http://lecturer.eepis-its.edu/~arna/Diktat_SO/8.Virtual%20Memory.pdf
21

Pertanyaan:
1. Apa tujuan mempelajari memori?

2. Apa yang dimaksud halaman dalam virtual memory? 3. Bagaimana reaksi sistem operasi apabila terdapat aplikasi yang meminta resource melebihi virtual memory
4. Jelaskan global replacement dan local replacement

Jawab:
1. Agar dapat memahami konsep dasar memori dipandang dari fisik dan logik. Memori

merupakan inti dari sistem komputer modern. CPU mengambil instruksi dari memori sesuai yang ada pada program counter. Instruksi dapat berupa menempatkan/ menyimpan dari/ ke alamat di memori, penambahan, dan sebagainya. Sistem Operasi bertugas untuk mengatur peletakan banyak proses pada suatu memori.

2.

22

Pada gambar diatas ditunjukkan ruang sebuah memori virtual yang dibagi menjadi bagian-bagian yang sama dan diidentifikasikan dengan nomor virtual pages. Memori fisik dibagi menjadi page frames yang berukuran sama dan diidentifikasikan dengan nomor page frames. Bingkai (frame) menyimpan data dari halaman. Atau memori virtual memetakan nomor virtual pages ke nomor page frames. Mapping (pemetaan) menyebabkan halaman virtual hanya dapat mempunyai satu lokasi alamat fisik. Dalam sistem paging, jika sebuah ruang diperlukan untuk proses dan halaman yang bersangkutan tidak sedang digunakan, maka halaman dari proses akan mengalami paged out (disimpan ke dalam disk) atau swap out, memori akan kosong untuk halaman aktif yang lain. Halaman yang dipindah dari disk ke memori ketika diperlukan dinamakan paged in (dikembalikan ke memori) atau swap in. Ketika sebuah item dapat mengalami paging, maka item tersebut termasuk dalam item yang menempati ruang virtual, yang diakses dengan alamat virtual dan ruangan yang ada dialokasikan untuk informasi pemetaan. Sistem operasi mengalokasikan alamat dari item tersebut hanya ketika item tersebut mengalami paging in.

23

3. Bagian dari sistem yang bertugas untuk mengatur memori disebut memory manager.

Memory manager mengatur bagian mana dari memori yang harus digunakan dan mana yang tidak pada suatu waktu, selain itu memory manager juga mengalokasikan memori untuk proses-proses yang membutuhkannya serta men-dealokasikannya kembali saat proses-proses tersebut tidak lagi membutuhkannya. Bagaimana jika memori tidak lagi cukup untuk menampung semua proses yang akan dieksekusi? Solusi untuk masalah ini adalah dengan teknik pemindahan proses dari memori ke dalam disk dan kembali memindahkannya ke memori pada saat hendak dieksekusi lagi atau yang lebih dikenal dengan istilah swapping. Sebuah proses, harus berada di memori sebelum dieksekusi. Proses swapping menukarkan sebuah proses keluar dari memori untuk sementara waktu ke sebuah penyimpanan sementara dengan sebuah proses lain yang sedang membutuhkan sejumlah alokasi memori untuk dieksekusi. Tempat penyimpanan sementara ini biasanya berupa sebuah fast disk dengan kapasitas yang dapat menampung semua salinan dari semua gambaran memori serta menyediakan akses langsung ke gambaran tersebut. Jika eksekusi proses yang dikeluarkan tadi akan dilanjutkan beberapa saat kemudian, maka ia akan dibawa kembali ke memori dari tempat penyimpanan sementara tadi.

4. Penggantian Global dan Penggantian Lokal: a. Penggantian Global. Penggantian secara global memperbolehkan suatu

proses mencari bingkai pengganti dari semua bingkai yang ada, meskipun bingkai tersebut sedang dialokasikan untuk proses lain. Hal ini memang efisien, tetapi ada kemungkinan proses lain tidak mendapatkan bingkai karena bingkainya terambil oleh proses lain.
b. Penggantian Lokal. Penggantian lokal hanya mengijinkan proses untuk

mencari bingkai pengganti dari bingkai-bingkai yang memang dialokasikan untuk proses tersebut. Pada algoritma penggantian lokal, jumlah bingkai yang dialokasikan pada suatu proses tidak akan berubah. Sedangkan pada algoritma penggantian global jumlah bingkai pada proses tersebut mungkin akan bertambah dengan asumsi proses lain tidak mengambil bingkai proses ini sebagai pengganti dari bingkai proses tersebut.

24

Masalah pada algoritma penggantian global adalah proses tidak dapat mengontrol page fault rate proses itu sendiri. Keunggulan algoritma ini adalah menghasilkan system throughput yang lebih bagus, oleh karena itu algoritma ini lebih sering dipakai.

25