Anda di halaman 1dari 13

Sistem Operasi Sistem Paging dan Segmentasi

Disusun Oleh :

Muhammad Shidqi

Dosen Pengampu :

Muhamad Son Muari, M.Kom

Program Studi Sistem Informasi


Fakultas Sains dan Teknologi
Universitas Islam Negeri Raden Fatah Palembang 2019
Virtual Memory
Salah satu keuntungan dari adanya virtual memory adalah meningkatnya derajat
multiprogramming, di mana sistem operasi tidak menempatkan semua halaman
(page) sebuah proses dalam memori utama, namun memilh beberapa halaman yang
penting dan memuat referensi ke page yang lain ke dalam memori utama. Hal ini
berarti, apabila hanya terdapat empat puluh frame saja pada memori utama, dan kita
memiliki delapan proses yang masing-masing terdiri dari sepuluh proses dan masing-
masing proses hanya membutuhkan lima page utama dalam memori utama, maka
kedelapan proses dapat secara sekaligus dieksekusi oleh memori. Namun jika tidak
menggunakan virtual memori, maka hanya akan ada empat proses saja yang dapat
dijalankan pada memori. Sehingga dengan memanfaatkan virtual memori, jumlah
proses yang dapat dieksekusi di memori lebih banyak.

Jika kita meningkatkan degree of multiprogramming, yaitu dengan menjalankan


proses lebih banyak, maka dapat terjadi over-allocating memory. Misalnya kita
menjalankan enam proses yang masing-masing memiliki sepuluh halaman dan
seluruhnya dipanggil (di-load) ke memori, maka akan dibutuhkan 60 bingkai,
padahal yang tersedia hanya empat puluh bingkai. Over-allocating memory juga
dapat terjadi jika terdapat page fault, yaitu pada saat sistem operasi mendapatkan
halaman yang dicari pada disk kemudian membawanya ke memori fisik tetapi tidak
terdapat bingkai yang kosong pada memori fisik tersebut.

Sistem operasi memiliki dua cara untuk menangani masalah ini. Yang pertama
dengan men-terminasi proses yang sedang mengakses halaman tersebut. Akan tetapi,
cara ini tidak dapat dilakukan karena demand paging merupakan usaha sistem operasi
untuk meningkatkan utilisasi komputer dan throughput-nya.

Cara yang kedua yaitu dengan penggantian halaman (page replacement). Sistem
operasi dapat memindahkan suatu proses dari memori fisik, lalu menghapus semua
bingkai yang semula digunakannya, dan mengurangi level of
multiprogramming (dengan mengurangi jumlah proses yang berjalan). Prinsip kerja
penggantian halaman adalah sebagai berikut. "Jika tidak ada bingkai yang kosong,
maka dicari (dengan suatu algoritma ganti halaman) salah satu bingkai yang sedang
tidak digunakan dan kemudian dikosongkar. Suatu bingkai dapat dikosongkan
dengan memindahkan isinya ke dalam ruang pemindahan kemudian mengubah
semua tabel halaman hingga mengindikasikan bahwa halaman yang dipindah tersebut
sudah tidak berada di memori fisik. Lalu bingkai yang telah kosong tersebut dapat
digunakan oleh halaman yang akan ditempatkan di memori fisik". Dengan
memodifikasi urutan penanganan page fault, maka dapat dijabarkan urutan
proses page replacement sebagai berikut.
1.    Mencari lokasi dari halaman yang dicari di disk.
2.    Mencari bingkai yang kosong di memori fisik:
a.    Jika ada bingkai yang kosong, maka gunakan bingkai tersebut.
b.    Jika tidak ada bingkai yang kosong, gunakan algoritma ganti halaman untuk
memilih bingkai "korban"
c.    Pindahkan bingkai "korban" tersebut ke disk dan sesuaikan tabel halaman.
3.   Masukkan halaman yang berasal dari disk tersebut ke dalam bingkai yang baru
dikosongkan tersebut. Sesuaikan tabel halaman.
4.    Lanjutkan proses yang telah diinterupsi.

Page Replacement
Page Replacement diperlukan pada saat dimana proses dieksekusi perlu frame
bebas tambahan tetapi tidak tersedia frame bebas.
KonsepPage Replacement :
– Jika tidak ada frame yang kosong, cari frame yang tidak sedang digunakan, lalu
kosongkan dengan cara menuliskanisinya ke dalam swap space, dan mengubah
semua table sebagai indikasi bahwa page tersebut tidak akan berada lama di memori.
Gambar dibawah menunjukkan jika proses user dieksekusi, maka akan timbul page
fault.Padahal sudah tidak ada memori yang kosong, sehingga perlu adanya page
replacement
Rutinitas Page replacement :
– Tentukan lokasi page yang diharapkan pada disk
– Carilahframe kosong
– Jika adaframe kosong, gunakan
– Jika tidak ada, gunakan algoritma page replacement untukmenyeleksi frame yang
akan dikorbankan
– Simpan page yang dikorbankan ke disk, ubah page dan frame table secara berurutan
– Baca page yang diinginkan ke frame kosong; ubahpage dan frame table
– Mulai kembali user process
Langkah-langkah Page replacement :
Secara umum, algoritma dapat dibagi dua:
– Global Replacement -> Victim frame dapat dipilih dari semua frame yang ada
– Local Replacement -> Victim frame dapat dipilih dari frame-frame yang sedang
ditempati oleh image proses bersangkutan
Algoritma Page Replacement
– Selama jumlah frame meningkat, maka jumlah page fault akan menurun.
Peningkatan jumlah frame dapat terjadi jika memori fisik diperbesar
– Tujuan Algoritma Page Replacement adalah untuk mendapatkan page fault
terendah
– Pemilihan algoritma yang kurang tepat dapat menyebabkan peningkatan tingkat
page fault sehingga proses akan berjalan lambat
Ada beberapa Algoritma Page Replacement :
a.  Algoritma FIFO
b.  Algoritma Optimal
c.  Algoritma LRU
d.  Algoritma Clock

a. Algoritma FIFO

– Merupakan algoritma yang paling sederhana


– Jika ada suatu page yang akan ditempatkan, maka posisi page yang paling lama
yang akan digantikan
b. Algoritma Optimal

– Mengganti page yang tidak digunakan dalam waktu dekat


– Mempunyai rata-rata page fault terendah
– Algoritma ini sulit diimplementasikan

c. Algoritma LRU (Least Recently Use)

– Merupakan perpaduan dari FIFO dan optimal


– Page yang diganti adalah page yang telah lama tidak digunakan

d. Algoritma Clock

– Algoritma Clock menggunakan prinsip Second-Chance tapi dengan antrian yang


berbentuk melingkar
– Pada antrian ini terdapat pointer yang menunjuk ke halaman yang paling lama
berada di antrian.
– Ketika terjadi kesalahan halaman, halaman yang ditunjuk oleh pointer akan
diperiksa bit acuannya seperti pada Second-Chance.
– Jika bit acuan = 0, halaman tersebut akan langsung diganti. Jika bit acuan = 1, bit
acuannya diubah menjadi 0 dan pointer akan bergerak searah jarum jam ke halaman
yang berada di sebelahnya.
Alokasi Frame
– Pengalokasian tiap-tiap proses bervariasi tergantung pada tingkat
multiprogramming
– Jika tingkat multiprogramming nya semakin tinggi, maka proses akan kehilangan
beberapa frame
– Sebaliknya jika tingkat multiprogramming berkurang, maka proses akan mendapat
frame melebihi dari yang dibutuhkan.
Jenis Alokasi Frame :
– Alokasi sama rata (equal allocation) ->Tiap proses mendapat jumlah frame sama
banyak
– Alokasi proporsional (proporsional allocation) -> Tiap proses mendapat jumlah
frame sesuai dengan besarnya image proses itu.
– Alokasi berprioritas (priority allocation) ->Jumlah frame yang dialokasikan untuk
tiap proses berdasarkan prioritas.

Sistem Paging dan Segmentasi


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.
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.
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.
Segmentasi
Segmentasi merupakan skema manajemen memori yang mendukung cara
pandang seorang programmer terhadap memori. Ruang alamat logika 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 logika terdiri dari dua tupple: [segment-number, offset].

Segmentasi Perangkat Keras


Meskipun seorang pengguna dapat memandang suatu objek dalam suatu program
sebagai alamat berdimensi dua, memori fisik yang sebenarnya tentu saja masih satu
dimensi barisan byte. Jadi kita harus bisa mendefinisikan pemetaan dari dua dimensi
alamat yang didefinisikan oleh pengguna ke satu dimensi alamat fisik. Pemetaan ini
disebut sebagai sebuah segment table. Masing-masing masukan dari mempunyai
segment base dan segment limit. Segment base merupakan alamat fisik dan segmen
limit diartikan sebagai panjang dari segmen.
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) 

Perangkat keras yang digunakan pada sistem segmentasi. Pemetaan dari alamat
logika ke alamat fisik membutuhkan 2 acuan memori untuk setiap alamat logika. Hal
ini akan menurunkan kecepatan sistem dengan faktor 2. Solusi standard yang
digunakan adalah dengan cache (atau associative register) untuk menyimpan entri
tabel segmen yang sering digunakan. Pemetaan alamat logika ke alamat fisik dengan
menggunakan tabel segmen . Misalnya alamat logika dengan nomor segment 0 offset
88 akan dipetakan ke alamat fisik 1400 + 88 = 1488 karena offset < limit (88 <
1000). Alamat logika dengan nomor segment 1 offset 412 akan terjadi error karena
offset > limit (412 > 400). Alamat logika dengan nomor segment 2 offset 320 akan
dipetakan ke alamat fisik 4300 + 320 = 4620 karena offset < limit (320 < 400).

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
Setiap segment direpresentasikan dengan 8-byte segment descriptor yang
menggambarkan karakteristik segment. Segment descriptor disimpan pada Global
Descriptor Table(GDT) atau pada Local Descriptor Table(LDT).

Segment Selectors
Untuk mempercepat pengubahan dari logical address ke linear address, Intel
menyediakan nonprogrammable register tambahan untuk setiap dari 6 programmable
segmentation register. Setiap segment selector di-load 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.

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.

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. 

Anda mungkin juga menyukai