Memori dan manajemen memori adalah hal penting dalam sistem operasi. Memori digunakan untuk menyimpan instruksi dan data, sementara manajemen memori mengelola alokasi dan pelepasan memori. Beberapa strategi yang digunakan termasuk memori maya, overlay, swapping, dan pencatatan status memori menggunakan peta bit atau linked list.
2. Pengertian Memori dan Manajemen Memori
Memori adalah pusat dari operasi pada sistem komputer
modern, berfungsi sebagai tempat penyimpanan informasi
yang harus diatur dan dijaga sebaik-baiknya. Memori adalah
array besar dari word atau byte, yang disebut alamat. CPU
mengambil instruksi dari memory berdasarkan nilai dari
program counter. Sedangkan manajemen memori adalah suatu
kegiatan untuk mengelola memori komputer. Proses ini
menyediakan cara mengalokasikan memori untuk proses atas
permintaan mereka, membebaskan untuk digunakan kembali
ketika tidak lagi diperlukan serta menjaga alokasi ruang
memori bagi proses.
3. 1.Konsep Dasar dari Manajemen Memori
Manajemen Memori merupakan salah satu bagian
Terpenting pada sistem operasi. Sejak awal komputer
digunakan untuk keperluan komputasi, kebutuhan akan memori
yang lebih besar dibandingkan dengan keadaan fisik memori di
Dalam sistem terus meningkat. Berbagai perhitungan dan
Strategi terus dilakukan untuk mengatasi keterbatasan ukuran
Memori fisik.
4. Sistem operasi memberikan tanggapan terhadap manajemen
memori utama untuk aktivitas-aktivitas sebagai berikut:
•Menjaga dan memelihara bagian-bagian memori yang sedang
digunakan dan dari yang menggunakan.
•Memutuskan proses-proses mana saja yang harus dipanggil
kememori jika masih ada ruang di memori.
•Mengalokasikan dan mendelokasikan ruang memori jika
diperlukan
5. 2. Konsep Binding
Pengikatan alamat adalah cara instruksi dan data (yang
Berada di disk sebagai file yang dapat dieksekusi) dipetakan ke
Alamat memori. Sebagian besar system memperbolehkan
Sebuah proses user (user process) untuk meletakkan di
Sembarang tempat dari memori fisik. Sehingga, meskipun
alamat dari komputer dimulai pada 00000, alamat pertama dari
proses user tidak perlu harus dimulai 00000. Pada beberapa
kasus,program user akan melalui beberapa langkah sebelum
dieksekusi (Gambar 1-1). Alamat pada source program
umumnya merupakan alamat simbolik. Sebuah compiler
biasanya melakukan pengikatan alamat simbolik (symbolic
address) ke alamat relokasi dipindah (relocatable address).
6. Misalnya compiler mengikatkan alamat simbolik ke alamat
relokasi "14 byte from the beginning of this module". Editor
Linkage mengikatkan alamat relokasi ini ke alamat absolute
(absolute addresses) "74014". Instruksi pengikatan instruksi
dan data ke alamat memori dapat dilakukan pada saat :
• Compile time : Jika lokasi memori diketahui sejak awal, kode
absolut dapat dibangkitkan, apabila terjadi perubahan alamat
awal harus dilakukan kompilasi ulang. Misalnya : program
format .com pada MS-DOS adalah kode absolut yang diikat
pada saat waktu kompilasi
• Load time : Harus membangkitkan kode relokasi jika lokasi
memori tidak diketahui pada saat waktu kompilasi.
7. • Execution time : Pengikatan ditunda sampai waktu eksekusi
jika proses dapat dipindahkan selama eksekusi dari satu
segmen memori ke segmen memori lain. Memerlukan
dukungan perangkat keras untuk memetakan alamat (misalnya
register basis dan limit)
3. Strategi Manajemen Memori
Strategi yang dikenal untuk mengatasi hal tersebut adalah
memori maya. Memori maya menyebabkan sistem seolah-olah
memiliki banyak memori dibandingkan dengan keadaan
memori fisik yang sebenarnya. Memori maya tidak saja
memberikan peningkatan komputasi, akan tetapi memori maya
juga memiliki bberapa keuntungan seperti :
8. • Large Address Space
Membuat sistem operasi seakan-akan memiliki jumlah memori
melebihi kapasitas memori fisik yang ada. Dalam hal ini
memori maya memiliki ukuran yang lebih besar daripada
ukuran memori fisik.
• Proteksi.
Setiap proses di dalam sistem memiliki virtual address space.
Virtual address space tiap proses berbeda dengan proses yang
lainnya lagi, sehingga apapun yang terjadi pada sebuah proses
tidak akan berpengaruh secara langsung pada proses lainnya
• Memory Mapping
Memory mapping digunakan untuk melakukan pemetaan image
dan file-file data ke dalam alamat proses. Pada pemetaan
memori, isi dari file akan di link secara langsung ke dalam
virtual address space dari proses.
9. • Fair Physical Memory Allocation
Digunakan oleh Manajemen Memori untuk membagi
penggunaan memori fisik secara “adil” ke setiap proses yang
berjalan pada sistem.
• Shared Virtual Memory.
Meskipun tiap proses menggunakan address space yang
berbeda dari memori maya, ada kalanya sebuah proses
dihadapkan untuk saling berbagi penggunaan memori
10. Dinamic Loading
Untuk memperoleh utilitas ruang memori, dapat
Menggunakan dynamic loading. Dengan dynamic loading,
sebuah rutin tidak disimpan di memori sampai dipanggil.
Semua rutin disimpanpada disk dalam format relocatable load.
Mekanisme dari dynamic loading adalah program utama di-
load dahulu dan dieksekusi. Bila suatu routine perlu
memanggil routine lain, routine yang dipanggil lebih dahulu
diperiksa apakah rutin yang dipanggil sudah di-load. Jika tidak,
relocatable linking loader dipanggil untuk me-load rutin yg
diminta ke memori dan meng-ubah tabel alamat.
11. Dinamic Linking
Sebagian besar sistem operasi hanya men-support static
linking, dimana sistem library language diperlakukan seperti
obyek modul yang lain dan dikombinasikan dengan loader ke
dalam binary program image. Konsep dynamic linking sama
dengan dynamic loading. Pada saat loading, linking ditunda
sampai waktu eksekusi. Terdapat kode kecil yang disebut stub
digunakan untuk meletakkan rutin library di memori dengan
tepat. Stub diisi dengan alamat rutin dan mengeksekusi rutin.
Sistem operasi perlu memeriksa apakah rutin berada di alamat
memori.Dinamic linking biasanya digunakan dengan sistem
library,seperti language subroutine library. Tanpa fasilitas ini,
Semua program pada sistem perlu mempunyai copy dari library
language di dalam executable image. Kebutuhan ini
menghabiskan baik ruang disk maupun memori utama.
12. Overlay
Sebuah proses dapat lebih besar daripada jumlah memori
yang dialokasikan untuk proses, teknik overlay biasanya
digunakan untuk kasus ini. Teknik Overlay biasanya digunakan
untuk memungkinkan sebuah proses mempunyai jumlah yang
lebih besar dari memori fisik daripada alokasi memori yang
diperuntukkan. Ide dari overlay adalah menyimpan di memori
hanya instruksi dan data yang diperlukan pada satu waktu. Jika
intruksi lain diperlukan, maka instruksi tersebut diletakkan di
ruang memori menggantikan instruksi yang tidak digunakan
lagi
13. Swapping
Swapping adalah suatu proses yang dapat dialihkan
sementara dari memori ke suatu tempat penyimpanan, dan
dipanggil kembali ke memori jika akan melanjutkan eksekusi.
Sebuah proses harus berada di memori untuk dieksekusi.
Proses juga dapat ditukar (swap) sementara keluar memori ke
backing store dan kemudian dibawa kembali ke memori untuk
melanjutkan eksekusi.
Backing store berupa disk besar dengan kecepatan tinggi
Yang cukup untuk meletakkan copy dari semua memory image
Untuk semua user, sistem juga harus menyediakan akses
langsung kememory image tersebut.
14. Ruang Alamat Logika dan Fisik
Alamat yang dihasilkan oleh CPU berupa alamat logika,
sedangkan yang masuk ke dalam memori adalah alamat fisik.
Pada compile time dan load time, alamat fisik dan logika
identik. Sebaliknya, perbedaan alamat fisik dan logika terjadi
pada execution time.
Kumpulan semua alamat logika yang dihasilkan oleh
program adalah ruang alamat logika/ruang alamat virtual.
Kumpulan semua alamat fisik yang berkorespondensi dengan
alamat logika disebut ruang alamat fisik. Pada saat program
berada di CPU, program tersebut memiliki alamat logika,
kemudian oleh MMU dipetakan menjadi alamat fisik yang
akan disimpan di dalam memori.
16. PENCATATAN PEMAKAIAN MEMORI
Memori yang tersedia harus dikelola dengan pencatatan
pemakaian memori yaitu :
1. Pencatatan memakai peta bit
Memori dibagi menjadi unit-unit alokasi, berkorespondensi
dengan tiap unit alokasi, yaitu
1 bit pada bit map,nilai 0 pada peta bit berarti unit itu masih
Bebas,nilai 1 berarti unit sudah digunakan
Masalah pada peta bit adalah penetapan mengenai ukuran unit
alokasi memori, yaitu :
unit lokasi memori berukuran kecil berarti membesarkan
ukuran peta bit
unit alokasi memori n berukuran besar berarti peta bit kecil
Tapi memori banyak disiapkan pada unit terakhir jika ukuran
Proses bukan kelipatan unit alokasi
17. 2. Pencatatan memakai senarai berkait
Sistem operasi mengelola senarai berkait (linked list) untuk
segmen-segmen memori yang telah dialokasikan dan bebas.
Segmen memori menyatakan memori untuk proses atau
memori yang bebas (lubang). Senarai segmen diurutkan sesuai
alamat blok. Memori yang digunakan pada metode ini lebih
kecil dibandingkan dengan peta bit.
Keunggulan :
• tidak harus dilakukan perhitungan blok lubang memori
karena sudah tercatat di node
• memori yang diperlukan relatif lebih kecil
Kelemahan :
Dealokasi sulit dilakukan karena terjadi berbagai operasi
penggabungan node di senarai