Sistem Berkas
Sistem berkas adalah komponen sistem operasi yang mengatur data persisten menjadi berkas dan direktori bernama pada perangkat penyimpanan, mengelola bagaimana data ditata, ditemukan, dilindungi, dan dijaga konsistensinya.
Definition
Sistem berkas adalah metode dan struktur data yang digunakan sistem operasi untuk menyimpan, mengatur, menamai, mengambil, dan melindungi data persisten pada perangkat penyimpanan, menyajikan berkas dan direktori ke aplikasi sambil mengelola tata letak dan konsistensi pada perangkat.
Scope
Topik ini mencakup abstraksi dan antarmuka berkas, struktur direktori, metode alokasi (berurutan, tertaut, terindeks) dan manajemen ruang kosong, struktur metadata seperti inode, penjurnalan dan konsistensi saat terjadi kerusakan (crash consistency), serta cache penyangga (buffer cache). Ini membahas bagaimana sistem operasi mengubah penyimpanan mentah menjadi ruang nama yang andal dan bernama. Ini tidak termasuk perangkat penyimpanan fisik itu sendiri (perangkat penyimpanan sekunder) dan manajemen memori utama sistem operasi (manajemen memori).
Core questions
- Bagaimana berkas dinamai, diatur ke dalam direktori, dan diakses?
- Bagaimana data berkas dialokasikan dan ditemukan pada perangkat penyimpanan?
- Metadata apa yang disimpan sistem berkas, dan bagaimana ruang kosong dikelola?
- Bagaimana sistem berkas tetap konsisten saat terjadi kerusakan?
Key concepts
- abstraksi dan antarmuka berkas
- direktori dan ruang nama
- inode dan metadata
- metode alokasi (berurutan, tertaut, terindeks)
- manajemen ruang kosong
- penjurnalan dan konsistensi saat terjadi kerusakan
- cache penyangga
- kontrol akses dan izin
Key theories
- Konsistensi saat terjadi kerusakan
- Karena kerusakan dapat mengganggu pembaruan multi-langkah, sistem berkas menggunakan teknik seperti penjurnalan (mencatat perubahan yang dimaksudkan sebelum menerapkannya) atau salin-saat-tulis untuk memastikan bahwa setelah kegagalan, sistem berkas dapat dipulihkan ke keadaan yang konsisten.
Mechanisms
Sistem berkas memetakan setiap aliran byte logis berkas ke blok pada perangkat, mencatat pemetaan dan atribut dalam struktur metadata seperti inode dan direktori. Metode alokasi menentukan bagaimana blok ditetapkan dan dilacak, dan struktur ruang kosong mencatat blok yang tersedia. Cache penyangga (buffer cache) menyimpan blok yang baru digunakan dalam memori, dan penjurnalan atau salin-saat-tulis (copy-on-write) memastikan bahwa pembaruan yang terganggu meninggalkan sistem berkas dalam keadaan yang dapat dipulihkan dan konsisten.
Clinical relevance
Sistem berkas adalah cara hampir semua data persisten disimpan dan diambil, sehingga kinerja dan keandalannya sangat penting bagi basis data, aplikasi, dan pengguna. Pilihan desain seputar metadata, caching, dan konsistensi saat terjadi kerusakan menentukan ketahanan dan pemulihan setelah kegagalan, dan sistem berkas yang banyak digunakan seperti ext4, NTFS, dan ZFS mewujudkan puluhan tahun dari pertukaran ini.
History
Sistem berkas hierarkis dengan direktori dan model inode ditetapkan oleh UNIX sekitar tahun 1970. Berkeley Fast File System meningkatkan tata letak dan kinerja, dan desain penjurnalan serta log-terstruktur pada tahun 1990-an mengatasi konsistensi saat terjadi kerusakan dan kinerja penulisan. Sistem berkas salin-saat-tulis (copy-on-write) seperti ZFS dan Btrfs kemudian mengintegrasikan checksum dan snapshot untuk integritas yang lebih kuat.
Debates
- Penjurnalan versus salin-saat-tulis untuk konsistensi
- Penjurnalan mencatat perubahan yang dimaksudkan sebelum menerapkannya, sementara salin-saat-tulis menulis data baru ke lokasi baru dan secara atomik mengalihkan penunjuk; masing-masing menawarkan konsistensi saat terjadi kerusakan dengan kinerja, ruang, dan pertukaran integritas yang berbeda, dan keduanya digunakan dalam sistem modern.
Key figures
- Ken Thompson
- Dennis Ritchie
- Marshall Kirk McKusick
- Abraham Silberschatz
Related topics
Seminal works
- silberschatz2018
- tanenbaum2014os
Frequently asked questions
- Apa itu inode?
- Inode adalah struktur metadata yang menjelaskan sebuah berkas: ukuran, kepemilikan dan izinnya, stempel waktu, dan penunjuk ke blok penyimpanan yang menyimpan datanya. Direktori memetakan nama yang dapat dibaca manusia ke inode, memisahkan nama berkas dari representasi pada perangkatnya.
- Bagaimana penjurnalan melindungi dari kerusakan?
- Sebelum memodifikasi struktur sistem berkas, sistem berkas penjurnalan mencatat perubahan yang dimaksudkan dalam sebuah log. Jika kerusakan mengganggu pembaruan, saat memulai ulang sistem memutar ulang atau membuang perubahan yang dicatat, memulihkan keadaan yang konsisten daripada membiarkan sistem berkas rusak.