Efisiensi

Dalam bagian ini akan dibahas mengenai efisiensi pemanfaatan disk. Tujuannya tentu saja agar disk dapat dimanfaatkan secara maksimal, baik dalam hal pemanfaatan kapasitas maupun kecepatan akses data pada hard disk. Efisiensi hard disk sangat bergantung pada metode alokasi disk dan algoritma direktori yang digunakan. Contohnya, UNIX mengembangkan kinerjanya dengan mencoba untuk menyimpan sebuah blok data berkas dekat dengan blok i-node berkas untuk mengurangi waktu perncarian.

Efisiensi juga bergantung pada tipe data yang disimpan pada masukan direktori (atau i-node). Pada umumnya, sistem menyimpan informasi mengenai tanggal terakhir kali file diakses dan tanggal penulisan terakhir untuk menentukan apakah file perlu di back up. Akibat dari penyimpanan informasi ini, setiap kali berkas dibaca diperlukan penulisan pada struktur direktori. Penulisan ini memerlukan blok untuk dibaca oleh memori, perubahan bagian, dan blok yang akan ditulis kembali ke disk. Hal ini tidak efisien untuk tipe berkas yang sering diakses atau untuk berkas yang diakses secara berkala.

Kinerja yang dibahas pada bagian ini merupakan kelanjutan kinerja pada poin sebelumnya. Apabila algoritma yang tepat telah dipilih, kinerja masih bisa ditingkatkan lagi dengan memanfaatkan cache. Beberapa sistem membuat bagian yang terpisah dari memori utama untuk digunakan sebagai disk cache, dimana blok-blok disimpan dengan asumsi mereka akan digunakan lagi secepatnya. Sistem lainnya menyimpan data berkas menggunakan sebuah page cache . Page cache tersebut menggunakan teknik memori virtual dan menyimpan data berkas sebagai halaman-halaman, tidak sebagai blok-blok file-system-oriented. Hal ini dikarenakan menyimpan data berkas menggunakan alamat virtual jauh lebih efisien daripada menyimpannya melalui blok disk fisik.

Ada dua buah teknik penggunaan cache yang biasanya dipakai. Pertama yaitu teknik menggunakan unified buffer cache. Kedua yaitu dengan teknik tanpa menggunakan unified buffer cache. Berikut adalah ilustrasi gambar dari kedua teknik tersebut.

Gambar 18.1. Menggunakan Unified buffer cache

Menggunakan Unified buffer cache

Gambar 18.2. Tanpa Unified buffer cache

Tanpa Unified buffer cache

Gambar 18.1 adalah ilustrasi teknik dengan menggunakan unified buffer cache dan gambar 18.2 adalah ilustrasi teknik tanpa menggunakan unified buffer cache. Pada gambar 18.2, jika terjadi panggilan mapping memori, dibutuhkan dua buah cache, yaitu buffer cache dan page cache . Hal ini dikarenakan pada teknik ini, mapping memori tidak bisa langsung berinteraksi dengan buffer cache, sehingga dibutuhkan page cache.Teknik ini sangat tidak efisien karena terjadi dua kali penyalinan berkas yang sama. Pertama pada buffer cachedan kedua page cache. Dua kali penyalinan ini biasa disebut double caching. Double caching ini tidak hanya boros memori, tetapi juga memboroskan kinerja CPU dan perputaran M/K dikarenakan perubahan data ekstra antara memori sistem. Selain itu, double caching juga dapat menyebabkan korupsi berkas. Solusi untuk masalah ini adalah menggunakan unified buffer cache seperti pada gambar 18.1. Buffer cache pada teknik ini dapat berinteraksi dengan mapping memori sehingga dapat menghindari terjadinya double caching.