Sebelum pada pengertian manajemen memori, saya akan menjelaskan sedikti tentang manajemen dan memori secara terpisah terlebih dahulu.
Manajemen adalah proses yang dilakukan seseorang saat merencanakan proyek yang menguntungkan baik individu atau kelompok. Pengelolaan tersebut harus dilakukan dalam rangka memenuhi tujuan yang akan dicapai dalam sebuah kerjasama dengan mengoptimalkan sumber daya yang ada
Selain berfungsi sebagai tempat untuk menyimpan sementara program, memori berfungsi sebagai pusat aktivitas pada komputer karena setiap operasi yang akan dilakukan terlebih dahulu harus dilakukan melalui memori sesegera mungkin. Untuk mengeksekusi sebuah program, itu harus dimuat ke dalam memori dan memulai proses tertentu di sana.
Manajemen memori adalah strategi khusus untuk mengkonfigurasi memori komputer. Ada intruksi tentang mengalokasikan memori untuk proses saat ini serta cara mengatur alokasi ruang memori dalam prosedur ini. Pemeliharaan ini sangat penting bagi sistem komputer agar dapat beroperasi dengan aman dan sesuai dengan harapan user (pengguna).
Memori memiliki berbagai jenis antara lain, register memory, on chip cache memory, off chip cache memory serta main memory (ROM dan RAM), ssd, hdd.
Manajemen memori juga memiliki kemampuan untuk meningkatkan produktivitas atau utilitas CPU, meningkatkan kecepatan akses data oleh CPU, meningkatkan efisiensi transfer data antara memori utama dan CPU, dan banyak lagi.
Suatu proses harus berada di memori sebelum dapat dieksekusi, oleh karena itu diperlukan proses swapping untuk proses ini. Swapping adalah teknik untuk mempercepat proses dengan memindahkan data dari memori utama ke lokasi sekunder (disk), dimana proses tersebut akan tetap sampai eksekusi selesai. Tujuan dari teknik swapping ini adalah untuk meningkatkan kinerja sistem selama multiprogramming.
Monoprogramming adalah istilah yang digunakan ketika sistem komputer hanya mengizinkan satu program atau perangkat lunak untuk dijalankan pada satu waktu. Monoprogramming ini merupakan manajemen memori sederhana.
Monoprogramming memiliki ciri-ciri antara lain, hanya mengizinkan satu proses untuk menggunakan semua memori, membuat program mengakses semua memori disk, membuat program mengambil alih dari semua mesin, dan yang terakhir hanya terdapat satu proses pada satu saat, sehingga proses baru akan terlaksana ketika proses lama sudah selesai eksekusi.
Setelah membahas tentang monoprogramming, yang selanjutnya adalah membahas multiprogramming, yang merupakan kebalikan dari monoprogramming. Multiprogramming adalah banyak proses pada memori utama pada saat bersamaan, nah pada manajemen memori ini dapat dilakukan dengan pemartisian statis dan pemartisian dinamis.
Pada pemartisian statis berdasarkan ukuran ada 2 yaitu:
- Pemartisian menjadi partisi-partisi berukuran sama, yaitu ukuran partisi memori adalah sama.
Pada pemartisian ini memiliki kekurangan, jika program berukuran lebih besar dibandingkan partisinya maka program terbut tidak dapat dimuat, tidak dapat dijalankan.
Jika program berukuran sangat kecil dibandingkan partisinya, maka banyak ruang yang tidak dipakai.
- Pemartisian menjadi partisi-partisi berukuran berbeda, yaitu ukuran semua partisi memori adalah berbeda-beda.
Pada pemartisian ini ada 2 strategi yaitu:
- Satu antrian untuk setiap partisi.
Startegi ini dapat mengurangi kehilangan memori, tetapi juga dapat mengakbitkan antrian panjang karena antrian partisi-partisi yang lain kosong.
- Satu antrian untuk semua partisi.
Karena hanya melibatkan satu antrian, starteginya lebih fleksibel dan membutuhkan implementasi dan pengoperasian yang lebih minimal atau sedikit. Hal ini juga memungkinkan kemungkinan proses skala kecil yang dijalankan pada bagian skala besar dari jalur partisi.
Pada pemartisian dinamis, kuantitas, lokasi, dan ruang lingkup proses memori dapat berkembang seiring waktu. Prosedur prosedur yang akan masuk ke dalam memori akan segera dibagi menjadi beberapa bagian sesuai kebutuhan. Dalam pemartisian ini, beberapa kelemahannya yaitu memungkinkan terjadinya lubang memori skala kecil di antara bagian-bagian yang berpartisipasi. Selain itu, pemartisian ini juga merumitkan mengukur alokasi dan dealokasi memori
Ketika kita ingin memanajemen suatu memori, maka kita harus tau strategi untuk mengalokasikan memori. Ada beberapa strategi alokasi memori antara lain:
- Algoritma First Fit
Dalam algrotima ini, pekerjaan dimulai dari awal dan akan berlanjut jika lokasi pertama yang besar ditemukan untuk memantau proses yang bersangkutan.
Misalnya dalam proses ini, ada segmen memori dengan ukuran dan format berikut : 6kb, 7kb, 5kb, dan 2kb. Jika datang data yang berukuran 5kb maka akan menempati partisi ukuran 6kb.
- Algoritma Next Fit
Dalam algoritma ini, mirip dengan algoritma first fit, hanya proses awal yang benar-benar dilakukan. Namun, dari lokasi terakhir kali menemukan segmen yang cocok dan akan dilakukan proses dengan mengidentifikasi lokasi yang cukup besar untuk memantau proses yang bersangkutan.
Dalam proses ini, misalnya terdapat fragmen memori dengan ukuran dan bentuk sebagai berikut : 3kb, 7kb, 5kb, dan 2kb. Jika data berukuran 7kb dan pencairan di partisi kedua, maka data terbeut akan menempati partisi ukuran 2kb.
- Algoritma Best Fit
Pada algoritma ini pencarian dimulai dari awal dan akan berhenti jika ditemukan lokasi terkcil pertama yang cukup untuk menempatkan proses tersebut.
Contoh pada proses ini adalah misal proses memerlukan 8 byte memori dengan ruang memori tersebut P1 = 16, P2 = 8, P3 = 10, P4 = 6, nah proses 8 byte tersebut akan masuk ke dalam P2 karena pada P2 sisa ruang memory yaitu 0.
- Algoritma Worst Fit
Pada algoritam ini pencarian dimulai dari awal dan akan berhenti jika ditemukan lokasi yang paling besar yang cukup untuk menempatkan proses tersebut.
Contoh pada proses ini adalah misal dengan soal yang sama seperti pada Algoritma Best Fit, nah pada algoritma ini proses memerlukan 8 byte dan 8 byte tersebut akan langsung masuk ke P1 karena pada P1 memiliki ruang memori yang terbesar diantara keempat ruang tersebut.