Bài giảng hệ điều hành chương 10b file system implementation Bài giảng hệ điều hành chương 10b file system implementation Bài giảng hệ điều hành chương 10b file system implementation Bài giảng hệ điều hành chương 10b file system implementation Bài giảng hệ điều hành chương 10b file system implementation
Hệ thống File (tt) Hiện thực hệ thống file thư mục Các phương pháp quản lý không gian trống Sơ đồ bố trí (layout) hệ thống file (1/4) Kích thước sector 512 byte Tuy nhiên, theo chuẩn kích thước sector 4K byte Hệ thống file (ext2, ext3, NTFS…) sử dụng block, hay gọi cluster, để không gian đóa nhỏ cấp phát cho file Block (hay cluster) chuỗi số lượng cố đònh sector liên tiếp nhau, ví dụ sector Hai block có block number khác không giao Sơ đồ bố trí (layout) hệ thống file (1/4) Tổ chức không gian đóa (máy tính cá nhân – IBM PC) tổng quát cho file system MBR Boot sector Partition control block i-nodes FCB’s Sơ đồ bố trí hệ thống file (2/4) Partition control block lưu số lượng block partition, kích thước block, số lượng free block thời trỏ đến chúng,… lưu số lượng free FCB thời trỏ đến chúng,… Ví dụ “superblock” UNIX File System File control block (FCB): file quản lý thông qua FCB lưu thông tin file, kể trỏ đến data block Ví dụ “i-node” UNIX File System Sơ đồ bố trí hệ thống file (3/4) Layout partition chứa hệ thống file UNIX i-node ~ FCB Boot sector Sơ đồ bố trí hệ thống file (4/4) DOS sử dụng file system FAT FAT dùng để bảng FAT dùng để hệ thống file Layout partition chứa hệ thống file FAT Boot sector FAT Root directory Data blocks VFS (Virtual File System) Cung cấp giao diện đồng (read, write) cho ứng dụng độc lập với file system cụ thể Ứng dụng Copy file hai file system khác From ‘Linux Internals, Summer 2006’ VFS Vò trí VFS file system software I/O call path (Linux) Ứng dụng user space VFS ext2_file_write() File system cụ thể, ext2 Đònh thời cho thiết bò block Device driver from Lunde Hiện thực file Cấp phát không gian lưu trữ cho file/directory, mục tiêu: sử dụng không gian đóa hữu hiệu truy cập file nhanh Nếu số lượng kích thước file không thay đổi động thực file nào? Các phương pháp cấp phát phổ biến Cấp phát liên tục (contiguous allocation) Cấp phát theo danh sách liên kết (linked list allocation) Cấp phát dùng mục (indexed allocation) Cấp phát liên tục Thời gian di chuyển đầu đọc? Có thể truy xuất ngẫu nhiên block file: block nr = start + block offset Phân mảnh ngoại Có thể gặp khó khăn tạo file cần thêm block cho file Ứng dụng: ISO-9660 (CDROM) 10 Hiện thực thư mục Thư mục dùng để chứa bảng ánh xạ từ tên file (chuỗi ký tự ASCII) đến thông tin cần thiết để đònh vò block liệu file Tổ chức thư mục Danh sách tuyến tính (array hay linear list), bảng băm,… UNIX file system FAT file system first block nr i-node 18 Duyệt path name để lấy block nr file Ví dụ: Xác đònh block liệu file /a/b/c i-node of / (the 1st one of i-list, by convention) 19 i-node: chia sẻ file (1/2) Thư mục i-node 27 i-node 51 20 i-node: chia sẻ file (2/2) Thư mục i-node 27 i-node 51 i-node 27 21 Quản lý không gian trống Các phương pháp Bit vector (bit map) Linked list Grouping Counting 22 Phương pháp bit vector (bit map) n-1 … bit[ i ] = block i trống block i cấp Ví dụ: bit vector 00111100… Ưu điểm: Đơn giản hiệu cần tìm khối trống chuỗi khối trống liên tục Thao tác bit Khuyết điểm: Cần không gian lưu trữ Ví dụ Kích thước block = 212 byte Kích thước đóa = 230 byte n = 230/212 = 218 bit (32 KB) block 0, trống block 2, 3, 4, cấp block 6, trống … 23 Phương pháp dùng linked list Phương pháp Liên kết khối trống với Chỉ cần giữ trỏ đến khối nhớ trống đóa, cache nhớ để tăng tốc Free-space list head Ưu điểm: Ít lãng phí không gian đóa, vd so với bit vector Khuyết điểm: Không hiệu quả; trường hợp xấu phải duyệt toàn đóa để tìm không gian trống liên tục (trường hợp cấp phát liên tục) [Làm tiếp nhận khối trống trả về?] 24 Grouping Phương pháp grouping Các đòa n khối trống lưu khối trống ban đầu Khối trống thứ n chứa đòa n khối trống Nhận xét: grouping mở rộng phương pháp dùng linked list (lấy n = 1) 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 Grouping với n = Block Block Block Block Block 10 13 25 lưu lưu lưu lưu lưu 3, 4, 8, 9, 10 11, 12, 13 17, 28, 25 26, 27 25 Counting Phương pháp counting Sử dụng khối mục (index block) entry: đòa khối trống nhóm khối trống liên tục số đếm số lượng khối trống Có thể cấp phát tiếâp nhận đồng thời nhiều chuỗi khối trống liên tục 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 Nội dung index block (ở block 21) start 17 25 count 26 Journaling file system Journaling file system Ghi nhận lần cập nhật file system thành giao tác (transaction) Mọi transaction phải ghi nhận log file Một transaction xem hoàn tất (commit) ghi nhận đầy đủ log file (lúc này, file system chưa cập nhật) Khi file system cập nhật với đầy đủ tác vụ transaction transaction xóa log file Nếu file system bò hỏng hệ điều hành dựa vào transaction log file để sửa chữa Tham khảo thêm Linux-ext3, JFS, NTFS 27 Phụ lục -1.28- MS-DOS File System MS-DOS directory entry 29 Windows 98 File System (1/3) Mở rộng MS-DOS directory entry để dùng Windows 98 Bytes 30 UNIX V7 File System (1/2) Một UNIX V7 directory entry i-node number 34 UNIX V7 File System (2/2) Các bước để dò tìm /usr/ast/mbox 35 [...]... đi trong log file Nếu file system bò hỏng hệ điều hành dựa vào các transaction trong log file để sửa chữa Tham khảo thêm Linux-ext3, JFS, NTFS 27 Phụ lục -1.28- MS-DOS File System MS-DOS directory entry 29 Windows 98 File System (1/3) Mở rộng MS-DOS directory entry để dùng trong Windows 98 Bytes 30 UNIX V7 File System (1/2) Một UNIX V7 directory entry i-node number 34 UNIX V7 File System (2/2)... 2 8 17 25 count 4 6 2 3 26 Journaling file system Journaling file system Ghi nhận các lần cập nhật trên file system thành các giao tác (transaction) Mọi transaction đều phải được ghi nhận trong log file Một transaction được xem là hoàn tất (commit) đã được ghi nhận đầy đủ trong log file (lúc này, file system có thể chưa được cập nhật) Khi file system được cập nhật với đầy đủ mọi tác... các block dữ liệu của file Tổ chức thư mục Danh sách tuyến tính (array hay linear list), bảng băm,… UNIX file system FAT file system first block nr i-node 18 Duyệt path name để lấy block nr của file Ví dụ: Xác đònh các block dữ liệu của file /a/b/c i-node of / (the 1st one of i-list, by convention) 19 i-node: chia sẻ file (1/2) Thư mục i-node 27 i-node 51 20 i-node: chia sẻ file (2/2) Thư mục i-node... block nr kế tiếp trong file, nếu file gồm nhiều block no of disk blocks - 1 13 Cấp phát dùng chỉ mục (1/2) Bảng/khối index (index block) chứa đòa chỉ các block của file thứ tự các đòa chỉ cũng là thứ tự các block của file 14 Cấp phát dùng chỉ mục (2/2) Ưu điểm Khuyết điểm Random và sequential access Không xảy ra phân mảnh ngoại Tốn không gian lưu trữ bảng index dù file có kích thước chỉ... đề: Kích thước một file có thể nhỏ nhưng cũng có thể rất lớn Kích thước index block bao nhiêu là phù hợp? Giải quyết: multilevel index i-node 15 i-node – một hiện thực của index block i-node UNIX v7 i-node: 13 pointer Linux ext2 i-node: 15 pointer 16 Hiện thực file dùng i-node File (user view) Ví dụ 17 Hiện thực thư mục Thư mục được dùng để chứa bảng ánh xạ từ tên file (chuỗi ký tự ASCII)... kết (2/2) Ưu điểm Dễ dàng thêm block cho file khi cần Quản lý không gian trống bằng danh sách liên kết Không có phân mảnh ngoại Nhược điểm Chỉ truy xuất hiệu quả đối với truy cập tuần tự Tốn không gian lưu trữ các con trỏ Độ tin cậy: pointer trong block có thể bò hỏng 12 FAT – một hiện thực của cấp phát theo danh sách liên kết: FAT (File Allocation Table) Mỗi block đóa được tượng