Manajemen Memori
Memori adalah pusat dari operasi pada sistem komputer modern, berfungsi sebagai tempat penyimpanan informasi yang harus diatur dan dijaga sebaikbaiknya. 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. Pengelolaan memori utama sangat penting untuk
sistem komputer, penting untuk memproses dan fasilitas masukan/keluaran secara
efisien, sehingga memori dapat menampung sebanyak mungkin proses dan sebagai
upaya agar pemogram atau proses tidak dibatasi kapasitas memori fisik di sistem
komputer.
a. Jenis Memori
• Memori Kerja
ROM/PROM/EPROM/EEPROM
RAM
Cache memory
•
Memori Dukung
Floppy
Harddisk
CD
b.
Fungsi manajemen memori :
Manajemen memori
merupakan salah satu bagian terpenting dalam sistem operasi. Memori perlu dikelola sebaikbaiknya agar :
1. Utilitas CPU
meningkat.
2. Data dan instruksi
dapat diakses dengan cepat oleh CPU.
3. Tercapai
efisiensi
dalam pemakaian memori yang terbatas.
4. Transfer data
dari/ke memori utama ke/dari CPU dapat lebih
efisien.
5. Mengelola informasi
yang dipakai dan tidak dipakai.
6. Mengalokasikan
memori ke proses yang memerlukan.
7. Mendealokasikan
memori dari proses telah selesai.
8. Mengelola swapping
atau paging antara memori utama dan disk.
Isi Memori
Instruksi
eksekusi yang umum, contohnya, pertama mengambil instruksi dari memori.
Instruksi dikodekan dan mungkin mengambil operand dari memory. Setelah
instruksi dieksekusi pada operand, hasilnya ada yang dikirim kembali ke memory.
Sebagai catatan, unit memory hanya
merupakan
deretan alamat memory; tanpa tahu bagaimana membangkitkan (instruction counter,
indexing, indirection, literal address dan lainnya) atau untuk apa (instruksi
atau data). Oleh karena itu, kita dapat mengabaikan bagaimana alamat memori
dibangkitkan oleh program, yang lebih menarik bagaimana deretan alamat memori
dibangkitkan oleh program yang sedang berjalan.
a. Pengikatan Alamat (Address Binding)
Pengikatan
alamat adalah cara instruksi dan data (yang berada di disk sebagai file yang
dapat dieksekusi) dipetakan ke alamat memori. Sebagian besar sistem
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.
Instruksi pengikatan instruksi dan data ke alamat memori dapat dilakukan pada
saat :
o Compile time
Jika lokasi memori diketahui sejak awal, kode absolut dapat
dibangkitkan, apabila terjadi perubahan alamat awal harus dilakukan kompilasi
ulang.
o Load time
Harus membangkitkan kode relokasi jika lokasi memori tidak diketahui
pada saat waktu kompilasi.
o Execution time
Pengikatan ditunda sampai waktu eksekusi jika proses dapat dipindahkan
selama eksekusi dari satu segmen memori ke segmen memori lain.
b.
Dinamic Loading
Untuk
memperoleh utilitas ruang memori, dapat menggunakan dynamic loading. Dengan
dynamic loading, sebuah rutin tidak disimpan di memori sampai dipanggil. Semua
rutin disimpan pada disk dalam format relocatable load. Mekanisme dari dynamic
loading adalah program utama diload dahulu dan dieksekusi. Bila suatu routine
perlu memanggil routine lain, routine
yang dipanggil lebih dahulu diperiksa apakah rutin yang dipanggil sudah
diload. Jika tidak, relocatable linking loader dipanggil untuk meload rutin
yg diminta ke memori dan mengubah tabel alamat.
Keuntungan
dari dynamic loading adalah rutin yang tidak digunakan tidak pernah diload.
Skema ini lebih berguna untuk kode dalam jumlah besar diperlukan untuk
menangani kasuskasus yang jarang terjadi seperti error routine. Dinamic
loading tidak memerlukan dukungan khusus dari sistem operasi.
c. Dinamic Linking
Sebagian besar sistem operasi hanya mensupport static linking, dimana
sistem library language diperlakukan seperti obyek modul yang lain dan
dikombinasikan dengan loader ke dalam binary program image. 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. Bagaimanapun, tidak seperti dynamic
loading, dynamic linking membutuhkan beberapa dukungan dari sistem operasi
d.
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. Overlay tidak membutuhkan dukungan khusus dari sistem operasi.
User dapat mengimplementasikannya secara lengkap menggunakan struktur file
sederhana, membaca dari file ke memori dan meloncat ke memori dan mengeksekusi
instruksi read yang lebih baru.
إرسال تعليق