Memory Management Unit (MMU)
Konsep-konsep
Dasar Memori
Memori sebagai tempat penyimpanan instruksi/ data dari program. Memori adalah
pusat kegiatan pada sebuah komputer, karena setiap proses yang akan dijalankan,
harus melalui memori terlebih dahulu. Supaya untuk dapat dieksekusi, program
harus dibawa ke memori dan menjadi suatu proses.
Jenis-jenis Memori :
– Memori Kerja
• ROM/PROM/EPROM/EEPROM
• RAM
• Cache memory
– Memori Dukung
Floppy, harddisk, CD, dll.
Manajemen memori adalah salah satu bagian sistem operasi yang mempengaruhi dalam menentukan proses untuk mengelola memori komputer.
Pada umunmnya, fungsi Manajemen Memori antara lain:
• Melacak pemakaian memori (siapa dan berapa besar)
• Memilih program mana yang akan diload ke memori
• Alokasi dan dealokasi memori fisik untuk program/ proses-proses dalam menggunakan address space
• Mengelola informasi yang dipakai dan tidak dipakai.
• Mengalokasikan memori ke proses yang memerlukan
• Mendealokasikan memori dari proses telah selesai
• Mengelola swapping atau paging antara memori utama dan disk.
Konsep
Binding
Sebelum eksekusi, program berada di dalam disk, dan saat dieksekusi program tersebut perlu berada pada suatu lokasi dalam memori fisik. Address Binding adalah cara instruksi dan data (yang berada di disk sebagai file executable) dipetakan ke alamat memori. Alamat (address) pada source program umumnya merupakan alamat simbolik. Sebuah compiler biasanya membutuhkan “mengikat” (bind) alamat simbolik ke alamat relokasi.
Address Binding dapat berlangsung dalam 3 tahap yang berbeda, yaitu :
•
kompilasi,
• load, atau
• eksekusi dari suatu program
• load, atau
• eksekusi dari suatu program
Cara Sistem Operasi menempatkan program di
dalam memori :
• Kompilasi dan Linking menerjemahkan semua simbol data berdasarkan alamat acuan absolut
• Proses relokasi (proses mapping program dari lokasi memori) terjadi apabila :
1. Jika program berada di memori, maka semua alamat lojik dalam program harus dikonversi ke alamat fisik.
2. Statis : relokasi alamat dilakukan sebelum program dijalankan
3. Dinamis : relokasi alamat dilakukan pada saat referensi setiap instruksi atau data
PARTISI MEMORI• Kompilasi dan Linking menerjemahkan semua simbol data berdasarkan alamat acuan absolut
• Proses relokasi (proses mapping program dari lokasi memori) terjadi apabila :
1. Jika program berada di memori, maka semua alamat lojik dalam program harus dikonversi ke alamat fisik.
2. Statis : relokasi alamat dilakukan sebelum program dijalankan
3. Dinamis : relokasi alamat dilakukan pada saat referensi setiap instruksi atau data
Apa Itu Partisi Pada Memory?
Dulu waktu pertama kali
menggunakan perangkat Android mimin sempat memiliki masalah pada perangkat
tersebut dimana ia selalu memunculkan pemberitahuan bahwa memory internal yang
dimilikinya sudah penuh. Beberapa teman mimin menyarankan untuk menggunakan aplikasi
Link2SD untuk mengatasi masalah tersebut dimana aplikasi ini konon dapat
memindahkan beberapa file aplikasi ke SD card atau microSD.
Namun untuk dapat memanfaatkan aplikasi ini, perangkat harus sudah di root dan kita diwajibkan untuk melakukan partisi pada memory card atau microSD yang kita gunakan dimana partisi tersebut akan berperan sebagai “memory internal tambahan”. Nah disini yang sempat membuat mimin bingung adalah yang dimaksud dengan istilah partisi pada memory tersebut. Sebenarnya apa sih arti dari istilah ini?
Menurut beberapa sumber yang mimin baca, partisi pada memory adalah sebuah “pemetakan” atau pemisahan sarana penyimpanan dalam hal ini adalah memory card. Bingung? Iya mimin juga sama. Hihi Gampangnya begini, saat kita mempartisi memory yang kita punya, itu hampir sama dengan kita membuat sebuah “sekat” sehingga seolah-olah memory tersebut terpisah menjadi beberapa bagian.
Nah itulah arti dari partisi memory dalam versi simpel. Jika kamu ingin melakukan partisi pada memory card milikmu, kamu bisa mampir ke posting yang berjudul Cara membuat partisi pada SD card.
FRAGMENTASI
Fragmentasi merupakan fenomena
munculnya lubang-lubang (ruang memori kosong) yang tidak cukup besar untuk
menampung permintaan alokasi memori dari proses. Fragmentasi terdiri dari dua
jenis:
1. Fragmentasi Eksternal.Dalam kasus first fit dan juga best fit sebagaimana yang telah dijelaskan di atas, pada saat proses dimasukkan atau dipindahkan dari memori, ruang memori yang tidak terpakai akan dipecah menjadi bagian yang kecil (sisa dari alokasi sebuah proses pada sebuah ruang memori). Eksternal fragmentasi terjadi apabila jumlah keseluruhan memori bebas yang tersedia cukup untuk menampung permintaan ruang memori dari sebuah proses, namun dari ruang memori kosong tersebut terpisah-pisah sehingga proses tidak dapat menggunakannya. Hal ini sering terjadi pada alokasi penyimpanan yang dinamis. Sebagai contoh kita lihat contoh berikut ini: Sebuah proses meminta ruang memori sebesar 9 KB namun memori telah dipartisi menjadi blok-blok dengan ukuran masing-masing 4 KB. Maka proses tersebut akan mendapatkan bagiannya berupa 2 buah blok dengan kapasitas masing-masing 4 KB dan kapasitas tambahan sebesar 1 KB dari sebuah blok lain. Oleh karena masing-masing blok memiliki ukuran 4 KB dan ada sebuah blok yang hanya digunakan sebesar 1 KB maka blok ini masih akan memiliki sisa kapasitas sebesar 3 KB. Sisa tersebut dapat digunakan untuk menampung proses lain yang membutuhkannya atau jika ia terletak berurutan dengan sebuah blok kosong lain maka ia dapat digabungkan membentuk blok bebas yang lebih besar. Analisis statistik terhadap first fit menyatakan bahwa walaupun dengan optimisasi, sejumlah N blok yang dialokasikan maka setengahnya akan terbuang atau tidak berguna karena fragmentasi yang menyebabkan lebih dari setengah memori tidak dapat digunakan. Peristiwa ini disebut dengan 50-percent rule (aturan 50 persen). Masalah fragmentasi eksternal ini dapat diatasi dengan melakukan penghalaman, segmentasi (2 hal ini akan dijelaskan secara detail pada bab lain) serta compaction (pemadatan). Tujuan dari pemadatan adalah untuk mengatur ruang memori yang kosong agar terletak di posisi yang berurutan sehingga dapat membentuk sebuah ruang memori kosong yang besar. Ruang kosong itu pada akhirnya diharapkan dapat menampung proses lain yang membutuhkan alokasi memori.
2. Fragmentasi Internal. Fragmentasi internal terjadi ketika kapasitas memori yang diberikan ke sebuah proses melebihi besarnya permintaan yang diajukan oleh proses. Selisih antara besarnya memori yang dialokasikan dengan besarnya permintaan proses disebut fragmentasi internal (memori yang ada di dalam sebuah partisi namun tidak digunakan). Hal ini sering terjadi pada partisi tetap karena besar lubang yang disediakan akan selalu tetap, berbeda halnya dengan sistem partisi dinamis yang memungkinkan suatu proses untuk diberikan alokasi memori sebesar yang ia butuhkan. Contoh solusi atas kasus diatas dengan fragmentasi internal adalah proses tersebut akan dialokasikan 3 buah blok yang masing-masing berukuran 4 KB sehingga ia akan mendapatkan jatah sebesar 12 KB, sisa 3 KB yang ada akan tetap menjadi miliknya walaupun ia tidak menggunakannya.
SISTEM PAGING
Sistem
Paging Adalah sistem manajemen pada sistem operasi dalam mengatur program
yang sedang berjalan. Program yang berjalan harus dimuat di memori utama.
Kendala yang terjadi apabila suatu program lebih besar dibandingkan dengan
memori utama yang tersedia.
Untuk
mengatasi hal tersebut Sistem Paging mempunyai 2 solusi, yaitu:
-
Konsep Overlay
Dimana program yang dijalankan dipecah menjadi beberapa bagian yang dapat dimuat memori (overlay). Overlay yang belum diperlukan pada saat program berjalan (tidak sedang di eksekusi) disimpan di disk, dimana nantinya overlay tersebut akan dimuat ke memori begitu diperlukan dalam eksekusinya.
Dimana program yang dijalankan dipecah menjadi beberapa bagian yang dapat dimuat memori (overlay). Overlay yang belum diperlukan pada saat program berjalan (tidak sedang di eksekusi) disimpan di disk, dimana nantinya overlay tersebut akan dimuat ke memori begitu diperlukan dalam eksekusinya.
-
Konsep Memori Maya (virtual Memory)
Adalah kemampuan mengalamati ruang memori melebihi memori utama yang tersedia. Konsep ini pertama kali dikemukakan Fotheringham pada tahun 1961 untuk sistem komputer Atlas di Universitas Manchester, Inggris.
Adalah kemampuan mengalamati ruang memori melebihi memori utama yang tersedia. Konsep ini pertama kali dikemukakan Fotheringham pada tahun 1961 untuk sistem komputer Atlas di Universitas Manchester, Inggris.
Gagasan
Memori Maya adalah ukuran gabungan program, data dan stack melampaui jumlah
memori fisik yang tersedia. Sistem operasi menyimpan bagian-bagian proses yang
sedang digunakan di memori utama dan sisanya di disk. Begitu bagian di disk
diperlukan maka bagian memori yang tidak diperlukan disingkirkan dan diganti
bagian disk yang diperlukan.
A.
Pengertian Memori Maya
Didalam
menejemen memori dengan system partisi statis dan system dinamis sudah
dapat menyelesaikan masalah menejemen memori didalam banyak hal, tetapi masih
memiliki kekurangan atau keterbatasan di dalam pengakses. Dimana keterbatasan
akses hanya sebatas addres memori yang ada secara fisik ( memori nyata ).
Misalnya
memori 64 MB maka addres maksimum yang dapat diakses hanya sebesar 64 MB saja.
Pada hal banyak program yang akan diakses yang melebihi 64 MB. Untuk mengatasi
hal tersebut agar kemampuan akses lebih besar lagi maka dibentuklah memori
maya ( yang pertama sekali di kemukakan oleh Fotheringham pada tahun
1961 untuk system komputer Atlas di Universitas Manchester, Inggris).
Dengan
memori maya program yang besar tadi akan dapat diterapkan pada memori kecil
saja, misalnya program 500 MB dapat ditempatkan secara maya di memori 64 MB.
Untuk mengimplementasikan memori maya tersebut dapat dilakukan dengan tiga cara
:
1. Sistem Paging
2. Sistem Segmentasi
3. Sistem kombinasi Paging dan Segmentasi
B.
Memori system Paging
Untuk
menginplementasikan addres maya yang besar ke dalam memori yang kecil
diperlukan index register, base register, segment
register dan MMU ( Memory Menegement Unit ).
· Pemetaan Memori Sistem Paging
Sistem kinerja
komputer akan menerjemahkan alamat maya menjadi alamat fisik. Dengan kata
lain dalam system memori maya alamat memori tidak
langsung di tuliskan ke BUS tetapi terlebih dahulu
dimasukkan ke MMU untukditerjemahkan. Ada dua
kemungkinan keluaran MMU yaitu :
1. Alamat yang dicari ada dimemori nyata, maka proses
dapat langsung dikerjakan.
2. Alamat
yang dicari tidak ada didalam memori nyata, maka MMU mengeluarkan page
fault, yaitu permintaan alokasi memori untuk proses itu.
MMU
mempunyai fungsi untuk memetakan memori maya ke memori fisik.
Apabila alamat memori yang dipetakan tidak tersedia di memori fisik, MMU
menertibkan exception page fault yang melewatkan ke system
operasi untuk menengani.
Gambar
memperlihatkan Implementasi pemetaan memori system paging.
Gambar
1. Implementasi Pemetaan Memori sistem paging
Apabila exception
page fault meminta alokasi memori akan ditangani oleh system operasi
yaitu memilih partisi yang telah selesai diakses dan
kemungkinan proses ini akan digunakan lagi, dalam waktu yang lama lagi. Jika
sudah dipilih maka program akan dikosongkan dari memori dan
selanjutnya program yang alamatnya yang diminta akan dimasukkan ke
memori.
·
Proses
Pemetaan Pada MMU
Dibawah
ini adalah suatu proses pemetaaan memori yang terjadi pada MMU.
Alamat maya terdiri dari bagian nomor page dan offset.
Alamat ini dicarikan didalam tabel page, bila ketemu maka MMU mengeluarkan
page frame ( register alamat fisik ).Register alamat fisik terdiri
darei nomor page dan offset, dimana nomor
page framelebih sedikit dari nomor page.
Apabila
alamat tersebut tidak ada pada tabel page maka MMU
mengeluarkan page fault.
C.
Sistem Segmentasi
· Pengertian
Segmentasi
Secara
sederhana segmentasi bisa diartikan sebagai suatu ruang alamat atau segment
yang berada di memori. Segment-segment itu dalam keadaan independent.
Setiap segment berisi alamat 0 sampai maksimum secara linier. Panjang
setiap segment berbeda-beda sampai panjang maksimun, perobahan panjang
segment terjadi selama proses eksekusi.
Segment
stack bertambah ketika terjadi operasi push dan
turun saat operasi pop, dimana setiap segment merupakan ruang
alamat terpisah segment-segment dapat tumbuh dan mengkerut secara bebas tanpa
mempengaruhi yang lain.
Alamat terdiri dari dua bagian pada memori bersegment yaitu
:
1. Nomor segment
2. Alamat pada segment ( offset ).
Segment dapat berisi :
1. Prosedure
2. Array
3. Stack
4. Kumpulan variable skala.
· Sistem Segmentasi
Sistem
dengan memori maya dengan segmentasi murni adalah
alamat maya adalah offset di segment, setiap proses mempunyai tabel
segment dan pada saat proses running alamat awal maya tabel dimuatkan ke
register dasar. Nomor segment digunakan mencari deskriptor segment di tabel
segment yang menyediakan alamat fisik
awal dari segment, panjang dan bit-bit proteksinya. Alamat
fisik dihitung dengan menambahkan alamat dasar segment ke alamat maya.
Gambar
4. Skema Segmentasi
Keunggulan
sistem ini dimana segment-segment tersebut saling berhubungan dengan unit-unit
program, sehingga segment – segment indeal untuk proteksi dan pemakaian
bersama.
Kelemahan
sistem ini adalah dimana segment – segment berukuran bervariasi menyebabkan
fragmentasi eksternal dan sulit menyelesaikan pertumbuhan dinamis.
Segment-segment tidak memetakan blok-blok disk untuk memori maya secara alami.
D. Teknik Kombinasi Paging Dan Segmentasi
Teknik
kombinasi pacing dan segmentasi adalah ruang alamat pemakai dibagi menjadi
sejumlah segment sesuai dengan kehendak pemrogram. Segment tersebut dibagi
menjadi sejumlah page berukuran tetap dan berukuran
sama dengan page frame memori utama. Jika segment kurang dari
ukuran page, maka segnent hanya memerlukan satu page.
Dari
segi pandangan pemrogram, alamat maya masih berisi nomor
segment dan offset di segment itu. Dari segi pandangan
sistem, offset segment dipandang sebagai nomor
pagedan offset page untuk page di segment yang dispesifiksikan.
Penggabungan dengan proses adalah tabel segment dan
sejumlah tabel page, merupakan satu tabel persegment proses.
Saat proses
running, register menyimpan alamat awal tabel segment untuk proses,
pemroses menggunakan bagian nomor segment untuk mengindeks tabel
segment proses guna menemukan tabel page untuk segment.
Bagian angka page alamat maya digunakan untuk indeks tabel
page dan mencari nomor page korespondensi. Angka
tersebut kemudian dikombinasikan dengan bagian offset alamat maya untuk
menghasilkan alamat nyata yang diinginkan.
Tidak ada komentar:
Posting Komentar