BAB
1
PENDAHULUAN
1. LATAR
BELAKANG
Dalam ilmu komputer, memori virtual adalah teknik manajemen memori yang
dikembangkan untuk kernel multitugas. Teknik ini divirtualisasikan dalam berbagai bentuk arsitektur komputer dari komputer
penyimpanan data (seperti memori akses
acak dan cakram penyimpanan), yang
memungkinkan sebuah program harus dirancang seolah-olah hanya
ada satu jenis memori, memori "virtual", yang bertindak secara
langsung beralamat memori baca/tulis (RAM).
Sebagian besar sistem operasi modern yang mendukung memori virtual juga
menjalankan setiap proses di ruang alamat khususnya
sendiri. Setiap program dengan demikian tampaknya memiliki akses tunggal ke
memori virtual. Namun, beberapa sistem operasi yang lebih tua (seperti OS/VS1 dan OS/VS2 SVS) dan bahkan
yang modern yang (seperti IBM i) adalah sistem
operasi ruang alamat tunggal yang menjalankan semua proses dalam
ruang alamat tunggal yang terdiri dari memori virtual.
Memori virtual membuat pemrograman aplikasi lebih mudah oleh fragmentasi
persembunyian dari memori fisik dengan mendelegasikan ke kernel beban dari
mengelola hierarki memori (sehingga menghilangkan keharusan untuk program dalam
mengatasi hamparan secara
eksplisit) dan bila setiap proses berjalan dalam ruang alamat khususnya
sendiri, dengan menghindarkan kebutuhan untuk
merelokasi kode program atau untuk mengakses memori dengan
pengalamatan relatif.
BAB II
PEMBAHASAN
1.
KONSEP DASAR MEMORY VIRTUAL
Virtual
Memori adalah
suatu teknik yang memisahkan antara memori logis dan memori fisiknya. Teknik
ini
mengizinkan program untuk
dieksekusi tanpa seluruh bagian program perlu ikut masuk ke dalam memori. Memori logis merupakan kumpulan
keseluruhan halaman dari suatu program. Berbeda dengan
keterbatasan yang dimiliki oleh memori fisik, memori virtual dapat menampung
program dalam skala besar, melebihi daya tampung dari memori utama yang
tersedia. Tanpa memori
virtual, memori logis akan langsung dibawa ke memori fisik (memori utama).
Disinilah memori virtual melakukan pemisahan dengan menaruh memori logis
ke secondary storage (disk sekunder) dan hanya membawa halaman
yang diperlukan ke memori utama (memori fisik).
Teknik ini menempatkan keseluruhan program di disk sekunder dan membawa
halaman-halaman yang diperlukan ke memori fisik sehingga memori utama hanya
akan menyimpan sebagian alamat proses yang sering digunakan dan sebagian
lainnya akan disimpan dalam disk sekunder dan dapat diambil sesuai dengan
kebutuhan. Jadi jika proses yang sedang berjalan membutuhkan instruksi atau
data yang terdapat pada suatu halaman tertentu maka halaman tersebut akan
dicari di memori utama. Jika halaman yang diinginkan tidak ada maka akan dicari
ke disk sekunder.
Cara
Kerja
Virtual Memory
digunakan dengan membuat suatu file khusus yang disebut swapfile atau paging
file. Virtual memory digunakan pada saat operating system kehabisan memory,
dimana o.s. akan memindahkan data yang paling terakhir diakses ke dalam
swapfile di hardisk. Hal ini mengosongkan/ membebaskan beberapa ruang kosong
pada memory untuk aplikasi yang akan digunakan selanjutnya. Operating system
akan melakukan hal ini secara terus menerus ketika data baru diisi pada ram.
Kemudian, pada
saat data yang tersimpan di swapfile diperlukan, data tersebut ditukar (swap)
dengan data yang paling terakhir dipakai di dalam memory (ram). Hal ini
mengakibatkan swapfile bersifat seperti ram, walaupun program tidak dapat
secara langsung dijalankan dari swapfile. Satu hal yang perlu dicatat bahwa
karena operating system tidak dapat secara langsung menjalankan program dari
swapfile, beberapa program mungkin tidak akan berjalan walau dengan swapfile
yang besar jika kita hanya memiliki ram yang kecil.
Konsep memori virtual dikemukakan
pertama kali oleh John Fotheringham pada tahun 1961 dengan menggunakan dynamic
storage allocation pada sistem komputer atlas di Universitas Manchester.
Sedangkan istilah memori virtual dipopulerkan oleh peter j. denning yang
mengambil istilah “virtual” dari dunia optic.
2. DEMAND
PANGING
Demand
paging atau permintaan pemberian halaman adalah salah satu implementasi dari
memori virtual yang paling umum digunakan. Demand paging pada prinsipnya hampir
sama dengan permintaan halaman (paging) hanya saja halaman (page) tidak akan
dibawa ke ke dalam memori fisik sampai ia benar-benar diperlukan. Untuk itu
diperlukan bantuan perangkat keras untuk mengetahui lokasi dari halaman saat ia
diperlukan, Karena demand paging merupakan implementasi dari memori virtual,
maka keuntungannya sama dengan keuntungan memori virtual, yaitu:
·
Sedikit M/K yang dibutuhkan.
·
Sedikit memori yang dibutuhkan.
·
Respon yang lebih cepat.
·
Dapat melayani lebih banyak pengguna.
Ada tiga kemungkinan kasus yang dapat
terjadi pada saat dilakukan pengecekan pada halaman yang dibutuhkan, yaitu:
halaman ada dan sudah berada di memori – statusnya valid ("1");
halaman ada tetapi masih berada di disk atau belum berada di memori (harus
menunggu sampai dimasukkan) – statusnya tidak valid ("0"). Halaman
tidak ada, baik di memori maupun di disk (invalid reference).Saat terjadi kasus
kedua dan ketiga, maka proses dinyatakan mengalami kesalahan halaman.
Ciri-ciri Demand Paging :
·
(Demand
paging) pada prinsipnya hampir sama dengan permintaan halaman (paging) hanya
saja halaman (page) tidak akan dibawa ke ke dalam memori fisik sampai ia
benar-benar diperlukan.
·
Page
diload ke memory hanya ketika dibutuhkan
·
Sedikit
I/O yang dibutuhkan.
·
Sedikit
memori yang dibutuhkan.
·
Respon
yang lebih cepat.
·
Dapat
melayani lebih banyak pengguna.
·
Lazy swapper – tidak melakukan swapping page ke
memori hingga page dibutuhkan.
3. UNJUK
KERJA DEMAND PANGING
Demand
paging
memberikan efek
yang signifikan dalam kinerja sistem computer. Diasumsikan ma
adalah access time ke memori dan p adalah probabilitas terjadi page fault (0 ≤ p ≤ 1), maka effective access time didefinisikan sebagai :
EAT = (1-p) x ma + p x page_fault-time
Untuk menghitung effective access time, harus diketahui berapa waktu yang diperlukan untuk melayani page fault. Page fault menyebabkan terjadi
1.
Trap ke sistem operasi.
2.
Menyimpan register dan status proses.
3.
Menentukan interrupt
adalah page fau.t
4.
Memeriksa page acuan legal atau tidak dan menentukan lokasi page
pada disk.
5.
Membaca dari disk ke frame bebas :
a. Menunggu di antrian untuk perangkat sampai permintaan membaca dilayani.
b. Menunggu perangkat mencari dan / atau waktu latency.
c. Memulai transfer dari page ke frame bebas.
6. Sementara menunggu, alokasikan CPU untuk user lain.
7. Interrupt dari disk (melengkapi I/O).
8. Menyimpan register dan status process user lain.
9. Menentukan interrupt dari disk.
10. Memperbaiki tabel page dan
tabel lain untuk menunjukkan page yang dimaksud
sudah dimemori.
11. Menunggu
CPU dialokasikan untuk proses ini kembali.
12. Menyimpan kembali
register, status proses dan tabel
page
baru, kemudian melanjutkan kembali instruksi
yang di-interupsi
Tidak semua langkah diatas diperlukan pada setiap kasus. Pada beberapa kasus, terdapat tiga komponen utama dari waktu pelayanan page fault
yaitu
·
Melayani interrupt page fault.
·
Membaca page.
·
Memulai kembali proses.
Untuk menghitung effective access time dari sistem demand paging perhatikan contoh berikut.
Diasumsikan memory access 100 ns.
Rata-rata waktu latency
untuk hard disk adalah
8 ms, waktu pencarian 15 ms dan rata-rata transfer
sebesar 1 ms.
Total waktu paging ≈ 25 ms.
Effective
access time =
(1-p) x (100) + p x (25 ms)
= (1-p) x 100 + p x 25000000
= 100 + 24999900
x p
Apabila satu dari 1000 akses menyebabkan page fault, maka effective access time = 25 micro-sec (lebih lambat dengan
faktor
250). Tetapi
bila
menginginkan degradasi kurang dari 10% maka
110 > 100 + 25000000 x p
10
> 250000000 x p p <
0.0000004
Perlu diperhatikan
system harus mempertahankan rata-rata page-fault
yang rendah
pada sistem demand-paging. Sebaliknya, jika effective access time meningkat maka akan memperlambat eksekusi proses secara drastis.
4. PAGE RECLACEMENT
Page replacement diperlukan pada situasi dimana proses
dieksekusi perlu frame
bebas tetapi tidak tersedia frame bebas. Sistem harus menemukan satu frame yang
sedang tidak digunakan dan membebaskannya. Untuk membebaskan frame dengan cara
menulis isinya untuk ruang swap dan mengubah tabel page (dan tabel lain) yang
menunjukkan page tidak lagi di memori. Kebutuhan akan page replacement dapat
dilihat pada Gambar:
bebas tetapi tidak tersedia frame bebas. Sistem harus menemukan satu frame yang
sedang tidak digunakan dan membebaskannya. Untuk membebaskan frame dengan cara
menulis isinya untuk ruang swap dan mengubah tabel page (dan tabel lain) yang
menunjukkan page tidak lagi di memori. Kebutuhan akan page replacement dapat
dilihat pada Gambar:
Langkah-langkah untukpage fault yang
memerlukan page replacement seperti
Gambar adalah sebagai berikut :
Gambar adalah sebagai berikut :
1) Carilah lokasi pageyang diharapkan
pada disk.
2) Carilah framekosong dg cara :
·
Bila ada frame kosong, gunakan.
·
Bila tidak ada, gunakan algoritma page replacement untuk
menyeleksiframe
yang akan menjadi korban.
yang akan menjadi korban.
·
Simpan page korban ke disk, ubah tabel page.
3)
Baca page yang diinginkan ke frame kosong
yang baru, ubah tabelpage.
4)
Mulai kembali proses user.
Terdapat beberapa
algoritma page replacement, setiap sistem operasi
mempunyai skema yang unik. Algoritma page replacement secara umum diinginkan
yang mempunyai rata-rata page fault terendah. Algoritma dievaluasi dengan
menjalankannya pada string tertentu dari memory reference dan menghitung jumlah
page fault. String yang mengacu ke memori disebut reference string(string acuan).
String acuan dibangkitkan secara random atau dengan menelusuri sistem dan menyimpan alamat dari memori acuan.
mempunyai skema yang unik. Algoritma page replacement secara umum diinginkan
yang mempunyai rata-rata page fault terendah. Algoritma dievaluasi dengan
menjalankannya pada string tertentu dari memory reference dan menghitung jumlah
page fault. String yang mengacu ke memori disebut reference string(string acuan).
String acuan dibangkitkan secara random atau dengan menelusuri sistem dan menyimpan alamat dari memori acuan.
5. ALGORITMA PAGE REPLACEMENT
Algoritma Page Replecement atau yang
disebut dengan algoritma pergantian page diartikan sebagai algoritma yang
berfungsi untuk mencegah alokasi yang berlebihan dari memory, dengan cara
memodifikasi layanan rutin page-fault melalui page. Algoritma Page Replecement
ini menggunakan modify bit untuk mengurangi overhead transfer page, dimana
modifikasi dilakukan hanya pada page yang di tulis di disk. Algoritma Page
Replecement melengkapi pemisahan antara memory logik dan fisik, dimana
virtual memory yang besar dapat memenuhi kebutuhan memory fisik yang kecil atau
yang disebut dengan sumberdaya yang terbatas.
Algoritma
Page Replecement terbagi ke dalam beberapa jenis Algoritma seperti:
a. Algoritma FIFO (First
In First Out) adalah sebuah
algoritma yang mempunyai cara kerja mengganti page yang menempati memory paling
lama.
Inti dari algoritma ini adalah
simple / paling sederhana karena prinsipnya sama seperti prinsip antrian tak
berprioritas. Page yang masuk terlebih dahulu maka yaitu yang akan keluar
duluan juga. Untuk algoritma ini menggunakan structure data stack. Jadi
kerjanya yaitu dimana kalau tidak ada frame yang kosong saat terjadi page fault
maka korban yang dipilih adalah frame dengan stack paling bawah seperti hal nya
halaman yang sudah lama tersimpan didalam memory maka dari itu algoritma ini
juga bisa memindahkan page yang sering digunakan.
Contoh gambar
dari Algoritma page FIFO
Utamanya
algoritma ini di anggap cukup mengatasi pergantian page sampai pada tahun
70-an, pada saat itu juga Belady menemukan keganjalan pada algoritma ini dan
dikenal dengan anomali Belady. Anomali Belady itu sendiri ialah keadaan dimana
page fault rate meningkat seiring dengan pertambahannya jumlah frame.
Contoh gambar dari
Anomali Belady
b.
Algoritma Optimal adalah sebuah
algoritma yang mempunyai cara kerja mengganti page yang tidak akan digunakan
pada periode berikutnya dengan melihat jauh referensi berapa page tersebut akan
tampil kembali.
Pengertian dari algoritma ini
sendiri yaitu algoritma yang page nya paling optimal. Untuk prinsip dari
algoritma ini sangat efisien sekali karena hanya mengganti halaman yang sudah
tidak terpakai lagi dalam jangka waktu lama sehingga page fault yang terjadi
akan berkurang dan terbebas dari anomali Belady Selain itu juga page
fault dari algoritma ini memiliki rate paling tinggi dari algoritma lainnya
dari semua kasus, akan tetapi tidak belum bias disebut sempurna karena sulit
untuk di mengerti dan dari segi system pun belum tentu bisa mengetahui page
untuk berikutnya tetapi dapat di simulasikan hanya untuk suatu program. Untuk
intinya gunakanlah hingga mendekati page optimal agar bisa memanfaatkannya.
Contoh gambar
dari Algoritma page optimal
c.
Algoritma Least
Recently Use (LRU) adalah sebuah algoritma yang mempunyai cara kerja mengganti
page yang menempati periode waktu paling lama belum digunakan atau belum
diakses.
Dikarenakan
algoritma optimal sangat sulit dalam pengimplementasiannya, maka dibuatlah
algoritma lain yang performance-nya mendekati algoritma optimal dengan
sedikit cost yang lebih besar. ama seperti algoritma optimal,
algoritma LRU tidak mengalami anomali Belady. Algoritma ini memakai linked
list untuk mendata halaman mana yang paling lama tidak terpakai. Linked
list inilah yang membuat cost membesar, karena harus meng-update
linked list tiap saat ada halaman yang di akses.
Contoh gambar dari Algoritma page LRU
6.
PENGALOKASIAN FRAME
Frame adalah
tempat untuk membawa halaman dengan intruksi-intruksinya. Alokasi frame
berhubungan dengan mekanisme alokasi sejumlah memori bebas yang tetap diantara
beberapa proses. Meskipun terdapat beberapa variasi pengalokasian frame bebas
ke beberapa proses, tetapi strategi dasar jelas yaitu : proses user
dialokasikan untuk sembarang frame bebas.
Jumlah minimum
frame per proses ditentukan oleh arsitektur dimana jumlah maksimum tergantung
jumlah memori fisik yang tersedia. Jumlah minimum frame ditentukan oleh
arsitekturinstruction-set. Bila terjadi page fault sebelum eksekusi intruksi
selesai,intruksi harus di-restart. Sehingga tersedia frame yang cukup untuk
membawa semua page yang berbeda dimana sembarang intruksi dapat mengacu.
Misalnya mikrokomputer menggunakan memori 128K yang dikomposisikan dengan page
ukuran 1K, maka terbentuk 128 frame. Jika sistem operasi menggunakan 35K, maka
93 frame bisa digunakan program user. Bila suatu program menyebabkan page fault
sebanyak 93 kali, maka menempati 93 frame bebas tersebut. Jika terjadi page
fault yang ke 94, dari 93 frame yang terisi harus dipilih salah satu untuk
diganti yang baru. Bila program selesai, 93 frame tersebut dibebaskan kembali.
Terdapat 2
bentuk algoritma alokasi yaitu equal allocation dan proportional allocation.
Pada equal allocation, jika terdapat m frame dan n proses, maka setiap proses
dialokasikan sejumlah frame yang sama (m/n frame). Pada proportional allocation
setiap porses dialokasikan secara proporsional berdasarkan ukurannya.
a)
Algoritma Pengalokasian
yaitu equal allocation dan proportional allocation. Pada equal
allocation, jika terdapat m frame dan n proses, maka setiap proses dialokasikan
sejumlah frameyang sama (m/n frame). Pada proportional allocation setiap proses
dialokasikan secara proporsional berdasarkan ukurannya. Jika ukuran virtual
memori untuk proses pi adalah si dan total jumlah frame yang
tersedia m.
Selain itu terdapat algoritma alokasi
berprioritas yang menggunakan skema
proporsional dengan lebih melihat prioritas proses dari pada ukuran proses. Jika proses Pi membangkitkan page fault, dipilih satu dariframe-frame dari proses yang mempunyai nomor prioritas terendah.
proporsional dengan lebih melihat prioritas proses dari pada ukuran proses. Jika proses Pi membangkitkan page fault, dipilih satu dariframe-frame dari proses yang mempunyai nomor prioritas terendah.
b)
Algoritma global dan local
Untuk
contoh, pertimbangkan sebuah skema alokasi dimana kita memperbolehkan proses
berprioritas tinggi untuk meyeleksi frame dari proses berprioritas
rendah untuk penggantian. Sebuah proses dapat menyeleksi sebuah pengganti dari frame-nya
sendiri atau dari frame-frame proses yang berprioritas lebih rendah. Pendekatan
ini memperbolehkan sebuah proses berprioritas tinggi untuk meningkatkan alokasi
frame-nya pada expense proses berprioritas rendah.
Dengan strategi Penggantian Lokal, jumlah frame yang
teralokasi pada sebuah proses tidak berubah. Dengan Penggantian Global, ada
kemungkinan sebuah proses hanya menyeleksi frame-frame yang teralokasi
pada proses lain, sehingga meningkatkan jumlah frame yang teralokasi
pada proses itu sendiri (asumsi bahwa proses lain tidak memilih frame
proses tersebut untuk penggantian).
Masalah
pada algoritma Penggantian Global adalah bahwa sebuah proses tidak bisa
mengontrol page-fault-nya sendiri. Himpunan halaman dalam memori untuk
sebuah proses tergantung tidak hanya pada kelakuan paging dari proses tersebut,
tetapi juga pada kelakuan paging dari proses lain. Karena itu, proses
yang sama dapat tampil berbeda (memerlukan 0,5 detik untuk satu eksekusi dan
10,3 detik untuk eksekusi berikutnya) due to totally external circumstances.
Dalam Penggantian Lokal, himpunan halaman dalam memori untuk sebuah proses
hanya dipengaruhi kelakuan paging proses itu sendiri. Penggantian Lokal dapat
menyembunyikan sebuah proses dengan membuatnya tidak tersedia bagi proses lain,
menggunakan halaman yang lebih sedikit pada memori. Jadi, secara umum
Penggantian Global menghasilkan sistem throughput yang lebih bagus, maka itu
artinya metode yang paling sering digunakan.
7.
TRASHING
Trashing adalah suatu proses yang sibuk melakukan
swap page in dan out. Jika suatu proses tidak mempunyai page yang cukup,
tingkat page fault menjadi tinggi. Hal tersebut dapat dilihat dari :
1.
Sistem
Operasi meningkatkan multiprogramming
2.
Utilisasi
CPU meningkat sejalan dengan bertambahnya multiprogramming
3.
Proses
lain ditambhakan ke dalam system
Jika suatu proses tidak memiliki frame
yang cukup, walau pun kita memiliki kemungkinan untuk mengurangi banyaknya frame
yang dialokasikan menjadi minimum, tetap ada halaman dalam jumlah besar yang
memiliki kondisi aktif menggunakannya. Maka hal ini akan mengakibatkan
kesalahan halaman. Pada kasus ini, kita harus mengganti beberapa halaman
menjadi halaman yang dibutuhkan walau pun halaman yang diganti pada waktu dekat
akan dibutuhkan lagi. Hal ini mengakibatkan kesalahan terus menerus.
Aktivitas yang tinggi dari paging
disebut thrashing. Suatu proses dikatakan thrashing jika proses
menghabiskan waktu lebih banyak untuk paging daripada eksekusi (proses
sibuk untuk melakukan swap-in swap-out).
Penyebab Thrashing
Penyebab dari thrashing
adalah utilisasi CPU yang rendah. Jika utilisasi CPU terlalu rendah, kita
menambahkan derajat dari multiprogramming dengan menambahkan proses baru
ke sistem.
Sejalan dengan bertambahnya
derajat dari multiprogramming, utilisasi CPU juga bertambah dengan lebih
lambat sampai maksimumnya dicapai. Jika derajat dari multiprogramming
ditambah terus menerus, utilisasi CPU akan berkurang dengan drastis dan terjadi
thrashing. Untuk menambah utilisasi CPU dan menghentikan thrashing,
kita harus mengurangi derajat dari multiprogramming.
BAB III
PENUTUP
1.
KESIMPULAN
Virtual
Memori adalah
suatu teknik yang memisahkan antara memori logis dan memori fisiknya. Teknik
ini
mengizinkan program untuk
dieksekusi tanpa seluruh bagian program perlu ikut masuk ke dalam memori. Memori logis merupakan kumpulan
keseluruhan halaman dari suatu program. Berbeda dengan
keterbatasan yang dimiliki oleh memori fisik, memori virtual dapat menampung
program dalam skala besar, melebihi daya tampung dari memori utama yang
tersedia. Tanpa
memori virtual, memori logis akan langsung dibawa ke memori fisik (memori
utama). Disinilah memori virtual melakukan pemisahan dengan menaruh memori
logis ke secondary storage (disk sekunder) dan hanya membawa
halaman yang diperlukan ke memori utama (memori fisik).
Demand
paging atau permintaan pemberian halaman adalah salah satu implementasi dari
memori virtual yang paling umum digunakan. Demand paging memberikan efek
yang signifikan dalam kinerja sistem computer. Diasumsikan ma
adalah access time ke memori dan p adalah probabilitas terjadi page fault (0 ≤ p ≤ 1), maka effective access time didefinisikan sebagai :EAT = (1-p) x ma + p x page_fault-time
Page
replacement diperlukan pada situasi dimana proses dieksekusi perlu frame
bebas tetapi tidak tersedia frame bebas. Algoritma Page Replecement atau yang disebut dengan algoritma pergantian page diartikan sebagai algoritma yang berfungsi untuk mencegah alokasi yang berlebihan dari memory, dengan cara memodifikasi layanan rutin page-fault melalui page. Algoritma Page Replecement terbagi ke dalam beberapa jenis Algoritma seperti: Algoritma FIFO, Algoritma Optimal, Algoritma Least Recently Use (LRU).
bebas tetapi tidak tersedia frame bebas. Algoritma Page Replecement atau yang disebut dengan algoritma pergantian page diartikan sebagai algoritma yang berfungsi untuk mencegah alokasi yang berlebihan dari memory, dengan cara memodifikasi layanan rutin page-fault melalui page. Algoritma Page Replecement terbagi ke dalam beberapa jenis Algoritma seperti: Algoritma FIFO, Algoritma Optimal, Algoritma Least Recently Use (LRU).
Frame
adalah tempat untuk membawa halaman dengan intruksi-intruksinya. Trashing adalah suatu proses yang sibuk melakukan
swap page in dan out. Jika suatu proses tidak mempunyai page yang cukup,
tingkat page fault menjadi tinggi.
BAB
1
PENDAHULUAN
1. LATAR
BELAKANG
Dalam ilmu komputer, memori virtual adalah teknik manajemen memori yang
dikembangkan untuk kernel multitugas. Teknik ini divirtualisasikan dalam berbagai bentuk arsitektur komputer dari komputer
penyimpanan data (seperti memori akses
acak dan cakram penyimpanan), yang
memungkinkan sebuah program harus dirancang seolah-olah hanya
ada satu jenis memori, memori "virtual", yang bertindak secara
langsung beralamat memori baca/tulis (RAM).
Sebagian besar sistem operasi modern yang mendukung memori virtual juga
menjalankan setiap proses di ruang alamat khususnya
sendiri. Setiap program dengan demikian tampaknya memiliki akses tunggal ke
memori virtual. Namun, beberapa sistem operasi yang lebih tua (seperti OS/VS1 dan OS/VS2 SVS) dan bahkan
yang modern yang (seperti IBM i) adalah sistem
operasi ruang alamat tunggal yang menjalankan semua proses dalam
ruang alamat tunggal yang terdiri dari memori virtual.
Memori virtual membuat pemrograman aplikasi lebih mudah oleh fragmentasi
persembunyian dari memori fisik dengan mendelegasikan ke kernel beban dari
mengelola hierarki memori (sehingga menghilangkan keharusan untuk program dalam
mengatasi hamparan secara
eksplisit) dan bila setiap proses berjalan dalam ruang alamat khususnya
sendiri, dengan menghindarkan kebutuhan untuk
merelokasi kode program atau untuk mengakses memori dengan
pengalamatan relatif.
BAB II
PEMBAHASAN
1.
KONSEP DASAR MEMORY VIRTUAL
Virtual
Memori adalah
suatu teknik yang memisahkan antara memori logis dan memori fisiknya. Teknik
ini
mengizinkan program untuk
dieksekusi tanpa seluruh bagian program perlu ikut masuk ke dalam memori. Memori logis merupakan kumpulan
keseluruhan halaman dari suatu program. Berbeda dengan
keterbatasan yang dimiliki oleh memori fisik, memori virtual dapat menampung
program dalam skala besar, melebihi daya tampung dari memori utama yang
tersedia. Tanpa memori
virtual, memori logis akan langsung dibawa ke memori fisik (memori utama).
Disinilah memori virtual melakukan pemisahan dengan menaruh memori logis
ke secondary storage (disk sekunder) dan hanya membawa halaman
yang diperlukan ke memori utama (memori fisik).
Teknik ini menempatkan keseluruhan program di disk sekunder dan membawa
halaman-halaman yang diperlukan ke memori fisik sehingga memori utama hanya
akan menyimpan sebagian alamat proses yang sering digunakan dan sebagian
lainnya akan disimpan dalam disk sekunder dan dapat diambil sesuai dengan
kebutuhan. Jadi jika proses yang sedang berjalan membutuhkan instruksi atau
data yang terdapat pada suatu halaman tertentu maka halaman tersebut akan
dicari di memori utama. Jika halaman yang diinginkan tidak ada maka akan dicari
ke disk sekunder.
Cara
Kerja
Virtual Memory
digunakan dengan membuat suatu file khusus yang disebut swapfile atau paging
file. Virtual memory digunakan pada saat operating system kehabisan memory,
dimana o.s. akan memindahkan data yang paling terakhir diakses ke dalam
swapfile di hardisk. Hal ini mengosongkan/ membebaskan beberapa ruang kosong
pada memory untuk aplikasi yang akan digunakan selanjutnya. Operating system
akan melakukan hal ini secara terus menerus ketika data baru diisi pada ram.
Kemudian, pada
saat data yang tersimpan di swapfile diperlukan, data tersebut ditukar (swap)
dengan data yang paling terakhir dipakai di dalam memory (ram). Hal ini
mengakibatkan swapfile bersifat seperti ram, walaupun program tidak dapat
secara langsung dijalankan dari swapfile. Satu hal yang perlu dicatat bahwa
karena operating system tidak dapat secara langsung menjalankan program dari
swapfile, beberapa program mungkin tidak akan berjalan walau dengan swapfile
yang besar jika kita hanya memiliki ram yang kecil.
Konsep memori virtual dikemukakan
pertama kali oleh John Fotheringham pada tahun 1961 dengan menggunakan dynamic
storage allocation pada sistem komputer atlas di Universitas Manchester.
Sedangkan istilah memori virtual dipopulerkan oleh peter j. denning yang
mengambil istilah “virtual” dari dunia optic.
2. DEMAND
PANGING
Demand
paging atau permintaan pemberian halaman adalah salah satu implementasi dari
memori virtual yang paling umum digunakan. Demand paging pada prinsipnya hampir
sama dengan permintaan halaman (paging) hanya saja halaman (page) tidak akan
dibawa ke ke dalam memori fisik sampai ia benar-benar diperlukan. Untuk itu
diperlukan bantuan perangkat keras untuk mengetahui lokasi dari halaman saat ia
diperlukan, Karena demand paging merupakan implementasi dari memori virtual,
maka keuntungannya sama dengan keuntungan memori virtual, yaitu:
·
Sedikit M/K yang dibutuhkan.
·
Sedikit memori yang dibutuhkan.
·
Respon yang lebih cepat.
·
Dapat melayani lebih banyak pengguna.
Ada tiga kemungkinan kasus yang dapat
terjadi pada saat dilakukan pengecekan pada halaman yang dibutuhkan, yaitu:
halaman ada dan sudah berada di memori – statusnya valid ("1");
halaman ada tetapi masih berada di disk atau belum berada di memori (harus
menunggu sampai dimasukkan) – statusnya tidak valid ("0"). Halaman
tidak ada, baik di memori maupun di disk (invalid reference).Saat terjadi kasus
kedua dan ketiga, maka proses dinyatakan mengalami kesalahan halaman.
Ciri-ciri Demand Paging :
·
(Demand
paging) pada prinsipnya hampir sama dengan permintaan halaman (paging) hanya
saja halaman (page) tidak akan dibawa ke ke dalam memori fisik sampai ia
benar-benar diperlukan.
·
Page
diload ke memory hanya ketika dibutuhkan
·
Sedikit
I/O yang dibutuhkan.
·
Sedikit
memori yang dibutuhkan.
·
Respon
yang lebih cepat.
·
Dapat
melayani lebih banyak pengguna.
·
Lazy swapper – tidak melakukan swapping page ke
memori hingga page dibutuhkan.
3. UNJUK
KERJA DEMAND PANGING
Demand
paging
memberikan efek
yang signifikan dalam kinerja sistem computer. Diasumsikan ma
adalah access time ke memori dan p adalah probabilitas terjadi page fault (0 ≤ p ≤ 1), maka effective access time didefinisikan sebagai :
EAT = (1-p) x ma + p x page_fault-time
Untuk menghitung effective access time, harus diketahui berapa waktu yang diperlukan untuk melayani page fault. Page fault menyebabkan terjadi
1.
Trap ke sistem operasi.
2.
Menyimpan register dan status proses.
3.
Menentukan interrupt
adalah page fau.t
4.
Memeriksa page acuan legal atau tidak dan menentukan lokasi page
pada disk.
5.
Membaca dari disk ke frame bebas :
a. Menunggu di antrian untuk perangkat sampai permintaan membaca dilayani.
b. Menunggu perangkat mencari dan / atau waktu latency.
c. Memulai transfer dari page ke frame bebas.
6. Sementara menunggu, alokasikan CPU untuk user lain.
7. Interrupt dari disk (melengkapi I/O).
8. Menyimpan register dan status process user lain.
9. Menentukan interrupt dari disk.
10. Memperbaiki tabel page dan
tabel lain untuk menunjukkan page yang dimaksud
sudah dimemori.
11. Menunggu
CPU dialokasikan untuk proses ini kembali.
12. Menyimpan kembali
register, status proses dan tabel
page
baru, kemudian melanjutkan kembali instruksi
yang di-interupsi
Tidak semua langkah diatas diperlukan pada setiap kasus. Pada beberapa kasus, terdapat tiga komponen utama dari waktu pelayanan page fault
yaitu
·
Melayani interrupt page fault.
·
Membaca page.
·
Memulai kembali proses.
Untuk menghitung effective access time dari sistem demand paging perhatikan contoh berikut.
Diasumsikan memory access 100 ns.
Rata-rata waktu latency
untuk hard disk adalah
8 ms, waktu pencarian 15 ms dan rata-rata transfer
sebesar 1 ms.
Total waktu paging ≈ 25 ms.
Effective
access time =
(1-p) x (100) + p x (25 ms)
= (1-p) x 100 + p x 25000000
= 100 + 24999900
x p
Apabila satu dari 1000 akses menyebabkan page fault, maka effective access time = 25 micro-sec (lebih lambat dengan
faktor
250). Tetapi
bila
menginginkan degradasi kurang dari 10% maka
110 > 100 + 25000000 x p
10
> 250000000 x p p <
0.0000004
Perlu diperhatikan
system harus mempertahankan rata-rata page-fault
yang rendah
pada sistem demand-paging. Sebaliknya, jika effective access time meningkat maka akan memperlambat eksekusi proses secara drastis.
4. PAGE RECLACEMENT
Page replacement diperlukan pada situasi dimana proses
dieksekusi perlu frame
bebas tetapi tidak tersedia frame bebas. Sistem harus menemukan satu frame yang
sedang tidak digunakan dan membebaskannya. Untuk membebaskan frame dengan cara
menulis isinya untuk ruang swap dan mengubah tabel page (dan tabel lain) yang
menunjukkan page tidak lagi di memori. Kebutuhan akan page replacement dapat
dilihat pada Gambar:
bebas tetapi tidak tersedia frame bebas. Sistem harus menemukan satu frame yang
sedang tidak digunakan dan membebaskannya. Untuk membebaskan frame dengan cara
menulis isinya untuk ruang swap dan mengubah tabel page (dan tabel lain) yang
menunjukkan page tidak lagi di memori. Kebutuhan akan page replacement dapat
dilihat pada Gambar:
Langkah-langkah untukpage fault yang
memerlukan page replacement seperti
Gambar adalah sebagai berikut :
Gambar adalah sebagai berikut :
1) Carilah lokasi pageyang diharapkan
pada disk.
2) Carilah framekosong dg cara :
·
Bila ada frame kosong, gunakan.
·
Bila tidak ada, gunakan algoritma page replacement untuk
menyeleksiframe
yang akan menjadi korban.
yang akan menjadi korban.
·
Simpan page korban ke disk, ubah tabel page.
3)
Baca page yang diinginkan ke frame kosong
yang baru, ubah tabelpage.
4)
Mulai kembali proses user.
Terdapat beberapa
algoritma page replacement, setiap sistem operasi
mempunyai skema yang unik. Algoritma page replacement secara umum diinginkan
yang mempunyai rata-rata page fault terendah. Algoritma dievaluasi dengan
menjalankannya pada string tertentu dari memory reference dan menghitung jumlah
page fault. String yang mengacu ke memori disebut reference string(string acuan).
String acuan dibangkitkan secara random atau dengan menelusuri sistem dan menyimpan alamat dari memori acuan.
mempunyai skema yang unik. Algoritma page replacement secara umum diinginkan
yang mempunyai rata-rata page fault terendah. Algoritma dievaluasi dengan
menjalankannya pada string tertentu dari memory reference dan menghitung jumlah
page fault. String yang mengacu ke memori disebut reference string(string acuan).
String acuan dibangkitkan secara random atau dengan menelusuri sistem dan menyimpan alamat dari memori acuan.
5. ALGORITMA PAGE REPLACEMENT
Algoritma Page Replecement atau yang
disebut dengan algoritma pergantian page diartikan sebagai algoritma yang
berfungsi untuk mencegah alokasi yang berlebihan dari memory, dengan cara
memodifikasi layanan rutin page-fault melalui page. Algoritma Page Replecement
ini menggunakan modify bit untuk mengurangi overhead transfer page, dimana
modifikasi dilakukan hanya pada page yang di tulis di disk. Algoritma Page
Replecement melengkapi pemisahan antara memory logik dan fisik, dimana
virtual memory yang besar dapat memenuhi kebutuhan memory fisik yang kecil atau
yang disebut dengan sumberdaya yang terbatas.
Algoritma
Page Replecement terbagi ke dalam beberapa jenis Algoritma seperti:
a. Algoritma FIFO (First
In First Out) adalah sebuah
algoritma yang mempunyai cara kerja mengganti page yang menempati memory paling
lama.
Inti dari algoritma ini adalah
simple / paling sederhana karena prinsipnya sama seperti prinsip antrian tak
berprioritas. Page yang masuk terlebih dahulu maka yaitu yang akan keluar
duluan juga. Untuk algoritma ini menggunakan structure data stack. Jadi
kerjanya yaitu dimana kalau tidak ada frame yang kosong saat terjadi page fault
maka korban yang dipilih adalah frame dengan stack paling bawah seperti hal nya
halaman yang sudah lama tersimpan didalam memory maka dari itu algoritma ini
juga bisa memindahkan page yang sering digunakan.
Contoh gambar
dari Algoritma page FIFO
Utamanya
algoritma ini di anggap cukup mengatasi pergantian page sampai pada tahun
70-an, pada saat itu juga Belady menemukan keganjalan pada algoritma ini dan
dikenal dengan anomali Belady. Anomali Belady itu sendiri ialah keadaan dimana
page fault rate meningkat seiring dengan pertambahannya jumlah frame.
Contoh gambar dari
Anomali Belady
b.
Algoritma Optimal adalah sebuah
algoritma yang mempunyai cara kerja mengganti page yang tidak akan digunakan
pada periode berikutnya dengan melihat jauh referensi berapa page tersebut akan
tampil kembali.
Pengertian dari algoritma ini
sendiri yaitu algoritma yang page nya paling optimal. Untuk prinsip dari
algoritma ini sangat efisien sekali karena hanya mengganti halaman yang sudah
tidak terpakai lagi dalam jangka waktu lama sehingga page fault yang terjadi
akan berkurang dan terbebas dari anomali Belady Selain itu juga page
fault dari algoritma ini memiliki rate paling tinggi dari algoritma lainnya
dari semua kasus, akan tetapi tidak belum bias disebut sempurna karena sulit
untuk di mengerti dan dari segi system pun belum tentu bisa mengetahui page
untuk berikutnya tetapi dapat di simulasikan hanya untuk suatu program. Untuk
intinya gunakanlah hingga mendekati page optimal agar bisa memanfaatkannya.
Contoh gambar
dari Algoritma page optimal
c.
Algoritma Least
Recently Use (LRU) adalah sebuah algoritma yang mempunyai cara kerja mengganti
page yang menempati periode waktu paling lama belum digunakan atau belum
diakses.
Dikarenakan
algoritma optimal sangat sulit dalam pengimplementasiannya, maka dibuatlah
algoritma lain yang performance-nya mendekati algoritma optimal dengan
sedikit cost yang lebih besar. ama seperti algoritma optimal,
algoritma LRU tidak mengalami anomali Belady. Algoritma ini memakai linked
list untuk mendata halaman mana yang paling lama tidak terpakai. Linked
list inilah yang membuat cost membesar, karena harus meng-update
linked list tiap saat ada halaman yang di akses.
Contoh gambar dari Algoritma page LRU
6.
PENGALOKASIAN FRAME
Frame adalah
tempat untuk membawa halaman dengan intruksi-intruksinya. Alokasi frame
berhubungan dengan mekanisme alokasi sejumlah memori bebas yang tetap diantara
beberapa proses. Meskipun terdapat beberapa variasi pengalokasian frame bebas
ke beberapa proses, tetapi strategi dasar jelas yaitu : proses user
dialokasikan untuk sembarang frame bebas.
Jumlah minimum
frame per proses ditentukan oleh arsitektur dimana jumlah maksimum tergantung
jumlah memori fisik yang tersedia. Jumlah minimum frame ditentukan oleh
arsitekturinstruction-set. Bila terjadi page fault sebelum eksekusi intruksi
selesai,intruksi harus di-restart. Sehingga tersedia frame yang cukup untuk
membawa semua page yang berbeda dimana sembarang intruksi dapat mengacu.
Misalnya mikrokomputer menggunakan memori 128K yang dikomposisikan dengan page
ukuran 1K, maka terbentuk 128 frame. Jika sistem operasi menggunakan 35K, maka
93 frame bisa digunakan program user. Bila suatu program menyebabkan page fault
sebanyak 93 kali, maka menempati 93 frame bebas tersebut. Jika terjadi page
fault yang ke 94, dari 93 frame yang terisi harus dipilih salah satu untuk
diganti yang baru. Bila program selesai, 93 frame tersebut dibebaskan kembali.
Terdapat 2
bentuk algoritma alokasi yaitu equal allocation dan proportional allocation.
Pada equal allocation, jika terdapat m frame dan n proses, maka setiap proses
dialokasikan sejumlah frame yang sama (m/n frame). Pada proportional allocation
setiap porses dialokasikan secara proporsional berdasarkan ukurannya.
a)
Algoritma Pengalokasian
yaitu equal allocation dan proportional allocation. Pada equal
allocation, jika terdapat m frame dan n proses, maka setiap proses dialokasikan
sejumlah frameyang sama (m/n frame). Pada proportional allocation setiap proses
dialokasikan secara proporsional berdasarkan ukurannya. Jika ukuran virtual
memori untuk proses pi adalah si dan total jumlah frame yang
tersedia m.
Selain itu terdapat algoritma alokasi
berprioritas yang menggunakan skema
proporsional dengan lebih melihat prioritas proses dari pada ukuran proses. Jika proses Pi membangkitkan page fault, dipilih satu dariframe-frame dari proses yang mempunyai nomor prioritas terendah.
proporsional dengan lebih melihat prioritas proses dari pada ukuran proses. Jika proses Pi membangkitkan page fault, dipilih satu dariframe-frame dari proses yang mempunyai nomor prioritas terendah.
b)
Algoritma global dan local
Untuk
contoh, pertimbangkan sebuah skema alokasi dimana kita memperbolehkan proses
berprioritas tinggi untuk meyeleksi frame dari proses berprioritas
rendah untuk penggantian. Sebuah proses dapat menyeleksi sebuah pengganti dari frame-nya
sendiri atau dari frame-frame proses yang berprioritas lebih rendah. Pendekatan
ini memperbolehkan sebuah proses berprioritas tinggi untuk meningkatkan alokasi
frame-nya pada expense proses berprioritas rendah.
Dengan strategi Penggantian Lokal, jumlah frame yang
teralokasi pada sebuah proses tidak berubah. Dengan Penggantian Global, ada
kemungkinan sebuah proses hanya menyeleksi frame-frame yang teralokasi
pada proses lain, sehingga meningkatkan jumlah frame yang teralokasi
pada proses itu sendiri (asumsi bahwa proses lain tidak memilih frame
proses tersebut untuk penggantian).
Masalah
pada algoritma Penggantian Global adalah bahwa sebuah proses tidak bisa
mengontrol page-fault-nya sendiri. Himpunan halaman dalam memori untuk
sebuah proses tergantung tidak hanya pada kelakuan paging dari proses tersebut,
tetapi juga pada kelakuan paging dari proses lain. Karena itu, proses
yang sama dapat tampil berbeda (memerlukan 0,5 detik untuk satu eksekusi dan
10,3 detik untuk eksekusi berikutnya) due to totally external circumstances.
Dalam Penggantian Lokal, himpunan halaman dalam memori untuk sebuah proses
hanya dipengaruhi kelakuan paging proses itu sendiri. Penggantian Lokal dapat
menyembunyikan sebuah proses dengan membuatnya tidak tersedia bagi proses lain,
menggunakan halaman yang lebih sedikit pada memori. Jadi, secara umum
Penggantian Global menghasilkan sistem throughput yang lebih bagus, maka itu
artinya metode yang paling sering digunakan.
7.
TRASHING
Trashing adalah suatu proses yang sibuk melakukan
swap page in dan out. Jika suatu proses tidak mempunyai page yang cukup,
tingkat page fault menjadi tinggi. Hal tersebut dapat dilihat dari :
1.
Sistem
Operasi meningkatkan multiprogramming
2.
Utilisasi
CPU meningkat sejalan dengan bertambahnya multiprogramming
3.
Proses
lain ditambhakan ke dalam system
Jika suatu proses tidak memiliki frame
yang cukup, walau pun kita memiliki kemungkinan untuk mengurangi banyaknya frame
yang dialokasikan menjadi minimum, tetap ada halaman dalam jumlah besar yang
memiliki kondisi aktif menggunakannya. Maka hal ini akan mengakibatkan
kesalahan halaman. Pada kasus ini, kita harus mengganti beberapa halaman
menjadi halaman yang dibutuhkan walau pun halaman yang diganti pada waktu dekat
akan dibutuhkan lagi. Hal ini mengakibatkan kesalahan terus menerus.
Aktivitas yang tinggi dari paging
disebut thrashing. Suatu proses dikatakan thrashing jika proses
menghabiskan waktu lebih banyak untuk paging daripada eksekusi (proses
sibuk untuk melakukan swap-in swap-out).
Penyebab Thrashing
Penyebab dari thrashing
adalah utilisasi CPU yang rendah. Jika utilisasi CPU terlalu rendah, kita
menambahkan derajat dari multiprogramming dengan menambahkan proses baru
ke sistem.
Sejalan dengan bertambahnya
derajat dari multiprogramming, utilisasi CPU juga bertambah dengan lebih
lambat sampai maksimumnya dicapai. Jika derajat dari multiprogramming
ditambah terus menerus, utilisasi CPU akan berkurang dengan drastis dan terjadi
thrashing. Untuk menambah utilisasi CPU dan menghentikan thrashing,
kita harus mengurangi derajat dari multiprogramming.
BAB III
PENUTUP
1.
KESIMPULAN
Virtual
Memori adalah
suatu teknik yang memisahkan antara memori logis dan memori fisiknya. Teknik
ini
mengizinkan program untuk
dieksekusi tanpa seluruh bagian program perlu ikut masuk ke dalam memori. Memori logis merupakan kumpulan
keseluruhan halaman dari suatu program. Berbeda dengan
keterbatasan yang dimiliki oleh memori fisik, memori virtual dapat menampung
program dalam skala besar, melebihi daya tampung dari memori utama yang
tersedia. Tanpa
memori virtual, memori logis akan langsung dibawa ke memori fisik (memori
utama). Disinilah memori virtual melakukan pemisahan dengan menaruh memori
logis ke secondary storage (disk sekunder) dan hanya membawa
halaman yang diperlukan ke memori utama (memori fisik).
Demand
paging atau permintaan pemberian halaman adalah salah satu implementasi dari
memori virtual yang paling umum digunakan. Demand paging memberikan efek
yang signifikan dalam kinerja sistem computer. Diasumsikan ma
adalah access time ke memori dan p adalah probabilitas terjadi page fault (0 ≤ p ≤ 1), maka effective access time didefinisikan sebagai :EAT = (1-p) x ma + p x page_fault-time
Page
replacement diperlukan pada situasi dimana proses dieksekusi perlu frame
bebas tetapi tidak tersedia frame bebas. Algoritma Page Replecement atau yang disebut dengan algoritma pergantian page diartikan sebagai algoritma yang berfungsi untuk mencegah alokasi yang berlebihan dari memory, dengan cara memodifikasi layanan rutin page-fault melalui page. Algoritma Page Replecement terbagi ke dalam beberapa jenis Algoritma seperti: Algoritma FIFO, Algoritma Optimal, Algoritma Least Recently Use (LRU).
bebas tetapi tidak tersedia frame bebas. Algoritma Page Replecement atau yang disebut dengan algoritma pergantian page diartikan sebagai algoritma yang berfungsi untuk mencegah alokasi yang berlebihan dari memory, dengan cara memodifikasi layanan rutin page-fault melalui page. Algoritma Page Replecement terbagi ke dalam beberapa jenis Algoritma seperti: Algoritma FIFO, Algoritma Optimal, Algoritma Least Recently Use (LRU).
Frame
adalah tempat untuk membawa halaman dengan intruksi-intruksinya. Trashing adalah suatu proses yang sibuk melakukan
swap page in dan out. Jika suatu proses tidak mempunyai page yang cukup,
tingkat page fault menjadi tinggi.
Tidak ada komentar:
Posting Komentar