Selasa, 28 April 2015

VIRTUAL MEMORY, RZ



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:
Langkah-langkah untukpage fault yang memerlukan page replacement seperti
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.
·        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.

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.
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).
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:
Langkah-langkah untukpage fault yang memerlukan page replacement seperti
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.
·        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.

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