Manajemen Memori
Memori utama harus dikelola dengan sebaik-baiknya agar:
- Memaksimalkan penggunaan CPU
- CPU bisa mengakses data serta instruksi dengan cepat
- Meningkatkan efisiensi penggunaan memori utama yang berkapasitas terbatas
- Meningkatkan efisiensi transfer data antara memori utama dengan CPU
Manajemen memori memperlakukan memori utama sebagai sumber daya yang perlu dibagikan diantara beberapa proses yang aktif.
Selain itu, manajemen memori juga mencakup upaya untuk memastikan bahwa pemrogram ataupun pemroses tidak dibatasi oleh daya tampung memori fisik yang terdapat dalam sistem komputer.
Fungsi manajemen memori:
- Mengelola informasi memori yang digunakan dan yang tidak digunakan
- Membagikan memori ke proses yang membutuhkannya
- Mendealokasikan memori dari proses yang telah selesail
- Mengatur swapping antara memori utama dengan disk
Swapping merupakan sebuah proses yang dapat dipindahkan sementara dari memori ke sebuah tempat penyimpanan kemudian akan dipanggil kembali ke memori apabila ingin melanjutkan eksekusi
Monoprogramming merupakan jenis manajemen memori yang paling sederhana. Sebuah sistem komputer hanya dapat menjalankan satu program atau pengguna pada satu waktu.
Seluruh sumber daya sepenuhnya dikendalikan oleh proses yang sedang berjalan.
Ciri-ciri monoprogramming:
- Hanya satu proses pada satu waktu
- Hanya satu proses memakai seluruh memori
- Pengguna memuatkan program dari disk ataupun tape ke semua memori
- Program mengontrol seluruh mesin
Alokasi memori dijalankan secara berurutan karena hanya ada satu proses yang mengendalikan keseluruhan sistem.
Multiprogramming merupakan beberapa proses di memori utama secara bersamaan.
Alasan menggunakan multiprogramming:
- Memudahkan programmer karena programmer bisa membagi program menjadi dua proses atau bahkan lebih
- Bisa memberikan layanan interaktif untuk beberapa orang pada waktu yang bersamaan
- Pemakaian sumber daya yang lebih efisien
- Eksekusi lebih murah apabila proses besar dibagi menjadi beberapa proses yang lebih kecil
- Mampu mengerjakan banyak tugas sekaligus
Partisi statis merupakan pembagian memori menjadi sejumlah partisi tetap.
Menurut ukurannya, partisi statis dibagi menjadi dua, yaitu:
- Pemartisian dengan partisi berukuran sama
Semua partisi memori berukuran sama. Proses yang kurang dari atau sama dengan ukuran partisi ditempatkan pada partisi yang tersedia.
Kelemahannya antara lain:
- Jika program lebih besar dari partisi yang tersedia, program tidak dapat dimuat dan dijalankan. Pemrogram harus menyiapkan overlay. Overlay merupakan program yang dipecah menjadi bagian-bagian yang dapat dimuat ke dalam memori. Jadi, hanya bagian dari program yang benar-benar dieksekusi yang dimuat ke dalam memori utama secara bergantian. Untuk overlay pemrogram memerlukan sistem operasi yang mendukung swapping.
- Jika program lebih kecil dari ukuran partisi yang tersedia, maka akan meninggalkan ruang yang tidak terpakai yang disebut fragmentasi internal → memori yang terbuang. Kerugian ini dapat dikurangi dengan dibuatnya partisi tetap dengan ukuran yang berbeda.
- Pemartisian dengan partisi berukuran berbeda
Semua ukuran partisi penyimpanan berbeda.
Partisi statis mengakibatkan proses yang lebih kecil dari partisi yang mereka tempati menghabiskan terlalu banyak memori. Dengan partisi dinamis, jumlah, lokasi, dan ukuran proses dalam memori berubah seiring waktu. Proses yang memasuki memori segera dibuatkan partisi sesuai kebutuhan. Teknik ini dapat menambah kegunaan memori.
Namun, partisi dinamis juga memiliki kelemahan, diantaranya:
- Memungkinkan adanya celah memori kecil diantara partisi yang digunakan
- Memperumit alokasi memori serta dealokasi memori
Alokasi harus menemukan sekumpulan blok memori yang cukup besar untuk menampung proses dengan celah kosong yang sama atau lebih besar dari jumlah memori yang dibutuhkan proses.
Ada beberapa strategi alokasi memori, diantaranya:
- Algoritma first fit
Pencarian dimulai dari awal dan berakhir ketika menemukan lokasi awal yang cukup besar untuk mengakomodasi proses.
- Algoritma next-fit
Sama seperti First Fit, hanya saja pencarian tidak dimulai di awal, tetapi di tempat terakhir menemukan segmen yang cocok, dan akan berhenti apabila menemukan tempat pertama yang cukup besar untuk menempatkan proses.
- Algoritma best fit
Pencarian dimulai di awal dan akan berakhir apabila lokasi terkecil pertama yang dapat ditemukan cukup bagi proses tersebut untuk ditempatkan.
- Algoritma worst fit
Pencarian dimulai di awal dan akan berakhir apabila lokasi terbesar yang dapat ditemukan cukup bagi proses tersebut untuk ditempatkan.
0 Comments