Posted by : Unknown
Jan 14, 2015
Selamat Malam Gan
Malam ini saya akan melanjutkan materi berikutnya yaitu :
MANAJEMEN MEMORY I
dibawah berikut ada bagian dari materi Manajemen Memory I.
- Hirarki Memory
- Manajemen Memory
- Teknik Manajemen Memory
Nah sekarang memasuki tahap 1 yaitu Hirarki Memory.
Contoh ilustrasi Hirarki Memory
Sesuai gambar di atas ada 3 macam yaitu :
Cache Memory adalah memory
yang bertugas membantu tugas primary memory dalam memecah-mecah data yang akan
diproses dan yang belum diproses, dengan tujuan mempermudah kinerja processor
(karena data dibagi-bagi / dipotong-potong dulu sebelum diproses).
- Biasa ada dalam processor, mother board maupun peralatan mikrokontroller lain (VGA, Hard disk, Sound, dsb).
- Berukuran kecil, antara Kilo Bytes (KB) sampai dengan MB (Mega Bytes).
Main Memory adalah memory
utama dari sebuah komputer, biasa berbentuk RAM (disebut juga sebagai memory
dinamis).
- Fungsi utamanya adalah menyimpan sementara data yang akan diproses oleh processor dan data yang telah diproses oleh processor untuk selanjutnya diteruskan ke media input/output yang lain VGA (ditampilkan), Sound (mengeluarkan suara), Hard Disk (menyimpan data/save), maupun media input/output lainnya.
- Besarannya adalah MB (Mega Byte) hingga GB (Giga Byte).
Secondary Memory adalah memory
pembantu dari sebuah komputer, biasa berbentuk Harddisk / ROM (Read Only
Memory), disebut juga sebagai memory statis (pasif).
- Fungsi utamanya adalah menyerupai RAM tapi perbedaannya memory jenis ini bisa menyimpan data dalam waktu yang lama.
- Dan juga memory jenis ini (hard disk) biasa dipakai sebagai MEMORY BANTUAN, yaitu memori tambahan untuk membantu tugas RAM.
- Misalnya ada data yang harus diproses sebesar 550 MB, sementara RAM kita hanya 512 MB, dan ini pastinya memerlukan bantuan dari Hard disk sebesar 38 MB untuk membantu tugas RAM sebagai Primary memory.
- Hal ini biasa dilakukan oleh OS dan menyimpannya dalam sebuah file yang berjenis swap (swap file / .swp).
Selanjutnya memasuki tahap ke 2 yaitu Manajemen Memory.
fungsi-fungsi Manejemen Memory:
- Manajemen memori dilakukan dengan cara membagi-bagi memori untuk mengakomodasi banyak proses
- Manajemen memori dilakukan untuk menjamin agar setiap proses yang ready dapat segera memanfaatkan processor time.
Beberapa fungsi lainnya:
- Mengelola informasi memori yang dipakai & tidak dipakai.
- Mengalokasikan memori ke proses yang memerlukan.
- Men-dealokasikan memori dari proses yang telah selesai.
- Mengelola swapping antara memori utama & disk.
Terdapat 5 requirement manajemen memori:
- Relocation
- Protection
- Sharing
- Logical organization
- Physical organization
Relocation
Prosesor dan sistem operasi harus dapat mentranslasikan memori referensi ke alamat fisik (physical address) yang mengalokasikan program dalam memori utama.
Mengapa penting dalam manajemen memori ?
Prosesor dan sistem operasi harus dapat mentranslasikan memori referensi ke alamat fisik (physical address) yang mengalokasikan program dalam memori utama.
Mengapa penting dalam manajemen memori ?
- Jika suatu program di-load ke memori, maka alamat lokasi memori (alamat absolut atau alamat fisik) yang akan ditempati harus ditentukan
- Alamat absolut suatu program dapat berubah-ubah sebagai akibat:
- Swapping
- Compaction
Jenis-jenis alamat data:
- Alamat Logical adalah alamat suatu word relatif terhadap titik referensi tertentu dan harus dilakukan translasi terhadap alamat fisik.
- Alamat Relatif adalah alamat yang menunjukkan lokasi relatif terhadap alamat awal suatu program, terdiri dari:
Alamat instruksi dalam pencabangan
Alamat instruksi call
Alamat data
- Alamat Fisik (mutlak/absolut) adalah alamat sebenarnya dari suatu memori
Jenis-jenis alamat data:
Mekanisme Relokasi:
- Alamat base register ditambahkan dengan alamat relatif sehingga diperoleh alamat absolut.
Protection
Suatu proses tidak boleh mengakses lokasi memori proses yang lain tanpa ijin
Suatu proses tidak boleh mengakses lokasi memori proses yang lain tanpa ijin
- Lokasi program di memori tidak tentu karena alamat mutlak pada saat compile tidak dapat diketahui.
- Penanganan proteksi memori diserahkan kepada prosesor (secara hardware), bukan bagian sistem operasi (software)
Sharing
- Harus dimungkinkan suatu lokasi memori dapat diakses oleh lebih dari satu proses (secara legal)
- Beberapa proses yang memerlukan data yang sama, maka tidak perlu setiap proses mengcopy data dari disk ke memori, cukup sebuah copy saja
Logical organization
- Main memory dikelompokkan secara linier atau berdimensi satu yang berupa ruang alamat yang terdiri dari deretan byte atau word.
- Sebagian besar program dibuat dalam bentuk modul → penempatan di memori tidak linier → diperlukan pengaturan secara logik
- Kelebihan program dalam bentuk modul:
- Modul dapat ditulis dan di-compile secara terpisah
- Setiap modul dapat diberi tingkatan proteksi berbeda-beda (readonly, execute only).
- Module dapat di-share oleh beberapa proses.
- Requierement Management Memory Cont.
Physical organization
- Memory dikelompokkan menjadi memori utama dan memori sekunder.
- Diperlukan metode yang mengatur aliran data dari memori utama ke memori sekunder dan sebaliknya.
- Pengaturan tersebut dilakukan oleh sistem operasi, bukan programmer, karena:
- Programmer tidak tahu berapa ruang memori yang tersedia pada saat program dijalankan.
- Bila ruang memori yang tersedia tidak cukup untuk menampung program dan data → sistem dapat melakukan overlay.
- Overlay adalah menempatkan beberapa bagian modul/program pada area memori yang sama secara bergantian.
Nah sekarang memasuki Tahap terakhir yaitu: Teknik Manajemen Memory.
Adapun macam-macam teknik Manajemen Memory yaitu;
- Partisi
1.Partisi tetap (fixed)
- Partisi berukuran sama
- Ukuran partisi berbeda-beda
2.Partisi dinamis
- Paging sederhana
- Segmentasi sederhana
- Virtual-memory
- Virtual-memory paging
- Virtual-memory segmentation
1.Partisi tetap
- Sebelum digunakan memori terlebih dahulu dipartisi (ukuran partisi tidak berubah)
Model ukuran partisi:
1. Partisi berukuran sama:
- Setiap proses yang ukurannya lebih kecil atau sama dengan ukuran partisi dapat menempati partisi tersebut.
- Jika semua partisi telah terisi, maka sistem operasi akan melakukan swap terhadap proses yang sudah tidak aktif.
- Dimungkinkan adanya program yang ukurannya lebih besar daripada ukuran partisi yang tersedia → programmer harus merancang program dengan overlay.
- Penggunaan memori sangat tidak efisien, misal bila ukuran partisi adalah 8 MB, maka program berukuran 2 MB akan menyisakan ruang memori sebesar 6 MB.
2. Partisi berukuran tidak sama:
- Lebih baik daripada partisi berukuran sama:
- Penggunaan memori lebih efisien
- Tidak perlu overlay
Jenis partisi tetap:
- Equal-size
- Unequal-size
Algoritma penempatan (placement)
Partisi berukuran sama
- Algoritmanya sederhana, partisi yang mana saja asalkan kosong boleh ditempati, karena ukurannya sama
Partisi berukuran berbeda
- Setiap proses ditempatkan pada partisi yang menyisakan ruang bebas terkecil
Terdapat 2 model antrian:
- Satu antrian – satu partisi
- Satu antrian – banyak partisi
Satu partisi - satu antrian
- Setiap proses antri pada partisi yang berukuran sedikit lebih besar atau sama dengan ukuran proses
- Kelebihannya dapat meminimalisir ruang memori yang terbuang.
- Kekurangannya diperlukan penjadualan antrian, ada kemungkinan efisiensi secara keseluruhan tidak optimal
- Misal pada model partisi di slide hal 10 tidak ada proses yang berukuran di antara 12 – 16 MB → partisi 16 MB tidak akan pernah digunakan
Banyak partisi - satu antrian
- Setiap proses dapat menempati di sembarang partisi yang sedang tidak digunakan
- Dipilih partisi yang menyisakan ruang memori terkecil
- Bila seluruh partisi telah diisi → dilakukan swapping
- Kelebihannya mudah diimplementasikan, overhead sistem operasi hanya sedikit
- Kekurangannya jumlah maksimum proses yang aktif adalah tetap dan terbatas (bergantung jumlah partisi)dan tidak efisien dalam penggunaan memori akibat terjadi fragmentasi internal
- Fragmentasi internal: sisa ruang memori yang terjadi jika ukuran proses lebih kecil daripada partisi yang digunakan
2. Partisi dinamis (dynamic)
- Jumlah dan ukuran partisi tidak tetap (variabel)
- Ukuran partisi sama dengan ukuran proses yang akan menempatinya untuk pertama kali atau sesudah pemadatan (compaction) → tidak terjadi fragmentasi internal
- Dapat terjadi fragmentasi eksternal:
- Fragmentasi eksternal: sisa ruang memori yang terjadi jika ukuran proses lebih kecil daripada ruang memori yang disediakan (dibebaskan)
- Solusi: dilakukan compaction sehingga sisa-sisa ruang memori terkumpul menjadi satu sisa ruang → memori menjadi besar
Partisi dinamis (dynamic)
Contoh:
a.Tersedia 64 MB memori, 8 MB untuk sistem operasi
b.Proses 1 aktif dan membutuhkan 20 MB
c.Proses 2 aktif
dan memerlukan 14 MB
d.Proses 3 aktif dan memerlukan 18 MB, sisa memori tinggal 4 MB
e.Proses 2 selesai
f.Proses 4 aktif dan memerlukan 8 MB ditempatkan à di ruang memori bekas proses 2
→ terjadi fragmentasi eksternal sebesar 6 MB
g.Proses 1 telah selesai → tersedia ruang bebas sebesar 20 MB
h.Proses 2 aktif lagi dan titempatkan pada lokasi bekas proses 1
→ terjadi fragmentasi eksternal sebesar 6 MB
Algoritma yang digunakan
- Best-fit
- Memilih blok memori yang paling sedikit menyisakan ruang memori
- Biasanya performansi secara keseluruhan adalah yang paling jelek:
- Proses pencarian lebih lama dan membebani prosesor
- Sisa memori berukuran kecil-kecil lebih cepat terbentuk → Compaction harus lebih sering dilakukan daripada algoritma yang lain
First-fit
- Pencarian blok memori kosong dimulai dari awal
- Blok memori yang dipilih adalah blok memori yang pertama kali ditemukan dan ukurannya sesuai
- Merupakan algoritma yang paling baik:
- Paling cepat
- Paling sederhana
- Pencarian akan melewati sejumlah proses yang terletak pada bagian ujung awal memori sebelum menemukan blok memori yang bebas
Next-fit
- Pencarian blok memori kosong dimulai dari lokasi placement terakhir
- Lebih jelek dibanding First-fit, karena:
- Blok memori yang ditemukan sering berada pada ujung akhir memori yang merupakan blok memori berukuran paling besar:
- Blok memori yang besar akan lebih cepat terpartisi menjadi blok memori yang lebih kecil
- Compaction untuk memperoleh blok memori berukuran besar pada ujung akhir memori harus lebih sering dilakukan daripada First-fit.
Partisi dinamis
(dynamic)
Contoh penggunaan algoritma
Ukuran proses baru = 16 MB
Memori sisa:
Best-fit = 2 MB
First-fit = 6 MB
Next-fit = 20 MB
Kelebihan:
Contoh penggunaan algoritma
Ukuran proses baru = 16 MB
Memori sisa:
Best-fit = 2 MB
First-fit = 6 MB
Next-fit = 20 MB
Kelebihan:
- Tidak terjadi fragmentasi internal
- Penggunaan memori lebih efisien
- Jumlah proses aktif lebih fleksibel (tidak tetap.
- Implementasinya lebih susah
- Dapat terjadi fragmentasi eksternal
- Terjadi overhead penggunaan prosesor:
- Untuk compaction
- Untuk menjalankan algoritma
Nah cukup sampai disini aja gan
materi berikutnya akan dilanjutkan di next post