Manajemen Memori Pemartisan Dinamis Edi Sugiarto, S.Kom Pendahuluan Pada sistem batch, organisasi memori dengan pemartisian statis telah efektif. Selama jumlah proses yang tersedia dapat membuat pemroses sibuk, tidak ada alasan untuk menggunakan teknik lebih rumit. Pada sistem timesharing situasi berbeda, umumnya terdapat lebih banyak proses dibanding memori yang tersedia. Multiprogramming dengan Swapping Swapping merupakan proses pemindahan dari memori utama ke memori sekunder. Beragam masalah yang harus diatasi multiprogramming dengan swapping antaralain: ◦ ◦ ◦ ◦ Pemartisian secara dinamis Strategi pencatatan pemakaian memori Algoritma penempatan proses ke memori Strategi penempatan ruang swap di disk Multiprogramming dengan pemartisian dinamis Pemartisian statis tidak menarik karena memori terlalu banyak diboroskan. Dengan pemartisian dinamis maka jumlah, lokasi dan ukuran proses di memori dapat beragam sepanjang waktu secara dinamis. Proses yang akan masuk ke memori segera dibuatkan partisi untuknya sesuai kebutuhan. Namun pemartisian dinamis ini memiliki kelemahan yaitu : ◦ Dapat terjadi lubang-lubang kecil memori diantara partisi-partisi yang dipakai. ◦ Merumitkan alokasi dan dealokasi memori. Contoh terjadinya lubang-lubang kecil memori. (a) (b) Proses 0 Proses 1 Proses 2 Proses 0 Proses 1 berakhir dan membebaskan memorinya bebas Proses 2 Proses 3 Proses 3 Proses 4 Proses 4 Memori untuk Sistem Operasi Memori untuk Sistem Operasi Contoh terjadinya lubang-lubang kecil memori. (c) Proses 0 bebas Proses 3 kemudian berakhir dan membebaskan memorinya (d) Proses 0 Proses 2 Proses 2 Proses 4 bebas Proses 4 Memori untuk Sistem Operasi bebas Lubang memori dipadatkan sehingga terbentuk lubang memori besar yang bebas Memori untuk Sistem Operasi pemadatan memori (memory compaction) adalah operasi menggabungkan semua lubang kecil menjadi satu lubang besar dengan memindahkan semua proses agar saling berdekatan. Kelemahan teknik pemadatan memori : ◦ Memerlukan waktu yang sangat banyak ◦ Sistem harus menghentikan sementara semua proses selagi melakukan pemadatan. Sehingga meningkatkan waktu tanggap di sistem interaktif Pencatatan Pemakaian memori Memori yang tersedia harus dikelola, dilakukan dengan pencatatan pemakaian memori. Terdapat tiga cara utama pencatatan pemakaian memori yaitu : ◦ Pencatatan memakai peta bit (bitmap) ◦ Pencatatan memakai senarai berkait ◦ Pencatatan memakai sistem buddy Pencatatan Menggunakan peta bit (bitmap) Memori dibagi menjadi unit-unit alokasi, berkorespondensi dengan tiap unit alokasi adalah satu bit pada peta bit (bitmap). ◦ Nilai 0 pada peta bit berarti unit tsb masih bebas ◦ Nilai 1 berarti unit tsb digunakan. 0 0 0 7 1 7 0 1 2 3 4 5 6 7 0 1 1 1 1 0 0 1 1 1 1 1 1 1 1 1 0 0 2 0 1 1 1 1 0 1 . 3 . . . . . . . . 4 . . . . . . . . N . . . . . . . . N Keunggulan ◦ Dealokasi dapat dilakukan secara mudah, hanya tinggal menge-set bit yang berkorespondensi dengan unit yang telah tidak digunakan dengan 0 Kelemahan ◦ Harus dilakukan penghitungan lubang memori saat unit memori bebas ◦ Memerlukan ukuran peta bit besar untuk memori yang besar. Pencatatan Menggunakan Senarai Berkait Sistem operasi mengelola senarai berkait (link list) untuk blok-blok memori yang dialokasikan dan bebas Blok memori menyatakan memori untuk proses atau memori yang bebas (lubang) 0 0 P 0 7 0 4 1 7 H 4 H 14 3 2 P 17 4 P 22 1 N P 6 8 H 21 1 Keunggulan ◦ Tidak ada penghitungan blok lubang memori karena sudah tercatat pada simpul ◦ Memori yang diperlukan relatif lebih kecil Kelemahan ◦ Dealokasi sulit dilakukan karena terjadi beberapa operasi penggabungan simpul di senarai. Strategi Alokasi Memori Terdapat beragam strategi alokasi proses ke memori antara lain : ◦ ◦ ◦ ◦ ◦ First-fit algorithm Next-fit algorithm Best-fit algorithm Worst-fit algorithm Quick-fit algorithm First-fit algorithm Strategi ini dapat dilakukan pada pencatatan dengan bitmap atau senarai berkait Manajemen memori menelusuri bitmap atau senarai berkait sampai menemukan lubang besar yang memadai untuk ditempatkanya proses. Keunggulan ◦ Algoritma ini akan mememukan lubang memori paling cepat dibandingkan algoritma lain. Next-fit algorithm Strategi ini dapat dilakukan pada pencatatan bit dengan bitmap atau senarai berkait Mekanisme algoritma sama dengan firstfit algorithm, hanya saja penelusuran tidak dimulai dari awal tetapi dimulai dari posisi terakhir kali menemukan segmen untuk proses. Simulasi oleh bays(1977) menunjukkan next-fit algorithm berkinerja buruk dibanding first-fit algorithm. Best-fit algorithm Strategi ini dapat dilakukan pada pencatatan memori dengan bitmap atau senarai berkait. Algoritma mencari sampai akhir dan mengambil lubang terkecil yang dapat memuat proses. Algoritma ini mencoba menemukan lubang yang mendekati ukuran lubang yang diperlukan. Kelemahan ◦ Best-fit algorithm sangat lambat dibanding first-fit algorithm karena selalu menelusuri seluruhnya setiap kali digunakan. ◦ Menghasilkan pemborosan memori lebih banyak dibanding first-fit atau next-fit algorithm karena first-fit dan next-fit selalu mengisi lubang kecil yang tidak digunakan. Worst-fit algorithm Dapat dilakukan pada pencatatan memori dengan bitmap atau senarai berkait. Algoritma ini mencari lubang besar yang tersedia, sehingga lubang dapat dipecah menjadi cukup besar agar dapat digunakan proses selanjutnya. Simulasi menunjukkan worst-fit bukan gagasan yang bagus. Quick-fit algorithm Strategi ini hanya untuk pencatatan memori dengan senarai berkait. Keempat algoritma dapat dipercepat dengan mengelola dua senarai yaitu ; ◦ Senarai untuk proses ◦ Senarai untuk lubang memori Keunggulan ◦ Teknik ini mempercepat pencarian lubang atau penempatan proses. Kelemahan ◦ Kompleksitas dealokasi memori bertambah dan melambatkan dealokasi memori karena memori yang dibebaskan harus dipindah dari senarai proses ke senarai lubang. Sistem Buddy Adalah algoritma pengelolaan memori yang memanfaatkan kelebihan penggunaan bilangan biner untuk pengalamatan memori. Karakteristik bilangan biner digunakan untuk mempercepat penggabungan lubang-lubang berdekatan ketika proses berakhir / dikeluarkan. Manajemen memori mengelola senarai blok bebas berukuran 1,2,4,5,16 byte dan seterusnya sampai kapasitas memori. Mekanisme pengelolaan Contoh : ◦ Awalnya semua proses bebas dan hanya satu senarai 1 Mbyte (1024 KByte), senarai lain masih kosong. ◦ Datang proses baru berukuran 85 Kilobyte, maka mekanisme yang dijalankan sbb : ◦ Proses 85 Kilobyte harus dialokasikan ke ukuran terdekat yakni 128 Kilobyte. ◦ Karena tidak tersedia blok berukuran 128 Kilobyte atau 256 atau 512 Kilobyte, maka blok 1 Megabyte dipecah menjadi dua blok 512 Kilobyte. Blok pecahan disebut buddies. ◦ Salah satu blok 512 Kilobyte yang beralamat 0 dipecah menjadi dua blok buddies 256 Kilobyte. Satu beralamat mulai dari 0 dan lainya mulai 256 ◦ Blok 256 pada alamat 0 dipecah menjadi dua blok buddies 128 Kilobyte. ◦ Blok yang pertama dialokasikan ke proses baru. Keunggulan ◦ Alokasi dan dealokasi pada sistem buddy dapat dilakukan dengan cepat. Kelemahan ◦ Utilisasi memori pada sistem buddy sangat tidak efisien. ◦ Banyak terjadi fragmentasi internal.