Manajemen Memori
Manajemen Memori
©
Pendahuluan (2)
Manajemen Memori
©
Pendahuluan (4)
Manajemen Memori
©
Tujuan Manajemen Memori
Manajemen Memori
©
Base dan Limit Register (1)
Setiap proses ditentukan lokasi dan jarak alamat yang dilegalkan sehingga
proses hanya bisa mengakses pada alamat tersebut
Base register
Manajemen Memori
©
Base dan Limit Register (2)
Manajemen Memori
©
Address Binding
Compilation Time
Load Time
Manajemen Memori
©
Alamat Logika vs Alamat Fisik
Alamat logika sama dengan alamat fisik pada saat compilation dan load
time
Alamat logika berbeda dengan alamat fisik pada saat execution time
Manajemen Memori
©
Swapping
Partisi
Pada saat proses tersebut kembali akan dieksekusi, maka proses akan
kembali dipindahkan ke memory
Manajemen Memori
©
Swapping (2)
Sebuah proses memiliki ukuran 5 MB, sedangkan backing storage yang berupa
harddisk memiliki kecepatan transfer data sebesar 20 MB per detik
Perhitungan di atas belum termasuk waktu latency, sehingga jika kita asumsikan
waktu latensi sebesar 2 ms maka waktu swap adalah sebesar 252 ms
Karena terdapat dua kejadian yaitu pengeluaran proses dan pemasukan proses ke
dalam memori, maka total waktu swapping menjadi 252 + 252 = 504 ms
Agar teknik swapping dapat lebih efisien, maka proses-proses yang di- swap
hanyalah proses-proses yang benar-benar dibutuhkan sehingga dapat
mengurangi waktu swap
Manajemen Memori
©
Partisi Memori
Pada bagian user proses, memory dapat dipartisi dengan secara static
(tetap) maupun secara dinamis
Manajemen Memori
©
Partisi Static
Manajemen Memori
©
Partisi Dinamis (1)
Apabila ada proses yang datang, sistem operasi akan mencari lubang memory
yang cukup besar untuk menampung proses tersebut
Apabila lubang yang tersedia terlalu besar, maka lubang akan dipecah menjadi 2,
dimana satu bagian digunakan untuk menampung proses tersebut sedangkan
bagian lain akan digunakan untuk bersiap-siapmenampung proses lain
Manajemen Memori
©
Partisi Dinamis (2)
OS OS OS OS
process 9 process 9
process 8 process 10
Manajemen Memori
©
Strategi Alokasi Proses Pada Partisi Dinamis
First Fit dan Best Fit lebih baik dari pada Worst Fit dalam hal kecepatan
dan utilisasi ruang
Manajemen Memori
©
Fragmentasi (1)
Fragmentasi Internal
Fragmentasi Eksternal
Manajemen Memori
©
Fragmentasi (2)
Fragmentasi External terjadi pada saat sisa ruang memory cukup besar secara
keseluruhan untuk dialokasikan kepada suatu proses, tetapi lubang-lubang partisi yang
tersisa terlalu kecil untuk dialokasikan kepada proses tersebut
Solusinya, dilakukan pemadatan sejumlah lubang memory kecil menjadi sebuah lubang
besar yang cukup untuk dialokasikan ke suatu proses
Manajemen Memori
©
Fragmentasi (3)
Manajemen Memori
©
Memory Sharing (1)
Berbagi halaman atau berbagi memori merupakan salah satu teknik yang dapat
digunakan untuk menghemat pengalokasian memori
Keuntungan yang dapat diperoleh dari teknik berbagi halaman ini adalah suatu kode
dapat digunakan secara bersama-sama
Hal ini sangatlah penting dalam kondisi berbagi waktu (time-sharing environment)
Manajemen Memori
©
Memory Sharing (2)
Kode reentrant dapat dieksekusi oleh 2 atau lebih proses dalam waktu yang bersamaan
Tiap-tiap proses tersebut memiliki salinan dari register dan tempat penyimpanan data
untuk memperoleh data proses yang akan dieksekusi, oleh karena itu 2 proses berbeda
akan memiliki data yang berbeda pula
Dalam berbagi halaman, hanya satu salinan dari editor yang akan disimpan dalam
memori
Tiap halaman tabel pengguna akan memetakan editornya masing-masing ke alamat fisik
yang sama namun halaman data mereka akan dipetakan ke alamat fisik yang berbeda-
Manajemen Memori
beda ©
Memory Sharing (4)
Sehingga untuk kasus 40 pengguna diatas, kita hanya butuh satu buah salinan
dari editor (150 KB) serta 40 salinan masing-masing sebesar 50 KB
Maka jumlah ruang memori yang dibutuhkan adalah 2.150 KB yang jauh lebih sedikit
dibandingkan dengan 8.000 KB jika tidak menggunakan teknik berbagi memori
Manajemen Memori
©
Pengertian
Register Asosiatif
Paging
Effective Access Time
Proteksi
Multilevel Paging
Memecah memori fisik menjadi blok-blok yang berukuran tertentu yang disebut
dengan frame
Memecah memori logika menjadi blok-blok yang berukuran sama dengan frame
yang disebut dengan page
Page number (p) digunakan sebagai indeks ke dalam table page (page table),
yang berisi alamat basis dari setiap page pada memori fisik
Manajemen Memori
©
Paging (3)
Page offset (d) mengkombinasikan alamat basis dengan page offset untuk
mendefinisikan alamat memori fisik yang dikirim ke unit memori
Manajemen Memori
©
Contoh model paging
Manajemen Memori
©
Translasi Alamat pada Sistem Paging (1)
Manajemen Memori
©
Translasi Alamat pada Sistem Paging (2)
Page 0 dipetakan ke frame 5, berarti alamat logika 0000 dipetakan ke frame 5 offset
0000, alamat logika 0000 menyimpan data dari frame 5 offset 0 yaitu ‘U’
Alamat logika 0110 berarti nomor pagenya adalah 01 atau 1, dan nomor offsetnya
0010, sehingga dipetakan ke frame 6 offset 0010 dan menyimpan data ‘AA’
Manajemen Memori
©
Dukungan Perangkat Keras (1)
Bila page table berukuran kecil (misal 256 entry), maka page table dapat
diimplementasikan dengan menggunakan register
Bila page table memiliki ukuran yang terlalu besar (misal 1 juta entry) untuk diterapkan di
register maka page table harus diletakkan di memory
Untuk itu digunakan Page Table Base Register (PTBR) dan Page Table Length Register
(PTLR) yang menunjukkan ukuran page table
Manajemen Memori
©
Dukungan Perangkat Keras (2)
Masalah untuk implementasi ini adalah dibutuhkan dua kali akses ke memori pada
program, yaitu untuk page table dan untuk data/instruksi
Untuk mempercepat waktu akses ini, digunakan cache yang terdiri dari sekumpulan
register asosiatif atau disebut TLB (Translation Look-aside Buffer) yang merupakan
memory berkecepatan tinggi
Manajemen Memori
©
Register Asosiatif (1)
Setiap register asosiatif menyimpan pasangan nomor page dan nomor frame (alamat
awal)
Input untuk register asosiatif akan dibandingkan dengan data pada register asosiatif
Bila input ditemukan maka nomor frame yang sesuai akan dihasilkan, kejadian ini disebut
TLB hit
TLB miss terjadi bila input tidak ditemukan, maka input tersebut akan dicari pada memori
(yang lebih lambat dari cache)
Manajemen Memori
©
Register Asosiatif (2)
Manajemen Memori
©
Effective Access Time (EAT) (1)
Peluang nomor page akan ditemukan dalam register disebut Hit Ratio.
Hit ratio 80% berarti peluang menemukan nomor page yang dicari dalam TLB sebesar
80%
Jika nomor page ada di TLB, maka untuk mencari TLB memakan waktu 20 nanodetik dan
100 nanodetik untuk akses ke memori, maka total waktunya adalah 120 nanodetik
Manajemen Memori
©
Effective Access Time (EAT) (2)
Jika nomor page tidak ada di TLB (20 nanodetik), maka kita harus mengakses memori
untuk page table dan nomor frame (100 nanodetik) dan mengakses byte yang
diharapkan di memori (100 nanodetik), sehingga totalnya 220 nanodetik
Untuk mendapatkan waktu akses memory efektif, kita mengalikan tiap kasus dengan
peluangnya:
Manajemen Memori
©
Proteksi (1)
Proteksi memori dapat diterapkan pada sistem paging dengan meletakkan bit proteksi
pada setiap frame
Sebuah bit proteksi dapat mendefinisikan apakah page bersifat read-only atau read-write
Untuk memberikan proteksi yang lebih baik, dapat pula ditambahkan bit lainnya,
misalnya untuk sifat execute-only
Manajemen Memori
©
Proteksi (2)
Manajemen Memori
©
Multilevel Paging pada Ruang Alamat Logika 32 bit (1)
pi p2 d
Manajemen Memori
1 1 1
0 0 2 ©
Multilevel Paging pada Ruang Alamat Logika 32 bit (2)
• Untuk sistem dengan ruang alamat logika 64 bit tidak dapat menggunakan skema two-
level paging
• Solusi yang digunakan adalah dengan membagi tabel page luar ke dalam bagian yang
lebih kecil : menggunakan skema three-level atau four-level paging
Manajemen Memori
©
Skema Two VS Three Level Paging
Manajemen Memori
©
Hit Ratio Pada MultiLevel Paging
• Untuk skema three-level paging, jika kita menggunakan memori untuk menyimpan
tabel, maka akan membutuhkan 4 kali akses memori
• Tetapi jika menggunakan cache dengan hit ratio 98%, effective access time menjadi 0.98
X 120 + 0.02 X 420
Manajemen Memori
©
Paging Dengan Hash (1)
• Metode ini umumnya digunakan untuk menangani masalah ruang alamat logika yang
besarnya mencapai 64 bit
• Struktur page table dengan hash bisa menghemat ruang memori dalam jumlah yang
cukup besar
• Hashed page table menggunakan tabel hash sebagai page table-nya dengan ukuran
yang terbatas untuk menghemat ruang memori
• Sebuah hash function untuk mengalokasikan alamat virtual pada page table tersebut
Manajemen Memori
©
Paging Dengan Hash (2)
• Setiap entri/blok pada page table berisi linked list yang menghubungkan elemen-
elemen yang di- hash ke lokasi yang sama
• Tiap elemen tersebut terdiri dari 3 field, yaitu virtual page number, nomor frame dimana
alamat virtual tersebut dipetakan, dan pointer yang menunjukkan elemen berikutnya
dalam linked list
• Fungsi linked list adalah untuk mengatasi collision yang terjadi pada saat pengalokasian
alamat virtual ke hash table yang ukurannya sangat terbatas
Manajemen Memori
©
Paging Dengan Hash (3)
Manajemen Memori
©
Arsitektur Intel Pandangan User Terhadap Memory
Segmentasi
Pentium Segmentasi Pentium
Pandangan User Terhadap Memory
Manajemen Memori
©
Segmentasi (1)
• Alamat diartikan sebagai nama segmen dan offset dalam suatu segmen
Manajemen Memori
©
Segmentasi (2)
Manajemen Memori
©
Segmentasi (3)
Manajemen Memori
©
Contoh Segmentasi (1)
• Misalkan segmen 2 mempunyai panjang 400 dan dimulai pada lokasi 4300
• Referensi ke byte 1222 dari segmen 0 akan menghasilkan suatu trap ke sistem operasi,
karena segmen ini hanya mempunyai panjang 1000 byte
Manajemen Memori
©
Segmentasi Pentium