Manajemen merupakan cara dalam mengatur atau mengorganisakan sesuatu. Sedangkan dalam KBBI, manajemen merupakan penggunaan sumber daya secara efektif untuk mencapai suatu sasaran atau tujuan. Lalu, memori merupakan tempat yang digunakan untuk menyimpan infromasi di dalam sebuah komputer, baik itu nanti disimpan secara permanen atau tidak.
Maka dari itu, manajemen memori merupakan pengaturan penggunaan sumber daya dan pengalokasian memori agar fungsi dari memori tersebut dapat digunakan secara efektif. Manajemen memori juga berkaitan dengan pengalokasian dan penggunaan sumber daya untuk sejumlah proses yang sedang aktif.
Manajemen memori berhubungan dengan memori utama yang harus diatur sebaik mungkin agar dapat meningkatkan utilitas dari CPU dengan sebaik mungkin, data dan intruksi dapat diakses lebih cepat oleh CPU, serta transfer data menjadi lebih efisien sebab memori utama memiliki kapasitas yang terbatas.
Fungsi manajemen memori:
- Mengelola informasi yang ada di memori, berhubungan dengan informasi yang terpakai dan yang tidak terpakai.
- Mengalokasikan memori terhadap proses yang sedang dibutuhkan.
- Mendealokasikan memori terhadap proses yang telah selesai.
- Mengelola swapping antara memori utama dan disk atau penyimpanan sementara.
Swapping merupakan metode pengalihan proses dari memori utama ke penyimpanan sementara yang nantinya proses tersebut akan dipanggil kembali oleh memori utama jika ingin melanjutkan proses eksekusi. Manajemen memori bisa terjadi dengan swapping atau tanpa swapping.
Monoprogramming merupakan manajemen memori yang paling sederhana. Sistem komputer hanya akan mengijinkan satu proses dijalankan dalam satu waktu. Manajemen ini menggunakan seluruh sumber daya sehingga pengalokasian memori dilakukan secara berurutan. Proses lain hanya akan dijalankan ketika proses sebelumnya sudah selesai dieksekusi.
Multiprogramming merupakan manajemen memori yang satu atau banyak proses dapat dieksekusi dalam waktu yang bersamaan. Multiprogramming dapat memudahkan pemrogram karena pemrogram dapat membagi program menjadi dua atau banyak proses. Dengan hal tersebut dapat mengerjakan sejumlah job secara serentak sehingga dapat menggunakan sumber daya secara efisien.
Partisi Statis merupakan pembagian memori menjadi beberapa bagian partisi tetap yang di dalamnya terdapat proses-proses. Partisi jenis ini dibagi menjadi 2, yaitu pemartisian dengan ukuran yang sama dan pematisian dengan ukuran yang berbeda. Dalam pemartisian dengan partisi yang berukuran sama akan terdapat beberapa kelemahan. Jika program yang dijalankan lebih besar dibandingkan dengan partisi yang tersedia, maka akan program tidak bisa dijalankan. Dengan begitu pemrogram harus menyiapkan overlay yang artinya program akan dipecah-pecah menjadi beberapa bagian dan akan dijalankan secara bergantian yang pengeksekusiannya berdasarkan pada program yang lebih penting. Sebaliknya, jika program lebih kecil dibandingkan dengan partisi, maka akan menimbulkan fragmentasi atau pemborosan memori karena ada ruang kosong yang tidak terpakai.
Fragmentasi terbagi menjadi 2:
- Fragmentasi internal: partisi lebih besar dari proses
- Fragmentasi eksternal: partisi lebih kecil dari proses
Partisi Dinamis merupakan pembagian memori menjadi beberapa bagian partisi yang jumlah, lokasi, dan ukuran proses di memori dapat beragam sepanjang waktu secara dinamis. Proses yang akan masuk ke dalam memori akan dibuatkan partisi yang sesuai dengan kebutuhannya. Dengan seperti itu, utilitas dari memori dapat lebih dimanfaatkan.
Namun, dalam partisi jenis ini terdapat beberapa kelemahan. Pada partisi ini akan terdapat lubang-lubang kecil yang ada di antara partisi yang dipakai. Kemudian juga pengalokasian dan pendealokasian memori akan sedikit lebih rumit. Strategi alokasi memori merupakan pencarian sekumpulan blok memori yang bagiannya mencukupi untuk memuat proses. Lubang kosong harus sama atau lebih besar dari memori yang diperlukan oleh proses.
1. Algoritma First Fit
Pencarian dimulai secara urut dari awal. Pencarian akan berhenti pada lokasi pertama yang cukup untuk proses tersebut.
2. Algoritama Next-fit
Sama dengan algortima first fit, tapi kali ini pencarian akan mulai berjalan dari lokasi terakhir kali menemukan segmen yang cocok. Dan kemudian pencarian akan berhenti pada lokasi pertama yang cukup untuk proses tersebut.
3. Algoritama Best Fit
Pencarian akan dimulai secara urut dari awal. Pencarian akan berhenti pada lokasi pertama terkecil yang cukup atau paling pas untuk proses tersebut.
4. Algoritma Worst-fit
Pencarian dimulai secara urut dari awal. Pencarian akan berhenti pada lokasi yang paling besar yang cukup untuk proses tersebut.