Memori Maya
Program yg dimuat harus dimuat di memori utama, masalah akan muncul ketika program lebih besar daripada memori utama yg tersedia Terdapat 2 solusi untuk mengatasi masalah ini : 1. Overlay 2. Memori Maya (Virtual Memory)
2
Konsep Overlay
Program dipecah menjadi bagian-bagian yang dapat dimuat memori, disebut overlay Overlay yang belum diperlukan (tidak sedang dieksekusi) disimpan di dalam disk, overlay ini dimuatkan ke memori begitu diperlukan (kode di overlay akan di eksekusi)
Pertukaran overlay masuk dan keluar memori dilakukan oleh SO, sedangkan pembagian program menjadi overlayoverlay dilakukan pemrograman. Pembagian program menjadi potongan2 kecil dan modular sangat menghabiskan waktu Teknik overlay sudah ditinggalkan karena teknik memori maya telah diimplementasikan dengan murah dan berkinerja bagus 4
Konsep Overlay
SISTEM OPERASI Bagian kode dan data pemakai yang harus selalu tinggal di memori utama selama eksekusi program Daerah Overlay 1 2 3
Fase Inisialis asi Fase Pemro sesan
Fase Keluar an
10
Memori maya tidak mengubah kode program. Kecepatan eksekusi melambat karena dipengaruhi waktu tunda pengambilan bagian2 proses di memori sekunder saat proses berjalan Kecepatan maksimum eksekusi proses di memori maya dapat sama, tapi tidak pernah melampaui kecepatan eksekusi proses yg sama di sistem tanpa memori maya.
11
Sebagaimana dikatakan di atas bahwa hanya sebagian dari program yang diletakkan di memori fisik. Hal ini memberikan keuntungan:
1. Berkurangnya proses I/O yang dibutuhkan (lalu lintas I/O menjadi rendah). Misalnya untuk program butuh membaca dari disk dan memasukkan dalam memori setiap kali diakses. 2. Ruang menjadi lebih leluasa karena berkurangnya memori fisik yang digunakan. Contoh, untuk program 10 MB tidak seluruh bagian dimasukkan dalam memori fisik. Pesan-pesan error hanya dimasukkan jika terjadi error.
12
3.
4.
Meningkatnya respon, karena menurunnya beban I/O dan memori. Bertambahnya jumlah pengguna yang dapat dilayani. Ruang memori yang masih tersedia luas memungkinkan komputer untuk menerima lebih banyak permintaan dari pengguna.
Memori maya dapat dilakukan dengan tiga cara : 1. Paging 2. Segmentasi 3. Kombinasi paging dan segmentasi
13
Sistem Paging
Deskripsi Sistem Paging mengimplementasikan ruang alamat besar pada memori kecil menggunakan index register, base register, dan segment register. Pemakai seolah-olah mempunyai ruang memori yg sangat besar tanpa mengelola overlay.
14
1. 2. 3. 4. 5. 6.
Beberapa istilah pada sistem paging adalah : Alamat maya (virtual address) Alamat nyata (Real address) Page Page frame Page fault MMU
15
Alamat Maya
Alamat maya (virtual address) Alamat maya adalah alamat yang dihasilkan perhitungan menggunakan index register, base register, dan segment register dan lainnya Ruang alamat yang dibentuk alamat maya disebut ruang alamat maya (virtual address space) Jumlah alamat disimbolkan dengan |V|
16
Alamat Nyata
Alamat nyata adalah alamat di memori utama fisik. Ruang alamat yang dibentuk alamat nyata disebut ruang alamat nyata (real address space) Jumlah alamat disimbolkan dengan |R|
17
Meskipun pengacuan proses dilakukan berdasar alamat maya, proses sesungguhnya berjalan dimemori nyata. Alamat maya harus dipetakan menjadi alamat nyata saat proses di eksekusi. Pemetaan harus dilakukan dengan sangat cepat atau kinerja sistem komputer akan menurun drastis. Sistem komputer akan menerjemah-kan alamat maya menjadi alamat fisik. Bagian yang bertugas untuk memetakan adalah MMU.
18
Page adalah unit terkecil virtual address space Ruang alamat maya proses merupakan kelipatan page yang berukuran sama. Page frame adalah unit terkecil memori fisik. Memori fisik secara konseptual dibagi menjadi sejumlah unit berukuran tetap yang disebut page frame. Page frame sering juga disingkat frame
19
Memori maya
Memori nyata
Page fault adalah exception untuk permintan alokasi page ke memori, dalam konteks memori maya page fault sering juga disingkat fault
20
BUS
Memori fisik berisi sejumlah page frame yang memuat sebagian page-page proses. Terdapat mekanisme translasi (penerjemah-an) alamat (dilakukan MMU) untuk memetakan page virtual ke alamat fisik. Karena masing-masing page dipetakan secara terpisah, frame-frame proses tidak perlu menempati memori fisik berurutan. Sistem memori virtual mempunyai properti alamat-alamat kontigu (berturutan) pada ruang alamat virtual tidak harus kontigu di memori nyata. Properti ini disebut kontigu semu (artificial contiguity). 23
24
Pemakai dibebaskan berurusan dengan letak prosedur dan data diposisikan di memori nyata. Pemrograman dapat menulis program seperti biasa, yaitu memperhatikan efisiensi algoritma dan struktur program, mengabaikan rincian struktur perangkat keras. Dengan sistem virtual, memori dapat dipandang sebagai kontigu yang berukuran besar.
25
Skema Pemetaan
Pada komputer dengan memori virtual, alamat tidak diletakkan ke bus secara langsung tapi dilewatkan ke MMU yang memetakan alamat virtual ke alamat memori fisik.
26
27
Misalnya instruksi: MOV REG, 008 Alamat maya 8 dikirim ke MMU MMU mengetahui alamat 8 di page 0 (page 0 memuat alamat maya 0-4095) Dari tabel, page 0 dipetakan ke frame 7 (page 7 adalah alamat fisik 28672-32768) MMU mentransformasikan alamat 8 sebagai (28672 + 8 = 28680) MMU mengeluarkan alamat 28680 ke bus Papan memori tidak perlu mengetahui MMU, hanya bertanggung jawab untuk memenuhi permintaan membaca atau menulis alamat 28680. 28
Algoritma FIFO
Prinsip yang digunakan dalam algoritma FIFO yaitu halaman yang diganti adalah halaman yang paling lama berada di memori. Algoritma ini adalah algoritma pemindahan halaman yang paling mudah diimplementasikan, akan tetapi paling jarang digunakan dalam bentuk aslinya, biasanya dikombinasikan dengan algoritma lain.
30
31
Kelemahan dari algoritma FIFO adalah kinerjanya yang tidak selalu baik. Hal ini disebabkan karena ada kemungkinan halaman yang baru saja keluar dari memori ternyata dibutuhkan kembali. Di samping itu dalam beberapa kasus, tingkat kesalahan halaman justru bertambah seiring dengan meningkatnya jumlah frame, yang dikenal dengan nama anomali Belady.
32
Algoritma Optimal
Algoritma optimal pada prinsipnya akan mengganti halaman yang tidak akan digunakan untuk jangka waktu yang paling lama. Meski pun tampaknya mudah untuk dijelaskan, tetapi algoritma ini sulit atau hampir tidak mungkin untuk diimplementasikan karena sistem operasi harus dapat mengetahui halaman-halaman mana saja yang akan diakses berikutnya, padahal sistem operasi tidak dapat mengetahui halaman yang muncul di waktu yang akan datang.
33
34
Algoritma Least Recently Used (LRU) Algoritma LRU akan mengganti halaman yang telah tidak digunakan dalam jangka waktu terlama. Pertimbangannya yaitu berdasarkan observasi bahwa halaman yang telah sering diakses kemungkinan besar akan diakses kembali.
35
36