Modul 5: Manajemen Memori: Cache dan Virtual Memory
by Fauzi
rangkumanut.my.id
TIPS: Rangkuman ini hanya sebagai pemahaman secara umum. Pastikan Anda juga membaca BMP (Buku Materi Pokok) versi cetak atau digital di Ruang Baca Virtual (RBV) untuk pemahaman lebih mendalam.
DILARANG: Memperjualbelikan seluruh konten atau latihan soal yang terdapat di portal ini. Pelanggaran akan dikenakan sanksi sesuai ketentuan yang berlaku.
Modul 5: Manajemen Memori: Cache dan Virtual Memory
Kegiatan Belajar 1: Cache Memory
A. Pengertian Cache Memory
Cache memory adalah memori semikonduktor berkecepatan tinggi dan berukuran kecil yang berfungsi sebagai buffer (penyangga) antara prosesor dan memori utama.
Tujuan: Menyimpan data atau instruksi yang sering diakses agar prosesor dapat mengambilnya lebih cepat dibandingkan mengakses memori utama.
Hierarki Memori: Cache berada di antara register (paling cepat/kecil) dan memori utama (lebih lambat/besar). Semakin ke atas (register), kecepatan dan harga meningkat; semakin ke bawah (disk), kapasitas membesar namun kecepatan menurun.
B. Elemen Perancangan Cache Memory
Terdapat lima elemen kunci dalam perancangan cache:
Cache Address: Menggunakan alamat logis (virtual) atau fisik. Jika virtual, MMU menerjemahkannya ke fisik.
Cache Size: Kompromi antara kecepatan dan biaya. Cache besar cenderung lebih lambat dan mahal.
Mapping Function: Menentukan pemetaan blok memori utama ke baris cache.
Direct Mapping: Satu blok memori hanya bisa masuk ke satu baris tertentu (cepat tapi rentan konflik).
Associative Mapping: Blok bisa masuk ke baris mana saja (fleksibel tapi pencarian lambat).
Set-Associative Mapping: Kompromi, cache dibagi menjadi set, blok bisa masuk ke baris mana saja dalam satu set.
Replacement Algorithms: Menentukan baris mana yang diganti saat cache penuh.
FIFO: Ganti yang pertama masuk.
LRU (Least Recently Used): Ganti yang paling lama tidak diakses.
LFU (Least Frequently Used): Ganti yang paling jarang diakses.
Random: Ganti secara acak.
Write Policy: Menjaga konsistensi data antara cache dan memori utama.
Write-Through: Menulis ke cache dan memori utama bersamaan (sederhana tapi lambat).
Write-Back: Hanya menulis ke cache. Memori utama diperbarui saat baris cache diganti (cepat tapi kompleks).
C. Swapping dan Alokasi Memori
Swapping: Mekanisme memindahkan proses sementara dari memori utama ke backing store (disk) dan mengembalikannya (swap in) nanti. Sering digunakan pada penjadwalan prioritas.
Contiguous Memory Allocation: Setiap proses dialokasikan satu blok memori tunggal yang bersebelahan.
Proteksi: Menggunakan relocation register (alamat awal) dan limit register (ukuran).
Strategi Alokasi (Variable-Sized):
First-Fit: Lubang pertama yang cukup.
Best-Fit: Lubang terkecil yang cukup (sisa ruang minimal).
Worst-Fit: Lubang terbesar yang cukup.
Fragmentasi:
Internal: Sisa ruang tak terpakai di dalam partisi fixed-sized.
Eksternal: Total ruang kosong cukup tetapi terpecah-pecah (pada variable-sized).
D. Segmentation dan Paging
Segmentation: Memori dilihat dari sudut pandang programmer sebagai kumpulan segmen (kode, stack, dll) dengan panjang bervariasi. Menggunakan Segment Table (berisi Base & Limit).
Paging: Memori fisik dibagi menjadi blok ukuran tetap (frame), dan memori logis dibagi menjadi blok ukuran sama (page).
Alamat CPU terdiri dari: Nomor Halaman (p) (indeks ke page table) dan Offset Halaman (d).
Kegiatan Belajar 2: Virtual Memory
A. Konsep Virtual Memory
Virtual Memory adalah teknik memisahkan memori logis (user view) dari memori fisik. Program disimpan utuh di disk, dan hanya halaman yang dibutuhkan yang dibawa ke memori fisik. Ini menciptakan ilusi memori yang sangat besar dan memori fisik bertindak sebagai cache untuk disk.
B. Demand Paging
Implementasi memori virtual di mana halaman hanya dimuat ke memori saat benar-benar diakses oleh proses.
Bit Valid-Tidak Valid: Setiap entri page table memiliki bit ini.
Valid (1): Halaman ada di memori fisik.
Tidak Valid (0): Halaman masih di disk atau alamat ilegal.
Page Fault: Interupsi yang terjadi saat proses mencoba mengakses halaman yang bit-nya tidak valid (belum ada di memori).
C. Penanganan Page Fault (Kesalahan Halaman)
Sistem operasi mendeteksi trap (interupsi).
Memeriksa validitas akses (legal/ilegal).
Mencari lokasi halaman yang dibutuhkan di disk.
Membawa halaman tersebut ke frame kosong di memori fisik.
Mengupdate page table (set bit menjadi valid).
Mengulangi instruksi yang menyebabkan fault (Restart Instruction).
D. Kinerja dan Analisis
Kelebihan: Ruang alamat virtual besar, penggunaan memori efisien, multiprogramming meningkat, beban I/O berkurang.
Kekurangan:Overhead pada prosesor untuk menangani fault, risiko Thrashing (kinerja menurun drastis karena CPU sibuk menukar halaman terus-menerus).