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.
Alamat terdiri dari dua bagian pada memori bersegment yaitu :
a.Nomor segment
b.Alamat pada segment (offset).
Segment dapat berisi :
a.Prosedure
b.Array
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.
Ilustrasi penggunaan
segmen dapat dilihat pada Gambar
“Arsitektur Segmentasi”. Suatu alamat lojik
terdiri dari
dua bagian, yaitu nomor segmen(s), dan offset pada segmen(d).
Nomor segmen digunakan sebagai indeks dalam segmen table.
Offset d alamat lojik
harus antara 0 hingga dengan segmen limit.
Jika tidak maka diberikan pada
sistem operasi. Jika offset
ini legal maka akan dijumlahkan dengan segmen base
untuk
menjadikannya suatu alamat di memori fisik dari byte yang
diinginkan.
Jadi segmen table ini merupakan suatu array
dari pasangan base dan limit
register.
Sebagai contoh, kita
mempunyai nomor segmen dari
0 sampai dengan 4. Segmen-segmen ini disimpan dalam
suatu memori fisik. Tabel segmen berisi data untuk masing-masing
segmen, yang
memberikan informasi tentang awal alamat
dari segmen di fisik memori (atau base) dan panjang dari
segmen (atau limit). Misalkan, segmen 2 mempunyai
panjang 400
dan dimulai pada lokasi 4300. Jadi, referensi di byte 53 dari
segmen 2 dipetakan ke lokasi 4300 + 53 = 4353.
Suatu referensi ke segmen 3,
byte 852, dipetakan ke 3200
(sebagai base dari segmen) + 852 = 4052.
Referensi
ke byte 1222 dari segmen 0 akan menghasilkan
suatu trap ke sistem operasi,
karena segmen ini hanya
mempunyai panjang 1000 byte.
Segmen-segmen
dapat berukuranberbeda dan dinamis.
Pengacuan-pengacuan memori berbentuk (nomor
segmen,offset).
Saling Berbagi dan
Proteksi
Segmen
dapat terbagi jika terdapat elemen di tabel segmen
yang berasal dari dua proses yang berbeda yang menunjuk
pada alamat fisik yang sama. Saling berbagi ini
muncul di
level segmen dan pada saat ini terjadi semua informasi dapat
turut
terbagi. Proteksi dapat terjadi karena ada bit-proteksi
yang berhubungan dengan
setiap elemen dari segmen tabel.
Bit-proteksi ini berguna untuk mencegah akses
ilegal ke memori.
Caranya: menempatkan sebuah array di dalam segmen
itu
sehingga perangkat keras manajemen memori secara
otomatis akan mengecek indeks
array -nya legal atau tidak.
Segmentasi dengan Pemberian Halaman
Kelebihan
Pemberian Halaman : tidak ada
fragmentasi
luar - alokasinya cepat.
Kelebihan
Segmentasi : saling
berbagi - proteksi.
Metode
segmentasi dan paging masing-masing memiliki
keuntungan dan kerugian. Selain kedua metode itu ada
metode pengaturan memori lain yang berusaha menggabungkan
metode segmentasi dan paging. Metode ini disebut dengan
segmentation with
paging.
Dengan metode ini jika ukuran segmen melebihi ukuran
memori utama maka
segmen tersebut dibagi-bagi jadi
ukuran-ukuran halaman yang sama ==> paging.
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.
2.Kompilasi
ulang independen tanpa mentautkan kembali
seluruh program. Teknik ini memungkinkan
program-program
dikompilasi ulang secara independen tanpa perlu mentautkan
kembali
seluruh program dan dimuatkan kembali.
Jika masing-masing prosedur terdapat di
segmen terpisah
beralamat 0 sebagai alamat awal, maka pentautan
prosedur
prosedur yang dikompilasi secara terpisah sangat lebih mudah.
Setelah
semua prosedur dikompilasi dan ditautkan, panggilan
ke prosedur di segmen n
akan menggunakan alamat dua bagian
yaitu (n,0) mengacu ke word alamat 0
(sebagai titik masuk)
segmen ke n. Jika prosedur di segmen n dimodifikasi dan
dikompilasi ulang, prosedur lain tidak perlu diubah (karena tidak
ada
modifikasi alamat awal) walau versi baru lebih besar
dibanding versi lama.
3.Memudahkan
pemakaian memori bersama di antara
proses-proses. Pemrogram dapat menempatkan
program
utilitas atau tabel data berguna di segmen yang dapat diacu
oleh
proses-proses lain. Segmentasi memberi fasilitas
pemakaian bersama terhadap prosedur dan data untuk
dapat diproses, berupa shared library. Pada workstation
modern yang menjalankan sistem Windows sering
mempunyai pustaka grafis sangat
besar. Pustaka ini diacu
hampir semua program. Pada sistem bersegmen, pustaka
grafis diletakan di satu segmen dan dipakai secara bersama
banyak proses
sehingga menghilangkan mempunyai
pustaka di tiap ruang alamat proses.
4.Memudahkan
proteksi karena segmen dapat dikonstruksi
berisi sekumpulan prosedur atau data terdefinisi
baik,
pemrogram atau administrator sistem dapat memberikan
kewenangan pengaksesan
secara nyaman.
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.
Kombinasi Sistem Paging
dan Segmentasi
A.Pada kombinasi paging
dan segmentasi, ruang alamat
pemakai dibagi menjadi sejumlah segmen sesuai
kehendak
pemrogram.
B.Tiap segmen dibagi
menjadi sejumlah page berukuran tetap,
berukuran sama dengan page frame memori
utama.
C.Jika segmen kurang dari
ukuran page, segmen hanya
memerlukan satu page.
1.Memori
Maya dengan Segmentasi Murni
Perangkat
keras memberikan pengacuan memori suatu
segmen tertentu. Pilihan segmen dapat
dibuat dengan
sembarang kombinasi berikut :
a.Instruksi
b.Target dari suatu alamat
(program atau data)
c.Status saat itu (proses,
sistem, interupsi)
> 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
>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.
3.Two Level Paging
>Indeks 1 ditambahkan ke
alamat root atau dasar tabel
segmen untuk memperoleh alamat isian tabel segmen
(Segment Tabel Entry-STE)
>STE dibaca dari memori
dan alamat dasarnya ditambah
indeks 2 untuk memperoleh alamat isian tabel page
(Page Tabel Entry).
>PTE dibaca dari memori
untuk memperoleh nomor
page fisik. Nomor page fisik ini ditambah offset di
alamat
maya untuk memperoleh alamat fisik akhir.
>Contoh Sistem : DEC VAX, IBM S/370, Data
General
Eclipse 32 bit, Motorola MC68030, Intel 80386.
4.Three Level Paging
>Translasi nomor page
maya ke nomor page fisik
memerlukan tiga tahap.
>Tiap fields indeks
ditambahkan alamat dasar tabel
yang berkorespondensi untuk menemukan isian
tabel berikutnya.
>Isian tabel menyediakan
bit-bit proteksi dan alamat dasar
tabel berikutnya.
> Contoh Sistem : SUN SPARC
5.Four Level Paging
>Translasi nomor page
maya ke nomor page fisik
memerlukan empat tahap.
>Tiap fields indeks
ditambahkan alamat dasar tabel yang
berkorespondensi untuk menemukan isian
tabel berikutnya.
>Isian tabel menyediakan
bit-bit proteksi dan alamat dasar
tabel berikutnya.
>Contoh Sistem : Motorola MC68030.
Sumber: Diolah dari berbagai sumber
>>>>>TERIMAKASIH<<<<<
Subscribe to:
Post Comments (Atom)
ARSITEKTUR & ORGANISASI KOMPUTER (UNIT MASUKAN & KELUARAN)
UNIT MASUKAN DAN KELUARAN Definisi dan Fungsi: Unit masukan dan keluaran merupakan bagian komponen utama dari sistem komputer ...
-
SISTEM PAGING B. Sistem Paging Sistem paging mengimplementasikan ruang alamat besar pada memori kecil menggunakan index register, bas...
-
SEGMENTASI Segmentasi merupakan skema manajemen memori yang mendukung cara pandang seorang programmer terhadap memori. Ruang alamat l...
No comments:
Post a Comment