Sistem
Paging
Sistem paging adalah suatu sistem
manajemen pada sistem operasi yang mengatur program yang sedang berjalan.
Metode dasar dari paging adalah dengan memecah memori fisik menjadi blok-blok
yang berukuran tertentu yang disebut dengan frame dan memecah memori logika
menjadi bok-blok yang berukuran sama dengan frame yang disebut page. Untuk
mengatasi apabila suatu program lebih besar dibandingkan dengan memori utama
adalah dengan konsep overlay dan konsep memori maya(virtual memori) :
* Konsep Overlay,
yaitu dimana program yang di
jalankan dipecah menjadi beberapa bagian yang dapat dimuat oleh memory
(overlay), sedangkan yang belum dieksekusi akan disimpan di dalam disk, yang
nantinya akan dimuat ke memori begitu diperlukan dalam ekekusi.
* Konsep
Memori Maya
yaitu kemampuan untuk mengalamati
ruang memori melebihi memori utama yang tersedia.
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 :
- 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).
- Tabel page disimpan pada main memori dan menggunakan page table base registe” (PTBR) untuk menunjuk ke tabel page yang disimpan di main memori. Akan tetapi penggunaan metode ini memperlambat akses memori dengan faktor : pertama untuk lokasi tabel page dan kedua untuk lokasi alamat fisik yang diperlukan.
- Menggunakan perangkat keras cache yang khusus, kecil dan cepat yang disebut associative registe. Merupakan solusi standar untuk permasalahan penggunaan memori untuk implementasi tabel page.
Sedangkan tabel page digunakan untuk menerjemahkan memori logika ke memori fisik, dengan perantara MMU (Memory Management Unit), dan pengeksekusian proses akan mencari memori berdasarkan table page ini.
Segmentasi
Segmentasi
Perangkat Keras
Setiap alamat dibangkitkan oleh CPU dengan membagi
ke dalam 2 bagian yaitu :- Page number (p) digunakan sebagai indeks ke dalam table page (page table). Page table berisi alamat basis dari setiap page pada memori fisik.
- Page offset (d) mengkombinasikan alamat basis dengan page offset untuk mendefinisikan alamat memori fisik yang dikirim ke unit memori.
Sebuah
program adalah kumpulan segmen. Suatu segmen adalah unit logika seperti program
utama, prosedur, fungsi, metode, obyek, variabel lokal, variabel global, blok
umum, stack, tabel simbol, array dan lain-lain. Pandangan user terhadap sistem
segmentasi dapat dilihat pada Gambar Arsitektur Segmentasi.
Alamat logika terdiri dari dua bagian yaitu nomor segmen (s) dan offset (d) yang dituliskan dengan(nomor segmen, offset)
Pemetaan
alamat logika ke alamat fisik menggunakan tabel segmen (segment table), terdiri
dari :
- Segmen basis (base) berisi alamat fisik awal
- Segmen limit merupakan panjang segmen. Seperti tabel page, tabel segmen dapat berupa register atau memori berkecepatan tinggi. Pada program yang berisi sejumlah segmen yang besar, maka harus menyimpan tabel page di memori.
- Segment-table base register (STBR) digunakan untuk menyimpan alamat yang menunjuk ke segment table.
- Segment-table length register (STLR) digunakan untuk menyimpan nilai jumlah segmen yang digunakan program.
- Untuk alamat logika (s, d), pertama diperiksa apakah segment number s legal (s < STLR), kemudian tambahkan segment number ke STBR, alamat hasil (STBR + s) ke memori dari segment table.
Dimulai
dengan model 80386, microprocessor Intel menampilkan translasi alamat dengan 2
cara berbeda, yang disebut real mode dan protected mode. Real mode untuk
memelihara kompatibilitas prosesor dengan model yang lebih lama dan untuk OS
agar dapat melakukan bootstrap.
- Segmentation Registers
Logical
address terdiri atas dua bagian : segment identifier dan sebuah offset yang
menunjukkan alamat yang bersangkutan pada segment. Segment identifier adalah
sebuah 16-bit field yang disebut segment selector. Untuk mempermudah memperoleh
segment selectors dengan cepat, prosesor menyediakan segmentation register yang
tujuannya hanya untuk memegang segment selectors. Ada enam segmentation register
: cs, ss, ds, es, fs, dan gs.
- Segment Descriptor
- Segment Selectors
Untuk mempercepat pengubahan dari logical address
ke linear address, Intel menyediakan nonprogrammable register tambahan untuk
setiap dari 6 programmable segmentation registe pada sebuah segmentation register, segment descriptor yang bersangkutan
di-load dari memori ke nonprogrammable CPU register yang bersesuaian. Jadi,
pengubahan dari logical address ke linear address dilakukan tanpa mengakses GDT
atau LDT yang berada pada memori utama.
- Sebuah index 13-bit yang menunjukkan
masukan segment descriptor yang berhubungan yang terdapat pada GDT atau LDT.
- Sebuah TI (tabe indicator) flag yang
menunjukkan apakah segment descriptor terdapat pada GDt (Ti = 0) atau pada LDT
(TI = 1).
- Sebuah RPl (requestor privilege level)
2-bit field, yang membuat current privilege level cPu tepat saat segment
selector yang berhubungan di-load ke register cs.
- Segmentation Unit
Segmentatipn Unit melakukan operasi-operasi berikut
:
- Memeriksa TI dari segment selector, untuk
memutuskan apakah descriptor table berada pada segment descriptor.
- Menghitung
alamat dari segment descriptor dari index filed segment selector.
- Menambahkan ke Base field dari segment
descriptor, offset dari logical address, sehingga diperoleh linear address.