Back to IF2130 Sistem Operasi

Dasar Manajemen Memori: Caching

Questions/Cues

  • Apa itu caching?

  • Mengapa caching sangat penting?

  • Bagaimana hierarki memori?

  • Bagaimana algoritma dasar caching?

  • Apa itu Prinsip Lokalitas?

Reference Points

  • Slides 36-39, IF2130-01-2025-OSIntro.pdf

Apa itu Caching?

Caching adalah sebuah teknik fundamental dalam ilmu komputer di mana sejumlah kecil data disimpan sementara dalam komponen memori yang berkecepatan tinggi (cache). Tujuannya adalah untuk mempercepat akses data di masa depan.

  • Ide Utama: Daripada selalu mengambil data dari sumber yang lambat (seperti hard disk atau memori utama/RAM), sistem akan terlebih dahulu memeriksa apakah data yang dibutuhkan sudah ada di cache yang jauh lebih cepat.

Mengapa Caching Penting?

Tujuan utama desain sistem operasi adalah performa yang cepat dan efisien. Terdapat kesenjangan kecepatan yang sangat besar antara CPU dan perangkat penyimpanan. CPU dapat memproses data jutaan kali lebih cepat daripada hard disk dapat membacanya. Caching berfungsi sebagai jembatan untuk mengatasi kesenjangan ini. Tanpa caching, CPU akan menghabiskan sebagian besar waktunya hanya untuk menunggu data datang dari memori yang lebih lambat.

Hierarki Memori

Sistem komputer modern tidak menggunakan satu jenis memori, melainkan beberapa level memori yang membentuk sebuah hierarki. Semakin tinggi levelnya, semakin cepat, kecil ukurannya, dan mahal harganya per bit.

LevelNamaUkuran TipikalWaktu Akses (ns)Dikelola Oleh
1Registers< 1 KB0.25 - 0.5Compiler
2Cache (L1-L3)> 16 MB0.5 - 25Hardware
3Main Memory (RAM)> 16 GB80 - 250Sistem Operasi
4Disk Storage> 100 GB5,000,000+Sistem Operasi

Data berpindah ke atas hierarki saat digunakan. OS berperan penting dalam mengelola pergerakan data antara Memori Utama dan Disk.

Algoritma Dasar Caching

Proses caching bekerja dengan algoritma sederhana:

  1. Ketika CPU membutuhkan data dari memori, ia akan memeriksa cache terlebih dahulu.

  2. Jika data ditemukan di cache (disebut Cache Hit): Data langsung dibaca dari cache dengan sangat cepat.

  3. Jika data tidak ditemukan di cache (disebut Cache Miss): Data akan disalin dari memori utama (yang lebih lambat) ke dalam cache. Setelah itu, data baru dibaca dari cache oleh CPU. Harapannya, jika data ini dibutuhkan lagi nanti, ia sudah ada di cache (cache hit).

Prinsip Lokalitas (Principle of Locality)

Caching bisa sangat efektif karena program komputer cenderung menunjukkan “prinsip lokalitas” dalam mengakses memori. Ada dua jenis lokalitas:

  1. Lokalitas Temporal (Waktu): Jika sebuah item data diakses, kemungkinan besar item yang sama akan diakses lagi dalam waktu dekat. Contoh: variabel dalam sebuah loop.

  2. Lokalitas Spasial (Ruang): Jika sebuah item data di lokasi memori X diakses, kemungkinan besar item data di lokasi yang berdekatan (seperti X+1, X+2) akan diakses segera setelahnya. Contoh: mengakses elemen-elemen sebuah array secara berurutan.

Karena prinsip ini, daripada menyalin hanya satu byte data, sistem akan menyalin satu blok atau halaman data (misalnya 64KB) ke dalam cache saat terjadi cache miss. Ini meningkatkan peluang terjadinya cache hit untuk akses data berikutnya.

Summary

Caching adalah teknik optimasi performa krusial yang menjembatani kesenjangan kecepatan masif dalam hierarki memori, dari register CPU yang sangat cepat hingga disk yang lambat. Dengan menyimpan data yang sering digunakan di memori cache berkecepatan tinggi, sistem dapat mengurangi waktu tunggu CPU secara drastis. Efektivitas caching sangat bergantung pada Prinsip Lokalitas (temporal dan spasial), di mana pola akses data oleh program dapat diprediksi, sehingga memungkinkan cache untuk menyimpan data yang relevan sebelum benar-benar dibutuhkan, yang pada akhirnya meningkatkan throughput dan responsivitas sistem secara keseluruhan.