Tujuan Pembelajaran
Memahami konsep segmentasi
Memahami implementasi segmentasi dan
Segmentasi
Segmentasi
user space physical memory space
Ilustrasi Segmentasi
Versi segmentasi (dua dimensi)
Segmentasi
Sebuah program terdiri dari banyak segment.
Setiap segmen dapat berisikan prosedur, fungsi,
stack, symbol table, array, dan lain-lain.
Masing-masing segmen Independen
Karakteristik :
-
1 proses = n blok segmen
-
besar blok tidak tetap
Mirip dengan variable/dynamic partition
-
Perbedaan:
alokasi memori dapat tidak berurutan
Satu proses dapat mempunyai lebih dari satu
Segmentasi
Terjadi Fragmentasi Eksternal
Logical address terdiri dari pasangan:
<nomor segmen, offset>
Petakan dua dimensi alamat (<nomor-segmen,
offset>) ke satu dimensi alamat fisik dengan
segment table
Segment table
:
-
base
– alamat awal segmen di memori fisik.
Segmentasi
Segmentasi
contoh pemetaan dengan segmentasi
Alamat logika = <no segmen, offset>
Alamat logika = <2,53>
Alamat Fisik = 4300+53 =4353
Alamat logika = <3,852>
Alamat Fisik = 3200+852 = 4052
Intel Pentium
Mendukung segmentasi, paging, dan segmentasi
dengan paging
- Windows XP & UNIX → Paging
Mendukung jumlah segmen hingga 16K untuk setiap
proses
Max ruang virtual address untuk masing-masing
segmen 4Gb (232 bytes)
Logical address space terbagi menjadi dua partisi
Partisi pertama terdiri dari 8Kb segment (private)
Informasi partisi ini disimpan di LDT (Local Description Table)
Partisi kedua terdiri dari 8k segment (shared)
Alur translasi alamat pada
intel pentium
<selector, offset>
Selector 16 bit
Offset 32 bit
Pengalamatan memori dalam
Pentium
CPU menghasilkan logical address - Dikirim ke segmentation unit
Menghasilkan linear address
- Linear address diberikan ke paging unit
Menghasilkan physical address dalam main memory
Jika pure segmentation, maka proses paging diabaikan dan linear
address dianggap sebagai alamat fisik
Jika tidak, segmentation dilanjutkan dengan paging, maka linear
address akan diubah menjadi physical address.
Arsitektur Paging diPentium
Linux Dalam Sistem pentium
Menggunakan 6 segmen : kernel code, kernel data, user
code, user data, TSS (taks state segmen) dan default LDT
Menggunakan paging tiga tingkat (three level paging) untuk
mesin 32 bit dan 64 bit
Nilai bit untuk middle directory=0, jika menggunakan two
level paging pada mesin pentium
Linux di sistem pentium
Pertanyaan
Bagaimana segmentasi bekerja?
Apa perbedaan segmentasi dengan
paging?
Terangkan struktur page table intel
pentium?
Terangkan struktur page table Linux
Latihan
Jika terdapat tabel segmen sebagai berikut
:
Hitung alamat fisik dari alamat logika : (a) 0,430