System Paging dan Segmentasi

26
Oleh: Nur Annisa D.A.P 12.5.00172 Nidia Aisyiyah 12.5.00171 Kurnia Matha. H 12.5.00157 Wahyu Ernawati 12.5.00188 Yuniana Arif Z 12.5.00196 SEKOLAH TINGGI MANAJEMEN INFORMATIKA DAN KOMPUTER STMIK SINAR NUSANTARA SURAKARTA 2013

description

system paining dan segmentasi

Transcript of System Paging dan Segmentasi

Page 1: System Paging dan Segmentasi

Oleh:

Nur Annisa D.A.P 12.5.00172

Nidia Aisyiyah 12.5.00171

Kurnia Matha. H 12.5.00157

Wahyu Ernawati 12.5.00188

Yuniana Arif Z 12.5.00196

SEKOLAH TINGGI MANAJEMEN INFORMATIKA DAN KOMPUTER

STMIK SINAR NUSANTARA

SURAKARTA

2013

Page 2: System Paging dan Segmentasi

Sistem paging

1. Memori Maya Program yang dijalankan harus dimuat di memori utama. Masalah muncul ketika

program lebih besar dibanding memori utama yang tersedia. Terdapat dua solusi masalah ini,

yaitu:

a. Overlay

Program dipecah menjadi bagian-bagian yang dapat dimuat memori, disebut

overlay. Overlay yang belum diperlukan akan disimpan di disk, dan akan dimuat

ke memori jika akan di eksekusi. Pertukaran overlay masuk dan keluar dilakukan

oleh system operasi. Dan pembagian program menjadi overlay-overlay dilakukan

pemrogram.

b. Memori maya

Memori maya adalah kemampuan mengalamatkan ruang memori melebihi

memori utama yang tersedia. Gagasan memori maya adalah ukuran gabungan

program, data, dan stack melampaui jumlah memori fisik yang tersedia. Bagian-

bagan proses yang sedang digunakan disimpan di memori utama, sisanya di disk.

Begitu bagian di disk ingin digunakan maka bagian di memori yang tidak

diperlukan disingkirkan diganti bagian di disk yang diperlukan.

Memori maya dan multiprogramming

Memori maya dan multiprogramming adaalah dua konsep yang saling

melengkapi. Saat proses menunggu bagiannya di-swap masuk ke memori,

menunggu selesainya operasi input/output, proses di blok, jatah layanan pemroses

diberikan ke proses lain.

2. Deskripsi Sistem Paging Sistem paging mengimplementasikan ruang alamat besar pada memori kecil menggunakan

index register, base register, dan segment register.

Beberapa istilah pada sistem paging adalah :

Alamat Maya

Adalah alamat yang dihasilkan perhitungan menggunakan index register, base

register, dan segment register. Ruang alamat yang dibentuk disebut ruang alamat

maya(V). Alamat maya ini yang diacu proses yang running.

Alamat Nyata

Adalah alamat di memori utama fisik. Ruang alamat yang dibentuk disebut ruang

alamat nyata(R). Meski pengacuan proses dilakukanberdasar alamat maya, proses

sesungguhnya berjalan dimemori nyata. Alamat maya harus dipetakanmenjadi alamat

nyata saat proses dieksekusi. Pemetaan harus dilakukan dengan sangat cepat atau

Page 3: System Paging dan Segmentasi

kinerja system computer akan menurun drastis. Bagian yang bertugas memetakan

adalah MMU.

Page

Adalah unit terkecil virtual address space. Ruang alamat maya proses memerlukan

kelipatan page yang berukuran sama.

Page Frame

Adalah unit terkecil memori fisik. Memori fisik secara konseptual dibagi menjadi

sejumlah unit berukuran tetap disebut page frame.

Page fault

Adalah exception untuk permintaan alokasi page ke memori.

Memory Management Unit (MMU)

Chip atau kumpulan chip yang memetakan alamat maya ke alamat fisik.

Pada komputer tanpa memori maya, alamat langsung diletakkanke bus dan menyebabkan

word memori fisik alamat itu dapat ditulis atau dibaca.

Pada komputerdengan memori maya, alamat tidakdiletakkan di bus secra langsung tapi

lewat MMU yang kemudian memetakan alamat maya ke alamat memori fisik.

Pada pemroses modern, MMU sudah menyatu di pemroses (on-chip).Memori fisik

berisi sejumlah page frame yang memuat sebagian page-page proses. Terdapat

mekanisme penerjemahan (tanslasi) alamat untuk memetakan page maya ke alamat fisik.

System memori maya mempunyai property alamat-alamat kontigu (berurutan) pada ruang

alamat maya yang tidak harus kontigudi memori nyata. Property ini disebut kontigu semu.

a. MMU (Memory Management Unit)

Memiliki fungsi sebagai berikut :

Pemetaan memori maya ke memori fisik

Page 4: System Paging dan Segmentasi

Bila alamat memori yang diminta tidak tersedia di memori fisik, MMU menerbitkan

exception adanya page-fault yang melewatkan ke sistemopesi untuk menanganinya.

a.1. Skema pemetaan

Pada komputer dengan memori maya, alamat tidak diletakkan ke bus secara langsung tapi

dilewatkan ke MMU yang memetakan alamat maya ke alamat memori fisik. Pemetaan dapat

dirumuskan sebagai berikut :

Misal :

V (Ruang alamat maya) = {0,1,…,v-1}

M (Ruang alamat fisik) = {0,1,…,m-1}

Umumnya (V > M )

MMU merealisasikan fungsi f:V M, yaitu :

f(x) = {r, jika item x terdapat di memori fisik di r. dan page fault jika item x tidak terdapat di

memori fisik}.

Skenario pemetaan

a.2. Implementasi Pemetaan (Bagian Internal MMU)

Komponen terpenting MMU adalah

1. Register Alamat Maya

Menyimpan alamat maya yang diacu. Nilai di register alamat maya dibagi menjadi

dua, yaitu :

Sejumlah bit berorder tinggi menyatakan nomor page maya.

Bit-bit sisa adalah offset alamat maya.

2. Tabel Page

Tiap elemen table sedikitnya berisi informasi berikut :

Present /absent bit

Berisi 1 bila page di memori fisik, 0 bila page tidak di memori fisik.

Nomor page frame

Berisi nomor pageframe dimana page berada.

3. Register Alamat Fisik

Menyimpan alamat fisik yang disinyalkan ke bus.

Pemetaan

Nomor page maya digunakan sebagai indeks ke tabel page untuk menemukan isian page

maya.

Dari isian table page dapat diketahui apakah page dipetakan ke memori fisik

Page 5: System Paging dan Segmentasi

Apabila alamat terdapat di memori fisik maka isian di tabel page memuat

nomor page frame. Nomor tersebut dikopi sebagai bit-bit berorder tinggi di

register alamat fisik dan ditambah offset di alamat maya.

Bila alamat tidak ada di memori fisik maka MMU menerbitkan page fault.

MMU mengkopikan nomor page frame diisian tabel page dengan indeks nomor page ke

register alamat fisik dan menambah offset di alamat maya.

b. Tabel-tabel Paging

Pemakaian tabel page pada sistem paging menimbulkan dua masalah utama, yaitu :

1. Tabel page dapat berukuran luar biasa besar

Masalah :

Bila memori maya sangat besar maka tidak mungkin menggunakan satu tabel tunggal

karena akan diperlukan ukuran tabel sangat besar.

Solusi :

Menggunakan tabel-tabel bertingkat. Beberapa rancangan tabel paging untuk beragam

sesuai sistem computer, yaitu :

DEC PDP-11 menggunakan paging satu tingkat (one-level paging)

DEC VAX menggunakan paging dua tingkat (two-level paging)

SUN SPARC menggunakan paging tiga tingkat (three-level paging)

MOTOROLA 68030 menggunkan paging empat tingkat (four-level paging)

2. Pemetaan Harus Dilakukan Secara Cepat

Pemetaan alamat maya ke alamat fisik dilakukan setiap terjadi pengacuan memori.

Instruksi computer biasanya berbentuk :

Operator operand_1, operand_2, …, operand_N

Pada tiap instruksi, sedikitnya terdapat 1 atau 2 operan. Operan merupakan pengacuan

ke memori karena operan disimpan di memori berarti untuk satu instruksi sedikitnya

terjadi 1 sampai 2 pengacuan memori.

c. Memori Asosiatif

Sistem komputer dilengkapi pemetaan alamat maya ke alamat fisik tanpa lewat tabel page.

Perangkat ini disebut memori asosiatif, dan perangkat ini dipasang di MMU. Memori asosiatif

berisi sejumlah elemen tabel antara 8 – 32 elemen. Tiap elemen berisi informasi-informasi

mengenai page, yaitu :

Nomor page maya

Bit W , untuk mencatat apakah page telah dimodifikasi

Bit-bit proteksi

Nomor page frame dari page maya

Mekanisme Kerja Memori Asosiatif

Page 6: System Paging dan Segmentasi

Jika alamat maya dikirim ke MMU untuk penerjemahan, perangkat keras memeriksa apakah

nomor page maya terdapat di memori asosiatif dengan membandingkan semua isian memori

asosiatif secara simultan (bersamaan/paralel). Mekanisme parallel ini sangat mempercepat.

Jika ditemukan di memori asosiatif dan pengaksesan tidak melanggar bit-bit proteksi,

maka page frame langsung ditangani memori asosiatif tanpa melibatkan tabel page.

Jika page ditemukan di memori asosiatif tapi melanggar bit-bit proteksi , maka

diterbitkan protection fault.

Jika nomor page maya tidak terdapat di memori asosiasi, maka MMUmencari di tabel

page. Salah satu elemen memori asosiatif disingkirkan dan diganti elemen tabel page

yang ditemukan.

Dengan memori asosiatif maka kinerja rata-rata sistem dipengaruhi oleh :

Waktu akses tabel page

Waktu aksesmemori asosiatif

Nilai hit-ratio

3. Penggantian Page Algoritma penggantian page antara lain :

1. Algoritma penggantian page acak

Mekanisme :

Setiap terjadi pege fault, page yang diganti dipilih secara acak. Termasuk page

yang sedang diacu. Teknik ini sangat buruk karena menimbulkan rate terjadinya

page fault yang sangat tinggi.

2. Algoritma penggantian page optimal

Mekanisme:

Memilih page yang berpeluang dipakai kembali di masa datang yang paling kecil.

Strategi ini akana menghasilkan jumlah page fault paling sedikit. Algoritma ini tak

mungkin dibuat prosedur yang dapat mengetahui peluang pemakaian suatu page

kembali di masa depan, sehingga metode ini tak mungkin diterapkan.

3. Algoritma penggantian page NRU (Not Recently Used)

Mekanisme :

Page diberi dua bit mencatat status page, bit R dan M, yaitu :

Bit R : page sedang diacu

1 = sedang diacu

0 = tidak sedang diacu

Bit M : page telah dimodifikasi

1 = dimodifikasi

0 = tidak dimodifikasi

Page 7: System Paging dan Segmentasi

Dengan 2 bit, maka page-page dikelompokkan menjadi 4 kelas, yaitu:

Kelas 0 : R=0, M=0

Kelas 1: R=0,M=1

Kelas 2 : R=1, M=1

Kelas 3 : R=1, M=1

4. Algoritma penggantian page FIFO (First In, First Out)

Mekanisme :

Algoritma ini memerlukan pengelolaan senarai page di memori. Bila terjadi page

fault, page elemen terdepan diganti page baru ditambhakan di ujung belakang

senarai.

5. Modifikasi terhadap FIFO

Variasi dari FIFO adalah

Algoritma penggantian page kesempatan kedua

Saat terjadi pege fault, algoritma memilih page elemen terdepan diganti bila bit

R = 0. Bila R = 1 , maka bit terdepan senarai direset menjadi 0 dan diletakkan

ke ujung belakang senarai.

Algoritma penggantian clock page

Saat terjadi page fault, jika R = 0, maka page diganti, dan jika R=1, maka R

direset menjadi 0.

6. Algoritma penggantian page LRU (Least Recently Used)

Ketika terjadi page fault maka memindahkan page yang digunakan paling lama.

Masalahnya adalah sangat mahal.

Memodelkan algoritma paging

1. Anomaly belady

Belady menemukan fenomena menyimpang dari prasangka umum(anomaly) yaitu

pada algoritma FIFO maka pada pola-pola pengacuan tertentu menyebabkan lebih

banyak page fault bila alokasi page untuk proses ditambah.fenomena menyimpang

ini disebut anomaly belady.

2. Mesin abstrak eksekusi program

Terdapat mesin abstrak interpreter dengan propreti berikut :

- Terdapat array internal, M, menyimpan status memori. Array mempunyai n

elemen seperti proses mempunyai n page memori maya.

- Array M terbagi dua, yaitu :

1. Bagian atas/puncak, yaitu m isisan, page di memori utama.

2. Bagian bawah berisi n-m isian, yaitu semua page yang pernah diacu sekali

tapi telah dipindahkan dan tidakdi memori utama.

- Mulanya array M berupa himpuna kosong karena belum ada page yang telah

diacu dan tak ada page yang berada di memori.

Page 8: System Paging dan Segmentasi

Begitu eksekusi dimulai, proses mulai mengeluarkan page sesuai string

pengacuan, satu page pada satu saat.

4.Masalah-masalah utama pada sistem paging

- Working set model

o Prinsip lokalitas adalah proses-proses cenderung mengacu

penyimpanan secara tak seragam, mempunyai pola-pola sangat

setempat.

Terdapat dua jenis lokalisasi yaitu :

1. Lokalisasi berdasar waktu

Adalah proses cenderung terkonsentrasi acuannya ke satu interval

waktu eksekusi yang dekat.

2. Lokalisasi berdasar ruang

Adalah proses cenderung terkonsentrasi acuannya ke satu

kelompok data yang berdekatan.

- Working set of program behavior

Himpunan kerja secara informal didefnisikan sebagai kumpulan page proses

yang secara aktif diacu. Selain itu akan terjadi aktivitas page fault yang

berlebihan. Jika himpunan kerjaterdapat di memori, proses akan berjalan

tanpa menyebabkan banyak page fault.

Prinsip-prinsip working set model

Prnsip yang digunakan adalah melacak dan menjamin himpunan kerja terdapat

di memori sebelum proses dijalankan.

Prinsip-prinsip himpunan kerja :

1. Program seharusnya dijalankan jika dan hanya jika himpuna kerja berada

di memori.

2. Page tidak boleh dipindahkan dari memori jika page anggota himpunan

kerja dari program yang running.

- Kebijaksanaan penggantian local vs global

Terdapat dua pendekatan untuk mengganti page, yaitu :

1. Penggantian local adalah page yang dipilih untuk diganti hanya pada

partisi dimana proses diletakkan.

2. Penggantian global adalah page yang dipilih untuk diganti adalah tempat

kosong dengan tidak memperdulikan partisi proses.

- Frekuensi page fault

Frekuensi terjadinya page fault dapat dikendalikan denagn algoritma PFF

(page fault frequency algorithm). Dengan PFF harus didefinisikan ambang

atas dan ambang bawah frekuensi page fault.

Parameter PFF adalah P yaitu jumlah (frekuensi) page fault per T,

didefinisikan P = 1/T

Dimana: T =waktu fault kritis

P diukur dalam jumlah page fault per milidetik

- Ukuran page

Page 9: System Paging dan Segmentasi

Ditentukan agar sistem berperilaku optimal. Penentuan ukuran page

memmerlukan penilaian dan pemahaman mendalam hardware , software dan

aplikasi sistem.

Beberapa pertimbangan, antara lain :

o Ukuran page lebih kecil berarti jumlah page dan page frame lebih

banyak sehingga memerlukan tabel page lebih besar.

o Ukuran page besar, berarti sejumlah informasi yang tidak diacu juga

dimasukkan ke memori utamasehingga terjadi fragmentasi internal

yang tinggi.

o Transfer input/output relative sangat mengkonsumsi waktu sehingga

perlu meminimumkan jumlah transfer input/output saat proses

berjalan.

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 :

1. 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).

2. 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.

3. 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

Page 10: System Paging dan Segmentasi

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.

Masalah-masalah implementasi sistem paging

- back up instruksi yang terakhir dijalankan sebelum terjadi page fault

- buffer perangkat input/output

- page yang dipakai bersama

- backing store

- paging daemon

- penanganan page fault

Kelebihan Segmentasi dengan Pemberian Halaman

Sesuai dengan definisinya yang merupakan gabungan dari segmentasi dan paging, maka

metode ini memiliki keunggulan yang dimiliki baik oleh metode segmentasi mau pun yang

dimiliki oleh paging. Tetapi selain itu segmentasi dengan pemberian halaman ini juga

memiliki beberapa kelebihan yang tidak dimiliki oleh kedua metode tersebut. Kelebihan-

kelebihan segmentasi dengan pemberian halaman antara lain:

Dapat dibagi.

Proteksi.

Tidak ada fragmentasi luar.

Alokasi yang cepat.

Banyak variasinya.

Biaya kinerja yang kecil.

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.

Page 11: System Paging dan Segmentasi

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.

Kelemahan

Ruangalamatmayasangatbesar(misalnya 4Gbyte) memerlukanjumlahruangbesartabelsegmen yang

harusdisimpan di memoriutamadanharuskontigu.

ContohSistem

DEC VAX

IBM S/370 menggunakanmekanismeini.

Intel 80386 dapatmenggunakanmekanismeini.

11.5.4 Three Level Paging

Translasinomor page mayakenomor page fisikmemerlukantigatahap.Tiap field

indeksditambahkanalamatdasartabelyang

berkorespondensiuntukmenemukanisiantabelberikutnya.Kemudianisiantabelmenyediakan bit-bit

proteksidanalamattabelberikutnya.

Page 12: System Paging dan Segmentasi

Gambar 11-6 menunjukkanskemathree-level paging.

Keunggulan

Mekanismetabel page banyaktingkatuntukimplementasimemorimayadenganalamatsangatbesar.Tabel

page banyaktingkatmemerlukantabel-tabel page

besar.Implementasiruangmemorimayasangatbesardengantabeltidakterlalubanyak.

Kelemahan

Alokasidanpertumbuhandinamistabelsegmenmenjadisulit.

ContohSistem

SUN SPARC, menggunakantabel page tigatingkat.

11.5.5 Four Level Paging

Translasinomor page mayakenomor page fisikmemerlukanempattahap.Tiap field Indeks ditambahkan

alamat dasar tabel yang berkorespondensi untuk menemukan isian table

berikutnya.Kemudianisiantabelmenyediakan bit-bit proteksidanalamatdasartabelberikutnya.

Page 13: System Paging dan Segmentasi

Keunggulan

Mekanismeinibergunauntuk program yang menggunakanruangalamatmemori yang sangat

besar.Program LISP besar yang secara kontinyumen galokasikan dan melepaskan daerah memori

adalah tipe aplikasi yang cocokdenganmekanismeini.

Kelemahan

Kondisiterburuk yang mungkin adalah kondisi untuk translasime merlukan sebanyak empat pengacuan

memori.

ContohSistem

Motorola MC68030 dapatdiprogrammenggunakanmekanismeiniberagamukuran page dan ukuran

segmen.

Page 14: System Paging dan Segmentasi

StudiKasus

11-A

DukunganManajemenMemori Intel

FasilitasManajemenMemori di Intel x486

Pemroses i486 membantu system operasimengelolamemori.Saatbeberapa program berjalanpadawaktu

yang sama, pemrosesmeberiruangalamatindependenutukmasing-masing program.

Manajemenmemori di i486 terdiridari

Segmentasi

Paging

Segmentasi

Memberikanmasing-masing program suaturuangalamatindependenterproteksi.

Paging

Mendukunglingkungan di manaruangalamatbesardisimulasikanmenggunakansejumlah RAM

danpenyimpansekunder.

SEGMENTASI

Terdapattigapilihan, yaitu:

1. Flat model

2. Protected flat model

3. Multi-segment model

PengalamatanSegmentasi

Alamat logic dibentukdari segment selector 16-bit dan offset 32-bit kesegmenitu.Alamat basis

berasaldari segment descriptor yaitustruktur data di memori yang memberikan

Ukurandanlokasisegmen

Informasikendalipengaksesan

Segment descriptor berasaldarisalahsatutabel, yaitu

GDT (global descriptor table),atau

LDT(local descriptor table)

Page 15: System Paging dan Segmentasi

Hanyaterdapatsatu GDT untuksemua program di system dansatu LDT untukmasing-masing

program.Sistemdapatdibuatsehingga program-program berbagi LDT ataubahkansemua program

menggunakansatu GDT saja.

Segment registerada di pemrosesuntuktiapjenisacuanmemori. Segment selector menunjukinformasi

yang mendefinisikansegmen yang disebut segment description.

Proteksi

Proteksi yang disediakan Intel adalah

Proteksi level segmen

Proteksi level page

Proteksi Level Segmen

Terdapatlimapemerikasaanproteksi

1. Pemeriksaantipe(type check)

2. Pemerikasaanbatas(limit check)

3. Pembatasan domain yang dapatdialamati

4. Pembatasantitikmasukprosedur

5. Pembatasanhimpunaninstruksi

Pelanggaranproteksimenghasilkan exception.

Page 16: System Paging dan Segmentasi

StudiKasus

11-B

ManajemenMemori

MS-DOS

Ruangalamat proses terbagimenjadi 4 segmendenganukurandan property berbeda.

Kerumitaninidisebabkanarsitekturmesin Intel 8086/88 mempunyai 4 segmenmemoriyaitu :

CS (code segment) untukmencatatkode program

DS (data segment) untukmencatat data

SS(stack segment) untukmencatat stack

ES(extra segment) untuktambahan

Terdapatbanyak model pemrograman, yaitu :

Segmenkode Jumlah bit di Jumlah bit di Ukuran

dantepisah pointer kode pointer data data statistic

Tiny TIDAK 16 16 ≤64K

Small YA 16 16 ≤64K

Medium YA 32 16 ≤64K

Compact YA 16 32 ≤64K

Large YA 32 32 ≤64K

Huge YA 32 32 ≥64K

Banyaknya model program inisungguhmenyulitkanpemrograman.

Organisasimemori di MS-DOS

Memoridiorganisasikan di MS-DOS sebagaiberikut :

1. Interrupt vector table

2. Ruagtambahan optional (digunakan IBM untukdaerah data ROM)

3. IO.SYS

4. MSDOS.SYS

5. Buffers,control areas dan installed device drivers

MS-DOS menempatkansatu PSP (program segment prefix) di daerahmemoribebasterndah.PSP

memerlukan 256 byte pertama.PSP menunjukberagamlokasimemori yang diperlukan program

ketikaberjalan.

System call

Page 17: System Paging dan Segmentasi

MS-DOS dapatmelakukanoperasi

Alokasiblokmemoribaruke program

Membebaskanblokmemori

Mengubahukuranblokmemori yang dalokasikan

Menspesifikasikanstrategialokasimemori, yaitu first-fit, best-fit, atau last-fit.

Linux

Linux mendukungmemorimaya (virtual memory), menggunakan disk sebagaiperluasan RAM

sehinggaukuranefektifmemorimenjadilebihbesar. Kernel menuliskanisiblokmemori yang

saatitutidakdigunakankehardisksehingga RAM untukmaksudlain.Saatisiblok di hardiskdiperlukan

,makablokdibacadandimasukkankememori. Semuanyataktampakolehpemakaidan program yang

berjalan.

Manajemenmemori Linux menyediakan

1. Ruangalamatbesar

2. Proteksi

3. Pemetaanmemori

4. Memorimayabersama (shared virtual memory

RuangAlamatBesar

Ruangalamatdapatlebihbesar disbanding memorifisik yang tersedia.

Proteksi

Tiap proses di system mempunyairuangalamatmayatersendiri.Ruang

ruangalamatmayaitusepenuhnyaterpisah.

Memori Maya Bersama

Memorimayabersanainiuntukmenghematruangmemoriseprtipustakadinamisbagibeberapa

proses.

Demand Paging

Karenamemorifisisklebihsedikit disbanding memorimayamaka system hanyamemuatkan page-

page maya yang saatitusedangdigunakan proses. Linux memuatkan page mayabegitudiperlukan.

Memori Maya di MS-Windows NT

Memori di NT menerapkanmemorimayadalamsaturuangalamat linier.Ruangalamatsemusebesar

4Gigabyte dengan 2Gigabyte untuk program pemakaidan 2Gigabyte untuk program system.

10.5.1 Back-up Intruksi

Page 18: System Paging dan Segmentasi

Bila terjadi page fault berarti sebagian intruksi telah dijalankan. Pengkopian program counter

dan informasi register- register pemroses harus dilakukan. Setelah penggantian page selesai

maka intruksi yang menyebabkan page fault dapat dijalankan kembali dengan koneksinya.

Masalah yang harus diatasi adalah unutk mengulangi intruksi, sistem harus menentukan byte

pertama intruksi. Kesulitan timbul karena nilai program counter saat terjadi page fault

bergantung operan yang menyebabkan fault dan mikrokode pemroses. Masalah memburuk

pada intruksi di mode autoincrement, sangat bergantung pada rincian-rincian mikrokode, yaitu

:

Jika increment sesungguhnya dilakukan sebelum pengacuan memori maka sistem operasi

harus melakukan decrement terhadap register secara perangkat lunak sebelum mengulangi

intruksi yang menyebabkan page-fault.

Jika increment dilakukan setelah pengacuan memori maka tidak perlu dilakukan

decrement terhadap register oleh sistem operasi.

Perancang pemroses menyediakan solusi untuk masalah ini. Beragam cara diterapkan, berbeda

bergantung mesin. Beberapa mesin yang menyediakan solusi antara ain PDP-11/45, VAX,

Motorola 68010, dan lain-lain.

10.5.2 Buffer Perangkat Masukkan/Keluaran (Penguncian Page)

Penggantian page aka menimbulkan masalah mengacaukan proses yang melakukan operasi

masukan/keluaran jika :

Buffer perangkat masukan/keluaran ikut tergusur.

Adanya buffer satu perangkat masukan/keluaran menjadi rangkap.

Masalah diatasi dengan dua alternative yaitu :

Penguncian buffer perangkat masukkan/keluaran sehingga tidak menjadi sasaran

penggantian.

Buffer perangkat masukan/keluaran ditempatkan di kernel dan kopikan semua data ke

page-page proses pemakai.

10.5.3 Pemakaian Page Bersama

Apabila beberapa pemakai menggunakan program yang sama maka terjadi perangkpan page

(page yang sama terdapat di banyak bagian di memori). Lebih efisien bila menggunakan page

secara bersama, menghindari keharusan mempunyai kopian-kopian page yang sama di saat

yang sama.

Page 19: System Paging dan Segmentasi

Masalah

Tidak semua page dapat dipakai bersama

Akhir suatu proses

Tidak Semua Page Dapat Dipakai Bersama

Kode biner program (program text) adalah shareable (dapat dipakai bersama) sedang data

tidak shareable.

Akhir Suatu Proses

Masalah berikutnya adalah bila salah satu proses hendak membuang page dari memori karena

proses berakhir.

Solusi

Saat proses berakhir, sistem operasi memeriksa apakah page-page masih digunakan proses-

proses lain, yaitu :

Bila masih dipakai proses lain, maka sistem operasi tidak membebaskan page-page

tersebut dari memori. Pencarian pada tabel-tabel page untuk mengetahui apakah page

masih digunakan berongkos sangat mahal. Untuk itu diperlukan struktur data khusus guna

menyediakan kemampuan pemakaian page-page secara bersama.

Bila tidak dipakai proses lain, maka page-page dapat didealikasikan.

10.5.4 Backing Store

Masalah lain adalah menyangkut dimana page diletakkan dari memori utama. Terdapat

beragam algoritma untuk mengatasi hal ini, yaitu :

Menggunakan ruang penggantian khusus

Dialokasikan berdasar kebutuhan

Menggunakan Ruang Penggantian Khusus

Merupakan algoritma paling sederhana. Sistem operasi menyediakan ruang penggantian

khusus di disk.

Keunggulan

Proses-proses di memori tidak terikat ketat dengan suatu ruang swap.

Kelemahan

Alamat disk perlu disimpan sehingga mengetahui letak lokasi page yang diganti.

Page 20: System Paging dan Segmentasi

10.5.5 Paging Daemon

Paging daemon sleep untuk kebanyakan waktu, dibangunkan secara periodic untuk

menginspeksi

Keadaan memori.

Jika terlalu sedikit page frame bebas, paging daemon mulai memilih page-page untuk

diusir berdasarkan algoritma penggantian page yang digunakan.

Isian-isian page sebelumnya diingat. Dalam kejadian page yang telah diusir diperlukan

sebelum frame itu ditimpa.

10.5.6

Rincian saat terjadi page fault adalah sebagai berikut :

1. Perangkat keras melakukan trap ke kernel.

2. Satu rutin assembly dimulai untuk menyimpan register-register umum dan informasi-

informasi lain yang dapat hilang.

3. Sistem operasi mengetahui telah terjadi page fault dan coba menemukan virtual page

yang diperlukan.

4. Begitu alamat maya yang menyebabkan fault diketahui, sistem operasi memeriksa

apakah alamat valid dan konsisten terhadap proteksi.

5. Jika page frame telah dimodifikasi, page dijadwalkan untuk transfer ke disk dan terjadi

context switch.

6. Sambil page dimuatkan, proses fault masih ditunda dan proses pemakai yang lain

dijalankan, jika prose situ tersedia.

7. Ketika interupsi disk mengindikasikan page telah tiba, tabel-tabel page diperbarui

untuk merefleksikan posisinya dan frame ditandai sebagai keadaan normal.

8. Intruksi fault di back-up ke keadaan ketika dimulai dan program counter direset.

9. Proses fault dijadwalkan dan sistem operasi mengembalikan ke rutin bahsa assembly

yang memanggilnya.

10. Rutin ini menyimpan kembali register-register dan informasi yang dapat hilang lainya.

Page 21: System Paging dan Segmentasi

BAB 11

SEGMENTASI DAN KOMBINASI

PAGING-SEGMENTASI

11.1 DESKRIPSI SEGMENTASI

Segmentasi memungkinkan pemrogram memandang memori sebagai ruang yang berisi

banyak segmen. Ruang-ruang alamat itu sepenuhnya independen. Tiap segmen berisi barisan

linear alamat 0 sampai maksimum.

Panjang segmen dapat berubah selama eksekusi. Segmen stack bertambah ketika terjadi

operasi push dan turun saat operasi pop. Karena tiap segmen merupakan ruang alamat

terpisah, segmen-segmen dapat tumbuh dan mengerut secara bebas tanpa mempengaruhi

lainnya.

Spesifikasi alamat pada memori bersegmen adalah dua dimensi. Yaitu :

1. Nomor segmen

2. Alamat pada segmen itu (offset)

Segmen adalah entitas logis. Yang berisi :

1. Prosedur

2. Array

3. Stack

4. Kumpulan variable scalar

Kompilasi Ulang Independen Tanpa Menautkan Kemblai (Relink) Seluruh Program

Teknik ini memungkinkan program-program dikompilasi ylang secara independen tanpa perlu

men-tautkan kembali seluruh program dan dimuatkan kembali.

Memudahkan Pemakaian Memori Bersama di antar Proses-proses

Teknik ini memudahkan pemakaian memori bersama di antara proses-proses. Pemrogram

dapat menempatkan progam utilitas atau tabel data berguna di segmen yang dapat diacu oleh

proses-proses lain.

11.2 SEGMENTASI SECARA MURNI

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 descriptor segmen di tabel segmen yang menyediakan alamt disik awal segmen,

panjangnya dan bit-bit proteksi.

Page 22: System Paging dan Segmentasi

Gambar 11-1 menunjukan struktur mekanisme segmentasi sederhana.

11.3 PERBANDINGAN ANTARA PAGING DAN SEGMENTASI

Page 23: System Paging dan Segmentasi

11.4 TEKNIK KOMBINASI

Segmentasi tampak oleh pemrograman sehingga pemrogram harus memperhatikan.

Segmentasi berkemampuan menangani pertumbuhan struktur data, modularitas serta

mendukung pemakaian bersama dan proteksi.

Gambar 11-2 memperlihatkan skema sistem kombinasi paging dan segmentasi.

11.5 CONTOH SISTEM DENGAN MEMORI DAYA

11.5.1 Memori maya dengan segmentasi murni

Perangkat keras memberikan pengacuan memori suatu segmen tertentu. Pilihan segmen dapat

dibuat dengan sembarang kombinasi berikut :

Intruksi

Target dari suatu alamat

Status saat itu

Page 24: System Paging dan Segmentasi

Gambar 11-3 menunjukan skema segmentasi murni

11.5.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.

Gambar 11-4 menunjukan skema one-level paging

Page 25: System Paging dan Segmentasi

Keunggulan

Semua bentuk paging mengeliminasi fragmentasi eksternal dan menyederhanakan alokasi dan

pertumbuhan dinamis.

Kelemahan

Alokasi dan pertumbuhan dinamis tabel page besar dapat mrnjadi masalah karena harus

kontigu di memori fisik.

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 tabel segmen untuk

memperoleh alamat isian tabel segmen.

2. Kedua, STE dibaca dari memori dan alamat dasarnya ditambah indeks 2 untuk

memperoleh alamat isian tabel 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.

Page 26: System Paging dan Segmentasi

Gambar 11-5 menunjukan skema two-level paging