1601221420 – Fendy Chandra
Pertemuan 6
Pertemuan 5 kemaren kebetulan jadwalnya bentrok sama IdeaFest BiNus, jadi jadwal OS kelima ini dijadiin GSLC. Kelar GSLC seminggu kita balik lagi ke perkuliahan normal, dan dipertemuan 6 ini materi yang kita pelajarin adalah tentang virtual memory. Nah virtual memory ini termasuk fitur yang lumayan berguna buat kita-kita yang PC/laptopnya punya RAM minimalis (alias kecil), soalnya dengan make VM ini, kita jadi bisa seolah-olah nambahin ukuran RAM yang kita punya. Dari mana kapasitasnya diambil? Jawabannya dari memory harddisk device kita. Jadi prinsipnya dengan make VM, kita ngalokasiin sebagian dari memory hardisk kita buat dijadiin tambahan RAM kita. Cara ini lumayan efektif buat ngebantu komputer kita ngelakuin multi tasking, tapi sayangnya metode ini cenderung bikin pemrosesan di komputer kita jadi lambat (yeah, cara yang ngirit emang ga pernah sesukses yang musti keluar duit; kalo mau yang lebih cepet emang musti beli RAM baru yang lebih gede ;V). Selain 2 cara itu (VM sama beli RAM baru), sekarang juga ada fitur ReadyBoost. Sebenernya hampir sama kayak VM sih, Cuma si ReadyBoost ini ngambil space tambahan buat RAMnya dari flashdisk.
Nah pembahasan minggu ini ga jauh-jauh dari urusan VM management ini. Bahasan pertama yang didapet minggu ini adalah tentang paging, yang artinya proses dimana kita motong-motong memory menjadi bagian yang lebih kecil. Nah bagian yang lebih kecil ini disebut frame.
Kira-kira secara sederhana proses paging bisa digambarin jadi begini:
Kalau isi page udah penuh da nada isi baru yang mau masuk, maka kita musti ngelakuin yang namanya page replacement.
Nah didalam memory management ini ada beberapa algoritma yang biasa dipake, kalo di pertemuan minggu ini ada 3 algoritma yang kita pelajarin, yaitu: Algoritma Optimal (Belady’s anomaly), algoritma first in first out (FIFO), sama algoritma least recently used (LRU).
- Algoritma Optimal (Belady’s anomaly)
Kalo di algoritma ini, page yang bakal di-replace adalah yang datanya paling lama ga dipake.
Contohnya, misalnya kita punya frame yang muat 3 data dan ada inputan data:
70120304230
Kalo kita pake algoritma Optimal ini, hasilnya bakalan jadi begini:
Input | 7 | 0 | 1 | 2 | 0 | 3 | 0 | 4 | 2 | 3 | 0 |
Frame 1 | 7 | 7 | 7 | 2 | 2 | 2 | 2 | 2 | 2 | 2 | 2 |
Frame 2 | 0 | 0 | 0 | 0 | 0 | 0 | 4 | 4 | 4 | 4 | |
Frame 3 | 1 | 1 | 1 | 3 | 3 | 3 | 3 | 3 | 3 |
Penjelasan:
- Kalo di algoritma ini, waktu framenya masih kosong dan ada data baru yang mo dimasukin, kita tinggal taro data itu diframe yang kosong.
- Kalo semua frame udah keisi dan ada data baru yang masuk:
- Kalo datanya = data yang ada didalem frame, ga ada yang direplace
- Kalo datanya beda sama yang ada didalem frame, maka data yang bakal direplace adalah data yang paling jauh di kanan.
- Misal: buat contoh masuk data 4, kita liat 2 ada di kolom sebelahnya, 3 ada di 2 kolom setelahnya, 0 ada di 3 kolom sebelah kanannya, jadi yang direplace adalah si 0.
- Kalo buat contohmasukin data 2 (kolom ke 4),kita bandingin posisi 7, 0, 1 disebelah kanan. 0 ada di kolom setelahnya tapi 7 sama 1 ga ada di sebelah kanan (bisa diasumsiin jaraknya tak hingga di kanan). Nah karena kita gatau yang mana yang paling jauh di kanan antara 7 sama 1, jadi kita liat diantara mereka siapa yang paling lama berada di frame (paling jauh disebelah kiri). 7 ada di kolom pertama, 1 di kolom ke 3, jadi yang kita replace adalah 7.
Hint: jawaban akhirnya pasti isinya variasi dari n angka terakhir dari inputan yang masuk (n = jumlah framenya).
- Algoritma FIFO
Kalo algoritma FIFO ini prinsipnya sama kayak Queue, jadi data yang pertama masuk bakal keluar pertama juga. Misalnya framenya 3 dan inputannya kayak gini:
70120304230
Kalo pake algoritma FIFO, hasilnya bakal begini:
Input | 7 | 0 | 1 | 2 | 0 | 3 | 0 | 4 |
Frame 1 | 7 | 7 | 7 | 2 | 2 | 2 | 2 | 4 |
Frame 2 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |
Frame 3 | 1 | 1 | 1 | 3 | 3 | 3 |
Hint: jawaban akhirnya pasti isinya variasi dari n angka terakhir dari inputan yang masuk (n = jumlah framenya).
- Algoritma Least Recently Used (RLU)
Kalo algoritma ini prinsipnya data yang bakal direplace adalah data yang paling lama ga dipake. Sebenernya prinsip algoritma RLU ini hampir sama kayak algoritma Queue.
Misalnya kalo ada 3 frame dan data yang diinput begini:
70120304230
Hasilnya bakal jadi begini:
Input | 7 | 0 | 1 | 2 | 0 | 3 | 0 | 4 |
Frame 1 | 7 | 7 | 7 | 2 | 2 | 2 | 2 | 4 |
Frame 2 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |
Frame 3 | 1 | 1 | 1 | 3 | 3 | 3 |
Penjelasan:
- Kalo di algoritma ini, waktu framenya masih kosong dan ada data baru yang mo dimasukin, kita tinggal taro data itu diframe yang kosong.
- Kalo frame udah penuh dan data yang mau masuk = yang ada didalem frame, maka ga ada data yang direplace.
- Kalo frame udah penuh dan data yang mau masuk beda sama yang ada didalem frame, maka data yang bakal direplace adalah data yang paling jauh di kiri.
Hint: jawaban akhirnya pasti isinya variasi dari n angka terakhir dari inputan yang masuk (n = jumlah framenya).
Oh iya, sekedar ngingetin, denger-denger materi ini termasuk yang bakal keluar di UTS, jadi kudu disiapin baik-baik.
BINUS (www.binus.ac.id) | www.skyconnectiva.com