MANAJEMEN MEMORI
Pada Sistem Multiprogramming
DI SUSUN OLEH :
KELOMPOK IV
1.
MUKLISIN NIM
: 11295100
2.
ERI SUSIYANTO NIM
: 11295034
3.
GANDA RIZKI NIM
: 11295035
4.
HERI NIM
: 12305174
MATA KULIAH
: SISTEM OPERASI
DOSEN PENGAMPU
Bp. FIRMAN ,S.Kom
SEKOLAH TINGGI
MANAJEMEN INFORMATIKA DAN KOMPUTER
STMIK YMI TEGAL TAHUN 2011 / 2012
KATA
PENGANTAR
Puji syukur kami panjatkan kehadirat Allah SWT yang telah memberikan rahmat serta karunia-Nya kepada kami sehingga kami berhasil menyelesaikan makalah ini yang Alhamdulillah tepat pada waktunya .
Makalah
ini berisi tentang Manajemen Memori , Manajemen Memori pada Sistem
Multiprograming dan Optimalisasi Utilitas Memori .
Kami
menyadari bahwa makalah ini masih jauh dari sempurna , oleh karena itu kritik
dan saran dari semua pihak yang bersifat membangun selalu kami harapkan demi
kesempurnaan makalah ini .
Akhir
kata , kami sampaikan terima kasih kepada semua pihakn yang telah berperan
serta dalam penyusunan makalah ini , dari awal sampai akhir . Semoga Alloh SWT
senantiasa meridhoi segala usaha kita . Amin .
Tegal
, 02 Desember 2012
Kelompok
IV
ERI SUSIYANTO
DAFTAR ISI
KATA
PENGANTAR...................................................................................................................i
DAFTAR ISI...............................................................................................................................ii
BAB I
Manajemen Meori
Pada Sistem
Multiprogramming...................................................................1
A. Berdasarkan
Pengalokasian
Memori...........................................................................1
1. Alokasi
berurut......................................................................................................1
2. Partisi
dinamis......................................................................................................2
3. Sistem
Buddy.......................................................................................................4
B. Alokasi Tidak berurut.................................................................................................4
1. Sistem
Pagging....................................................................................................4
2. Sistem Segmentasi..............................................................................................5
3. Sistem
Kombinasi................................................................................................6
BAB II
Optimalisai Utilitas Memori......................................................................................................6
A. Konsep Dasar
Memori.................................................................................................6
1. Overlay.................................................................................................................7
2. Dynamic
Loading..................................................................................................8
3. Dynamic Linking...................................................................................................9
4. Swapping.............................................................................................................9
B. Memori
Virtual.............................................................................................................9
DAFTAR
PUSTAKA................................................................................................................11
BAB I
Manajemen Memori
Pada Sistem Multiprogramming
Manajemen pada system Multiprograming
memiliki karakteristik sbb :
1. Terdapat
sejumlah proses menempati memori utama pada setiap saat .
2. Image
proses dari program dapat dimuat seluruhnya atau sebagian saja ke memori utama
3. Alokasi
memori utama ke proses dapat berurutan ataupun tidak berurutan .
4. Dimungkinkan
seluruh atau sebagian image proses berpindah lokasi memori utama selama
eksekusinya .
5. Dimungkinkan
suatu proses lokasi memori utama diakses bersama oleh sejumlah proses atau
disebut dengan memory sharing .
A.
Berdasarkan Pengalokasian Memori
1. Alokasi
Berurut (Contiguous)
Memori harus mengakomodasi kebutuhan
SO dan proses user. Memori utama biasanya terbagi dalam dua bagian:
Ø Resident operating system, biasanya
tersimpan di alamat memori rendah.
Ø User proces menggunakan memori
beralamat tinggi/besar.
Alokasi berurut terbagi menjadi tiga
yakni:
1. Partisi statis
Ciri-ciri
dari partisi statis sebagai berikut:
1. Memori dibagi menjadi
partisi-partisi dengan ukuran yang tetap.
2. Satu proses hanya memakai satu
partisi. Jika proses sudah selesai, partisi tersebut dapat digunakan proses
yang lain.
3. Dibagi menjadi 2 bagian:
a) Berukuran sama
Banyak kelemahan, antara lain:
Proses
yang ukurannya lebih besar dari ukuran partisi tidak dapat dialokasikan.
Sebaliknya
bila ukuran proses lebih kecil daripada ukuran partisi, maka akan terjadi
pemborosan ruang memori (Fragmentasi internal).
b) Berukuran tidak sama
Untuk
mengatasi kelemahan dari Pengalokasian berurut dengan partisi statis dengan
ukuran sama, yaitu proses ukuran kecil diletakkan ke partisi yang kecil dan
sebaliknya.
Ada
2 jenis strategi:
1) Satu antrian untuk setiap partisi
Tiap
proses diletakkan pada partisi dengan ukuran terkecil yang dapat dimuatnya.
Kelemahan:
ada partisi yang memiliki antrian panjang dan ada yang kosong.
2) Satu antrian untuk seluruh partisi
Semua
proses dimasukkan pada satu antrian yang sama, Algoritma penjadwalan melakukan
pemilihan partisi
Kelemahan:
jika proses yang berukuran kecil terpaksa masuk ke partisi sisa yang besar,
sehingga terjadi pemborosan ruang.
2. Partisi
Dinamis
Ciri-ciri:
1.
Pada
kondisi awal, memori tidak dibagi menjadi partisi-partisi
2.
Pemartisian
dilakukan pada saat image proses akan disalin ke memori utama.
3.
Ukuran
partisi yang dialokasikan akan disesuaikan dengan ukuran image proses.
4.
Partisi
akan dibebaskan jika program sudah selesai.
5.
Keuntungan
: tidak terjadi fragmentasi internal alokasi memori disesuaikan dengan besarnya
image proses.
Cara kerja:
1. Pengalokasian dilakukan dengan
mencari hole à suatu ruang memori utama yang
kosong, yang cukup besar untuk menampung image proses.
2. Hole sisa kadang kala terlalu kecil
untuk dapat dialokasikan ke proses lainnya sehingga tidak bisa digunakan lagi à fragmentasi eksternal.
3. Salah satu cara untuk mengatasi
masalah ini adalah melakukan memory compaction.
Yaitu:
menggeser image proses-proses yang ada
di memori sehingga hole terkumpul di satu tempat saja
Kelemahan:
Ø proses alokasi dan dealokasi menjadi
lebih rumit
Ø Perlu pengelolaan informasi area
memori yang masih kosong.
Ada 2 metode pengelolaan memori
kosong:
1.
Peta bit (bitmap)
Ø Menggunakan area memori khusus untuk
mencatat seluruh area kosong pada memori utama.
Ø Memakai nilai 0 dan 1
ü Nilai 0 à alamat memori tersebut masih kosong
ü Nilai 1 à alamat memori tersebut sudah terisi
2.
Linked list
Ø Informasi mengenai hole
kosong berikutnya dicatat pada hole kosong sebelumnya.
Ø Tidak diperlukan area memori khusus.
Karena seluruh informasi tercatat di area memori kosong itu sendiri sehingga
menghemat kapasitas memori utama.
Diperlukan algoritma untuk
menentukan hole mana yang akan dialokasikan ke suatu proses.
1. Algoritma Best-fit
Ø Mencari memori blok yang paling
kecil yang dapat menampung image proses
Ø Memerlukan waktu lama karena harus
searching seluruh blok memori utama
Ø Fragmentasi eksternal dapat ditekan
sekecil mungkin
2. Algoritma First-fit
Ø Mencari memori kosong dari alamat
awal sampai menemukan blok yang dapat menampung image proses
Ø Sederhana dan cepat.
3. Algoritma Next-fit
Ø Hampir sama dengan First-fit.
Ø Bedanya: proses searching dimulai
dari alamat alokasi terakhir
4. Algoritma Worst-fit
Ø Mencari hole yang paling besar di
seluruh area memori utama.
Ø Tujuannya: hole sisa yang tercipta
setelah alokasi masih cukup besar untuk dialokasikan ke proses lainnya.
3.
Sistem Buddy
Ø Berupa pemartisian secara dinamis
Ø Ciri khusus adalah partisi yang
terbentuk senantiasa berukuran besar sebesar bilangan 2n 2,4,8,16…..256,512,1024(1Mb)
Alokasi memori pada sistem buddy:
1)
Menentukan
ukuran partisi
v Ditentukan ukuran partisi untuk
menampung image proses yaitu ukuran bilangan pangkat 2 terkecil
v Misal : ukuran image proses = 12kb, maka
ukuran partisi yang bisa digunakan adalah 16kb.
2) Pengalokasian
v Selanjutnya adalah mencari hole yang
ukurannya sebesar perhitungan.
v Jika tidak ada maka dicarikan hole
yang berukuran sedikit lebih besar. Kemudian dipecah secara bertahap sesuai
dengan aturan bilangan pangkat 2.
v Misal : ukuran image proses =
12kb dan hole yang paling kecil adalah 64kb.
ü maka dipecah menjadi 2 partisi 32kb,
selanjutnya dipecah lagi menjadi 2 partisi 16kb.
ü dan partisi 16kb pertama yang bisa
dipakai untuk image proses 12kb.
B.
Alokasi
Tidak Berurut (Non Contiguous)
1.
Dengan Sistem Paging
Ø Pada model pengalokasian tak
berurut, bagian-bagian dari image proses dapat diletakkan secara terpisah di
memori utama.\
Ø Pada sistem paging memerlukan
pengalamatan logika khusus yang membagi menjadi blok-blok dengan ukuran sama
yang disebut page
Ø Pada sistem paging , perlua adanya
translasi alamat ke memori fisik yang dipartisi secara statis yang disebut frame,
yang ukurannya sama dengan page pada ruang alamat logika
Konsep
dasar alokasi memori :
Ø Memori utama dibagi menjadi
frame-frame kecil berukuran sama dan diberi nomor frame sebagai referensi.
Ø Ruang alamat logika proses dibagi
menjadi page-page seukuran frame
Ø Loading time: page-page image proses
diletakkan pada frame-frame kosong dan dicatat pada page table
Proteksi Memori pada sistem paging
Ø Berfungsi menghindari pengaksesan
memori secara ilegal.
misal:
pengaksesan bagian memori yang sudah ditempati proses lain.
Ø Proteksi frame dilakukan dengan cara
menambahkan bit proteksi untuk tiap entry page table misal:
ü cek apakah frame tersebut bersifat
read atau read-write.
ü cek apakah alamat logika yang dituju suatu
proses valid atau invalid.
Memory Sharing pada sistem pagin
Ø Untuk menghemat penggunaan kapasitas
memori.
Ø Jika ada 2 atau lebih proses yang
memiliki bagian kode instruksi, atau data yang sama maka dapat digunakan
bersama dan cukup diletakkan sekali di frame memori.
Ø Masing-masing proses mengacu ke
frame yang sama pada page table nya.
2.
Dengan Sistem Segmentasi
Ø Memakai sistem partisi dinamis.
Ø Pada pengalamatan logika, image
proses dibagi menjadi bagian-bagian yang disebut segmen.
Ø Pembagian segmen biasanya mengikuti
struktur program oleh kompiler, yang biasanya tiap segmen berupa main program,
stack, routine, symbol table
Ø Partisi memori utama terjadi pada
saat alokasi yang besarnya sesuai dengan besar segmen program yang dialokasikan
Konsep
alokasi memori:
Ø Image proses dibagi menjadi beberapa
segmen yang ukurannya tidak harus sama.
Ø Segmen-segmen image proses
dialokasikan ke tempat-tempat kosong di memori utama, dan informasi alokasi
dicatat pada segmen table.
Ø Segmen table berisi nilai limit
(panjang segmen) dan nilai base (alamat awal bagian memori yang dialokasikan)
Proteksi memori
pada segmentasi
Ø Membandingkan nilai segmen yang ada
di pengalamatan logika dengan nilai limit yang ada di segmen table.
Ø Apabila nilai segmen yang ada di
pengalamatan logika lebih besar (>) daripada
nilai limit yang ada di segmen table, berarti terjadi usaha pengaksesan
lokasi diluar area segmen program itu, sehingga memicu terjadinya trap
(addresing error)
Memori sharing pada
sistem segmentation
Sharing
segmen antara 2 atau lebih proses dapat dilakukan dengan mencatat lokasi
alokasi segmen tersebut ke tabel segmen masing-masing proses.
3.
Dengan Sistem Kombinasi
Gabungan antara pengalokasian tak
berurut secara paging dan segmentasi
BAB II
OPTIMALISASI UTILITAS MEMORI
A. Konsep
Dasar Memory
Memori merupakan bagian dari komputer yang
berfungsi sebagai tempat penyimpanan informasi yang harus diatur dan dijaga
sebaik-baiknya. Sebagian besar komputer memiliki hirarki memori yang terdiri
atas tiga level, yaitu:
Register di CPU, berada di level teratas. Informasi yang
berada di register dapat diakses dalam satu clock cycle CPU.
Primary
Memory (executable memory), berada di level tengah. Contohnya, RAM. Primary
Memory diukur dengan satu byte dalam satu waktu, secara relatif dapat diakses
dengan cepat, dan bersifat volatile (informasi bisa hilang ketika komputer
dimatikan). CPU mengakses memori ini dengan instruksi single load dan store
dalam beberapa clock cycle.
Secondary
Memory, berada di level bawah. Contohnya, disk atau tape.
Secondary Memory diukur sebagai kumpulan dari
bytes (block of bytes), waktu aksesnya lambat, dan bersifat non-volatile
(informasi tetap tersimpan ketika komputer dimatikan). Memori ini diterapkan di
storage device, jadi akses meliputi aksi oleh driver dan physical device.
Komputer yang
lebih canggih memiliki level yang lebih banyak pada sistem hirarki memorinya,
yaitu cache memory dan bentuk lain dari secondary memory seperti rotating
magnetic memory, optical memory, dan sequntially access memory. Akan tetapi,
masing-masing level ini hanya sebuah penyempurnaan salah satu dari tiga level
dasar yang telah dijelaskan sebelumnya.
Bagian dari
sistem operasi yang mengatur hirarki memori disebut dengan memory manager. Di
era multiprogramming ini, memory manager digunakan untuk mencegah satu proses
dari penulisan dan pembacaan oleh proses lain yang dilokasikan di primary
memory, mengatur swapping antara memori utama dan disk ketika memori utama
terlalu kecil untuk memegang semua proses.
Tujuan dari manajemen ini
adalah untuk:
v Meningkatkan utilitas CPU
v Data dan instruksi dapat diakses dengan cepat
oleh CPU
v Efisiensi dalam pemakaian memori yang terbatas
v Transfer dari/ke memori utama ke/dari CPU
dapat lebih efisien
Strategi
untuk meningkatkan utilitas memory utama pada suatu sistem komputer
1. OVERLAY
Overlay
adalah suatu teknik pemrograman yang berfungsi membagi program yang besar,
menjadi bagian yang kecil sehingga dapat dimuat secara parsial kedalam suatu page
memori yang berukuran lebih kecil.
Bila
bagian kode intruksi pada program yang ingin diakses tidak terdapat dalam
memori atau tidak ada dalam memori maka bagian tersebut akan disalin ke bagian overlay.
Teknik overlay ini hanya akan menyalin intruksi dan data yang sedang
dijalankan ke memori utama, sedangkan pada bagian lain dari program tetap
disimpan di media penyimpanan.
Teknik
overlay ini digunakan terutama pada sistem informasi dengan manajemen
memori partisi statis. Dimana pada model partisi statis, ukuran programnya
tidak boleh lebih besar dari ukuran partisinya, sehingga program yang berukuran
besar tidak dapat disalin ke memori utama. Dengan menggunakan teknik overlay
maka hanya sebagian kode intruksi program saja yang akan disalinkan ke
partisi tersebut dan jika bagian lain dari program dibutuhkan maka akan
dilakukan replacement pada area overlay program tersebut.
Sehingga dengan menggunakan teknik overlay ini program yang berukuran
besar tetap bisa dijalankan pada OS (Operating System), atau Sistem
Operasi dengan model manajemen memori partisi statis
2.
Dynamic Loading adalah program utama
di-load dahulu dan dieksekusi. Bila suatu routine perlu memanggil routine lain,
routine yang dipanggil lebih dahulu diperiksa apakah rutin yang dipanggil sudah
di-load. Jika tidak, relocatable linking loader dipanggil untuk me-load rutin
yg diminta ke memori dan meng-ubah tabel alamat.
Keuntungan dari dynamic loading adalah rutin yang tidak digunakan tidak pernah di-load. Skema ini lebih berguna untuk kode dalam jumlah besar diperlukan untuk menangani kasus-kasus yang jarang terjadi seperti error routine. Dinamic loading tidak memerlukan dukungan khusus dari sistem operasi. Sistem operasi hanya perlu menyediakan beberapa rutin pustaka untuk implementasi dynamic loading.
Contoh pemakaian Dynamic Loading
Cara pemakaian API dari Dynamic Loading akan diperlihatkan di sini dengan menggunakan program demo yang sederhana. Source code program terdiri dari dua file, yaitu main.c dan simple_dl.c (Lihat list program: script-1 adalah main.c, script-2 adalah simple_dl.c dan script-3 adalah Makefile). File main.c adalah program utama yang mempunyai fungsi main(). Sedangkan file simple_dl.c adalah file modul yang berisi simbol variabel dan simbol pengimplementasi fungsi yang akan diakses dari fungsi main() dengan menggunakan fasilitas API Dynamic Loading. Dua simbol didefinisikan di dalam simple_dl.c. Yang pertama adalah simbol variabel yang didefinisikan sebagai berikut: char* info_linux = "Info Linux!"; Nama simbol variabel ini adalah info_linux yang merupakan pointer dari tipe data char. Pada pointer ini juga secara langsung dialokasikan sejumlah memori yang berisikan karakter string "Info Linux!". Simbol kedua adalah hello_world yang merupakan simbol dari pengimplementasi fungsi hello_world(). Pada prinsipnya nama simbol tidak selalu sama dengan nama pengimplementasi fungsi. Kita akan membahas hal ini secara ringkas pada bagian akhir dari artikel ini pada kasus penulisan program menggunakan C++. Simbol fungsi ini didefinisikan sebagai berikut: void hello_world(void); Fungsi ini hanya akan menampilkan kalimat "Hello world!" di layar monitor. Sebelum kita membahas kode di file main.c, kita akan mencoba untuk mengkompilasi file simple_dl.c. Untuk dapat menghasilkan shared library, pada proses kompilasi harus digunakan parameter -fPIC. PIC adalah kepanjangan dari position independent code. Dengan instruksi berikut:
Keuntungan dari dynamic loading adalah rutin yang tidak digunakan tidak pernah di-load. Skema ini lebih berguna untuk kode dalam jumlah besar diperlukan untuk menangani kasus-kasus yang jarang terjadi seperti error routine. Dinamic loading tidak memerlukan dukungan khusus dari sistem operasi. Sistem operasi hanya perlu menyediakan beberapa rutin pustaka untuk implementasi dynamic loading.
Contoh pemakaian Dynamic Loading
Cara pemakaian API dari Dynamic Loading akan diperlihatkan di sini dengan menggunakan program demo yang sederhana. Source code program terdiri dari dua file, yaitu main.c dan simple_dl.c (Lihat list program: script-1 adalah main.c, script-2 adalah simple_dl.c dan script-3 adalah Makefile). File main.c adalah program utama yang mempunyai fungsi main(). Sedangkan file simple_dl.c adalah file modul yang berisi simbol variabel dan simbol pengimplementasi fungsi yang akan diakses dari fungsi main() dengan menggunakan fasilitas API Dynamic Loading. Dua simbol didefinisikan di dalam simple_dl.c. Yang pertama adalah simbol variabel yang didefinisikan sebagai berikut: char* info_linux = "Info Linux!"; Nama simbol variabel ini adalah info_linux yang merupakan pointer dari tipe data char. Pada pointer ini juga secara langsung dialokasikan sejumlah memori yang berisikan karakter string "Info Linux!". Simbol kedua adalah hello_world yang merupakan simbol dari pengimplementasi fungsi hello_world(). Pada prinsipnya nama simbol tidak selalu sama dengan nama pengimplementasi fungsi. Kita akan membahas hal ini secara ringkas pada bagian akhir dari artikel ini pada kasus penulisan program menggunakan C++. Simbol fungsi ini didefinisikan sebagai berikut: void hello_world(void); Fungsi ini hanya akan menampilkan kalimat "Hello world!" di layar monitor. Sebelum kita membahas kode di file main.c, kita akan mencoba untuk mengkompilasi file simple_dl.c. Untuk dapat menghasilkan shared library, pada proses kompilasi harus digunakan parameter -fPIC. PIC adalah kepanjangan dari position independent code. Dengan instruksi berikut:
3.
Dynamic Linking adalah proses dengan banyak
langkah, ditemukan juga penghubung-penghubung pustaka yang dinamis, yang
menghubungkan semua rutin yang ada di pustaka. Beberapa sistem operasi hanya
mendukung penghubungan yang statis, dimana seluruh rutin yang ada dihubungkan
ke dalam suatu ruang alamat. Setiap program memiliki salinan dari seluruh
pustaka. Konsep penghubungan dinamis, serupa dengan konsep pemanggilan dinamis.
Pemanggilan lebih banyak ditunda selama waktu eksekusi, dari pada lama penundaan oleh penghubungan dinamis. Keistimewaan ini biasanya digunakan dalam sistem kumpulan pustaka, seperti pustaka bahasa subrutin. Tanpa fasilitas ini, semua program dalam sebuah sistem, harus mempunyai salinan dari pustaka bahasa mereka (atau setidaknya referensi rutin oleh program) termasuk dalam tampilan yang dapat dieksekusi.
Pemanggilan lebih banyak ditunda selama waktu eksekusi, dari pada lama penundaan oleh penghubungan dinamis. Keistimewaan ini biasanya digunakan dalam sistem kumpulan pustaka, seperti pustaka bahasa subrutin. Tanpa fasilitas ini, semua program dalam sebuah sistem, harus mempunyai salinan dari pustaka bahasa mereka (atau setidaknya referensi rutin oleh program) termasuk dalam tampilan yang dapat dieksekusi.
4.
Swapping merupakan Sebuah proses agar
bisa dieksekusi bukan hanya membutuhkan sumber daya dari CPU, tetapi juga harus
terletak dalam memori. Dalam tahapannya, suatu proses bisa saja ditukar
sementara keluar memori ke sebuah penyimpanan sementara dan kemudian dibawa
lagi ke memori untuk melanjutkan pengeksekusian. Hal ini dalam sistem operasi
disebut swapping. Sebagai contoh, asumsikan sebuah multiprogramming environment
dengan algoritma penjadwalan CPU round-robin. Ketika waktu kuantum habis,
pengatur memori akan menukar proses yang telah selesai dan memasukkan proses
yang lain ke dalam memori yang sudah bebas. Sementara di saat yang bersamaan,
penjadwal CPU akan mengalokasikan waktu untuk proses lain di dalam memori.
Ketika waktu kuantum setiap proses sudah habis, proses tersebut akan ditukar
dengan proses lain. Untuk kondisi yang ideal, manajer memori dapat melakukan
penukaran proses dengan cepat sehingga proses akan selalu berada dalam memori
dan siap dieksekusi saat penjadwal CPU hendak menjadwal CPU.
B. Memory Virtual
Selama
bertahun-tahun, pelaksanaan manajemen memori pada intinya adalah dengan
menempatkan semua bagian proses yang akan dijalankan ke dalam memori sebelum
proses dapat mulai dieksekusi. Dengan demikian semua bagian proses tersebut
harus memiliki alokasi sendiri di dalam memori fisik.
Pada
kenyataannya tidak semua bagian dari program tersebut akan diproses, misalnya:
Ø Ada
pernyataan-pernyataan atau pilihan yang hanya akan dieksekusi jika kondisi
tertentu dipenuhi
Ø Terdapat fungsi-fungsi yang jarang digunakan
Ø Pengalokasian memori yang lebih besar dari yang
sebenarnya dibutuhkan.
Pada memori berkapasitas besar, hal-hal ini tidak akan
menjadi masalah. Namun pada memori dengan kapasitas yang sangat terbatas, hal
ini akan menurunkan optimalisasi utilitas dari ruang memori fisik (memori
utama).
Setiap program yang dijalankan harus berada di memori.
Memori merupakan suatu tempat penyimpanan utama (primary storage) yang bersifat
sementara (volatile). Ukuran memori yang terbatas dapat menimbulkan masalah
bagaimana menempatkan program yang berukuran yang lebih besar dari ukuran
memori fisik (memori utama) dan masalah penerapan multiprogramming yang
membutuhkan tempat yang lebih besar di memori.
Memori virtual adalah suatu teknik yang memisahkan antara
memori logis dan memori fisiknya. Memori logis merupakan kumpulan keseluruhan
halaman dari suatu program. 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.
Memori fisik dibagi menjadi page frames yang berukuran
sama dan diidentifikasikan dengan nomor page frames. Bingkai (frame) menyimpan
data dari halaman. Atau memori virtual memetakan nomor virtual pages ke nomor
page frames. Mapping (pemetaan) menyebabkan halaman virtual hanya dapat
mempunyai satu lokasi alamat fisik.
Dalam sistem paging, jika sebuah ruang diperlukan untuk
proses dan halaman yang bersangkutan tidak sedang digunakan, maka halaman dari
proses akan mengalami paged out (disimpan ke dalam disk) atau swap out, memori
akan kosong untuk halaman aktif yang lain. Halaman yang dipindah dari disk ke memori
ketika diperlukan dinamakan paged in (dikembalikan ke memori) atau swap in.
Ketika sebuah item dapat mengalami paging, maka item tersebut termasuk dalam
item yang menempati ruang virtual, yang diakses dengan alamat virtual dan
ruangan yang ada dialokasikan untuk informasi pemetaan. Sistem operasi
mengalokasikan alamat dari item tersebut hanya ketika item tersebut mengalami
paging in.
Keuntungan yang diperoleh dari penyimpanan hanya sebagian
program saja pada memori fisik adalah:
Ø
Berkurangnya
proses M/K yang dibutuhkan (lalu lintas M/K menjadi rendah)
Ø
Ruang
menjadi lebih leluasa karena berkurangnya memori fisik yang digunakan
Ø
Meningkatnya
respon karena menurunnya beban M/K dan memori
Ø
Bertambahnya
jumlah pengguna yang dapat dilayani. Ruang memori yang masih tersedia luas
memungkinkan komputer untuk menerima lebih banyak permintaan dari pengguna.
Teknik memori virtual akan memudahkan pekerjaan seorang
programmer ketika besar data dan programnya melampaui kapasitas memori utama.
Sebuah multiprogramming dapat mengimplementasikan teknik memori virtual
sehingga sistem multiprogramming menjadi lebih efisien. Contohnya: 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.
Prinsip dari memori virtual adalah bahwa "Kecepatan
maksimum ekseskusi proses di memori virtual dapat sama, tetapi tidak akan
pernah melampaui kecepatan eksekusi proses yang sama di sistem yang tidak
menggunakan memori virtual".
Memori virtual dapat diimplementasikan
dengan dua cara:
Ø Demand
Paging yaitu dengan menerapkan konsep pemberian halaman pada proses
Ø Demand segmentation, lebih kompleks diterapkan ukuran
segmen yang bervariasi.
DAFTAR PUSTAKA
1. http://tugasole.blogspot.com/2010/06/tugas-3.html
2.http://www.elektroindonesia.com/elektro/li0602.html
3.ilmukomputer.org/wp-content/.../06/luccas_memory.doc
4.http://blog.unsri.ac.id/FadhilZulfikar/sistem-operasi/manajemen-memori-pada-sistem-
multiprogramming-dan-proteksi-memori/mrdetail/26935/
5.Sistem oprasi
Makasih atas ilmunya, sangat bermanfaat
BalasHapusmy blog
siip mantap ,
BalasHapuskunjungi :http//blog.binadarma.ac.id/ilmanzuhriyadi/