Oleh:
Nur Annisa D.A.P 12.5.00172
Nidia Aisyiyah 12.5.00171
Kurnia Matha. H 12.5.00157
Wahyu Ernawati 12.5.00188
Yuniana Arif Z 12.5.00196
SEKOLAH TINGGI MANAJEMEN INFORMATIKA DAN KOMPUTER
STMIK SINAR NUSANTARA
SURAKARTA
2013
Sistem paging
1. Memori Maya Program yang dijalankan harus dimuat di memori utama. Masalah muncul ketika
program lebih besar dibanding memori utama yang tersedia. Terdapat dua solusi masalah ini,
yaitu:
a. Overlay
Program dipecah menjadi bagian-bagian yang dapat dimuat memori, disebut
overlay. Overlay yang belum diperlukan akan disimpan di disk, dan akan dimuat
ke memori jika akan di eksekusi. Pertukaran overlay masuk dan keluar dilakukan
oleh system operasi. Dan pembagian program menjadi overlay-overlay dilakukan
pemrogram.
b. Memori maya
Memori maya adalah kemampuan mengalamatkan ruang memori melebihi
memori utama yang tersedia. Gagasan memori maya adalah ukuran gabungan
program, data, dan stack melampaui jumlah memori fisik yang tersedia. Bagian-
bagan proses yang sedang digunakan disimpan di memori utama, sisanya di disk.
Begitu bagian di disk ingin digunakan maka bagian di memori yang tidak
diperlukan disingkirkan diganti bagian di disk yang diperlukan.
Memori maya dan multiprogramming
Memori maya dan multiprogramming adaalah dua konsep yang saling
melengkapi. Saat proses menunggu bagiannya di-swap masuk ke memori,
menunggu selesainya operasi input/output, proses di blok, jatah layanan pemroses
diberikan ke proses lain.
2. Deskripsi Sistem Paging Sistem paging mengimplementasikan ruang alamat besar pada memori kecil menggunakan
index register, base register, dan segment register.
Beberapa istilah pada sistem paging adalah :
Alamat Maya
Adalah alamat yang dihasilkan perhitungan menggunakan index register, base
register, dan segment register. Ruang alamat yang dibentuk disebut ruang alamat
maya(V). Alamat maya ini yang diacu proses yang running.
Alamat Nyata
Adalah alamat di memori utama fisik. Ruang alamat yang dibentuk disebut ruang
alamat nyata(R). Meski pengacuan proses dilakukanberdasar alamat maya, proses
sesungguhnya berjalan dimemori nyata. Alamat maya harus dipetakanmenjadi alamat
nyata saat proses dieksekusi. Pemetaan harus dilakukan dengan sangat cepat atau
kinerja system computer akan menurun drastis. Bagian yang bertugas memetakan
adalah MMU.
Page
Adalah unit terkecil virtual address space. Ruang alamat maya proses memerlukan
kelipatan page yang berukuran sama.
Page Frame
Adalah unit terkecil memori fisik. Memori fisik secara konseptual dibagi menjadi
sejumlah unit berukuran tetap disebut page frame.
Page fault
Adalah exception untuk permintaan alokasi page ke memori.
Memory Management Unit (MMU)
Chip atau kumpulan chip yang memetakan alamat maya ke alamat fisik.
Pada komputer tanpa memori maya, alamat langsung diletakkanke bus dan menyebabkan
word memori fisik alamat itu dapat ditulis atau dibaca.
Pada komputerdengan memori maya, alamat tidakdiletakkan di bus secra langsung tapi
lewat MMU yang kemudian memetakan alamat maya ke alamat memori fisik.
Pada pemroses modern, MMU sudah menyatu di pemroses (on-chip).Memori fisik
berisi sejumlah page frame yang memuat sebagian page-page proses. Terdapat
mekanisme penerjemahan (tanslasi) alamat untuk memetakan page maya ke alamat fisik.
System memori maya mempunyai property alamat-alamat kontigu (berurutan) pada ruang
alamat maya yang tidak harus kontigudi memori nyata. Property ini disebut kontigu semu.
a. MMU (Memory Management Unit)
Memiliki fungsi sebagai berikut :
Pemetaan memori maya ke memori fisik
Bila alamat memori yang diminta tidak tersedia di memori fisik, MMU menerbitkan
exception adanya page-fault yang melewatkan ke sistemopesi untuk menanganinya.
a.1. Skema pemetaan
Pada komputer dengan memori maya, alamat tidak diletakkan ke bus secara langsung tapi
dilewatkan ke MMU yang memetakan alamat maya ke alamat memori fisik. Pemetaan dapat
dirumuskan sebagai berikut :
Misal :
V (Ruang alamat maya) = {0,1,…,v-1}
M (Ruang alamat fisik) = {0,1,…,m-1}
Umumnya (V > M )
MMU merealisasikan fungsi f:V M, yaitu :
f(x) = {r, jika item x terdapat di memori fisik di r. dan page fault jika item x tidak terdapat di
memori fisik}.
Skenario pemetaan
a.2. Implementasi Pemetaan (Bagian Internal MMU)
Komponen terpenting MMU adalah
1. Register Alamat Maya
Menyimpan alamat maya yang diacu. Nilai di register alamat maya dibagi menjadi
dua, yaitu :
Sejumlah bit berorder tinggi menyatakan nomor page maya.
Bit-bit sisa adalah offset alamat maya.
2. Tabel Page
Tiap elemen table sedikitnya berisi informasi berikut :
Present /absent bit
Berisi 1 bila page di memori fisik, 0 bila page tidak di memori fisik.
Nomor page frame
Berisi nomor pageframe dimana page berada.
3. Register Alamat Fisik
Menyimpan alamat fisik yang disinyalkan ke bus.
Pemetaan
Nomor page maya digunakan sebagai indeks ke tabel page untuk menemukan isian page
maya.
Dari isian table page dapat diketahui apakah page dipetakan ke memori fisik
Apabila alamat terdapat di memori fisik maka isian di tabel page memuat
nomor page frame. Nomor tersebut dikopi sebagai bit-bit berorder tinggi di
register alamat fisik dan ditambah offset di alamat maya.
Bila alamat tidak ada di memori fisik maka MMU menerbitkan page fault.
MMU mengkopikan nomor page frame diisian tabel page dengan indeks nomor page ke
register alamat fisik dan menambah offset di alamat maya.
b. Tabel-tabel Paging
Pemakaian tabel page pada sistem paging menimbulkan dua masalah utama, yaitu :
1. Tabel page dapat berukuran luar biasa besar
Masalah :
Bila memori maya sangat besar maka tidak mungkin menggunakan satu tabel tunggal
karena akan diperlukan ukuran tabel sangat besar.
Solusi :
Menggunakan tabel-tabel bertingkat. Beberapa rancangan tabel paging untuk beragam
sesuai sistem computer, yaitu :
DEC PDP-11 menggunakan paging satu tingkat (one-level paging)
DEC VAX menggunakan paging dua tingkat (two-level paging)
SUN SPARC menggunakan paging tiga tingkat (three-level paging)
MOTOROLA 68030 menggunkan paging empat tingkat (four-level paging)
2. Pemetaan Harus Dilakukan Secara Cepat
Pemetaan alamat maya ke alamat fisik dilakukan setiap terjadi pengacuan memori.
Instruksi computer biasanya berbentuk :
Operator operand_1, operand_2, …, operand_N
Pada tiap instruksi, sedikitnya terdapat 1 atau 2 operan. Operan merupakan pengacuan
ke memori karena operan disimpan di memori berarti untuk satu instruksi sedikitnya
terjadi 1 sampai 2 pengacuan memori.
c. Memori Asosiatif
Sistem komputer dilengkapi pemetaan alamat maya ke alamat fisik tanpa lewat tabel page.
Perangkat ini disebut memori asosiatif, dan perangkat ini dipasang di MMU. Memori asosiatif
berisi sejumlah elemen tabel antara 8 – 32 elemen. Tiap elemen berisi informasi-informasi
mengenai page, yaitu :
Nomor page maya
Bit W , untuk mencatat apakah page telah dimodifikasi
Bit-bit proteksi
Nomor page frame dari page maya
Mekanisme Kerja Memori Asosiatif
Jika alamat maya dikirim ke MMU untuk penerjemahan, perangkat keras memeriksa apakah
nomor page maya terdapat di memori asosiatif dengan membandingkan semua isian memori
asosiatif secara simultan (bersamaan/paralel). Mekanisme parallel ini sangat mempercepat.
Jika ditemukan di memori asosiatif dan pengaksesan tidak melanggar bit-bit proteksi,
maka page frame langsung ditangani memori asosiatif tanpa melibatkan tabel page.
Jika page ditemukan di memori asosiatif tapi melanggar bit-bit proteksi , maka
diterbitkan protection fault.
Jika nomor page maya tidak terdapat di memori asosiasi, maka MMUmencari di tabel
page. Salah satu elemen memori asosiatif disingkirkan dan diganti elemen tabel page
yang ditemukan.
Dengan memori asosiatif maka kinerja rata-rata sistem dipengaruhi oleh :
Waktu akses tabel page
Waktu aksesmemori asosiatif
Nilai hit-ratio
3. Penggantian Page Algoritma penggantian page antara lain :
1. Algoritma penggantian page acak
Mekanisme :
Setiap terjadi pege fault, page yang diganti dipilih secara acak. Termasuk page
yang sedang diacu. Teknik ini sangat buruk karena menimbulkan rate terjadinya
page fault yang sangat tinggi.
2. Algoritma penggantian page optimal
Mekanisme:
Memilih page yang berpeluang dipakai kembali di masa datang yang paling kecil.
Strategi ini akana menghasilkan jumlah page fault paling sedikit. Algoritma ini tak
mungkin dibuat prosedur yang dapat mengetahui peluang pemakaian suatu page
kembali di masa depan, sehingga metode ini tak mungkin diterapkan.
3. Algoritma penggantian page NRU (Not Recently Used)
Mekanisme :
Page diberi dua bit mencatat status page, bit R dan M, yaitu :
Bit R : page sedang diacu
1 = sedang diacu
0 = tidak sedang diacu
Bit M : page telah dimodifikasi
1 = dimodifikasi
0 = tidak dimodifikasi
Dengan 2 bit, maka page-page dikelompokkan menjadi 4 kelas, yaitu:
Kelas 0 : R=0, M=0
Kelas 1: R=0,M=1
Kelas 2 : R=1, M=1
Kelas 3 : R=1, M=1
4. Algoritma penggantian page FIFO (First In, First Out)
Mekanisme :
Algoritma ini memerlukan pengelolaan senarai page di memori. Bila terjadi page
fault, page elemen terdepan diganti page baru ditambhakan di ujung belakang
senarai.
5. Modifikasi terhadap FIFO
Variasi dari FIFO adalah
Algoritma penggantian page kesempatan kedua
Saat terjadi pege fault, algoritma memilih page elemen terdepan diganti bila bit
R = 0. Bila R = 1 , maka bit terdepan senarai direset menjadi 0 dan diletakkan
ke ujung belakang senarai.
Algoritma penggantian clock page
Saat terjadi page fault, jika R = 0, maka page diganti, dan jika R=1, maka R
direset menjadi 0.
6. Algoritma penggantian page LRU (Least Recently Used)
Ketika terjadi page fault maka memindahkan page yang digunakan paling lama.
Masalahnya adalah sangat mahal.
Memodelkan algoritma paging
1. Anomaly belady
Belady menemukan fenomena menyimpang dari prasangka umum(anomaly) yaitu
pada algoritma FIFO maka pada pola-pola pengacuan tertentu menyebabkan lebih
banyak page fault bila alokasi page untuk proses ditambah.fenomena menyimpang
ini disebut anomaly belady.
2. Mesin abstrak eksekusi program
Terdapat mesin abstrak interpreter dengan propreti berikut :
- Terdapat array internal, M, menyimpan status memori. Array mempunyai n
elemen seperti proses mempunyai n page memori maya.
- Array M terbagi dua, yaitu :
1. Bagian atas/puncak, yaitu m isisan, page di memori utama.
2. Bagian bawah berisi n-m isian, yaitu semua page yang pernah diacu sekali
tapi telah dipindahkan dan tidakdi memori utama.
- Mulanya array M berupa himpuna kosong karena belum ada page yang telah
diacu dan tak ada page yang berada di memori.
Begitu eksekusi dimulai, proses mulai mengeluarkan page sesuai string
pengacuan, satu page pada satu saat.
4.Masalah-masalah utama pada sistem paging
- Working set model
o Prinsip lokalitas adalah proses-proses cenderung mengacu
penyimpanan secara tak seragam, mempunyai pola-pola sangat
setempat.
Terdapat dua jenis lokalisasi yaitu :
1. Lokalisasi berdasar waktu
Adalah proses cenderung terkonsentrasi acuannya ke satu interval
waktu eksekusi yang dekat.
2. Lokalisasi berdasar ruang
Adalah proses cenderung terkonsentrasi acuannya ke satu
kelompok data yang berdekatan.
- Working set of program behavior
Himpunan kerja secara informal didefnisikan sebagai kumpulan page proses
yang secara aktif diacu. Selain itu akan terjadi aktivitas page fault yang
berlebihan. Jika himpunan kerjaterdapat di memori, proses akan berjalan
tanpa menyebabkan banyak page fault.
Prinsip-prinsip working set model
Prnsip yang digunakan adalah melacak dan menjamin himpunan kerja terdapat
di memori sebelum proses dijalankan.
Prinsip-prinsip himpunan kerja :
1. Program seharusnya dijalankan jika dan hanya jika himpuna kerja berada
di memori.
2. Page tidak boleh dipindahkan dari memori jika page anggota himpunan
kerja dari program yang running.
- Kebijaksanaan penggantian local vs global
Terdapat dua pendekatan untuk mengganti page, yaitu :
1. Penggantian local adalah page yang dipilih untuk diganti hanya pada
partisi dimana proses diletakkan.
2. Penggantian global adalah page yang dipilih untuk diganti adalah tempat
kosong dengan tidak memperdulikan partisi proses.
- Frekuensi page fault
Frekuensi terjadinya page fault dapat dikendalikan denagn algoritma PFF
(page fault frequency algorithm). Dengan PFF harus didefinisikan ambang
atas dan ambang bawah frekuensi page fault.
Parameter PFF adalah P yaitu jumlah (frekuensi) page fault per T,
didefinisikan P = 1/T
Dimana: T =waktu fault kritis
P diukur dalam jumlah page fault per milidetik
- Ukuran page
Ditentukan agar sistem berperilaku optimal. Penentuan ukuran page
memmerlukan penilaian dan pemahaman mendalam hardware , software dan
aplikasi sistem.
Beberapa pertimbangan, antara lain :
o Ukuran page lebih kecil berarti jumlah page dan page frame lebih
banyak sehingga memerlukan tabel page lebih besar.
o Ukuran page besar, berarti sejumlah informasi yang tidak diacu juga
dimasukkan ke memori utamasehingga terjadi fragmentasi internal
yang tinggi.
o Transfer input/output relative sangat mengkonsumsi waktu sehingga
perlu meminimumkan jumlah transfer input/output saat proses
berjalan.
Implementasi Sistem Paging
Setiap sistem operasi mempunyai metode sendiri untuk menyimpan tabel page. Beberapa
sistem operasi mengalokasikan sebuah tabel page untuk setiap proses. Pointer ke tabel page
disimpan dengan nilai register lainnya dari PCB. Pada dasarnya terdapat 3 metode yang
berbeda untuk implementasi tabel page :
1. Tabel page diimplementasikan sebagai kumpulan dari “dedicated” register. Register berupa
rangkaian logika berkecepatan sangat tinggi untuk efisiensi translasi alamat paging. Contoh :
DEC PDP-11. Alamat terdiri dari 16 bit dan ukuran page 8K. Sehingga tabel page berisi 8
entri yang disimpan pada register. Penggunaan register memenuhi jika tabel page kecil (tidak
lebih dari 256 entry).
2. Tabel page disimpan pada main memori dan menggunakan page table base registe” (PTBR)
untuk menunjuk ke tabel page yang disimpan di main memori. Penggunakan memori untuk
mengimplementasikan tabel page akan memungkinkan tabel page sangat besar (sekitar 1 juta
entry). Perubahan tabel page hanya mengubah PTBR dan menurunkan waktu context-
switch. Akan tetapi penggunaan metode ini memperlambat akses memori dengan faktor 2.
Hal ini dikarenakan untuk mengakses memori perlu dua langkah : pertama untuk lokasi tabel
page dan kedua untuk lokasi alamat fisik yang diperlukan.
3. Menggunakan perangkat keras cache yang khusus, kecil dan cepat yang disebut associative
register atau translation look-aside buffers (TLBs). Merupakan solusi standar untuk
permasalahan penggunaan memori untuk implementasi tabel page. Sekumpulan associative
register berupa memori kecepatan tinggi. Setiap register terdiri dari 2 bagian yaitu key dan
value. Jika associative register memberikan item, akan dibandingkan dengan semua key
secara simultan. Jika item ditemukan nilai yang berhubungan diberikan. Model ini
menawarkan pencarian cepat tetapi perangkat keras masih mahal. Jumlah entry pada TLB
bervariasi antara 8 s/d 2048.
Masalah-masalah implementasi sistem paging
- back up instruksi yang terakhir dijalankan sebelum terjadi page fault
- buffer perangkat input/output
- page yang dipakai bersama
- backing store
- paging daemon
- penanganan page fault
Kelebihan Segmentasi dengan Pemberian Halaman
Sesuai dengan definisinya yang merupakan gabungan dari segmentasi dan paging, maka
metode ini memiliki keunggulan yang dimiliki baik oleh metode segmentasi mau pun yang
dimiliki oleh paging. Tetapi selain itu segmentasi dengan pemberian halaman ini juga
memiliki beberapa kelebihan yang tidak dimiliki oleh kedua metode tersebut. Kelebihan-
kelebihan segmentasi dengan pemberian halaman antara lain:
Dapat dibagi.
Proteksi.
Tidak ada fragmentasi luar.
Alokasi yang cepat.
Banyak variasinya.
Biaya kinerja yang kecil.
Perbedaan Segmentasi dan Paging
Ada beberapa perbedaan antara Segmentasi dan Paging diantaranya adalah:
1. Segmentasi melibatkan programer (programer perlu tahu teknik yang digunakan),
sedangkan dengan paging, programer tidak perlu tahu teknik yang digunakan.
2. Pada segmentasi kompilasi dilakukan secara terpisah sedangkan pada paging,
kompilasinya tidak terpisah.
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.
7. Pada segmentasi pengubahan ukuran tabel dapat dilakukan dengan mudah sedangkan
pada Paging pengubahan ukuran tabel tidak dapat dilakukan dengan mudah.
8. Segmentasi digunakan untuk mengizinkan program dan data dapat dipecahkan jadi
ruang alamat mandiri dan juga untuk mendukung sharing dan proteksi
sedangkan paging digunakan untuk mendapatkan ruang alamat linier yang besar tanpa
perlu membeli memori fisik lebih.
Kelemahan
Ruangalamatmayasangatbesar(misalnya 4Gbyte) memerlukanjumlahruangbesartabelsegmen yang
harusdisimpan di memoriutamadanharuskontigu.
ContohSistem
DEC VAX
IBM S/370 menggunakanmekanismeini.
Intel 80386 dapatmenggunakanmekanismeini.
11.5.4 Three Level Paging
Translasinomor page mayakenomor page fisikmemerlukantigatahap.Tiap field
indeksditambahkanalamatdasartabelyang
berkorespondensiuntukmenemukanisiantabelberikutnya.Kemudianisiantabelmenyediakan bit-bit
proteksidanalamattabelberikutnya.
Gambar 11-6 menunjukkanskemathree-level paging.
Keunggulan
Mekanismetabel page banyaktingkatuntukimplementasimemorimayadenganalamatsangatbesar.Tabel
page banyaktingkatmemerlukantabel-tabel page
besar.Implementasiruangmemorimayasangatbesardengantabeltidakterlalubanyak.
Kelemahan
Alokasidanpertumbuhandinamistabelsegmenmenjadisulit.
ContohSistem
SUN SPARC, menggunakantabel page tigatingkat.
11.5.5 Four Level Paging
Translasinomor page mayakenomor page fisikmemerlukanempattahap.Tiap field Indeks ditambahkan
alamat dasar tabel yang berkorespondensi untuk menemukan isian table
berikutnya.Kemudianisiantabelmenyediakan bit-bit proteksidanalamatdasartabelberikutnya.
Keunggulan
Mekanismeinibergunauntuk program yang menggunakanruangalamatmemori yang sangat
besar.Program LISP besar yang secara kontinyumen galokasikan dan melepaskan daerah memori
adalah tipe aplikasi yang cocokdenganmekanismeini.
Kelemahan
Kondisiterburuk yang mungkin adalah kondisi untuk translasime merlukan sebanyak empat pengacuan
memori.
ContohSistem
Motorola MC68030 dapatdiprogrammenggunakanmekanismeiniberagamukuran page dan ukuran
segmen.
StudiKasus
11-A
DukunganManajemenMemori Intel
FasilitasManajemenMemori di Intel x486
Pemroses i486 membantu system operasimengelolamemori.Saatbeberapa program berjalanpadawaktu
yang sama, pemrosesmeberiruangalamatindependenutukmasing-masing program.
Manajemenmemori di i486 terdiridari
Segmentasi
Paging
Segmentasi
Memberikanmasing-masing program suaturuangalamatindependenterproteksi.
Paging
Mendukunglingkungan di manaruangalamatbesardisimulasikanmenggunakansejumlah RAM
danpenyimpansekunder.
SEGMENTASI
Terdapattigapilihan, yaitu:
1. Flat model
2. Protected flat model
3. Multi-segment model
PengalamatanSegmentasi
Alamat logic dibentukdari segment selector 16-bit dan offset 32-bit kesegmenitu.Alamat basis
berasaldari segment descriptor yaitustruktur data di memori yang memberikan
Ukurandanlokasisegmen
Informasikendalipengaksesan
Segment descriptor berasaldarisalahsatutabel, yaitu
GDT (global descriptor table),atau
LDT(local descriptor table)
Hanyaterdapatsatu GDT untuksemua program di system dansatu LDT untukmasing-masing
program.Sistemdapatdibuatsehingga program-program berbagi LDT ataubahkansemua program
menggunakansatu GDT saja.
Segment registerada di pemrosesuntuktiapjenisacuanmemori. Segment selector menunjukinformasi
yang mendefinisikansegmen yang disebut segment description.
Proteksi
Proteksi yang disediakan Intel adalah
Proteksi level segmen
Proteksi level page
Proteksi Level Segmen
Terdapatlimapemerikasaanproteksi
1. Pemeriksaantipe(type check)
2. Pemerikasaanbatas(limit check)
3. Pembatasan domain yang dapatdialamati
4. Pembatasantitikmasukprosedur
5. Pembatasanhimpunaninstruksi
Pelanggaranproteksimenghasilkan exception.
StudiKasus
11-B
ManajemenMemori
MS-DOS
Ruangalamat proses terbagimenjadi 4 segmendenganukurandan property berbeda.
Kerumitaninidisebabkanarsitekturmesin Intel 8086/88 mempunyai 4 segmenmemoriyaitu :
CS (code segment) untukmencatatkode program
DS (data segment) untukmencatat data
SS(stack segment) untukmencatat stack
ES(extra segment) untuktambahan
Terdapatbanyak model pemrograman, yaitu :
Segmenkode Jumlah bit di Jumlah bit di Ukuran
dantepisah pointer kode pointer data data statistic
Tiny TIDAK 16 16 ≤64K
Small YA 16 16 ≤64K
Medium YA 32 16 ≤64K
Compact YA 16 32 ≤64K
Large YA 32 32 ≤64K
Huge YA 32 32 ≥64K
Banyaknya model program inisungguhmenyulitkanpemrograman.
Organisasimemori di MS-DOS
Memoridiorganisasikan di MS-DOS sebagaiberikut :
1. Interrupt vector table
2. Ruagtambahan optional (digunakan IBM untukdaerah data ROM)
3. IO.SYS
4. MSDOS.SYS
5. Buffers,control areas dan installed device drivers
MS-DOS menempatkansatu PSP (program segment prefix) di daerahmemoribebasterndah.PSP
memerlukan 256 byte pertama.PSP menunjukberagamlokasimemori yang diperlukan program
ketikaberjalan.
System call
MS-DOS dapatmelakukanoperasi
Alokasiblokmemoribaruke program
Membebaskanblokmemori
Mengubahukuranblokmemori yang dalokasikan
Menspesifikasikanstrategialokasimemori, yaitu first-fit, best-fit, atau last-fit.
Linux
Linux mendukungmemorimaya (virtual memory), menggunakan disk sebagaiperluasan RAM
sehinggaukuranefektifmemorimenjadilebihbesar. Kernel menuliskanisiblokmemori yang
saatitutidakdigunakankehardisksehingga RAM untukmaksudlain.Saatisiblok di hardiskdiperlukan
,makablokdibacadandimasukkankememori. Semuanyataktampakolehpemakaidan program yang
berjalan.
Manajemenmemori Linux menyediakan
1. Ruangalamatbesar
2. Proteksi
3. Pemetaanmemori
4. Memorimayabersama (shared virtual memory
RuangAlamatBesar
Ruangalamatdapatlebihbesar disbanding memorifisik yang tersedia.
Proteksi
Tiap proses di system mempunyairuangalamatmayatersendiri.Ruang
ruangalamatmayaitusepenuhnyaterpisah.
Memori Maya Bersama
Memorimayabersanainiuntukmenghematruangmemoriseprtipustakadinamisbagibeberapa
proses.
Demand Paging
Karenamemorifisisklebihsedikit disbanding memorimayamaka system hanyamemuatkan page-
page maya yang saatitusedangdigunakan proses. Linux memuatkan page mayabegitudiperlukan.
Memori Maya di MS-Windows NT
Memori di NT menerapkanmemorimayadalamsaturuangalamat linier.Ruangalamatsemusebesar
4Gigabyte dengan 2Gigabyte untuk program pemakaidan 2Gigabyte untuk program system.
10.5.1 Back-up Intruksi
Bila terjadi page fault berarti sebagian intruksi telah dijalankan. Pengkopian program counter
dan informasi register- register pemroses harus dilakukan. Setelah penggantian page selesai
maka intruksi yang menyebabkan page fault dapat dijalankan kembali dengan koneksinya.
Masalah yang harus diatasi adalah unutk mengulangi intruksi, sistem harus menentukan byte
pertama intruksi. Kesulitan timbul karena nilai program counter saat terjadi page fault
bergantung operan yang menyebabkan fault dan mikrokode pemroses. Masalah memburuk
pada intruksi di mode autoincrement, sangat bergantung pada rincian-rincian mikrokode, yaitu
:
Jika increment sesungguhnya dilakukan sebelum pengacuan memori maka sistem operasi
harus melakukan decrement terhadap register secara perangkat lunak sebelum mengulangi
intruksi yang menyebabkan page-fault.
Jika increment dilakukan setelah pengacuan memori maka tidak perlu dilakukan
decrement terhadap register oleh sistem operasi.
Perancang pemroses menyediakan solusi untuk masalah ini. Beragam cara diterapkan, berbeda
bergantung mesin. Beberapa mesin yang menyediakan solusi antara ain PDP-11/45, VAX,
Motorola 68010, dan lain-lain.
10.5.2 Buffer Perangkat Masukkan/Keluaran (Penguncian Page)
Penggantian page aka menimbulkan masalah mengacaukan proses yang melakukan operasi
masukan/keluaran jika :
Buffer perangkat masukan/keluaran ikut tergusur.
Adanya buffer satu perangkat masukan/keluaran menjadi rangkap.
Masalah diatasi dengan dua alternative yaitu :
Penguncian buffer perangkat masukkan/keluaran sehingga tidak menjadi sasaran
penggantian.
Buffer perangkat masukan/keluaran ditempatkan di kernel dan kopikan semua data ke
page-page proses pemakai.
10.5.3 Pemakaian Page Bersama
Apabila beberapa pemakai menggunakan program yang sama maka terjadi perangkpan page
(page yang sama terdapat di banyak bagian di memori). Lebih efisien bila menggunakan page
secara bersama, menghindari keharusan mempunyai kopian-kopian page yang sama di saat
yang sama.
Masalah
Tidak semua page dapat dipakai bersama
Akhir suatu proses
Tidak Semua Page Dapat Dipakai Bersama
Kode biner program (program text) adalah shareable (dapat dipakai bersama) sedang data
tidak shareable.
Akhir Suatu Proses
Masalah berikutnya adalah bila salah satu proses hendak membuang page dari memori karena
proses berakhir.
Solusi
Saat proses berakhir, sistem operasi memeriksa apakah page-page masih digunakan proses-
proses lain, yaitu :
Bila masih dipakai proses lain, maka sistem operasi tidak membebaskan page-page
tersebut dari memori. Pencarian pada tabel-tabel page untuk mengetahui apakah page
masih digunakan berongkos sangat mahal. Untuk itu diperlukan struktur data khusus guna
menyediakan kemampuan pemakaian page-page secara bersama.
Bila tidak dipakai proses lain, maka page-page dapat didealikasikan.
10.5.4 Backing Store
Masalah lain adalah menyangkut dimana page diletakkan dari memori utama. Terdapat
beragam algoritma untuk mengatasi hal ini, yaitu :
Menggunakan ruang penggantian khusus
Dialokasikan berdasar kebutuhan
Menggunakan Ruang Penggantian Khusus
Merupakan algoritma paling sederhana. Sistem operasi menyediakan ruang penggantian
khusus di disk.
Keunggulan
Proses-proses di memori tidak terikat ketat dengan suatu ruang swap.
Kelemahan
Alamat disk perlu disimpan sehingga mengetahui letak lokasi page yang diganti.
10.5.5 Paging Daemon
Paging daemon sleep untuk kebanyakan waktu, dibangunkan secara periodic untuk
menginspeksi
Keadaan memori.
Jika terlalu sedikit page frame bebas, paging daemon mulai memilih page-page untuk
diusir berdasarkan algoritma penggantian page yang digunakan.
Isian-isian page sebelumnya diingat. Dalam kejadian page yang telah diusir diperlukan
sebelum frame itu ditimpa.
10.5.6
Rincian saat terjadi page fault adalah sebagai berikut :
1. Perangkat keras melakukan trap ke kernel.
2. Satu rutin assembly dimulai untuk menyimpan register-register umum dan informasi-
informasi lain yang dapat hilang.
3. Sistem operasi mengetahui telah terjadi page fault dan coba menemukan virtual page
yang diperlukan.
4. Begitu alamat maya yang menyebabkan fault diketahui, sistem operasi memeriksa
apakah alamat valid dan konsisten terhadap proteksi.
5. Jika page frame telah dimodifikasi, page dijadwalkan untuk transfer ke disk dan terjadi
context switch.
6. Sambil page dimuatkan, proses fault masih ditunda dan proses pemakai yang lain
dijalankan, jika prose situ tersedia.
7. Ketika interupsi disk mengindikasikan page telah tiba, tabel-tabel page diperbarui
untuk merefleksikan posisinya dan frame ditandai sebagai keadaan normal.
8. Intruksi fault di back-up ke keadaan ketika dimulai dan program counter direset.
9. Proses fault dijadwalkan dan sistem operasi mengembalikan ke rutin bahsa assembly
yang memanggilnya.
10. Rutin ini menyimpan kembali register-register dan informasi yang dapat hilang lainya.
BAB 11
SEGMENTASI DAN KOMBINASI
PAGING-SEGMENTASI
11.1 DESKRIPSI SEGMENTASI
Segmentasi memungkinkan pemrogram memandang memori sebagai ruang yang berisi
banyak segmen. Ruang-ruang alamat itu sepenuhnya independen. Tiap segmen berisi barisan
linear alamat 0 sampai maksimum.
Panjang segmen dapat berubah selama eksekusi. Segmen stack bertambah ketika terjadi
operasi push dan turun saat operasi pop. Karena tiap segmen merupakan ruang alamat
terpisah, segmen-segmen dapat tumbuh dan mengerut secara bebas tanpa mempengaruhi
lainnya.
Spesifikasi alamat pada memori bersegmen adalah dua dimensi. Yaitu :
1. Nomor segmen
2. Alamat pada segmen itu (offset)
Segmen adalah entitas logis. Yang berisi :
1. Prosedur
2. Array
3. Stack
4. Kumpulan variable scalar
Kompilasi Ulang Independen Tanpa Menautkan Kemblai (Relink) Seluruh Program
Teknik ini memungkinkan program-program dikompilasi ylang secara independen tanpa perlu
men-tautkan kembali seluruh program dan dimuatkan kembali.
Memudahkan Pemakaian Memori Bersama di antar Proses-proses
Teknik ini memudahkan pemakaian memori bersama di antara proses-proses. Pemrogram
dapat menempatkan progam utilitas atau tabel data berguna di segmen yang dapat diacu oleh
proses-proses lain.
11.2 SEGMENTASI SECARA MURNI
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 descriptor segmen di tabel segmen yang menyediakan alamt disik awal segmen,
panjangnya dan bit-bit proteksi.
Gambar 11-1 menunjukan struktur mekanisme segmentasi sederhana.
11.3 PERBANDINGAN ANTARA PAGING DAN SEGMENTASI
11.4 TEKNIK KOMBINASI
Segmentasi tampak oleh pemrograman sehingga pemrogram harus memperhatikan.
Segmentasi berkemampuan menangani pertumbuhan struktur data, modularitas serta
mendukung pemakaian bersama dan proteksi.
Gambar 11-2 memperlihatkan skema sistem kombinasi paging dan segmentasi.
11.5 CONTOH SISTEM DENGAN MEMORI DAYA
11.5.1 Memori maya dengan segmentasi murni
Perangkat keras memberikan pengacuan memori suatu segmen tertentu. Pilihan segmen dapat
dibuat dengan sembarang kombinasi berikut :
Intruksi
Target dari suatu alamat
Status saat itu
Gambar 11-3 menunjukan skema segmentasi murni
11.5.2 One-Level Paging
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.
Gambar 11-4 menunjukan skema one-level paging
Keunggulan
Semua bentuk paging mengeliminasi fragmentasi eksternal dan menyederhanakan alokasi dan
pertumbuhan dinamis.
Kelemahan
Alokasi dan pertumbuhan dinamis tabel page besar dapat mrnjadi masalah karena harus
kontigu di memori fisik.
11.5.3 Two-Level Paging
Translasi alamat maya ke alamat fisik lebih rumit, yaitu :
1. Pertama, indeks 1 ditambahkan ke alamat root atau dasar tabel segmen untuk
memperoleh alamat isian tabel segmen.
2. Kedua, STE dibaca dari memori dan alamat dasarnya ditambah indeks 2 untuk
memperoleh alamat isian tabel page.
3. Ketiga, PTE dibaca dari memori untuk memperoleh nomor page fisik. Nomor page
fisik ini ditambah offset di alamat maya untuk memperoleh alamat fisik akhir.
Gambar 11-5 menunjukan skema two-level paging