0% menganggap dokumen ini bermanfaat (0 suara)
362 tayangan10 halaman

Virtual Memory: Sistem Operasi

Dokumen tersebut membahas tentang virtual memory pada sistem operasi komputer. Virtual memory memungkinkan program untuk berjalan meskipun ukuran memori fisik tidak cukup dengan menyimpan bagian-bagian program yang tidak aktif di disk. Virtual memory dapat diimplementasikan dengan paging, segmentasi, atau kombinasi keduanya. Paging membagi memori virtual menjadi halaman dan menyimpan halaman yang tidak muat di memori utama di disk.
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd
0% menganggap dokumen ini bermanfaat (0 suara)
362 tayangan10 halaman

Virtual Memory: Sistem Operasi

Dokumen tersebut membahas tentang virtual memory pada sistem operasi komputer. Virtual memory memungkinkan program untuk berjalan meskipun ukuran memori fisik tidak cukup dengan menyimpan bagian-bagian program yang tidak aktif di disk. Virtual memory dapat diimplementasikan dengan paging, segmentasi, atau kombinasi keduanya. Paging membagi memori virtual menjadi halaman dan menyimpan halaman yang tidak muat di memori utama di disk.
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd
Anda di halaman 1/ 10

Sistem Operasi Komputer

VIRTUAL MEMORY
Overlay :
Program dipecah menjadi bagian-bagian yang dapat dimuat memori, jika memori terlalu kecil untuk
menampung seluruhnya sekaligus. Overlay disimpan pada disk dan di-keluar-masukkan dari dan ke
memori oleh sistem operasi. Pembagian dilakukan oleh programmer.

Sistem Operasi
Bagian Kode dan data
pemakai yang harus
selalu tinggal di memori
utama selama eksekusi
program
Fase Fase Fase
Daerah Overlay Inisialisasi Pemrosesan Keluaran
1
2
3

Struktur Umum Overlay

Virtual memory (Memori maya) :


sistem operasi menyimpan bagian-bagian proses yang sedang digunakan di memori utama dan
sisanya di disk.

Virtual memory dapat diimplementasikan dengan tiga cara, yaitu:


 Paging
 Segmentasi
 Kombinasi paging dan segmentasi

1. Paging
Sistem paging mengimplementasikan ruang alamat besar pada memori kecil menggunakan index
register, base register, segment register, dll.

Istilah pada sistem paging:


- Alamat virtual = V; Alamat yg dihasilkan dgn perhitungan menggunakan index register, base register,
segment reg dsb.
- Alamat nyata (real address = R); Alamat yang tesedia di memori utama fisik.
- Page; Unit terkecil virtual address space.
- Page frame; Unit terkecil memori fisik.
- Page fault; Permintaan alokasi page ke memori yang belum dipetakan.
- MMU (Memory Management Unit); Chip atau kumpulan chip yang memetakan alamat maya ke
alamat fisik.

Pendahuluan BAB4b_Virtual Memory 1/10


Sistem Operasi Komputer

CPU
card
CPU
mengirim
CPU alamat DISK
virtual MEMORI CONTROL
MMU ke MMU LER

BUS
MMU mengirim alamat fisik ke memori
Posisi dan fungsi MMU

Alamat Memori
Mem Nyata
2 ori 0–4 K
0–4 K
1 4K–8 K
4K–8 K
6 Virtu 8 K – 12 K
8 K – 12 K
0 12 K – 16 K
12 K – 16 K
16 K – 20 K 4 al 16 K – 20 K
3 20 K – 24 K
20 K – 24 K
X 24 K – 28 K
24 K – 28 K
X 28 K – 32 K
28 K – 32 K
32 K – 36 K X
36 K – 40 K 5
40 K – 44 K X Page
44 K – 48 K 7
48 K – 52 K X fra
52 K – 56 K X
X
me
56 K – 60 K
60 K – 64 K X Virtual
page
Relasi Antara Alamat Virtual dan Alamat Fisik
2. Tabel Page
Alamat virtual dibagi menjadi dua bagian:
- Nomer Page (bit-bit awal)
- Offset (bit-bit akhir)
Secara metematis: tabel page merupakan fungsi dgn nomer page sebagai argumen dan nomer frame
sebagai hasil.

Pendahuluan BAB4b_Virtual Memory 2/10


Sistem Operasi Komputer

0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0

Nomer page = 2 Offset 12 bit dicopy persis dari input ke output

Tabel Page 0 010 1 Present/absent bit


1 001 1
2 110 1 110
3 000 1
4 100 1
5 011 1
6 000 0
7 000 0
8 000 0
9 101 1
10 000 0
11 111 1
12 000 0
13 000 0
14 000 0
15 000 0

0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0
Cara Kerja Pemetaan oleh MMU

Nomer Page Offset

Tabel Page

Nomer Frame Offset

3. Memori Asosiatif
Tabel Page biasanya diletakkan di memori, dengan demikian diperlukan dua kali referensi ke memori :
sekali untuk mencari page, dan sekali untuk mencari data yang akan diproses.
Solusi:
Komputer dilengkapi dengan komponen hardware kecil untuk pemetaan alamat virtual ke alamat
fisik tanpa menelusuri seluruh tabel page.
Komponen ini disebut memori asosiatif atau translation lookaside buffer, yang biasanya berada di
dalam MMU, dan berisi beberapa entri.

Pendahuluan BAB4b_Virtual Memory 3/10


Sistem Operasi Komputer

Valid entry
No. page Modified Protection No. frame

1 140 1 RW 31
1 20 0 R X 38
1 130 1 RW 29
1 129 1 RW 62
1 19 0 R X 50
1 21 0 R X 45
1 860 1 RW 14
1 861 1 RW 75

Memori asosiatif untuk mempercepat paging

Bagian referensi memori yang dapat dipenuhi dari memori asosiatif disebbut hit ratio. Makin tinggi hit
ratio, makin baik performance manajemen memori khususnya, dan komputer umumnya.

ALGORITMA PENGGANTIAN PAGE


Saat terjadi fault berarti harus diputuskan page frame yang harus diganti.
1. Algoritma penggantian page acak:
Page yg dikeluarkan untuk memberi tempat ke yang baru ditentukan secara acak tanpa kriteria
tertentu.
2. Algoritma penggantian page optimal:
Setiap page diberi label untuk menandai berapa instruksi lagi baru dia digunakan. Page dengan label
tertinggi (waktu dari sekarang sampai pemakaian berikutnya paling lama) yang akan dikeluarkan.

Algoritma Penggantian Page Optimal


String Pengacuan 2 3 2 1 5 2 4 5 3 2 5 2
2 2 2 2 2 2 4 4 4 2 2 2
3 3 3 3 3 3 3 3 3 3 3
1 5 5 5 5 5 5 5 5
Fault F F F F F F 6 Fault

3. Algoritma penggantian page NRU (not recently used):


Setiap page diberi status bit R (referenced) dan M (modified).
Bit bernilai 0 jika page belum direferensi/dimodifikasi, dan 1 jika sebaliknya. Dari nilai desimalnya
didapat 4 kelas:
R M Kelas Keterangan
0 0 0 not referenced, not modified
0 1 1 not referenced, modified
1 0 2 referenced, not modified
1 1 3 referenced, modified
Page dengan kelas terkecillah yang akan dikeluarkan

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


Page yang paling dulu masuk ke memori dari semua page yang ada dikeluarkan.
Algoritma Penggantian Page FIFO
String Pengacuan 2 3 2 1 5 2 4 5 3 2 5 2
2 2 2 2 2 2 4 4 4 2 2 2
3 3 3 3 3 3 3 3 3 3 3
1 5 5 5 5 5 5 5 5
Fault F F F F F F F F 8 Fault

Pendahuluan BAB4b_Virtual Memory 4/10


Sistem Operasi Komputer

Anomali pada FIFO (Belady’s Anomaly)


String Pengacuan 0 1 2 3 0 1 4 0 1 2 3 4
Page Termuda 0 1 2 3 0 1 4 4 4 2 3 3
0 1 2 3 0 1 1 1 4 2 2
Page Tertua 0 1 2 3 0 0 0 1 4 4
Fault F F F F F F F F 9 Fault
(a)

String Pengacuan 0 1 2 3 0 1 4 0 1 2 3 4
Page Termuda 0 1 2 3 3 3 4 0 1 2 3 4
0 1 2 2 2 3 4 0 1 2 3
0 1 1 1 2 3 4 0 1 2
Page Tertua 0 0 0 1 2 3 4 0 1
Fault F F F F F F F F 10 Fault
(b)

5. Algoritma penggantian page Modifikasi FIFO (Second Chance):


Mencari page yang berada di memori paling lama, tetapi juga tidak dipakai.
Jika sebuah page dipakai (direferensi) bit R diset. Jika sistem menemukan bahwa bit R page yang
paling lama ter-set, page tersebut tidak jadi dikeluarkan, tetapi bit R-nya di-reset.

Waktu load
0 3 7 8 12 14 15 18
A B C D E F G H

Page yang di-load pertama kali Page yang terakhir di-load.


(a) Page dalam urutan FIFO

Waktu load
3 7 8 12 14 15 18 20
B C D E F G H A

A dianggap sebagai page yang baru di-load.


(b) Daftar page setelah page fault pada waktu 20 dan bit R page A dalam keadaan set.

Pada algoritma ini, daftar page bisa juga dibuat berbentuk jam (clock page replacement algorithm)
Algoritma penggantian page clock
String 2 3 2 1 5 2 4 5 3 2 5 2
Pengacuan
> 2 2 2 >2* 2* 2* 2* >2* >2 >2* >2* >2*
> 3 3 3 5 5 5 5* 5 5 5* 5*
> > 1 >1 >1 4 4 3 3 3 3
Fault F F F F F F 6 Fault
Keterangan : * adalah diacu dan > adalah ditunjuk pointer

6. Algoritma penggantian page LRU (Least Recently Used):


Yang dikeluarkan ialah page yang sudah tidak terpakai dalam waktu paling lama.
Algoritma Penggantian Page LRU
String Pengacuan 2 3 2 1 5 2 4 5 3 2 5 2
2 2 2 2 2 2 4 4 3 3 3 3
3 3 3 5 5 5 5 5 5 5 5
1 1 1 4 4 4 2 2 2
Fault F F F F F F F 7 Fault

Pendahuluan BAB4b_Virtual Memory 5/10


Sistem Operasi Komputer

ISU DISAIN SISTEM PAGING


1. Model Working Set
 Dalam bentuk paging murni, proses dimulai dengan memori kosong, dan page-page dimasukkan ke
dalamnya setelah diminta. Cara ini disebut demand paging.
 Locality of reference: Kecenderungan proses untuk memakai satu set page yang sama selama
beberapa saat.
 Satu set page tersebut di atas membentuk working set. Dalam hal ini, yang diusahakan oleh sistem
operasi adalah agar working set berada utuh di memori pada saat eksekusinya.
 Jika ukuran memori terlalu kecil untuk working set, akan seringkali terjadi page fault. Hal ini disebut
thrashing.
 Banyak sistem paging yang mengusahakan agar working set sudah ada di memori sebelum proses
dimulai. Pendekatan ini disebut model working set. Tujuannya adalah untuk memperkecil jumlah
terjadinya page fault (page yang diminta tidak ada di memori).
 Memasukkan page ke memori sebelum proses dimulai juga disebut prepaging.
 Untuk pertama kali menentukan working set, dipakai sistem aging untuk mengetahui berapa kali
jumlah pemakaian setiap page.

2. Alokasi Global dan Lokal


o Pada sistem timesharing, isi memori bisa seperti pada Gambar a.
o Misalkan diminta page A6. Jika dikeluarkan A5 untuk memberi tempat ke A6, berarti dilakukan
alokasi lokal. Bila yang dikeluarkan adalah B3, dilakukan alokasi global.
o Algoritma lokal berhubungan dengan pemberian jumlah frame yang sama untuk setiap proses,
sementara algoritma global secara dinamis mengalokasikan frame untuk proses yang berjalan.
Age
A0 10 A0 A0
A1 7 A1 A1
A2 5 A2 A2
A3 4 A3 A3
A4 6 A4 A4
A5 3 A5 -> A6 A5
B0 9 B0 B0
B1 4 B1 B1
B2 6 B2 B2
B3 2 B3 B3 -> A6
B4 5 B4 B4
B5 6 B5 B5
B6 12 B6 B6
C1 3 C1 C1
C2 5 C2 C2
C3 6 C3 C3
(a) (b) (c)
Penggantian page global vs. lokal. (a) Konfigurasi awal.
(b) Penggantian page lokal. (c) Penggantian page global.
3. Ukuran Page
o Ukuran page merupakan salah satu parameter yang ditentukan oleh perancang sistem operasi.
o Penentuan ukuran page yang optimum harus menyeimbangkan beberapa faktor.
o Rata-rata, page terakhir hanya akan terisi setengah (fragmentasi internal), berarti page sebaiknya
kecil. Tetapi page yang kecil akan menghasilkan tabel page yang panjang.
 s (byte) = ukuran proses rata-rata
 p (byte) = ukuran page
 e (byte) = ukuran setiap page entry
 s/p = perkiraan jumlah page yang dibutuhkan per-proses
 se/p (byte) = ruang untuk tabel page

Pendahuluan BAB4b_Virtual Memory 6/10


Sistem Operasi Komputer

 p/2 = memori yang terbuang karena fragmentasi


 overhead = memori yang terpakai untuk tabel page dan fragmen internal.
overhead = se/p + p/2
 Ukuran tabel page besar jika ukuran page kecil. Fragmen internal besar jika ukuranb page besar.
Optimum harus ada di antaranya. Dengan mengambil penurunan pertama terhadap p dan
2
menyemakan dengan nol: -se/p + ½ = 0
 Dari persamaan ini, ukuran page optimum adalah: p = (2se)
 Sebagian besar komputer komersial menggunakan ukuran page antara 512 byte – 8K.

4. Isu Implementasi
 Instruction backup
Instruksi yang menyebabkan referensi ke page yang belum ada di memori (menyebabkan page fault)
harus diulang ketika page tersebut telah tersedia. Beberapa sistem operasi meng-copy setiap
instruksi sebelum dilaksanakan sehingga hal ini tidakmakan waktu terlalu lama.
 Locking pages in memory
Pada saat satu proses menjalani tahap I/O, proses lain bisa dijalankan. Yang mungkin terjadi ialah
page proses I/O tersebut digantikan oleh proses yang kedua ini (jika dipakai alokasi global). Jalan
keluarnya ialah dengan me-lock page-page proses I/O.
 Shared pages
Dua atau lebih proses bisa memakai bersama page-page yang berasal dari editor yang mereka
pakai. Penutupan salah satu proses ini tanpa disengaja bisa mengosongkan juga page yang dipakai
bersama tersebut. Diperlukan suatu struktur data khusus untuk memantau page-page yang dipakai
bersama ini.
 Backing Store
Pada disk, disediakan area untuk menampung page yang dikeluarkan dari memori (paged out) yang
disebut swap area. Setiap proses memiliki swap area di disk. Swap area ada yang statis ada juga
yang dinamis.
 Paging Daemon
Untuk meyakinkan tersedianya frame bebas yang cukup banyak, banyak sistem paging yang
menggunakan proses background yang disebut paging daemon. Jika jumlah frame bebas terlalu
sedikit, paging daemon akan mengosongkan beberapa page setelah menulisnya ke disk jika pernah
dimodifikasi.
 Penanganan Page Fault

Urutan langkah-langkah penanganan adalah sebagai berikut:


1. Hardware melakukan trap ke kernel, program counter di-save ke stack. Pada banyak mesin,
beberapa informasi tentang status instruksi saat itu di-save di register-register khusus CPU.
2. Rutin kode assembly dimulai untuk men-save register-register umum dan informasi lain yang bisa
berubah, agar sistem operasi tidak merusaknya. Rutin ini memanggil sistem operasi sebagai suatu
prosedur.
3. Sistem operasi menemukan bahwa terjadi page fault, dan mencoba menemukan page virtual mana
yang diperlukan. Seringkali salah satu register hardware berisi informasi ini. Jika tidak, sistem
operasi harus menarik program counter, mengambil instruksi, dan melakukan parsing pada
software untuk mengetahui apa yang dilakukan sebelum terjadi fault.
4. Begitu alamat virtual yang menyebabkan fault diketahui, sistem operasi memeriksa apakah alamat
ini valid dan proteksinya konsisten dengan akses. Jika tidak, proses dikirimi sinyal atau ditutup. Jika
alamat valid dan tidak ada pelanggaran proteksi, sistem berusaha untuk mendapatkan frame page
dari daftar frame bebas. Jika tidak ada frame yang bebas, dijalankan algoritma penggantian page
untuk mencari yang bisa ditukar.
5. Jika frame page yang dipilih telah dimodifikasi, page dijadwalkan untuk ditransfer ke disk, dan
terjadi pertukaran proses, menghentikan sementara proses yang fault dan membiarkan yang
lainnya berjalan hingga transfer disk selesai. Frame ditandai terpakai untuk mencegah dipakai
untuk tujuan lain.
6. Begitu frame page bersih (apakah langsung atau setelah disave ke disk), sistem operasi menelusuri
alamat disk di mana page diperlukan, dan menjadwalkan operasi disk untuk memasukkannya.

Pendahuluan BAB4b_Virtual Memory 7/10


Sistem Operasi Komputer

Sementara page dimasukkan, proses yang mengalami fault dihentikan sejenak dan yang lainnya
dijalankan, jika ada.
7. Ketika disk interrrupt menandai bahwa page telah ada, tabel page di-update untuk menunjukkan
posisinya, dan frame ditandai berada dalam status normal.
8. Instruksi yang menyebabkan fault di-back-up ke status mulainya dan program counter di-reset
untuk menunjuk ke instruksi tersebut.
9. Proses yang fault tersebut dijadwalkan, dan sistem operasi kembali ke rutin bahasa assembly yang
memanggilnya.
10. Rutin ini mengembalikan register dan informasi lainnya ke keadaan semula , dan kembali ke user
untuk melanjutkan eksekusi, seakan-akan tidak ada fault yang terjadi.

SEGMENTASI
Compiler bisa memiliki beberapa tabel dengan alamat virtual yang terpisah, misalnya terdiri dari tabel-
tabel untuk:
1. Source text,
2. Tabel simbol,
3. Tabel untuk semua konstanta integer dan floating point,
4. Parse tree, berisi analisis sintaksis program, dan
5. Stack yang digunakan untuk pemanggilan prosedur.

Tabel 1 s/d 4 bisa bertambah pada saat kompilasi berjalan, sehingga dengan sistem paging yang
berukuran tetap, batas satu page bisa terlampaui.

Dengan alasan ini dipakai bagian-bagian dengan alamat yang relatif independen, yang disebut segmen.
Setiap segmen mempunyai ukuran yang berbeda dengan yang lain. Panjang segmen juga bisa berubah
selama eksekusi.

Program harus menyediakan alamat yang terdiri dari dua bagian:


- nomer segmen
- alamat di dalam segmen

Segmentasi juga memberikan fasilitas pemakaian bersama prosedur atau data antar beberapa proses.
Contoh umumnya adalah shared library.

Segmen Segmen Segmen Segmen Segmen


0 1 2 3 4
0 0 0 Konstanta 0 0

4K 4K 4K 4K
Source Parse Call
text tree stack
8K 8K 8K 8K
Tabel
simbol
12K 12K 12K 12K

16K 16K

20K
Memori yang tersegmentasi memungkinkan setiap tabel bertambah atau berkurang.

Pendahuluan BAB4b_Virtual Memory 8/10


Sistem Operasi Komputer

Pertimbangan Paging Segmentasi


Apakah programmer harus menyadari bahwa Tidak Ya
teknik ini sedang digunakan?
Berapa banyak ruang alamat linier yang ada? 1 Banyak
Dapatkah ruang alamat total melebihi ukuran Ya Ya
memori fisik?
Apakah tabel yang ukurannya berubah-ubah Tidak Ya
dapat diakomodasi?
Dapatkan prosedur dan data dibedakan dan Tidak Ya
diproteksi secara terpisah?
Adakah fasilitas pemakaian bersama prosedur Tidak Ya
antar user?
Mengapa teknik ini diciptakan? Untuk mendapatkan Untuk memungkinkan
ruang alamat linier program dan data dibagi
yang besar tanpa menjadi ruang alamat yang
harus membeli secara logik independen dan
memori fisik untuk membantu pemakaian
tambahan bersama dan proteksi
Perbandingan paging dan segmentasi.

Checkerboarding: Timbulnya blok-blok memori yang kosong (hole) pada saat isi segmen dikeluarkan.
Hal ini diatasi dengan pemampatan (compaction).

Segmentasi dengan Paging : Setiap segmen dapat dianggap sebagai satu virtual memori, dan masing-
masing dibagi menjadi page-page.

Salah satu mesin yang memakai cara ini adalah MULTICS. Setiap program MULTICS memiliki satu tabel
segmen, dengan satu descriptor per segmen. Segmen descriptor berisi keterangan apakah segmen
yang bersangkutan ada di memori atau tidak.

Segmen descriptor Tabel page untuk segmen 0


36 bit Page 0 entry
Descriptor segmen 0 Page 1 entry Pointer-
Descriptor segmen 1 Page 2 entry pointer
Descriptor segmen 2 Page 3 entry ke page
Descriptor segmen 3
Descriptor segmen 4
Descriptor segmen 5 Tabel page untuk segmen 1
Descriptor segmen 6 Page 0 entry
Descriptor segmen 7 Page 1 entry
Page 2 entry
Page 3 entry
Page 4 entry
Page 5 entry

Virtual address MULTICS 34-bit:


Alamat di dalam segmen
Nomer segmen Nomer page Offset di dalam page
18 6 10

Pendahuluan BAB4b_Virtual Memory 9/10


Sistem Operasi Komputer

Nomer segmen Nomer page Offset di dalam page

Nomer
segmen
Nomer
Descriptor page
Page frame Offset

Segmen Tabel page


descriptor Word

Page

Konversi alamat MULTICS menjadi alamat memori utama.

Pendahuluan BAB4b_Virtual Memory 10/10

Anda mungkin juga menyukai