Anda di halaman 1dari 63

Bab V.

VIRTUAL MEMORY

- Konsep Pengingat Virtual


- VM tipe Halaman
- Tabel Halaman
- Permasalahan
- VM tipe Segment
- Fetch, Placement & Replacement Policies

1
Pengingat hierarkhis
Level atas
Registers lebih cepat
Instruksi, Operand
L1 Cache
Blok
L2 Cache

Blok
Memory
Virtual
Memory Page

Disk

File lebih besar


Tape
Level bawah 2
Latar belakang
 Kapasitas main memory sangat terbatas .

 Main memory sbg working memory harus mampu mengakomodasi seluruh


aplikasi aktif yang sedang dijalankan oleh komputer.

 Ukuran program aplikasi (+ datanya) > ukuran main memory.

Disk
Main Memory

Aplikasi Aplikasi
Aplikasi
B C
A

3
sebelum ada konsep virtual memory ….

Terbatasnya kapasitas main memory menjadi kendala bagi pemrogram.


Ukuran program dan penempatan potongan-potongan program dari disk ke
main-memory merupakan tanggung jawab pemrogram.

Secondary memory
Main Memory
pemetaan
M
program N #%x@% ??
X
..
M << N
(

programmer

4
dengan virtual memory …

Tugas penempatan potongan-potongan program dari disk ke main-memory


dikelola oleh OS (dengan dukungan perangkat keras MMU - Memory
Management Unit). Pemrogram dapat menuliskan program yg panjangnya
melebihi kapasitas main memory.

Secondary memory
Main Memory
pemetaan
:

program oleh OS & MMU


menggunakan konsep
Virtual Memory

5
Konsep Virtual Memory
 Virtual Memory adalah konsep yang diaplikasikan oleh Operating System
dalam mengelola keterbatasan kapasitas main memory.
 Disebut virtual karena secara fisik pengingat ini tidak ada wujudnya.
 Ruang pengingat fisik dan virtual dibagi menjadi blok-blok kecil,
sehingga pada saat bersamaan blok-blok dari beberapa aplikasi dapat
berbagi penggunaan ruang main memory.

Disk
Main Memory
A1 B1 C1
A2 B2 C2
B3 C3

apl.A apl.B apl.C

6
 OS memetakan blok-blok aplikasi yg sedang dijalankan, dari ruang
penyimpanan fisiknya (disk) ke ruang virtual memory yg dialokasikan
utk masing-masing aplikasi.
 Dari ruang virtual memory, blok-blok tsb dipetakan oleh OS ke ruang
fisik main memory agar dapat diproses oleh CPU.
 Setiap program aplikasi mendapat ruang virtual masing-masing.
OS
Disk Virtual Memory
Main Memory

apl.A
pemetaan
pemetaan apl.B fisik

apl.C
:

7
fisik non-fisik
 Alamat Fisik vs alamat Virtual :
disk Virtual Memory
Main Memory
0 BA + 0
0
1 BA + 1
ruang virtual 1
2 BA + 2
aplikasi A 2
… …
:
… :
… BB + 0
… BB + 1 Alamat fisik
ruang virtual
: BB + 2 aplikasi B di Main Memory
… …
… :
… BC + 0
… BC + 1 ruang virtual
… BC + 2 aplikasi C
: :

8
alamat fisik alamat BA/BB/BC : Alamat basis virtual yg diberikan
di disk virtual oleh OS untuk aplikasi A/B/C.
Virtual Memory  Ruang alamat virtual :
BA + 0 Masing masing aplikasi mendapat alokasi ruang
BA + 1 r.virtual alamat virtual yang terpisah , untuk memudahkan
BA + 2 apl. A pengelolaan & proteksi oleh OS.

Aplikasi X tidak dapat mengakses ruang virtual
:
aplikasi Y.
BB + 0
BB + 1 r.virtual  Alamat virtual aplikasi X :
BB + 2 apl. B
… alamat virtualX = alamat basis virtualX + alamat logikaX
: alamat basis virtualX : diberikan oleh OS untuk
BC + 0 memetakan aplikasi X ke pengingat virtual
BC + 1 r.virtual
BC + 2 apl. C alamat logikaX : alamat yg digunakan oleh
: pemrogram dalam menuliskan programnya (sesuai
urutan penulisan dalam program).
alamat Alamat logikaX dibangkitkan oleh CPU pada saat
virtual 9
eksekusi program X.
OS

Alamat basis virtual

Alamat logika
CPU +

Alamat virtual

Tabel Halaman/
Segment

Alamat fisik

10
Implementasi VM
 Paging
 Segmentation
 Kombinasi Paging & Segmentation
1. Paging
Ruang virtual dan ruang fisik dibagi menjadi blok-blok berukuran sama.
Di ruang virtual, satu blok disebut satu halaman (page), di ruang fisik,
satu blok disebut satu bingkai halaman (page frame )

Ruang Virtual : Ruang Fisik :


page0 frame0
page1 frame1
page2 frame2
page3 frame3
pemetaan
… …
virtual  fisik

11
2. VM tipe Segmen :
Ruang virtual untuk dibagi menjadi blok-blok dengan ukuran
bervariasi , blok-blok ini disebut segmen.

Ruang Virtual : Ruang Fisik :

segmen2
segmen0

segmen1 segmen1

segmen2 segmen0

pemetaan
: virtual  fisik

12
3. VM tipe Segmen Berhalaman :
Ruang virtual untuk dibagi menjadi segmen-segmen, tiap segment
adalah kelipatan bulat halaman.

Ruang Virtual : Ruang Fisik :

segmen0

segmen1

segmen2

pemetaan
: virtual  fisik

13
Ukuran Halaman
Arsitektur
Standar Besar Sangat besar
32-bit x86 4 KB 2 MB 4 MB

x86-64 4 KB 2 MB 1 GB

8 KB, 64 KB, 256 iB, 1 MB,


IA-64 (Itanium) 4 KB -
4 MB, 16 MB, 256 MB

Power
4 KB 64 KB, 16 MB 16 G
Architecture
64 KB, 4 MB,
SPARC 8 KB -
256 MB, 2 GB

ARMv7 4 KB 1 MB, 16 MB -

14
Keuntungan Virtual Memory
1. Memungkinkan beberapa aplikasi berbagi ruang fisik main memory yg
kapasitasnya terbatas.

2. Menyederhanakan pengelolaan memory

Tiap program yang dijalankan memiliki ruang alamat virtual tersendiri.

3. Memungkinkan proteksi memory

Karena setiap aplikasi beroperasi di dalam ruang-alamat masing masing


maka aplikasi yang satu tidak dapat mencampuri aplikasi lainnya 
kecuali bila OS memberikan access permission khusus.

4. Memberikan kemudahan dalam pemrograman .


Programmer dapat menuliskan program yang panjangnya > kapasitas
main memory.

15
Virtual memory tipe Halaman
Ruang virtual setiap aplikasi
Program apl.X Ruang virtual apl.X
dibagi menjadi blok-blok
berukuran sama yg disebut 0 I0 Bx+ 0 I0
halaman. 1 I1 B x+ 1 I1
page0
2 I2 B x+ 2 I2
Ii : instruksi ke i : : : :
Bx : virtual base untuk aplikasi X : : : :
(diberikan oleh OS utk : : : :
page1
setiap aplikasi aktif). : : : :
: : : :
Alamat virtual :
: : : :
Bx + i : : : :
: : : :
nomor offset
alamat logika alamat virtual
halaman 16
apl. X apl.X
Translasi Alamat
• Dalam eksekusi program aplikasi X, CPU akan membangkitkan alamat
logika data/instruksi yang akan diakses.

• Berdasarkan Base-addressX dari OS, Memory Management Unit (MMU)


membangkitkan alamat virtual data/instruksi yang akan diakses tsb.

• Dengan tabel halaman yg dikelola oleh OS, alamat virtual tsb


diterjemahkan ke alamat fisik.

• Alamat fisik tsb digunakan utk mengakses data/instruksi dr main memory


atau dari disk.
OS

Virtual base-addressX B
X
main
MMU
memory
Page alamat fisikX
CPU alamat alamat
+
logikaX virtualX Table
Disk17
Tabel Halaman (Page Table) PTBR Main Memory
 Tabel halaman adalah tabel yg dikelola a …
oleh OS untuk memetakan alamat virtual …

halaman ke lokasi fisiknya ( di main a


memory atau di disk). a+1
Page
 Setiap aplikasi yang sedang dijalankan a+2
TableA

oleh OS memiliki tabel halaman masing-

masing. Tabel-tabel halaman tersebut …
disimpan di main memory, dengan …
alamat basis yg berbeda. …
b …
 Alamat basis tabel halaman dituliskan

oleh OS ke dalam PTBR (Page Table b
Base Register) ketika suatu aplikasi Page
dieksekusi. TableB
Proses yg sedang dieksekusi isi PTBR …
proses dari aplikasi A a …

proses dari aplikasi B b 18

Pengingat fisik
Alamat virtual x Tabel Halaman x
p0x OS
Aplikasi x p1x pages
p2x

Alamat virtual y
Tabel Halaman y
p0y
Aplikasi y P1y
p2y

Alamat virtual z Tabel Halaman z


p0z
Aplikasi z p1z
p2z
1 entry per 1 halaman virtual
p3z … 19

pij : halaman virtual aplikasi j


Struktur Tabel Halaman : control bits
entry# valid bit access right frame#
 entry# = page#
0
 frame# = nomor halaman fisik 1
2 1/0 … …
 Control bits :
20
• valid bit : menunjukkan lokasi halaman fisik (di m. memory atau di
disk).
1, frame# = alamat halaman fisik di main memory
valid bit =
0, frame# = alamat halaman fisik di disk

• access right : berisi informasi tentang hak akses ke halaman ybs.


• halaman data : read only atau read & write,
• halaman instruksi : execute only, hanya dapat dibaca pada fase IF
(Instruction Fetch).
 Replacement bits : menunjukkan status halaman, misal halaman yg LRU,
halaman yg paling lama berada di main memory, .. (sesuai dengan
replacement policy yg digunakan).

21
Translasi alamat virtual  fisik
Ruang Virtual aplikasi x : Ruang Fisik :

page0 frame0
page1 Tabel frame1
pagei framej
page2 Halaman frame2
page3 aplikasi x frame3
… …

Alamat virtual : page# offset

Tabel
Halaman

Alamat fisik : frame# offset 22


Contoh : page# = 2 , frame# ada dalam tabel halaman, pada entri 2.

alamat virtual : page# offset

2
Tabel Halaman
entry# valid bit access right frame#
0
1
alamat fisik :
2 1/0 … …
:

alamat fisik : frame# offset

di MM atau di disk
1 , frame ada di M. Memory
valid bit =
0 , frame ada di disk 23
Contoh : Tabel Halaman
access right
entry# valid bit frame# page# = entry#
R RW …
0 1 0 1 … 8H
1 0 1 0 … 5H
2 1 1 0 … CH
: : : : : :
FEH 0 0 1 … A7H
FFH 1 0 1 … 7H

• halaman0, 2, … , FF : ada di main-memory, pada frame 8H , CH , … 7H .


H
• halaman1 , … , FE : ada di disk pada frame 5H , … , A7H .
H

Access right : R=1 Isi halaman hanya boleh dibaca.


RW = 1 Isi halaman boleh dibaca & diubah (tulis)
EX = 1 isi halaman hanya boleh diakses pada IF cycle24
M. Memory Hit & Miss
Virtual mem. main memory
Disk

A1 A1 B2 B2
B4 A2 B1 B1 B1
B1 A3 C1 C2 A1
A3 A2 A2 A2
C1 B1
t
C2 B2 • miss B2 • miss A1
B3 • replaced A1 • replaced C2
B3 B4
Seperti pada pengingat cache, pada virtual
C4 memory juga terjadi peristiwa hit, miss dan
A1 C1 replaced
A2 C2
Contoh :
B2 C3 untuk 3 aplikasi aktif A, B, C dan main-
C3 C4 memory dengan kapasitas 4 halaman. 25
PageTable Hit :
alamat virtual alamat fisik di main memory

page# Offset frame# offset


4 2 5 2
(3)
Main memory
Page Table : :
(4) akses data
0 : :
(1) dari MM
1 (3) 50
2
51
3
4 5 1 (2) baca valid bit 52 data/inst
5 1  hit 53
6 54
7 0 55
8 : :
: :
: :
(5) Akses data/instruksi dari alamat 52 di main memory 26
Page Table Fault (miss) :
disk
alamat virtual alamat fisik disk : :
page# Offset frame# offset 20
5 2 2 2 21
(3)
22 …
Page Table 23
0 24
(4) akses frame# 2
(1) 1
dari disk, :
2 (3)
transfer ke MM 2F
3
4
5 2 0 (2) baca valid bit
6 0  fault :
7 Main
: : Memory
(5) Update PT

27
1. Gambarkan flowchart untuk kasus Hit dan Miss pada virtual memory.
2. Proses transfer halaman dari disk ke MM membutuhkan waktu yg relatif
panjang. Apa yg dilakukan oleh OS agar CPU tidak “idle” ketika proses
transfer berlangsung ?

28
Masalah VM tipe Halaman.
1. Page table disimpan di main-memory.
Pengaksesan suatu data/instruksi harus didahului dengan
pengaksesan Tabel (untuk menentukan alamat fisiknya)  perlu 2 kali
akses ke main memory.
(1a) akses ke Tabel Halaman.
Main memory
(1b) akses ke data/instruksi.
(1a)
Alamat virtual
Page-table
2. Ukuran Tabel Halaman :
apl.x
Jumlah entry dalam tabel = Alamat fisik
jumlah halaman virtual
program aplikasi ybs.
Untuk aplikasi yang besar, (1b)
ukuran Tabel menjadi sangat data/instruksi
besar.
29
Untuk 3 aplikasi aktif (apl. A , apl. B, apl. C) , akan Main Memory
ada 3 Tabel-halaman yg berada di Main memory.
Dengan ukuran tabel yg besar, main memory akan :
dikonsumsi oleh tabel-tabel halaman !!!
Page-TabelA
Contoh : Ukuran tabel-halaman suatu aplikasi.
:
Ukuran halaman = 4 KB /halaman
Ruang virtual aplikasiA = 4GB
Page-TabelB

Jumlah halaman aplikasiA = 4 GB/4 KB =1 M halaman


Jumlah entry dalam tabel halaman = Jumlah halaman :
aplikasiA = 1 M entries.
Page-TabelC
Bila ukuran satu entry dalam Tabel Halaman = 4 Bytes/entry ,
maka ukuran Tabel HalamanX = 1 M x 4 Bytes = 4 MB.
:
30
3. Penggunaan blok-blok berukuran tetap (halaman) menimbulkan
fragmentasi internal, yaitu munculnya ruang-ruang kosong di main
memory yg tidak dapat dimanfaatkan
. MM
Ruang virtual Ruang virtual
aplikasi A aplikasi B
page0 page0
L
page1 page1
LA < L
page2 page2

page3

fragment internal
(di dalam halaman)
L : Ukuran Halaman
L31B < L
Translation Lookaside Buffer (TLB)
Masalah 1 : Perlu 2 kali akses ke main memory, waktu cukup panjang.
Diatasi dengan penggunaan Translation Lookaside Buffer (TLB).

 TLB (Translation Look-aside Buffer) pada dasarnya adalah Tabel


Halaman berukuran kecil, yg diimplementasikan secara hardware
sebagai memory kecil berkecepatan tinggi (cache) , dengan pemetaan
asosiatif, sehingga kecepatan akses ke TLB sangat tinggi.

 Setiap aplikasi mendapat satu TLB.


Contoh : TLBA adalah TLB untk aplikasi A.

 Entry pada TLBA diperuntukkan bagi halaman-halaman virtual aplikasi


A yang paling sering diakses oleh CPU. Tidak seluruh halaman virtual
aplikasi A tercatat dalam TLBA.

32
OS
main
Virtual baseA memory
BA MMU

CPU alamat alamat Hit TLB


TLBA data
logikaA virtualA alamat fisik

Miss TLB
Miss
Page
TableA

Hit
Hit TLB : satu akses ke main memory (akses alamat fisik

data)
data
Miss TLB : dua akses ke main memory (akses
tabel halamanA dan akses data).
33
pengingat cache berada di main
khusus utk TLB memory

TLBA Page TableA


phys.page# c
tag physical page#
0
… …
1
N … …
M :
entries : :
entries :
… …
:
M-1
virtual page# sebagai tag

 Entries pada TLBA hanya berisi virtual page# aplikasi A yang


belakangan sering diakses oleh CPU. N << M

 Entries pada PTA berisi seluruh virtual page# aplikasi A.

34
Alamat virtual data
virtual page# offset
x …

TLB
tag virtual page#

Hit !
x a

phys. page# offset

a …

x dibandingkan (secara hardware) dg


seluruh tag yang ada di dalam TLB. alamat fisik data di MM

35
Translasi alamat virtual  alamat fisik dengan TLB :
 Pencarian alamat fisik dilakukan pada TLB lebih dahulu.
a) TLB hit : Bila alamat halaman fisik (page-frame#) untuk alamat
halaman virtual (page#) yang dicari ada di dalam TLB maka
diperoleh alamat fisik. Alamat fisik ini digunakan untuk
mengakses data/instruksi dari main memory.
b) TLB miss : Bila alamat halaman fisik untuk alamat halaman virtual
yang dicari tidak ada di dalam TLB, maka dilakukan pencarian
alamat fisik dari Page Table yang tersimpan di main memory.
Pencarian di page-table dapat menghasilkan
- PT hit : Halaman fisik yg dicari ada di main memory. Alamat fisik
yg diperoleh dari PT digunakan untuk mengakses
data/instruksi dari main memory.
- PT miss : Halaman fisik yg dicari ada di secondary memory.
Alamat fisik yg diperoleh dari PT digunakan untuk
mengakses secondary memory. 36
TLB hit :
2ndary
Main mem. mem.
(1) alamat
virtual TLB Page
Table
alamat
(2) TLB hit
alamat fisik
data/instr.
fisik

(3)

Jumlah akses ke main memory = 1 kali per translasi alamat virtual

(akses data/instruksi)

37
TLB miss, PT hit :

2ndary
mem.
(2) TLB miss Main mem.
(1) alamat alamat
virtual TLB Page
virtual (3) PT hit
Table
TLB hit

alamat
data/instr.
fisik
(4)

Jumlah akses ke main memory = 2 kali per translasi alamat virtual

1. akses ke Page Table


2. akses data/instruksi)
38
Soal :

1. Berapakah peningkatan kinerja untuk translasi alamat dengan TLB


dibandingkan dengan translasi tanpa TLB bila
40 % translasi menghasilkan TLB hit dan 60% sisanya adalah Page
Table hit. Diasumsikan waktu-akses ke TLB cukup kecil sehingga
dapat diabaikan.

2. Gambarkan flowchart untuk translasi alamat dengan menggunakan


TLB, untuk seluruh kemungkinan (TLB Hit, TLB Miss + PT Hit, dan TLB
miss + PT Miss).

39
Tabel Halaman Multi-Level
Masalah 2 : Ukuran Tabel Halaman yang besar (untuk aplikasi-aplikasi
berukuran besar) dan penyimpanan beberapa tabel halaman
aplikasi aktif secara bersama-sama di MM dapat mengurangi
ketersediaan ruang di MM.

Untuk menghemat ruang MM , digunakan Tabel Halaman Multi-Level.

 Tabel Halaman 2-level


Tabel halaman 2-level menggunakan satu tabel-halaman (PT) level-1
dan beberapa tabel-halaman level-2

Bit bit virtual page# dipecah :


• m bit sebagai entry pointer tabel virtual page# offset
halaman level-1. … … …
• n bit sebagai entry pointer tabel m bit n bit 40

halaman level-1.
Tabel Halaman 2-level utk aplikasi A PT level-2 MM
b
virtual page# offset b+1 x
3 2 6 b+2
offset

x+6 data
c
2 c+1
PTBRA a c+2 x
PT level-1 …
a
d
a+1
3 d+1
a+2
d+2
a+3 c …

PTBRA : Page Table Base Register untuk phys. page# offset


41

aplikasi A (diisi oleh OS). x …


PT level-2
alamat virtual
b
m bit n bit offset PTL2 :
b+1
PTL2, 0  2m buah PTL2 ,
b+2
PT level-1 : PTL2,0 , PTL2,1 , …, PTL2,2m-1.
a b b+(2n-1)  2n entries per tabel.
a+1 c
c
a+2 …
c+1
: … Tidak semua Tabel
c + 2 PTL2, 1
a+(2m-1) p level-2 harus selalu
:
berada (resident) di MM
c+(2n-1)
PTL1 :
 2m entries p
 Selalu berada di p+1 area memory total yg
MM. p + 2 PTL2, 2m-1 dipakai oleh PT 2-level
: < area PT 1-level.
p+(2n-1) 42
 Tabel Halaman 1-level
page# offset
alamat virtual m + n bits k bits

Page Table
0
1
2 … 1
3
… …
:
: frame# offset
2m+n-1 alamat fisik

Ukuran Page Tabel : 2m+n entries, berada di main memory.


43
Contoh : Untuk alamat virtual 16 bit dan halaman berukuran 26 Bytes,

alamat virtual 10 bit 6 bit .

 Tabel Halaman 1-level : Ukuran Tabel 210 entries.

 Tabel Halaman 2-level : misalkan m = 4 dan n = 6,


4 bit 6 bit 6 bit
maka ukuran Tabel Halaman level-1 adalah 24 entries,
dan ukuran Tabel halaman level-2 adalah 26 entries/tabel.
Misalkan setiap saat hanya ada 4 PTL2 yg resident, maka ukuran tabel yg
digunakan pada tabel-halaman 2-level adalah
24 entries + 4x 26 entries = 17 x 24 entries < 210 entries

Kelemahan Tabel Halaman multi level :


Jumlah akses ke MM akan lebih besar dibandingkan Tabel Halaman 1- level.
44
Ukuran Halaman
 Ukuran Kecil
Lebih banyak jumlah halaman yg dapat ditempatkan di main memory.
Jumlah halaman per aplikasi makin besar  ukuran tabel halaman besar.
Ukuran fragment internal relatif kecil.

Virtual Space Physical Space


aplikasi biru aplikasi pink

page0 page0 frame0


page1 page1 frame1
page2 page2 frame2 Fragment
page3 frame3 Internal
page4
page5

Fragment internal = ruang yg tidak terpakai dalam halaman.


45
 Ukuran Besar
Jumlah page-frame di main memory berkurang, alokasi frame per aplikasi
menjadi berkurang.
Jumlah halaman virtual per aplikasi mengecil  ukuran tabel-halaman
mengecil.
Ukuran fragment internal bisa lebih besar.

Ruang Ruang
7 pages virtual 4 pages
virtual

fragment

Tabel Halaman 7-entries Tabel Halaman 4-entries46


VM Tipe Segmentasi :
Alamat virtual Alamat fisik

Segment# Offset Segment-Table Base Offset

Segment Table :
• Setiap aplikasi memiliki segment-table
sendiri (dari OS). Control
Entry# Base Limit bits
• entry# = segment#
v
Informasi untuk segment virtual i ada 0 …
pada entry i. 1 …
Basei : alamat basis fisik dari segment 2 base2 limit2 … 0/1
virtual i. : …
Limiti : batas (ukuran) segmenti . : …
47
vi : valid bit segment i.
Virtual memory Physical
alamat virtual data
segment# memory
Segment# Offset
Seg. 1
code Segment table
(1)
Base Limit control
Seg. 2
1 stack
offset
data 2
3
: code
Seg. 3
stack (2)

: data (3b) yes offset > Base


limit ?
Limiti : batas segmenti
no (4) data offset
Basei : alamat basis memory (3a)
segmenti access fault
Base Offset
MMU physical address 48
Segment Table
 Sebagaimana page-table, segment-table juga berada di main-memory.
 Segment-Table Pointer menunjukkan alamat awal penyimpanan
Segment-Table di main memory (diisi oleh OS utk setiap aplikasi).
main
memory
Alamat virtual data Segment Table

Segment # Offset Base Limit Control


bits
2
X+2 X …
+ X+1 …
X+2 … … … 1
: …
X
: …
Segment-Table
Pointer Alamat fisik
+
(bila offset < limit & valid bit=1) 49
Kelebihan Segmentasi (dibandingkan Paging)
 Ukuran segment >> ukuran halaman, sehingga ukuran tabel lebih
kecil.
 Menyederhanakan penanganan struktur data yang tumbuh
membesar/mengecil.
OS dapat memperkecil atau membesarkan ukuran segment sesuai
kebutuhan.

Kelemahan Segmentasi (dibandingkan Paging)

 Terjadi fragmentasi eksternal.


 Algoritma pengelolaan memory (placement, replacement dsb) lebih
kompleks dibandingkan Paging.

50
 Fragmentasi Eksternal :
Tebentuknya ruang-ruang kosong antar segment di MM, ruang-ruang tsb
tidak dapat dimanfaatkan karena lebih kecil dibandingkan ukuran
segment yg akan masuk ke MM.

R.virtual aplikasi A R.virtual aplikasi B MM

segment B1
segment A0 segment B0  fragment1

segment A3
segment A1
segment B1  fragment2
segment A2

segment A3

51
R.virtual aplikasi A R.virtual aplikasi B MM
segment B1
segment A0 segment B0
 fragment1

segment A1 segment A3
segment B1
segment A2  fragment2

segment A3
Misalkan segment A1 akan ditempatkan di MM.
Karena ukuran fragment1 < ukuran segment A1,
begitu juga ukuran fragment2, maka segmentA1 tidak
dapat ditempatkan di MM tanpa melakukan
replacement.
Padahal sebetulnya
ukuran (fragment1 + fragment2) > ukuran segment A1.
52
apl.1 16K apl.1 16K 16K

apl.2 24K apl.2 24K apl.2 24K


appl.4 & appl.1 &

appl.5 appl.4
16K apl.4 16K
masuk keluar

apl.3 32K apl.3 32K apl.3 32K

32K apl.5 24K apl.5 24K

8K 8K
16K apl.2 24K
L1

apl.2 24K
appl.6, (24K)
apl.3 32K
akan masuk
16K
L2

apl.3 32K apl.5 24K


Defragmentasi

(oleh OS)
40K
apl.5 24K

8K L3

Fragment L1 , L2 , dan L3 < 24 K.


Kombinasi Paging dan Segmentasi
• Tiap segment dibagi menjadi halaman-halaman berukuran sama
(ukuran segment = kelipatan ukuran halaman).

• Format alamat virtual : segment# Page# Offset

• Menggunakan dua Tabel untuk translasi alamat

1. Tabel Segment : Format entry

base Limit control bits

2. Tabel Halaman : Format entry

Frame# control bits

55
Alamat virtual data
segment# Page# Offset
Tabel-Halaman Segment i
page j 0
Segment i 1
Tabel-Segment :

0 j

1 :

:
i … Entry# = Page#
:

Informasi tentang lokasi Tabel-halaman


Entry# = Segment# untuk segment i .

Segment Table & Page Table ada di main memory


56
virtual address data x
segment# Page# Offset
a b c
c Frame# Offset

physical
b f c
Seg.Table Pointer e address
d +
a f
+ d e
f
d+a e Offset
e+b =c
f
f+c

Segment Table Page Table


(utk segment# a)
main memory
d : alamat awal penyimpanan Segment-Table di main memory.
e : alamat awal penyimpanan Page-Table (utk segment a) di main memory.
57
F : alamat awal penyimpanan frame dimana data x berada.
 VM Fetch Policy

Ada dua policies untuk menentukan kapan suatu halaman atau segment
harus dibawa ke main-memory (fisik).

1. Demand paging/segmentation :
Halaman/segment dibawa ke main-memory hanya bila terjadi “miss”
(fault) dalam pengaksesan data dalam halaman/segment ybs.

2. Pre-paging :
Selain halaman/segment penyebab “miss”, halaman/segment yang
berdekatan (dalam VM) dengannya juga dibawa ke main-memory.

58
 VM Placement policy
Menentukan dimana halaman/segment ditempatkan dalam main memory.

 Pada paging atau pada kombinasi paging – segmentation,


Penempatan tidak menjadi masalah, halaman (pada paging) atau
halaman dalam segment (pada paging-segmentation) dapat
ditempatkan disembarang page-frame yang kosong.

 Pada sementation,
Penempatan dilakukan pada ruang kosong yang dapat menampung
segment ybs. Karena ada banyak ruang kosong di main-memory, maka
pemilihan dilakukan dengan menggunakan suatu algoritma
penempatan ( algoritma best-fit, first-fit dsb) yang bertujuan untuk
meminimalkan fragmentasi eksternal.

59
Algoritma Placement

 First-fit : Dalam pencarian ruang kosong untuk menempatkan suatu


segment berukuran x, akan dipilih ruang kosong pertama
yang dijumpai dan yang ukurannya > x.

 Best-fit : Dalam pencarian ruang kosong untuk menempatkan suatu


segment berukuran x, akan dipilih ruang kosong yang
ukurannya paling mendekati x.

Waktu pencarian melalui algoritma First-fit lebih cepat dibandingkan Best-


fit, tetapi akan dihasilkan fragment eksternal yang berukuran besar.
Algoritma Best-fit akan menghasilkan fragment eksternal berukuran kecil.

60
search 1st Fit Best Fit
segment

Ukuran :
x<z<y

Fragment eksternal :
Dz < Dy

y
Dy
: ruang terisi

: ruang kosong
z
Dz
61
 Replacement Policy

 Bila di main-memory sudah tidak ada lagi ruang kosong yang ukurannya
lebih besar atau sama dengan halaman atau segment yang harus
ditempatkan di main-memory, maka harus dilakukan replacement
(penggusuran).

 Halaman atau segment yang akan digusur (replaced) dipilih berdasarkan


algoritma replacement seperti yang digunakan pada pengingat cache.

 Halaman atau segment yg tidak boleh digusur diberi tanda lock bit = 1
(pada control bits).

62
Ketika Main-memory-miss terjadi pada aplikasi A

(1) Initiate Block Read,


(4) CPU switch
Processor CPU switch ke aplikasi lainnya
kembali ke
Reg
aplikasi A
(3) Read Done

Cache

Memory-I/O bus

(2) DMA Transfer


I/O
Memory controller

Disk 63

Anda mungkin juga menyukai