ModulSO - 05b Manajemen Memori
ModulSO - 05b Manajemen Memori
Sistem Paging
Sistem paging mengimplementasikan ruang alamat besar pada memori kecil
menggunakan index register, base register, dan segment register.
Alamat Maya
Alamat yang dihasilkan perhitungan menggunakan index register, base register,
dan segment register.
Alamat Nyata
Alamat di memori fisik.
Page
Unit terkecil pada ruang alamat maya (virtual address space).
Page Frame
Unit terkecil pada ruang alamat fisik (real address space).
Page Fault
Exception untuk permintaan alokasi “page” ke memori.
Memory Management Unit (MMU)
Kumpulan chip yang memetakan alamat maya ke alamat fisik.
35
Rutinitas yang dilakukan dalam pemindahan halaman antara lain:
1. Mencari lokasi dari halaman yang diinginkan pada disk.
2. Mencari frame yang kosong:
a. Jika ada, maka gunakan frame tersebut.
b. Jika tidak ada, maka tentukan frame yang tidak sedang dipakai atau yang
tidak akan digunakan dalam jangka waktu lama, lalu kosongkan frame
tersebut. Gunakan algoritma pemindahan halaman untuk menentukan frame
yang akan dikosongkan. Usahakan agar tidak menggunakan frame yang akan
digunakan dalam waktu dekat. Jika terpaksa, maka sebaiknya segera
masukkan kembali frame tersebut agar tidak terjadi overhead.
c. Tulis halaman yang dipilih ke disk, ubah tabel halaman dan tabel frame.
3. Membaca halaman yang diinginkan ke dalam frame kosong yang baru.
4. Mengulangi proses pengguna dari awal.
Pada dasarnya MMU terdiri dari tabel halaman yang merupakan sebuah
rangkaian array dari masukan-masukan (entries) yang mempunyai indeks
berupa nomor halaman (p). Setiap masukan terdiri dari flags (contohnya bit
sahih dan nomor frame). Alamat fisik dibentuk dengan menggabungkan nomor
frame dengan ofset, yaitu bit paling rendah dari alamat logis.
Pemetaan :
a. Skema Pemetaan
Misalkan : Ruang alamat maya adalah V = {0,1, … , v-1}
Ruang alamat fisik adalah M = {0,1, …, m-1}
Skenario pemetaan :
37
Alamat Memori Maya Memori Nyata
0 – 4095 0 – 4K 7 0
4096 – 8191 4 – 8K 5 1
8192 – 12287 8 – 12K X 2
12288 - 16383 12 – 16K X 3
16384 – 20479 16 – 20K 0 4
20480 – 24575 20 – 24K 1 5
24576 – 28671 24 – 28K 6 6
28672 – 32767 28 – 32K 3 7
32768 – 36863 32 – 36K X
36864 – 40959 36 – 40K 4
40960 – 45055 40 – 44K X
45056 – 49151 44 – 48K X
49152 – 53247 48 – 52K X
53248 – 57343 52 – 56K 2
57344 – 61439 56 – 60K X
61440 – 65535 60 – 64K X
b. Implementasi Pemetaan
Komponen MMU, yaitu :
Tabel Page
Tiap elemen tabel berisi informasi :
Present/absent bit
(bernilai 1 jika page di memori fisik, bernilai 0 jika tidak)
Nomor page frame
Berisi nomor page frame dimana page berada
2. Penggantian Page
38
a. Algoritma penggantian page acak (Random)
Setiap terjadi page fault, penggantian page dipilih secara acak.
Tidak memakai informasi apapun untuk menentukan page yang akan
diganti.
Semua page di memori utama dianggap memiliki bobot yang sama.
Dapat memilih sembarang page termasuk page yang sedang diacu.
Page
Page
Frame
F F F F F F F F F
Penjelasan :
Algoritma dengan 7 page sebagai string pengacuan (page 5 dan 6
dinyatakan invalid atau memiliki present/absent bit 0)
Memiliki 3 page frame dan page fault.
Page 7 diacu/ditempatkan di frame : Fault (F)
Page 0 diacu/ditempatkan di frame : Fault (F)
Page 1 diacu/ditempatkan di frame : Fault (F)
Page 2 diacu/ditempatkan di frame dengan mengganti page 7 : (F)
Page 7 diganti karena page berikutnya adalah page 0 dan page 3,
dan page 7 hanya sedikit (1x) pada antrian page berikutnya
berikutnya.
Page 0 diacu/ditempatkan di frame tanpa mengganti page.
Page 3 diacu/ditempatkan di frame dengan mengganti page 1 : (F)
Page 0 diacu/ditempatkan di frame tanpa mengganti page.
Page 4 diacu/ditempatkan di frame dengan mengganti page 0 : (F)
Page 0 diganti karena page berikutnya adalah page 2 dan page 3.
Page 2 diacu/ditempatkan di frame tanpa mengganti page.
Page 3 diacu/ditempatkan di frame tanpa mengganti page.
Page 0 diacu/ditempatkan di frame dengan mengganti page 4 : (F)
Page 4 diganti karena page berikutnya adalah page 3 dan page 2,
bahkan page 4 sudah tidak dipakai kembali.
Page 3 dan page 2 diacu/ditempatkan di frame tanpa mengganti
page.
Page 1 diacu/ditempatkan di frame dengan mengganti page 3 : (F)
dan seterusnya… hingga urutan page selesai
c. Algoritma penggantian page NRU
39
Page diberi dua bit mencatat status page :
- Bit R (referenced) menyatakan page sedang diacu
Bit R = 0 , page sedang diacu
Bit R = 1, page tidak sedang diacu
- Bit M (Modified) menyatakan page telah dimodifikasi
Bit M = 0 , page belum dimodifikasi
Bit M = 1, page telah dimodifikasi
Page
Page
Frame
F F F F F F F F F F F F F F F
Penjelasan :
Page 7 diacu/ditempatkan di frame : Fault (F)
Page 0 diacu/ditempatkan di frame : Fault (F)
Page 1 diacu/ditempatkan di frame : Fault (F)
Page 2 diacu/ditempatkan di frame dengan mengganti page terdepan
dalam senarai yaitu page 7 : Fault (F)
Page 0 diacu/ditempatkan di frame tanpa mengganti page.
Page 3 diacu/ditempatkan di frame dengan mengganti page terdepan
setelah page 7 dalam senarai yaitu page 0 : Fault (F)
Page 0 diacu/ditempatkan di frame dengan mengganti page terdepan
setelah page 0 dalam senarai yaitu page 1 : Fault (F)
Page 4 diacu/ditempatkan di frame dengan mengganti page terdepan
setelah page 1 dalam senarai yaitu page 2 : Fault (F)
Page 2 diacu/ditempatkan di frame dengan mengganti page terdepan
setelah page 2 dalam senarai yaitu page 3 : Fault (F)
Page O setelah page 2 tidak diperiksa karena tidak fault
Page 3 diacu/ditempatkan di frame dengan mengganti page terdepan
setelah page 3 dalam senarai yaitu page 0 : Fault (F)
Page 0 diacu/ditempatkan di frame dengan mengganti page terdepan
setelah page 0 dalam senarai yaitu page 4 : Fault (F)
Page 3 dan page 2 diacu/ditempatkan di frame tanpa mengganti page.
Page 1 diacu/ditempatkan di frame dengan mengganti page terdepan
setelah page 4 dalam senarai yaitu page 2 : Fault (F)
Page 2 diacu/ditempatkan di frame dengan mengganti page terdepan
setelah page 2 dalam senarai yaitu page 3 : Fault (F)
dan seterusnya… hingga senarai selesai
40
1) Algoritma penggantian page kesempatan kedua
2) Algoritma penggantian clock page
Pengacuan 2 3 2 1 5 2 4 5 3 2 5 2
> 2 2 2 >2* 2* 2* >2* >2* >2 >2* >2* >2*
> 3 3 3 5 5 5 5* 5 5 5* 5*
Fault F F F F F F
(* diacu, > ditunjuk pointer)
Page
Page
Frame
F F F F F F F F F F F F
Penjelasan :
Page 7 diacu/ditempatkan di frame : Fault (F)
Page 0 diacu/ditempatkan di frame : Fault (F)
Page 1 diacu/ditempatkan di frame : Fault (F)
Page 2 diacu/ditempatkan di frame dengan mengganti page terdepan
dalam senarai yaitu page 7 : Fault (F)
Page 0 diacu/ditempatkan di frame tanpa mengganti page.
Page 3 diacu/ditempatkan di frame dengan mengganti page yang tidak
digunakan pada instruksi sebelumnya yaitu page 1 : Fault (F)
Page 0 dan 2 merupakan instruksi sebelumnya yang masih dipakai.
Page 0 diacu/ditempatkan di frame tanpa mengganti page.
Page 4 diacu/ditempatkan di frame dengan mengganti page yang tidak
digunakan pada instruksi sebelumnya yaitu page 2 : Fault (F)
Page 0 dan 3 merupakan instruksi sebelumnya yang masih dipakai.
41
Page 2 diacu/ditempatkan di frame dengan mengganti page yang tidak
digunakan pada instruksi sebelumnya yaitu page 3 : Fault (F)
Page O dan 4 merupakan instruksi sebelumnya yang masih dipakai.
Page 3 diacu/ditempatkan di frame dengan mengganti page 0: Fault (F)
Page 2 dan 4 merupakan instruksi sebelumnya yang masih dipakai.
Page 0 diacu/ditempatkan di frame dengan mengganti page 4: Fault (F)
Page 2 dan 3 merupakan instruksi sebelumnya yang masih dipakai
Page 3 dan page 2 diacu/ditempatkan di frame tanpa mengganti page.
Page 1 diacu/ditempatkan di frame dengan mengganti page 0: Fault (F)
Page 2 dan 3 merupakan instruksi sebelumnya yang masih dipakai
dan seterusnya… hingga senarai selesai
42
Review Page Replacement Algorithm
Algorithm Comment
1. Optimal Tidak dapat diimplementasi tetapi
berguna sebagai Benchmark
2. NRU Tidak optimal
3. FIFO Sering mengganti Page yang penting
4. Second Chance Modifikasi dari FIFO
5. Clock Realistis
6. LRU Bagus tetapi sulit untuk
diimplementasi
7. Aging Efisien dalam mengimplementasi
LRU
8. Working Set Mahal untuk diimplementasi
9. WSClock Cukup Efisien
43
3) Prepaging
Teknik memuatkan page-page lebih dulu sebelum proses berjalan.
4) Demand Paging
Teknik yang segera memuatkan page-page begitu page dibutuhkan.
d. Ukuran page
Ukuran page ditentukan perancang sistem operasi.
Ukuran page harus ditentukan agar sistem berperilaku optimal.
Penentuan ukuran page memerlukan penilaian dan pemahaman
mendalam tentang perangakat keras, perangkat lunak, dan aplikasi
sistem.
Ukuran page lebih kecil berarti jumlah page dan page frame lebih
banyak sehingga memerlukan tabel page lebih besar.
Ukuran page besar berarti sejumlah informasi yang tidak diacu juga
dimasukkan ke memori utama sehingga terjadi fragmentasi internal
yang tinggi.
Transfer masukan/keluaran relatif sangat mengkonsumsi waktu
sehingga perlu meminimumkan jumlah transfer masukan/keluaran
saat program berjalan.
Program cenderung mengikuti prinsip lokalitas yang cenderung
berukuran kecil.
44
IBM 370/XA atau IBM 370/ESA 4096
IBM AS/400 512
Intel 80386 4096
Motorola 68030 Dapat diprogam antara 256- 32768
C. Segmentasi
Segmentasi merupakan skema manajemen memori yang mendukung cara
pandang seorang programmer terhadap memori. Ruang alamat lojik merupakan
sekumpulan dari segmen-segmen. Masing-masing segment mempunyai panjang
dan nama. Alamat diartikan sebagai nama segmen dan offset dalam suatu segmen.
Jadi jika seorang pengguna ingin menunjuk sebuah alamat dapat dilakukan dengan
menunjuk nama segmen dan offsetnya. Untuk lebih menyederhanakan
implementasi, segmen-segmen diberi nomor yang digunakan sebagai pengganti
nama segment. Sehingga, alamat lojik terdiri dari dua tupple: [segment-number,
offset].
Secara sederhana segmentasi bisa diartikan sebagai suatu ruang alamat atau
segment yang berada di memori. Segment-segment itu dalam keadaan
independent. Setiap segment berisi alamat 0 sampai maksimum secara linier.
Panjang setiap segment berbeda-beda sampai panjang maksimun, perobahan
panjang segment terjadi selama proses eksekusi. Segment stack bertambah ketika
terjadi operasi push dan turun saat operasi pop, dimana setiap segment
merupakan ruang alamat terpisah segment-segment dapat tumbuh dan mengkerut
secara bebas tanpa mempengaruhi yang lain.
Sistem Segmentasi
Sistem dengan memori maya dengan segmentasi murni adalah alamat maya adalah
offset di segment, setiap proses mempunyai tabel segment dan pada saat proses
running alamat awal maya tabel dimuatkan ke register dasar. Nomor segment
digunakan mencari deskriptor segment di tabel segment yang menyediakan alamat
fisik awal dari segment, panjang dan bit-bit proteksinya. Alamat fisik dihitung dengan
menambahkan alamat dasar segment ke alamat maya.
45
Gambar 4. Skema Segmentasi
46
852 = 4052. Referensi ke byte 1222 dari segmen 0 akan menghasilkan suatu trap ke
sistem operasi, karena segmen ini hanya mempunyai panjang 1000 byte.
Keuntungan segmentasi :
1. Menyederhanakan penanganan struktur data yang berkembang. Seringkali
penanganan struktur data menuntut perubahan panjang data. Hal ini
dimungkinkan dengan adanya segmentasi. Jadi dengan segmentasi membuat
penanganan struktur data menjadi fleksibel.
48 MULTICS
• Descriptor segment points to page tables
• Segment descriptor – numbers are field lengths
INTEL PENTIUM
49
3. Pada segmentasi proteksinya terpisah sedangkan pada paging proteksinya tidak
terpisah.
4. Pada segmentasi ada shared code sedangkan pada paging tidak ada shared code.
5. Pada segmentasi terdapat banyak ruang alamat linier sedangkan pada paging
hanya terdapat satu ruang alamat linier.
6. Pada segmentasi prosedur dan data dapat dibedakan dan diproteksi terpisah
sedangkan pada paging prosedur dan data tidak dapat dibedakan dan diproteksi
terpisah.
Pada kombinasi paging dan segmentasi, ruang alamat pemakai dibagi menjadi
sejumlah segmen sesuai kehendak pemrogram.
Tiap segmen dibagi menjadi sejumlah page berukuran tetap, berukuran sama
dengan page frame memori utama.
Jika segmen kurang dari ukuran page, segmen hanya memerlukan satu page.
Alamat maya adalah offset di segmen.
Tiap proses mempunyai tabel segmen.
Ketika proses running, alamat awal tabel dimuatkan ke register dasar.
Nomor segmen digunakan untuk mencari deskriptor segmen di tabel
segmen yang menyediakan alamat fisik awal dari segmen, panjang, dan bit-
bit proteksinya.
Alamat fisik dihutung dengan menambahkan alamat dasar segmen ke
alamat maya.
Contoh sistem : Intel 80386
2. One Level Paging
50
Nomor page maya digunakan sebagai indeks ke tabel page yang biasanya
berlokasi di memori utama.
Isian tabel page berisi nomor page fisik dan bit-bit proteksi.
Offset pada page fisik sama dengan offset pada page maya.
Register panjang (Length register) digunakan untuk menetapkan akhir
tabel page untuk menghindari ruang yang akan disiakan untuk isian-isian
tak berguna.
Contoh Sistem : DEC PDP-11, DEC VAX, Data General Eclipse, Motorola
MC86030
51