MANAJEMEN MEMORI
DI SUSUN OLEH
NANANG KURNIADI (130103088)
NANANG SETIAWAN (130103089)
MATA KULIAH : SISTEM OPERASI 1
DOSEN PEMBIMBING : JONI MAULINDAR
S.kom
SEKOLAH TINGGI MANAJEMEN
INFORMATIKA DAN KOMPUTER
STMIK DUTA BANGSA SURAKARTA
KATA PENGANTAR
Puji syukur kami panjatkan kehadirat Allah SWT yang telah memberikan rahmat serta karunia-Nya kepada kami sehingga kami berhasil menyelesaikan makalah ini.
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
pihak yang telah berperan serta dalam penyusunan makalah ini , dari awal sampai
akhir . Semoga Allah SWT senantiasa meridhoi segala usaha kita . Amin .
Surakarta , 30 Maret 2016
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..................................................................................................7
A. Konsep Dasar
Memori.................................................................................................7
1.
Overlay.................................................................................................................8
2.
Dynamic
Loading..................................................................................................8
3.
Dynamic
Linking...................................................................................................9
4.
Swapping.............................................................................................................9
B. Memori
Virtual.............................................................................................................10
DAFTAR
PUSTAKA................................................................................................................13
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
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
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
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
Tidak ada komentar:
Posting Komentar