4
7
+
Nếu đó là lệnh xoá file thì trước đó hệ thống đã thực hiện thao tác giảm số
liên kết với inode đi 1 và vì vậy có thể số lượng liên kết trở thành 0, có
nghĩa là sự tồn tại của file vật lý không còn. Khi đó, chúng ta thực hiện
việc xoá thức sự file nói trên bằng một số thao tác: giải phóng các khối dữ
liệu, đặt kiểu file của inode là 0 và giải phóng inode.
+
khi số liên kết >0 thi cần cập nhật sự thay đổi của inode lên đĩa từ.
- Trong trường hợp số lượng file tích cực vẫn dương thì không thực hiện thao tác
gì.
Chú ý là trong thuật toán này có sử dụng thuật toán ifree.
Thuật toán ialloc gán inode cho một file mới
Khi một file mới được xuất hiện, chẳng hạn khởi tạo file creat, phải cung cấp một inode
cho file và thuật toán ialloc đáp ứng đòi hỏi trên.
Hoạt động của thuật toán ialloc được giải thích như sau:
- kiểm tra danh sách inode rỗi trên super block, xảy ra một trong hai trường hợp
hoặc danh sách rỗng hoặc không rỗng,
- Nếu danh sách không rỗng thì lấy một inode tiếp theo cho file, khởi tạo các
giá trị ban đầu của inode đó và giảm số inode rỗi trên super trên super block.
- Nếu danh sách các inode rỗi trên super block là rỗng: tìm kiếm trên hệ thống
file những inode rỗi để tải vào danh sách các inode rỗi trên super block. Nếu
danh sách đó đầy hoặc không tìm thấy được nữa thì gán một inode cho file.
Nếu danh sách inode rỗi trên super block là rỗng và không tìm thấy inode rỗi
trên đĩa thì sẽ có thông báo lỗi.
Trên danh sách các inode rỗi, nhân lưu giữ một inode được gọi là inode nhớ, chính là
inode cuối cùng được tìm thấy để sau này thuận lợi cho tìm kiếm.
Thuật toán ifree tải một inode rỗi trên đĩa vào danh sách các inode rỗi trên super
block
Thuật toán namei tìm chỉ số một inode theo tên file
Thuật toán namei là một thuật toán phổ dụng, nhiều thuật toán làm việc với file phải sử
dụng namei. Từ tên một đường dẫn file/thư mục, thuật toán namei cho inode tương ứng.
Thuật toán cấp phát dữ liệu trên đĩa
Khi nhân muốn cấp phát một khối dữ liệu, nó sẽ cấp phát khối rỗi tiếp theo đã được ghi
nhận trong super block. Khi một khối dữ liệu đã được cấp cho một file thì nó chỉ được cấp
phát lại khi nó trở thành rỗi. Nếu không còn khối rỗng nào trên hệ thống file mà lại có nhu
cầu cung cấp khối thì nhân sẽ thông báo lỗi.
3.1.4. Hỗ trợ nhiều hệ thống File
Các phiên bản đầu tiên của Linux chỉ hỗ trợ một hệ thống file duy nhất đó là hệ thống file
minix. Sau đó, với sự mở rộng nhân, cộng đồng Linux đã thêm vào nó rất nhiều kiểu hệ
thống file khác nhau và Linux trở thành một hệ điều hành hỗ trợ rất nhiều hệ thống file.
Dưới đây là một số hệ thống file thông dụng trong các hệ điều hành khác nhau được Linux
hỗ trợ.