thisismyfirstclone
Senior Member
File system kiểu cũ sẽ bị phân mảnh, nó làm y như cách m vừa mô tả ấy, cứ điền vào chỗ trống. Nên ngày xưa mới có mấy cái tool để degragmentation (có cả 1 cái tool như vậy tích hợp trong windows ngày xưa).giờ chẳng hạn cái drive có nhiều page trống không nằm liền kề nhau và không có khoảng trống nào đủ chứa một file cần viết, khi cho một lệnh write để viết cái file đó xuống disk thì chuyện có buffer có đảm bảo là cái file đó được viết hoàn toàn trong các page liền kề nhau không, hay sẽ sinh ra phân mảnh?
Nhưng các file system sau này nó sử dụng cách khác, là chia thành các block groups. Còn tại sao chia thành block groups lại fix được các vấn đề trên thì m đọc trong cuốn operating system three easy pieces. Viết ra đây khác đ' gì ngồi dịch nguyên cả chương.
Còn có một dạng file system khác là Log-Structred File System, cách này thì đơn giản, cứ có ghi mới hoặc chỉnh sửa, là ghi ra block mới, block cũ sẽ bị garbage collectioni clear đi sau. Như vậy giảm số writes cho small writes mỗi khi update. Nhưng nó lại nảy sinh bài toán là tồn tại các dữ liệu "rác". Một số người khá khôn ngoan, là biến yếu điểm này thành đặc điểm của Log-Structred File System, tức là expose cả cái phần "rác" ấy ra cho user, gọi là versions của file. Thậm chí còn thu tiền cho phần "rác" ấy (ví dụ c-l-o-u-d).
))
