Manajemen memori adalah suatu tindakan yang dilakukan untuk mengelola memori yang ada
di komputer. Dalam prosesnya, menajemen memori diawali dengan plan atau rencana bagaimana
program akan berjalan, dilanjut dengan organized atau mengorganisasikan rencana agar berjalan
dengan lebih matang. Kemudian dilakukan action atau pelaksanaan dari program yang sudah
direncanakan. Dalam action diperlukan juga control untuk mengontrol, mengatur, dan mengawasi
jalannya program. Lalu diakhiri dengan evaluation atau mengevaluasi dan meninjau kembali di
mana letak kesalahan dari program yang sudah dijalankan agar dapat dilakukan perbaikan.
Kegunaan utama dari manajemen memori adalah untuk menyediakan cara untuk
mengalokasikan bagian memori secara dinamis ke program sesuai kebutuhan dan
membebaskannya untuk digunakan kembali saat tidak lagi dibutuhkan.
Di samping itu, memori
utama harus dikelola sebaik mungkin dengan tujuan sebagai berikut :
1. Untuk meningkatkan kegunaan dari CPU dengan semaksimal mungkin
2. CPU dapat mengakses data dan instruksi dengan cepat
3. Pemakaiannya harus seefisien mungkin karena memori utama memiliki kapasitas yang
terbatas
4. Dalam mentranfer atau memindahkan data dari/ke memori utama ke/dari CPU dapat
dilakukan dengan efisien
Manajemen memori memperlakukan memori utama sebagai sumber daya yang harus
dialokasikan dan dibagi di antara banyak proses aktif. Manajemen Memori juga berfungsi untuk
memastikan bahwa pemrogram dan prosesor tidak dibatasi oleh jumlah memori fisik yang tersedia
dalam sistem komputer.
Fungsi dari manajemen memori adalah sebagai berikut :
1. Mengelola atau mengatur informasi memori yang terpakai maupun yang tidak terpakai
2. Mengalokasikan memori ke proses yang diperlukan
3. Mendealokasikan memori dar proses yang telah selesai
4. Mengelola swapping antara memori utama dan disk
Swapping merupakan proses di mana Anda dapat beralih sementara dari memori ke lokasi
memori dan mengingatnya kembali ke memori saat eksekusi dilanjutkan. Berdasarkan keberadaan
swapping, manajemen memori dibagi menjadi 2, yaitu :
1. Manajemen tanpa swapping
2. Manajemen dengan swapping
Monoprogramming
Monoprogramming adalah manajemen memori yang paling sederhana. Sebuah sistem
komputer hanya dapat menjalankan satu program/pengguna dalam satu waktu. Semua sumber
daya sepenuhnya dikendalikan oleh proses yang sedang berjalan. Ciri-ciri dari manajemen memori
monoprogramming adalah sebagai berikut :
1. Hanya dapat melakukan satu proses pada satu waktu
2. Hanya ada satu proses dalam menggunakan semua memori
3. Pemrogram atau pemakai menautkan program ke seluruh memori dari disk atau tape
4. Seluruh mesin diambil kendali oleh program
Pengalokasian memori dilakukan secara berurutan dikarenakan hanya terdapat satu proses dan
proses tersebut menguasai seluruh system.
Multiprogramming dengan Pemartisan Statis
Multiprogramming melakukan banyak proses pada memori utama pada saat yang
bersamaan. Alasan menggunakan multiprogramming adalah :
1. Pemrogram dapa membagi program menjadi dua proses atau lebih sehingga dapat
mempermudah pemprogram
2. Dapat memberi layanan interaktif ke beberapa orang secara simultan
3. Penggunaan sumber dayanya efisien
4. Karena proses besar dipecah menjadi beberapa proses kecil maka eksekusi menjadi lebih
murah
5. Dapat mengerjakan sejumlah pekerjaan atau job secara simultan
Partisi Statis
Memori itu dibagi menjadi sejumlah partisi tetap. Pada partisi-partisi tersebut proses –
proses ditempatkan. Berdasarkan ukurannya, partisi statis dibagi menjadi dua, yaitu sebagai
berikut :
1. Pemartisan dengan partisi yang ukurannya sama
Dalam pemartisan ini, ukuran semua partisi memorinya sama. Beberapa proses yang
ukurannya kurang atau sama dengan ukuran partisi dimasukkan ke sembarang partisi yang
tersedia.
Pemartisan ini memiliki beberapa kelemahan, yaitu :
• Apabila program yang akan dijalankan ukurannya lebih besar dibandingkan partisi
yang tersedia, maka program tidak dapat dimuat dan dijalankan. Pemrogram harus
menyediakan overlay. Overlay adalah pemecahan program menjadi bagian –
bagian lebih kecil yang dapat dimuat ke dalam memori, sehingga hanya bagian
program yang benar – benar dieksekusi yang dimasukkan ke memori utama dan
saling bergantian. Untuk overlay itu sendiri, dibutuhkan system operasi yang
mendukung proses swapping.
• Di sisi lain, apabila program yang akan dijalankan berukuran lebih kecil dari ukuran
partisi yang tersedia, maka akan menciptakan ruang yang tak terpakai atau yang
sering disebut dengan fragmentasi internal. Dengan adanya fragmentasi internal ini,
dapat menyebabkan pemborosan memori. Namun, kelemahan ini dapat dikurangi
dengan membuat partisi tetap dengan ukuran yang berbeda.
2. Pemartisan dengan partisi yang ukurannya berbeda
Dalam pemartisan ini, ukuran semua partisi memorinya berbeda. Misal dalam suatu system
operasi terdapat 3 partisi yang ukurannya berbeda, partisi 1 berukuran 100 Kbyte, partisi 2
berukuran 256 Kbyte, dan partisi 3 berukuran 350 Kbyte.
Fragmentasi pada Partisi Statis
Fragmentasi merupakan pemborosan atau penyiaan memori yang terjadi di setiap
organisasi penyimpanan. Fragmentasi sendiri dapat dibagi mejadi 2, yaitu :
1. Fragmentasi internal yaitu proses yang tidak mengisi penuh partisi yang telah ditetapkan
untuk suatu proses.
2. Fragmentasi eksternal yaitu sebuah kondisi yang partisinya tidak dapat digunakan karena
ukuran partisi lebih kecil dari ukuran proses yang menunggu di antrian.
Partisi Dinamis
Partisi statis menyebabkan banyak memori yang terbuang oleh proses yang lebih kecil dari
partisi yang ditempatinya. Sedangkan partisi dinamis memungkinkan jumlah, lokasi, dan ukuran
proses dalam memori berubah secara dinamis dari waktu ke waktu. Proses yang masuk ke memori
dipecah dengan cepat jika perlu. Teknik ini meningkatkan efisiensi penyimpanan.
Adapula kelemahan dari partisi dinamis yaitu :
1. Dapat terjadi lubang – lubang kecil memori di antara partisi – partisi yang dipakai
2. Memperumit alokasi dan dealokasi memori
Kelemahan pemadatan memori :
1. Memerlukan waktu yang lebih lama
2. System harus menghentikan sementara proses saat pemadatan, sehingga
mengakibatkan waktu tanggap
Strategi Alokasi Memori
Alokasi harus menemukan satu set blok memori yang cukup besar untuk mengakomodasi
proses, dan lubang kosong yang sama atau lebih besar dari ukuran memori yang dibutuhkan oleh
proses. Berikut beberapa strategi alokasi memori :
1. Algoritma First Fit
Strategi ini dimulai dari awal dan akan berhenti jika sudah ditemukan lokasi pertama yang
cukup besar untuk menempatkan proses tersebut.
Contoh :
Terdapat partisi kosong pada memori dengan urutan dan ukuran : 4 Kb, 3 Kb, 2 Kb, 6 Kb
Bila datang data yang berukuran 3 Kb maka akan menempati partisi ukuran 4 Kb
2. Algoritma Next-Fit
Sama dengan first-fit hanya saja pencarian tidak dimulai dari awal, tapi dari lokasi terakhir
kali menemukan segmen yang cocok dan akan berhenti jika ditemukan lokasi pertama yang
cukup besar untuk menempatkan proses tersebut.
Contoh :
Terdapat partisi pada memori dengan urutan dan ukuran : 4 Kb, 3 Kb, 2 Kb, 6 Kb
Bila datang data yang berukuran 3 Kb dan pencarian partisi dimulai dari urutan ketiga
karena sebelumnya posisi terakhir pencarian di partisi kedua, maka data tersebut akan
menempati partisi ukuran 6 Kb.
3. Algoritma Best Fit
Strategi ini dimulai dari awal dan akan berhenti jika sudah ditemukan lokasi terkecil
pertama yang cukup untuk menempatkan proses tersebut.
Contoh :
Terdapat partisi kosong pada memori dengan urutan dan ukuran : 4 Kb, 3 Kb, 2 Kb, 6 Kb
Bila datang data yang berukuran 3 Kb maka akan menempati partisi ukuran 3 Kb.
4. Algoritma Worst-fit
Strategi ini dimulai dari awal dan akan berhenti jika sudah ditemukan lokasi terbesar yang
cukup untuk penempatan proses tersebut.
Contoh :
Terdapat partisi kosong pada memori dengan urutan dan ukuran : 4 Kb, 3 Kb, 2 Kb, 6 Kb
Bila datang data yang berukuran 3 Kb maka akan menempati partisi ukuran 6 Kb.