Manajemen Memori adalah pusat kegiatan pada sebuah komputer, karena setiap proses yang akan dijalankan harus melalui memori terlebih dahulu. CPU mengambil instruksi dari memori sesuai yang ada pada program counter. Instruksi memerlukan proses memasukkan/menyimpan ke alamat di memori.
Tugas sistem operasi adalah mengatur peletakan banyak proses pada suatu memori. Algoritma untuk manajemen memori ini bervariasi dari yang menggunakan pendekatan primitif pada mesin sampai pemberian halaman dan strategi segmentasi. Memori harus dapat digunakan dengan baik, sehingga dapat memuat banyak proses dalam suatu waktu.
Bagian operating system yang mengatur memori disebut dengan memory manager. Pemakaian memori (manajemen memori dan organisasi) perlu dilakukan karena hal tersebut sangat mempengaruhi kinerja komputer, sehingga memiliki fungsi dan tugas penting dan kompleks yaitu berkaitan dengan :
- Memori utama sebagai sumber daya yang harus dialokasikasikan dan dipakai bersama di antara sejumlah proses yang aktif, sehingga dapat memanfaatkan pemroses dan fasilitas masukan/keluaran secara efisien, sehingga memori dapat menampung sebanyak mungkin proses.
- Upaya agar pemogram atau proses tidak dibatasi kapasitas memori fisik di sistem komputer.
Sistem manajemen memori dapat dibagi kedalam dua kelas, yaitu : pemindahan proses (back and forth) diantara memori utama dengan disk selama eksekusi (swapping and paging) dan tidak ada pemindahan proses.
Manajemen memori memiliki beberapa fungsi, yaitu :
- Mengelola informasi memori yang dipakai dan tidak dipakai.
- Mengalokasikan memori ke proses yang memerlukan.
- Mendealokasikan memori dari proses yang telah selesai.
- Mengelola swapping antara memori utama dan disk.
1. Manajemen Memori pada Sistem Multiprogramming
Untuk sistem komputer yang berukuran besar (bukan small computers), membutuhkan pengaturan memori, karena dalam multiprogramming akan melibatkan banyak pemakai secara simultan sehingga di memori akan terdapat lebih dari satu proses bersamaan.
Oleh karena itu dibutuhkan sistem operasi yang mampu mendukung dua kebutuhan tersebut, meskipun hal tersebut saling bertentangan, yaitu :
- Pemisahan ruang-ruang alamat, melakukan proteksi memori dengan isolasi ruang-ruang alamat sehingga proses-proses tidak saling mengganggu.
- Pemakaian bersama memori sehingga memungkinkan proses-proses bekerja sama mengakses daerah memori bersama.
2. Klasifikasi Manajemen Memori
Skema klasifikasi menurut Deitel [Dei-90]
3. Manajemen Memori Berdasarkan Keberadaan Swapping
a. Manajemen memori dengan swapping
Manajemen memori dengan kemampuan memindahkan citra proses antara memori utama dan harddisk selama eksekusi.
1. Multiprogramming dengan pemartisian dinamis
Pemartisian dinamis akan meningkatkan utilisasi memori karena jumlah, lokasi, dan ukuran proses di memori dapat beragam sepanjang waktu secara dinamis.
2. Alokasi ruang swap pada disk
3. Pencatatan pemakaian memori
- Pencatatan memakai peta bit, Memori dibagi menjadi unit-unit alokasi, berkorespondensi dengan tiap unit alokasi adalah satu bit pada peta bit.
- Pencatatan memakai senarai berkait, Sistem operasi mengelola senarai berkait (linked list) untuk blok-blok memori yang dialokasikan dan bebas.
- Pencatatan memakai sistem buddy, Sistem buddy adalah algoritma pengelolaan memori yang memanfaatkan kelebihan penggunaan bilangan biner untuk pengalamatan memori.
4. Strategi alokasi memori
- First-fit algorithm, Manajer memori menelusuri peta bit atau senarai berkait sampai menemukan lubang besar yang memadai untuk ditempati proses. Lubang dibagi dua, untuk proses dan lubang yang tidak digunakan kecuali ketika besar lubang tepat sama dengan ukuran yang diperlukan proses.
- Next-fit algorithm, Penelusuran sama dengan first-fit algorithm, namun dimulai dari posisi terakhir kali menemukan segmen untuk proses.
- Best-fit algorithm, Algoritma mencari sampai akhir dan mengambil lubang terkecil yang dapat memuat proses.
- Worst-fit algorithm, Selalu mencari lubang besar yang tersedia
- Quick-fit algorithm, Hanya untuk pencatatan pada senarai berkait. Hanya menelusuri senarai lubang memori bukan di senarai proses.
b. Manajemen memori tanpa swapping
Manajemen memori tanpa kemampuan memindahkan citra proses antara memori utama dan harddisk selama eksekusi.
Manajemen memori untuk monoprogramming
- Hanya ada satu proses pada satu saat
- Hanya satu proses menggunakan semua memori
- Pemakai memuatkan program ke seluruh memori dari disk
- Program mengambil kendali seluruh mesin
- Manajemen memori untuk multiprogramming dengan pemartisian statis
- Mempermudah pemrogram
- Dapat memberi layanan interaktif ke beberapa user secara simultan
- Efisiensi penggunaan sumber daya
- Eksekusi lebih murah jika proses besar dipecah menjadi beberapa proses
- Dapat mengerjakan sejumlah proses secara simultan
c. Manajemen Memori Berdasarkan Alokasi Memori
- Alokasi memori berturutan, Masing-masing proses menempati satu blok tunggal lokasi memori yang berturutan.
- Alokasi memori tak berturutan, Program dibagi menjadi beberapa blok atau segmen dan ditempatkan tanpa harus berdekatan. Teknik ini biasa digunakan pada sistem memori maya sebagai alokasi page-page dilakukan secara global.
Demikian artikel mengenai Manajemen Memori, semoga informasi yang diberikan bermanfaat.

