1 Prinsip Lokalitas
Prinsip lokalitas adalah proses-proses cenderung mengacu penyimpan secara tak seragam,
mempunyai pola-pola sangat setempat.
Terdapat dua jenis lokalitas yaitu:
Lokalitas berdasar waktu (temporal locality)
Lokalitas menurut ruang (spatial locality)
Prinsip lokalitas diperoleh dari observasi, bukan kajian teoritis. Prinsip lokalitas menunjukan
kecenderungan prilaku lingkungan system bukan tepat eksak.
Gambar 10-14 menunjukan pola pengacuan selama eksekusi yang mendukung adanya prinsip
lokalitas. Bagian gelap menunjukan pengacuan dilakukan disekitar lokalitas yang saling
berdekatan.
Konsekuensi
Konsekuensi prinsip lokalitas adalah program dapat berjalan secara efisien saat satu subset page
berkecenderungan tinggi saling mengacu terdapat di memori.
Berdasarkan prinsip lokalitas, Denning merumuskan teori mengenai himpunan kerja dari prilaku
program (working set theory of program behavior).
1. Program seharusnya dijalankan jika dan hanya jika himpunan kerja berada di memori.
2. Page tidak boleh dipindahkan dari memori jika page himpunan kerja dari program yang
running.
dan library
Diasosiasikan dengan prosedur adalah table segmen dan sejumlah table page, satu table segmen
per segmen proses. Ketika proses running, register menyimpan alamat awal table segmen untuk
proses. Pemroses menggunakan bagian nomor segmen untuk mengindeks table segmen proses
guna menemukan table page untuk segmen itu. Bagian angka page alamat maya digunakan untuk
indeks table page dan mencari nomor pagi korespondensi. Angka tersebut kemudian
dikombinasikan dengan bagian offset alamat maya untuk menghasilkan alamat maya yang
diinginkan.
Alamat maya adalah offset di segmen. Tiap proses mempunyai table segmen. Ketika proses
running, alamat awal table dimuatkan ke register dasar. Nomor segmen digunakan untuk mencari
descriptor di table segmen yang menyediakan alamat fisik awal dari segmen, panjang dan bit-bit
proteksinya. Alamat fisik dihitung dengan menambahkan alamat dasar segmen ke alamat maya.
Gambar 11-3 menunjukan skema segmentasi murni.
Keunggulan
segmen-segmen berkorespondensi dengan unit-unit program, sehingga segmen-segmen ideal
untuk proteksi dan pemakaian bersama. Biasanya program hanya menggunakan beberapa
segmen sehingga hanya ruang kecil yang diperlukan. Informasi descriptor dapat disimpan di
register di MMU.
Kelemahan
segmen-segmen berukuran bervariasi menyebabkan fragmentasi ekstra sulit menyelesaikan
pertumbuhan dinamis. Segmen-segmen tidak memetakan blok-blok disk untuk memori maya
secara alami.
Contoh Sistem
Intel 8o386 dapat mengimplementasikan segmentasi murni jika tiap segmen kurtang dari 1
Mbyte. Untuk segmen-segmen lebih besar, panjang nya harus kelipatan dari 4 kb. Intel 8o386
juga menyediakan mekanisme paging dua tingkat.
Keunggulan
Semua bentuk mengeliminasi fragmentasi eksternal dan menyederhanakan alokasi pertumbuhan
dinamis. Ukuran table dapat disimpan baik dengan menggunakan page-page besar atau dengan
membatasi ukuran maksimum program. Kompleksitas pencarian table rendah Karena hanya satu
pengaksesan memori untuk menemukan isian table page.
Kelemahan
Sejumlah besar ruang memori utama harus dicadangkan untuk table page sehingga meyediakan
ruang alamat maya besar dengan page-page berukuran tertentu. Alokasi dan pertumbuhan
dinamis page besar dapat menjadi masalah Karena harus kontigu di memori fisik. Pemakaian
bersama hanya dimungkinkan dengan page-page dan isian table page diduplikasikan proses.
Contoh system
DEC PDP-11 menggunakan mekanisme ini untuk memorinya.
DEC VAX menggunakan mekanisme ini ruang system.
Data General Eclipse menggunakan mekanisme ini untuk program yang ukuranya kurang
dari 1 Mbyte.
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 table segmen untuk
memperoleh alamat isian table segmen.
2. Kedua, STE dibaca dari memori dan alamat dasar nya ditambah indeks 2 untuk
memperoleh alamat isian table 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.
Keunggulan
mekanisme ini mengkombinasikan keunggulan segmentasi dan paging. Pemakaian sama dapat
dilakukan di level segmen, mereduksi kebutuhan isian-isian table page yang redundam. Table-
tabel page tidak perlu berada di memori utama kontigu di memori utama. Hal ini menggunakan
alokasi dan pertumbuhan table page yang sederhana dan memungkinkan menggunakan ruang
alamat maya relatif besar.
Kelemahan
ruang alamat maya sangat besar (misalnya 4 Gbyte) memerlukan jumlah ruang besar table
segmen yang harus disimpan di memori utama dan harus kontigu ini membuat alokasi dan
pertumbuhan dinamis table segmen menjadi sulit.
Contoh system
DEC VAX
IBM S/37o menggunakan mekanisme ini
Data general eclipse 32 bit menggunakan mekanisme ini untuk program lebih besar
daripada 1 Mbyte.
Motorola MC68o3o dapat di program untuk menggunakan mekanisme ini dengan
beragam ukuran page dan ukuran segmen
Intel 8o386 menggunakan mekanisme ini.
Keunggulan
mekanisme table page banyak tingkat untuk implementasi memori maya dengan ruang alamat
sangat besar. Table page banyak tingkat memerlukan table-table page besar. Implementasi ruang
memori maya sangat besar dengan table tidak terlalu banyak.
Kelemahan
alokasi dan pertumbuhan dinamis table segmen menjadi sulit.
Contoh system
SUN SPARC, menggunakan table page tiga tingkat.
Studi Kasus
11-A
Dukungan Manajemen Memori di Intel
Segmentasi
Memberikan masing-masing program suatu ruang alamat independen terproteksi.
Paging
Mendukung dimana ruang alamat besar disimulasikan mengguunakan sejumlah RAM dan penyimpan sekunder.
Segmentasi
Terdapat tiga pilihan, yaitu:
1. flat model
2. protected flat model
3. multi-segment model
Pengamalatan segmentasi
alamat logik dibentuk dari segment selector 16-bit dan offset 32-bit ke segmen itu. Alamat logik
diterjemahkan ke alamat linier dengan menambahkan offset ke alamat basis dari segmen. Alamat
basis berasal dari segment descriptor, yaitu struktur data di memori yang memberikan
ukuran dan lokasi segmen
informasi kendali pengaksesan.
Hanya terdapat satu GDT untuk semua program di system satu LDT untuk masing-masing
program. System dapat dibuat sehingga program-program berbagi DT atau bahkan semua
program menggunakan satu GDT saja. Segment register ada di pemroses untuk tiap jenis
acuan memori. Segment selector menunjuk informasi yang mendefinisikan segmen yang
disebut segment descriptor
Proteksi
Proteksi yang disediakan Intel adalah
Proteksi level segmen
Proteksi level page
Dua bit di register mendefinisikan level wewenang (privilege level) program yang sedang
dijalankan (disebut current privilege level atau CPL).
Proteksi level segmen
Terdapat lima pemeriksaan proteksi
1. Pemeriksaan tipe
2. Pemeriksaan batas
3. Pembatasan domain yang dapat di alamati
4. Pembatasan titik masuk prosedur
5. Pembatasan himpunan instruksi
Studi Kasus
11-B
Manajemen memori
MS-DOS
Ruang alamat pemroses terbagi menjadi empat segmen dengan ukuran dan properti berbeda. Kerumitan ini disebebkan
arsitektur mesin Intel 8o86/88. Intel 8o86/88 mempunyai empat segmen memori yaitu:
CS (code segment) untuk mencatat kode program
DS (data segment) untuk mencatat data
SS (stack segment) untuk mencatat stack
ES (extra segment) untuk tambahan
MS-DOS menempatkan satu PSP (program segment prefix) di muatkan di memori bas terendah. PSP memerlukan 256 byte
pertama. PSP menunjuk beragam tasi memori yang diperlukan program ketika berjalan.
MS-DOS menciptakan memory control block di awal tiap daerah memori yang alokasinya. Struktur data ini
menspesifikasikan
Ukuran daerah memori
Nama program (jika program yang memiliki daerah it)
Pointer ke daerah memori berikut nya yang di alokasikan untuknya.
System call
MS-DOS dapat melakukan operasi
Alokasi blok memori bar uke program
Membebaskan blok memori
Membebaskan ukuran blok memori
Mengubah ukuran blok memori yang dialokasikan
Menspesifikasikan strategi alokasi memori, yaitu first-fit, best-fit, atau last-fit
Linux
Linux mendukung memori maya (virtual memory), menggunakan disk sebagai perluasan RAM sehingga ukuran efektif
memori menjadi lebih besar. Kernel menuliskan isi blok memori yang saat itu tidak digunakan ke harddisk sehingga
RAM untuk maksud lain. Saat isi blok di harddisk diperlukan, maka blok dibaca dan dimasukan ke memori semuanya
tak tampak oleh pemakai dan program yang berjalan.
Proteksi
tiap proses di system mempunyai ruang alamat maya tersendiri. Ruang-ruang alamat alamat maya itu sepenuhnya
terpisah. Proses yang berjalan di satu aplikasi tidak dapat mengganggu proses lainya.
Pemetaan memori
dilakukan pemetaan antara memori maya ke memori fisik yang tersedia.
Demand Paging
karena memori fisik lebih disbanding memori maya maka system hanya memuatkan page-page maya yang saat itu
sedang digunakan proses. Linux memuatkan page maya begitu diperlukan. Teknik ini disebut dengan demand
paging.
Saat pemroses berusaha mengakses alamat maya yang tidak di memori fisik, pemroses tidak dapat menemukan isian
di table page maya. Pemroses menerbitkan page fault.
Jika alamat maya yang dituju tidak abash (yaitu proses berusaha mengakses alamat maya yang tidak
dibolehkan) maka system operasi mengakhiri proses itu untuk memproteksi proses-proses lain.
Jika alamat maya yang dituju abash tapi tidak sedang dimemori fisik, maka system operasi harus membawa
page ke memori dari disk. Proses dimulai kembali di instruksi dimana page fault terjadi. Pemroses dapat
memetakan memori maya, sehingga proses terus berjalan.
Jika tidak terdapat memori bebas, system operasi harus membuat ruang bagi page yang akan dimasukan dengan membuang
page lain dari memori.
Jika telah di modifikasi (dirty-page), system operasi harus menjaga isi page. Ketika dipindahkan dari memori,
disimpan di ruang khusus (swap space).
Jika page yang dibuang berupa page belum ditulisi maka page tidak perlu dituliskan ke disk.
Memori di NT menerapkan memori maya dalam satu ruang alamat linier. Ruang alamat semu sebesar 4 Gigabyte dengan 2
Gigabyte untuk program system.
DAFTAR ISTILAH
Segmentation
Segment number
Offset relink
Shared library
Pure segmentation
One-level paging
Two-level paging
Three-level paging
Four-leve paging