Kamis, 01 Maret 2018

Tugas 2 IMPLEMENTASI MEMORI VIRTUAL

Memori virtual adalah suatu teknik yang memisahkan antara memori logis dan memori fisiknya. Teknik ini menyembunyikan aspek-aspek fisik memori dari pengguna dengan menjadikan memori sebagai lokasi alamat virtual berupa byte yang tidak terbatas dan menaruh beberapa bagian dari memori virtual yang berada di memori logis. Berbeda dengan keterbatasan yang dimiliki oleh memori fisik, memori virtual dapat menampung program dalam skala besar, melebihi daya tampung dari memori fisik yang tersedia.


Prinsip dari memori virtual yang patut diingat adalah bahwa: "Kecepatan maksimum eksekusi proses di memori virtual dapat sama, tetapi tidak pernah melampaui kecepatan eksekusi proses yang sama di sistem tanpa menggunakan memori virtual."

IMPLEMENTASI MEMORI VIRTUAL

        Gagasan utama dari memori virtual adalah ukuran gabungan program, data dan stack melampaui jumlah memori fisik yang tersedia. Sistem operasi menyimpan bagian-bagian proses yang sedang digunakan di memori fisik (memori utama) dan sisanya diletakkan di disk. Begitu bagian yang berada di disk diperlukan, maka bagian di memori yang tidak diperlukan akan dikeluarkan dari memori fisik (swap-out) dan diganti (swap-in) oleh bagian disk yang diperlukan itu.
     Memori virtual diimplementasikan dalam sistem multiprogramming. Misalnya: 10 program dengan ukuran 2 Mb dapat berjalan di memori berkapasitas 4 Mb. Tiap program dialokasikan 256 KByte dan bagian-bagian proses (swap in) masuk ke dalam memori fisik begitu diperlukan dan akan keluar  (swap out) jika sedang tidak diperlukan. Dengan demikian, sistem multiprogramming menjadi lebih efisien. Memori virtual dapat dilakukan melalui dua cara. Yang pertama adalah permintaan pemberian halaman (demand paging). Dan yang kedua adalah permintaan segmentasi (demand segmentation)

Demand Paging
        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.

     2. Demand Segmentation
         Konsep segmentasi adalah user atau programmer tidak memikirkan sejumlah rutin program yang dipetakan ke main memori sebagai array linier dalam byte tetapi memori dilihat sebagai kumpulan segmen dengan ukuran berbeda-beda, tidak perlu berurutan diantara segment tersebut.                   Segmentasi adalah skema manajemen memori yang memungkinkan user untuk melihat memori tersebut. Ruang alamat logika adalah kumpulan segmen. Setiap segmen mempunyai nama dan panjang. Spesifikasi alamat berupa nama segmen dan offset. Segment diberi nomor dan disebut dengan nomor segmen (bukan nama segmen) atau segment number. Segmen dibentuk secara otomatis oleh compiler.Sebuah program adalah kumpulan segmen. Suatu segmen adalah unit logika seperti program utama, prosedur, fungsi, metode, obyek, variabel lokal, variabel global, blok umum, stack, tabel simbol, array dan lain-lain.

MANAJEMEN MEMORI VIRTUAL      

    Sebagian besar algoritma manajemen memori memerlukan satu kebutuhan dasar yaitu instruksi yang akan dieksekusi harus berada di memori fisik. Pada beberapa kasus, keseluruhan program tidak diperlukan. Misalnya :
Program mempunyai kode untuk menangani kondisi error yang tidak biasa. Karena error error ini jarang terjadi, kode ini hampir tidak pernah dieksekusi.
Array, list dan tabel dialokasikan lebih dari kapasitas memori yang diperlukan.
Pilihan dan gambaran program jarang digunakan.
         Pada kasus dimana keseluruhan program dibutuhkan, mungkin tidak semua diperlukan pada saat yang sama. Kemampuan mengeksekusi program hanya pada beberapa bagian dari memori mempunyai beberapa keuntungan yaitu :
Program tidak terbatas jumlah memori fisik yang tersedia sehingga user dapat menulis
Program untuk ruang alamat virtual yang sangat besar yang berarti menyederhanakan programming task.
Karena setiap program user dapat menggunakan memori fisik yang lebih kecil, pada waktu yang sama dapat menjalankan lebih banyak program.
I/O yang lebih sedikit diperlukan untuk load atau swap program user ke memori, sehingga setiap program user dapat berjalan lebih cepat.
     Memori virtual adalah teknik yang memisahkan memori logika user dari memori fisik. Menyediakan memori virtual yang sangat besar diperuntukkan untuk programmer bila tersedia memori fisik yang lebih kecil. Programmer tidak perlu khawatir jumlah memori fisik yang tersedia, sehingga dapat berkonsentrasi pada permasalahan pemrograman.




Sumber Refrensi:

http://journal.amikom.ac.id/index.php/KIDA/article/viewFile/3312/1348
http://opensource.telkomspeedy.com/repo/abba/v06/Kuliah/SistemOperasi/2003/49/produk/SistemOperasi/c56.html
https://skylacha.wordpress.com/2010/10/23/perbedaan-partition-segmentation-dan-paging/

Tidak ada komentar:

Posting Komentar