Back to IF2130 Sistem Operasi

Topic

Questions/Cues

  • Metode Manajemen Ruang Kosong
  • Fungsi Perintah TRIM pada SSD
  • Strategi Peningkatan Kinerja FS
  • Masalah Konsistensi & Pemulihan
  • Pendekatan Lama: fsck
  • Solusi Modern: Journaling
  • Solusi Canggih: Copy-on-Write
  • Jaring Pengaman: Backup

Manajemen Ruang Kosong (Free-Space Management)

Sistem operasi harus melacak blok-blok disk yang tidak terpakai agar dapat dialokasikan untuk berkas baru. Beberapa metode umum:

  1. Bit Vector (Bitmap): Sebuah array bit, di mana setiap bit mewakili satu blok disk. Misal, 1 berarti kosong, 0 berarti terisi. Sederhana dan efisien untuk menemukan blok kosong yang berurutan. Kelemahannya, ukurannya bisa menjadi besar untuk disk modern.
  2. Linked List (Free List): Semua blok kosong dirangkai dalam sebuah linked list. OS hanya perlu menyimpan penunjuk ke blok kosong pertama. Efisien dalam penggunaan ruang, tetapi lambat untuk menemukan blok kosong yang berurutan.
  3. Grouping: Modifikasi dari linked list. Blok kosong pertama menyimpan alamat dari N blok kosong berikutnya. Ini mempercepat pencarian banyak blok sekaligus.
  4. Counting: Daripada menyimpan daftar setiap blok kosong, metode ini menyimpan alamat blok kosong pertama dan jumlah blok berurutan yang mengikutinya. Sangat efisien jika banyak berkas dihapus secara bersamaan.

TRIM

  • Perangkat NVM (seperti SSD) tidak bisa langsung menimpa data. Untuk menulis ke halaman yang sudah berisi data, seluruh blok yang berisi halaman itu harus dihapus terlebih dahulu, dan operasi hapus ini lambat.
  • Masalah: Saat Anda menghapus berkas, OS hanya menandai blok tersebut sebagai kosong di level sistem berkas, tetapi SSD tidak tahu bahwa data di dalamnya tidak lagi valid.
  • Solusi: Perintah TRIM memungkinkan sistem operasi untuk memberitahu SSD blok mana yang tidak lagi digunakan. Ini memungkinkan kontroler SSD untuk melakukan “pengumpulan sampah” (garbage collection) dan menghapus blok-blok ini di latar belakang (saat idle). Hasilnya, ketika penulisan baru diperlukan, SSD sudah memiliki blok yang bersih dan siap tulis, mencegah penurunan kinerja drastis yang dikenal sebagai write cliff.

Efisiensi dan Kinerja Sistem Berkas

  • I/O disk adalah salah satu bottleneck paling signifikan dalam kinerja sistem. Strategi utamanya adalah meminimalkan akses disk dengan menggunakan caching di memori (RAM).
  • Page Cache / Buffer Cache: OS menyimpan salinan blok disk yang baru saja diakses di RAM. Jika data yang sama diminta lagi, OS dapat menyediakannya dari cache yang jauh lebih cepat daripada harus membaca dari disk lagi.
  • Unified Buffer Cache: Sistem modern menggunakan cache tunggal (page cache) untuk data berkas I/O biasa dan berkas yang dipetakan ke memori (memory-mapped files) untuk menghindari duplikasi data di cache (double caching).
  • Write Policies:
    • Synchronous (Sinkron): Kontrol tidak kembali ke aplikasi sampai data benar-benar ditulis ke disk. Aman tapi lambat. Sering digunakan untuk metadata.
    • Asynchronous (Asinkron): Kontrol langsung kembali setelah data ditulis ke cache. OS akan menuliskannya ke disk nanti. Cepat tapi berisiko kehilangan data jika sistem crash sebelum data sempat ditulis.

Pemulihan dari Kegagalan (Recovery):

Jika sistem crash (misalnya, mati listrik) saat cache berisi data yang belum ditulis ke disk, struktur sistem berkas di disk bisa menjadi tidak konsisten (misalnya, sebuah blok sudah dialokasikan tetapi inode belum diperbarui). Apa yang terjadi jika listrik mati saat sedang menyimpan data?

Consistency Checking (fsck):

  • Konsep: Sebuah program utilitas (seperti fsck di UNIX atau chkdsk di Windows) yang dijalankan setelah crash. Program ini akan memindai seluruh metadata sistem berkas untuk mencari dan mencoba memperbaiki inkonsistensi.
  • Kekurangan: Sangat lambat karena harus memeriksa seluruh volume disk. Prosesnya bisa memakan waktu berjam-jam pada disk besar dan tidak selalu bisa memperbaiki semua kerusakan.

Log-Structured / Journaling File Systems:

  • Konsep: Pendekatan modern untuk pemulihan cepat. Sebelum melakukan perubahan pada struktur sistem berkas utama, perubahan tersebut pertama-tama dicatat sebagai sebuah transaksi dalam area khusus di disk yang disebut jurnal (log).
  • Proses Pemulihan: Setelah crash, sistem tidak perlu memindai seluruh disk. Ia hanya perlu membaca jurnal:
    • Jika sebuah transaksi sudah selesai di jurnal, ia akan “diputar ulang” (replayed) untuk memastikan perubahan diterapkan ke sistem berkas.
    • Jika transaksi belum selesai, ia akan diabaikan.
  • Kelebihan: Proses pemulihan menjadi sangat cepat, hanya dalam hitungan detik, karena hanya membaca jurnal yang ukurannya kecil. Ini adalah standar de-facto di sistem berkas modern (NTFS, ext4, APFS).

Copy-on-Write (CoW) File Systems:

  • Konsep: Pendekatan yang lebih canggih (digunakan oleh ZFS dan WAFL). Sistem ini tidak pernah menimpa data di tempatnya.
  • Cara Kerja: Ketika sebuah blok data dimodifikasi, perubahan tersebut ditulis ke blok baru yang kosong. Kemudian, semua penunjuk di atasnya (metadata) diperbarui untuk menunjuk ke blok baru ini, juga dengan mekanisme CoW.
  • Kelebihan: Sistem berkas selalu dalam keadaan konsisten. Tidak ada jendela waktu di mana data korup. Jika sistem crash, versi lama yang valid masih ada. Ini juga membuat fitur seperti snapshot menjadi sangat efisien.

Backup and Restore:

  • Merupakan jaring pengaman terakhir untuk semua jenis kegagalan (kegagalan perangkat keras, penghapusan yang tidak disengaja, serangan ransomware).
    • Full Backup: Menyalin semua data.
    • Incremental Backup: Hanya menyalin data yang telah berubah sejak backup terakhir. Ini menghemat ruang dan waktu, tetapi proses pemulihan lebih kompleks karena memerlukan full backup terakhir ditambah semua incremental backup setelahnya.

Summary

Manajemen sistem berkas yang efektif memerlukan metode canggih untuk melacak ruang kosong (seperti bitmap atau journaling), strategi peningkatan kinerja yang berpusat pada caching dan buffering di memori, serta mekanisme pemulihan yang tangguh untuk menjaga konsistensi data setelah terjadi kegagalan. Solusi pemulihan modern telah beralih dari pengecekan konsistensi yang lambat (fsck) ke pendekatan yang lebih cepat dan aman seperti journaling atau sistem copy-on-write (CoW), yang semuanya dilengkapi dengan strategi backup dan restore sebagai jaring pengaman terakhir dari kehilangan data.