Implementasi virtual memory di windows 10 sistem operasi 4 reg a
1. Anggota
Kelompok
1. Aditya Tri Ananda (09021181924019)
2. Irvan Kurniawan (09021181924159)
3. Muhammad Daffa Rizky Fatarah (09021181924014)
4. Muhammad Farras (09021281924158)
4. Virtual Memory
● Memori fisik ukurannya kecil
● Ukuran program seringkali besar
○ Seluruh program tidak perlu di load dalam waktu yang sama
● Dibutuhkan suatu sistem alokasi memori
5. Virtual Memory
● Memanfaatkan memori sekunder sebagai tambahan memori utama
○ Seakan-akan memori virtual lebih besar dari memori fisik
● Ada sistem demand paging
○ Load bagian program yang diperlukan saja
● Dengan adanya memori lebih besar, memungkinkan lebih banyak program
untuk berjalan
○ Lebih efisien dalam membuat proses baru
6. Teknik Virtual Memory
Disc Paging
● Mengambil sebagian harddisk
sebagai tambahan RAM
● Disebut sebagai Page File
● Tidak meningkatkan performa
sistem
● Hanya bermanfaat apabila memori
primer kecil, sedangkan program
berukuran besar dan/atau banyak
Demand Paging
● Memecah proses menjadi task-
task kecil
● Hanya men-load task yang akan
diproses
● Tidak bisa digunakan pada driver
grafis dan hardware
8. Working Set
Working
Set
Private Sharable
+
Working Set = Jumlah Physical Memory
yang digunakan oleh suatu proses.
○ Privat Working Set = Jumlah Physical
Memori yang digunakan berkaitan
dengan tugas-tugas yang didedikasikan
untuk proses tersebut.
○ Sharable Working Set = jumlah
Physical Memory yang digunakan oleh
proses yang berkaitan dengan tugas
yang dapat dibagikan dengan proses
lain.
9. Example Working Set
Saat membuka dokumen Word, winword.exe tetap berada di Sharable Working
Set dan konten dokumen diletakkan di Private Working Set.
Jadi beberapa dokumen word yang dibuka secara bersamaan dapat berbagi
winword.exe yang sama sementara datanya bersifat private dan berbeda.
Sumber daya sistem bersama seperti DLLs, driver Sistem (file Kernel / OS.sys)
hanya ada sebagai Shared Process tanpa Private Working Set.
Tugas dan Layanan yang terdiri dari proses yang dapat dieksekusi (.exe)
merupakan Private Working Set yang memiliki sumber daya yang dapat
dibagikan.
10. Commit
● Commit dan Working Set dari semua proses yang berjalan dapat dilihat
pada tab Memory pada Resource Monitor.
● Commit adalah jumlah Virtual Memory yang dicadangkan oleh sistem
operasi untuk proses tertentu.
● Jumlah ini hanyalah perkiraan dari ukuran Page File yang diperlukan oleh
suatu proses, dan tidak dialokasikan sehingga sistem perlu menampilkan
Private Working Set dari suatu proses dalam Physical Memory ke Page File.
● Karena alasan inilah, ukuran Commit selalu lebih besar daripada Private
Working Set suatu proses.
14. Explanation Resource Memory
● Jumlah dari semua Commit proses menunjukkan permintaan Virtual
Memory oleh sistem yang perlu dipenuhi dari Page File.
● Ukuran Page File dapat dikonfigurasi jauh lebih sedikit daripada permintaan
Virtual Memory, karena sistem pada dasarnya akan menjadi non-fungsional
jika Private Working Set dari semua proses yang berjalan akan dialihkan.
Total Virtual Memory = Total Physical + Page File Size
= 3800 + 1024 = 4824 MB = 4.71 GB.
Committed (Virtual In Use) = Total Virtual – Available Virtual
= 4.71 GB – 2.96 GB
= 1.75 GB (as seen on Task Manager).
15. Virtual Memory on Windows 10
● Memori Virtual di Windows --> polimorfik.
● Polimorfik = Satu terminologi berlaku untuk representasi memori di mana dalam
pengertian teknis yang sebenarnya, Virtual Memory = Total Physical Memory +
Page File Size
● Memori Virtual juga mengacu pada abstraksi memori Sistem Operasi ke dalam direktori
proses.
● Setiap folder adalah kumpulan Page (segmen 4 KB) yang tersebar di memori dari
Working Set Process, dengan data lokasi Page yang mendasari per proses berada di
Page Tabel Berbeda.
● Page Table ini adalah urutan Page berurutan dari suatu proses Working Set, dimana
halaman diidentifikasi oleh indeks yang ditetapkan mulai dari 0 hingga 2 ^ bit
alamat, dengan setiap indeks halaman menentukan lokasi acak Page dalam Physical
Memory. Hal ini memungkinkan perangkat lunak OS untuk mengindeks secara
berurutan melalui proses Page dan menjalankan kode dengan merujuk ke lokasi
Page Physical Memory dalam Page Table.
17. Pysical Memory
● Mengacu pada chip atau modul RAM yang
sebenarnya
● Biasanya dipasang pada motherboard komputer.
● Akses terhadap lokasi-lokasi di dalamnya dilakukan
secara acak (random), bukan secara berurutan
(sekuensial).
● Bersifat sementara
19. In Use Modified Standby Free
Hardware
Reserved
● Harus selalu
ada pada
RAM.
● Terkunci dan
tidak
tersedia
untuk
pengelola
memori.
● Bagian
utama dari
ini adalah
Memori
Grafis
Berisi halaman
yang
dimodifikasi
yang telah
dihapus dari set
kerja proses
Jumlah total
Set Kerja dari
semua proses
● sistem
operasi
● kernel
● driver
● berbagai
aplikasi.
● Halaman
yang tidak
dimodifikasi
dipindahkan
dalam
Standby
● Semua
halaman
dalam
Standby
tersedia
untuk
permintaan
alokasi
memori.
● Lokasi yang
belum
dialokasikan
ke proses
apa pun
● Atau sudah
dialokasikan
tetapi
dikembalika
n ke manajer
memori
untuk
digunakan
kembali.
21. Demand Paging
● Setiap sistem operasi bertanggung jawab dalam mengatur informasi
dalam PCB
● CPU bisa mengakses Page Table Base Address di dalam PCB
● CPU memiliki Program Counter yang berisi virtual address
● MMU di CPU akan menghubungkan memori fisik dan memori virtual
○ Disimpan di Memori Address Register (MAR)
● CPU akan membaca alamat memori di MAR dan mengeksekusi instruksi
yang ada
23. Demand Paging
● Jika isi instruksi adalah lokasi memori lain yang berisi instruksi lain, maka
MAR akan di-update sehingga berisi instruksi dari memori lain tersebut
○ Context Switching
● MMU akan menghasilkan Page Fault jika alamat page virtual tidak ada
atau ada kekurangan nomor frame
○ Page Handler
○ Mencari alamat yang hilang / tidak ada
● Jika ditemukan, akan di-load dan dieksekusi
○ Jika tidak ditemukan, maka proses terhenti
24. TLB Reach
TLB reach ataujangkauan TLB adalah jumlahmemori yangdapatdiakses dari TLB (Translation
Lookaside buffers). Jumlah tersebut merupakan perkalian dari jumlah masukan denganukuran
halaman.
Jika jumlah masukan dari TLB dilipatgandakan, maka jangkauan TLB juga akanbertambah
menjadi dua kali lipat. Idealnya, working set dari sebuah proses disimpan dalamTLB. Jika tidak,
maka proses akan menghabiskan waktu yangcukupbanyak mengatasi referensi memori di
dalamtabel halaman daripada di TLB. Tetapi untuk beberapa aplikasi hal ini masihbelumcukup
untuk menyimpan working set.
Jangkauan memori = (jumlah masukan TLB) x (ukuran halaman).
25. TLB Reach
Cara lain untuk meningkatkan jangkauan TLB adalah dengan menambah ukuran halaman. Jika
ukuran halaman dijadikan dua kali lipatnya, maka jangkauanTLB juga akanmenjadi duakali
lipatnya.
Namunhal ini akan meningkatkan fragmentasi untuk aplikasi-aplikasi yang tidak membutuhkan
ukuran halaman sebesaritu. Sebagai alternatif, SistemOperasi dapat menyediakan ukuran
halaman yangbervariasi.
Sebagai contoh, UltraSparcII menyediakan halaman berukuran 8 KB, 64 KB, 512 KB, dan 4 MB.
Sedangkan Solaris 2 hanya menggunakan halamanukuran 8 KB dan4 MB.
26. TLB Reach
- Berbentuk perangkat keras cache yang terletak dalam MMU
- Memetakan virtual page number (VPN) menjadi physical page number
(PPN)
- Dapat menggantikan page table dalam ukuran yang lebih kecil
28. Segmentation
Sejarah
Segmentasi pertama di-
implementasikan di
komputer 16 bit dengan
nama Real Mode dan di
komputer 32 bit dengan
nama Protected Mode
Segmentasi dalam Sistem Operasi adalah teknik manajemen
memori dimana memori dibagi menjadi bagian-bagian
berukuran dinamis yang diberi nama Segmen.
Apa kelebihan teknik Segmentasi diatas Paging?
Segmentasi membagi segmen secara dinamis dan bisa
membagi sesuai fitur yang dibutuhkan sedangkan
paging bisa membagi 1 fitur dalam aplikasi menjadi
beda page sehingga mengurangi efisiensi dari program
yang kita jalankan.
29. Segment Table
Contoh Segment Table untuk Virtual Memory
Dalam Segment Table terdapat Base yaitu start address dari tiap Segment
dan Limit yaitu batas dinamis variabel ukuran dari tiap Segment
31. Kekurangan Segmentation
Internal Fragment
Meski External Fragmen
tation hanya ada di
Segmentasi, terdapat
juga Internal Fragmen
tation yang hanya terjadi
di demand paging, Hal ini
akan dibahas pada topik
Optimizing Page Size
Karna kita sudah membahas kelebihan segmentasi dari
demand paging di 3 slide sebelumnya, lanjut kita bahas
kekurangannya
Kekurangan umum yang dipunyai segmentasi adalah
algoritma yang kompleks dan memakan resource serta
susahnya memasukkan memori berkelanjutan ke segmen
yang berukuran dinamis.
Tetapi Kekurangan Fatal dari segmentasi adalah bisa
terjadi External Fragmentation yang akan dijelaskan di
slide berikutnya
32. External Fragmentation
External Fragmentation terjadi ketika jumlah keseluruhan memori
bebas yang tersedia cukup untuk menampung permintaan ruang
memori dari sebuah proses
Namun dari ruang memori kosong tersebut yang ruang yang dapat
dipakai pun terpisah-pisah karena alokasi yang dinamis sehingga
proses tidak dapat menggunakannya.
Solusi untuk fragmentasi eksternal adalah pemadatan, tetapi mahal
untuk diterapkan, sehingga proses harus diizinkan untuk memperoleh
memori fisik dengan cara yang tidak berdekatan
33. Segmentation with Demand Paging
External Fragment
External Fragmentation
adalah salah satu penye
bab utama dari memory
leakage sehingga fatal
bagi sistem operasi yang
terkena. Inilah salah satu
alasan digabungkan
segmentation dan paging
Kita telah melihat bahwa teknik segmentasi ataupun
demand paging memiliki kelemahan unik masing-masing
Salah satu cara solusi unik untuk menyelesaikannya adalah
melakukan penggabungan dari teknik Segmentation dan
Demand Paging
Penggabungannya adalah dimana tiap segmen terdiri
dari page berkelanjutan yang didefinisikan di page
table dengan page frame nya disiapkan di memory
Lebih jelas akan ada di gambar di slide berikutnya
36. Fragmentasi merupakan fenomena munculnya lubang-lubang (ruang
memori kosong) yang tidak cukup besar untuk menampung permintaan
alokasi memori dari proses.
Fragmentasi terdiri dari 2 jenis, yaitu :
- Eksternal
- Internal
Fragmentasi
37. Dalam kasus first fit dan juga best fit sebagaimana yang telah dijelaskan di atas, pada saat proses dimasukkan atau
dipindahkan dari memori, ruang memori yang tidak terpakai akan dipecah menjadi bagian yang kecil (sisa dari
alokasi sebuah proses pada sebuah ruang memori). Eksternal fragmentasi terjadi apabila jumlah keseluruhan
memori bebas yang tersedia cukup untuk menampung permintaan ruang memori dari sebuah proses, namun dari
ruang memori kosong tersebut terpisah-pisah sehingga proses tidak dapat menggunakannya. Hal ini sering
terjadi pada alokasi penyimpanan yang dinamis.
Fragmentasi Eksternal
38. Fragmentasi internal terjadi ketika kapasitas memori yang diberikan ke sebuah proses melebihi besarnya
permintaan yang diajukan oleh proses. Selisih antara besarnya memori yang dialokasikan dengan besarnya
permintaan proses disebut fragmentasi internal (memori yang ada di dalam sebuah partisi namun tidak
digunakan). Hal ini sering terjadi pada partisi tetap karena besar lubang yang disediakan akan selalu tetap,
berbeda halnya dengan sistem partisi dinamis yang memungkinkan suatu proses untuk diberikan alokasi memori
sebesar yang ia butuhkan.
Fragmentasi Internal
40. Hierarchical paging atau pemberian halaman secara bertingkat merupakan sebuah metode
pemberian halaman dengan cara membagi sebuah page table menjadi beberapa page table yang
berukuran lebih kecil. Metode ini merupakan solusi dari permasalahan alokasi page table
berukuran sangat besar pada main memory yang umumnya dihadapi pada sistem komputer
modern yang memiliki ruang alamat logika yang besar sekali (mencapai 2 pangkat 32 sampai 2
pangkat 64).
Konsep dasar metode ini yaitu menggunakan pembagian tingkat setiap segmen alamat logika.
Setiap segmen menunjukkan indeks dari sebuah page table, kecuali segmen terakhir yang
menunjuk langsung ke frame pada memori fisik. Segmen terakhir ini disebut offset (d). Dapat
disimpulkan bahwa segmen yang terdapat pada alamat logika menentukan berapa level paging
yang digunakan yaitu banyak segmen dikurang 1.
Optimizing Page Size dengan Multi-level Page Table
41. Dengan metode ini, isi pada indeks page table pertama akan menunjuk pada page
table kedua yang indeksnya bersesuaian dengan isi dari page table pertama
tersebut. Sedangkan isi dari page table kedua menunjukkan tempat dimana page
table ketiga bermula, sedang segmen alamat logika kedua adalah indeks ke-n
setelah starting point page table ketiga dan seterusnya sampai dengan segmen
terakhir.
Optimizing Page Size dengan Multi-level Page Table
42. Inverted Page Table adalah strategi untuk mengurangi ukuran tabel halaman dengan
mendefinisikan tabel Halaman di mana ruang alamat mengacu pada ruang alamat fisik RAM,
bukan ruang alamat virtual. Ini masuk akal pada sistem server yang memiliki RAM terpasang
dalam jumlah besar untuk memenuhi permintaan semua layanan yang berjalan. Sementara Page
Table diindeks (dialamatkan) oleh VPN ke PTE yang berisi PPN, Inverted Page Size diindeks oleh
PPN ke PTEs yang berisi VPN - sehingga membatasi ruang memori virtual ke ruang memori fisik.
Dalam implementasi normal memori virtual, setiap proses memiliki Page Table sendiri dengan
setiap Page Table memiliki kumpulan alamat virtual yang sama, sehingga ruang memori virtual
bervariasi tergantung pada jumlah proses yang berjalan. Dalam Inverted Page Tab;e, ruang
memori virtual ditetapkan oleh PPN yang mengindeks Tabel Halaman Tunggal yang digunakan
bersama oleh semua proses yang sedang berjalan, yang VPN-nya didistribusikan secara acak
dalam tabel. Mengalokasikan proses di page berkelanjutan akan menyebabkan fragmentasi
internal Page Table itu sendiri.
Optimizing Page Size dengan Inverted Page Table
44. “it is always easier to destroy a complex
system than to selectively alter it”
-Roby James
(Author of book "Commitment")
Terima Kasih Atas Perhatiannya