Manajemen Memori STMIK MDP Palembang
Pendahuluan 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 dapat berupa menempatkan/ menyimpan dari/ke alamat di memori, penambahan, dan sebagainya. Tugas sistem operasi adalah mengatur peletakan banyak proses pada suatu memori. Memori harus dapat digunakan dengan baik, sehingga dapat memuat banyak proses dalam suatu waktu. Dalam manajemen memori ini, kita akan membahas bagaimana urutan alamat memori yang dibuat oleh program yang berjalan.
Manajemen memori melakukan tugas penting dan komplek berkaitan dgn : Memori utama sbg sumber daya yang harus dialokasikan dan dipakai bersama di antara sejumlah proses yg aktif. Agar dapat memanfaatkan pemroses dan fasilitas I/O secara efesien, maka diinginkan memori yg dapat menampung sebanyak mungkin proses Upaya agar pemrogram atau proses tidak dibatasi kapasitas memori fisik di sistem komputer
Manajemen Memori Berdasarkan Keberadaan Swapping dibagi dua : Manajemen tanpa swapping, manajemen memori tanpa pemindahan citra proses antara memori utama dan disk selama eksekusi Manajemen dengan swapping, manajemen memori dengan pemindahan citra proses antara memori utama dan disk selama eksekusi
Manajemen memori berdasarkan alokasi memori dibagi dua : Alokasi memori berurutan (Kontigu) Alokasi memori tdk berurutan (non – kontigu)
1.Alokasi memori berurutan Pada multiprogramming, memori utama harus mengalokasikan tempat untuk SO dan beberapa user proses. Biasanya memori utama dibagi menjadi 2 bagian, yaitu alokasi untuk residen SO dan sisanya untuk proses User So 512K
1.1 Multiprogramming dengan Partisi Statis Multiprogramming dengan partisi statis dilakukan dengan cara membagi memori mjd beberapa partisi dgn ukuran tetap. Jika ada beberapa proses yg menggunakan memori utama scr bersamaan, maka memori harus dibagi mjd beberapa partisi dgn ukuran tertentu. Tiap2 partisi digunakan oleh satu program. Jika proses tsb telah selesai, maka lokasi partisi tsb akan digunakan oleh proses yg lain. Contohnya IBM OS2/360
1.1.1 Ukurannya Sama SO 256 Kb Partisi 1 Partisi 2 256 Kb Partisi 5 Beberapa proses yg hendak masuk dapat diletakkan pd sembarang partisi yang kosong Model ini akan mengakibatkan suatu proses yg lebih besar dari partisi yg ada tidak dapat dialokasikan, sehingga perlu dibuat overlay. Namun apabila proses2 yg ada di tiap partisi memiliki ukuran yg lebih kecil daripada partisinya, maka akan timbul sisa2 partisi yg memboroskan Partisi 5 SO Partisi 1 256 Kb Partisi 2 256 Kb Partisi 3 256 Kb Partisi 4 256 Kb 256 Kb
1.1.2 Ukurannya Tidak Sama Tiap2 partisi mempunyai ukuran yg tidak sama. Ada dua strategi pengalokasian memori pd model ini : Banyak antrian Satu antrian untuk seluruh Partisi 5 SO Partisi 1 100 Kb Partisi 2 256 Kb Partisi 3 350 Kb Partisi 4 400 Kb 500 Kb
1. Banyak Antrian Satu antrian untuk setiap partisi Proses ditempatkan pd partisi dgn ukuran terkecil yg dapat memuatnya. Model ini memiliki kelemahan, dimana ada partisi tertentu yg panjang antriannya, di lain pihak ada beberapa partisi yg kosong Dapat meminimumkan pemborosan memori
2. Satu antrian untuk seluruh Proses diantrikan sbg antrian tunggal Memiliki kekurangan, yaitu jika proses yg memiliki ukuran lebih kecil diletakkan pd partisi yg ukurannya lebih besar, maka akan terjadi pemborosan Namun demikian cara ini lebih fleksibel dengan implementasi dan operasinya lebih minimum karena hanya mengelola satu antrian saja
1.2 Multiprogramming dengan Partisi Dinamis Multiprogramming dgn partisi statis ternyata tidak efesien, karena terjadi pemborosan memori Untuk menghindari hal tsb, maka dibuat suatu konsep partisi dinamis, dimana partisi baru akan dibuat setelah proses masuk ke memori utama Dengan cara ini diharapkan utilitas CPU akan semakin bertambah Ada dampak buruk yg timbul yaitu muncul lubang2 kecil di antara 2 proses yang ditempatkan. Disamping itu juga akan sulit dalam melakukan alokasi dan dealokasi
Contoh : Ada 5 proses yg dieksekusi secara FCFS. Job Queue Proses Memori Waktu P1 P2 P3 P4 P5 600K 1000K 300K 700K 500K 10 5 20 8 15 SO 2160 KB 400 KB 2560 KB
External Fragmentation : Adanya beberapa lubang dengan kapasitas total yang cukup besar untuk suatu proses, tetapi lubang2 tsb tidak saling berdekatan. Salah satu cara untuk menanggulanginya adalah dengan melakukan compaction, yang menempatkan ulang proses2 yang telah ada pada memori utama dan diatur sedemikian rupa sehingga posisi lubang dapat berdekatan.
Ada 5 strategi pengalokasian memori untuk mencari lubang kosong yg tepat, yaitu : First-fit : pencarian dimulai dari awal dan akan berhenti jika ditemukan lokasi pertama yang cukup besar untuk menempatkan proses tsb. Next-Fit : Sama dengan First-fit, tetapi pencarian tidak dimulai dari awal, namun lokasi terakhir kali menemukan segmen yg cocok, dan akan berhenti jika ditemukan lokasi pertama yang cukup besar untuk menempatkan proses tersebut.
Best-Fit : Pencarian dimulai dari awal dan akan berhenti jika ditemukan lokasi terkecil pertama yang cukup untuk menempatkan proses tsb. Worst-Fit : Pencarian dimulai dari awal dan akan berhenti jika ditemukan lokasi paling besar yang cukup untuk menempatkan proses tsb. Quick-Fit : Cara ini hanya cocok untuk pencatatan dgn linked list.
Memilih yang terbaik diantara keempat metoda di atas adalah sepenuhnya tergantung kepada pengguna, karena setiap metoda memiliki kelebihan dan kekurangan masing-masing. Menggunakan best fit dan worst fit berarti kita harus selalu memulai pencarian lubang dari awal, kecuali apabila lubang sudah disusun berdasarkan ukuran. Metode worst fit akan menghasilkan sisa lubang yang terbesar, sementara metoda best fit akan menghasilkan sisa lubang yang terkecil.