Lý thuyết hệ điều hành - Quản lý tập tin
BÀI 8 HỆ THỐNG QUẢN LÝ TẬP TINI. TỔ CHỨC VÀ QUẢN LÝ TẬP TIN1.Tập tin :* Tên tập tin :UNIX phân biệt chữ thường và hoa còn MS-DOS thì không phân biệt. Trong UNIX có thể có nhiều phân cách như prog.c.Z* Cấu trúc của tập tin :- Dãy tuần tự các byte không cấu trúc- Dãy các mẫu tin có chiều dài cố định.* Kiểu tập tin :- Tập tin thường : là tập tin văn bản hay tập tin nhị phân.Tập tin văn bản chứa các dòng văn bản cuối dòng có ký hiệu enter. Tập tin nhị phân gồm dãy các byte , nhưng hệ điều hành chỉ thực thi tập tin đó nếu nó có cấu trúc đúng.- Thư mục : là những tập tin hệ thống dùng để lưu giữ cấu trúc của hệ thống tập tin.- Tập tin có ký tự đặc biệt : liên quan đến nhập xuất thông qua các thiết bị nhập xuất tuần tự như màn hình, máy in, mạng.- Tập tin khối : dùng để truy xuất trên thiết bị đĩa.* Truy xuất tập tin :- Truy xuất tuần tự : Tiến trình đọc tất cả các byte trong tập tin theo thứ tự từ đầu.- Truy xuất trực tiếp: Một tập tin có cấu trúc cho phép chương trình đọc hoặc ghi không cần theo thứ tự. * Thuộc tính tập tin :Tên, kiểu, kích thước (hiện thời, tối đa), ngày giờ (tạo, cập nhật gần nhất), loại (ẩn, chỉ đọc, hệ thống, lưu trữ, tập tin, thư mục), kiểu (văn bản, nhị phân), bảo vệ (mật khẩu, nsd, quyền đọc/ghi/xóa/thực thi/liệt kê/ .)* Các thao tác trên tập tin: Tạo, hủy, mở, đóng, đọc, ghi . 2. Thư mục : Thông tin về file được lưu trữ trong cấu trúc thư mục. Cấu trúc này gồm nhiều mục (entry). Mỗi mục chứa tên một tập tin, thuộc tính và và vị trí lưu trữ của tập tin hoặc entry chứa một con trỏ, trỏ tới một cấu trúc, chứa thuộc tính và vị trí lưu trữ của tập tin.Khi một tập tin được truy xuất, hệ điều hành tìm tên tập tin trong cấu trúc thư mục, lấy thuộc tính , vị trí lưu trữ và đưa vào một bảng trong bộ nhớ. Những truy xuất sau đó thực hiện trong bộ nhớ chính.* Các loại thư mục: 1 - Thư mục một cấp: chứa tất cả các tập tin của tất cả người dùng, cách này dễ tổ chức và khai thác nhưng gây ra khó khăn khi đặt tên tập tin không trùng nhau và nsd không thể phân nhóm cho tập tin, tìm kiếm chậm. - Thư mục hai cấp: có một thư mục gốc và trong đó có nhiều thư mục con, trong mỗi thư mục con chứa các tập tin . - Thư mục đa cấp: có một thư mục gốc và trong đó có nhiều thư mục con, trong mỗi thư mục con chứa tập tin và lại có thể chứa thư mục con, vv . 2 II. CÀI ĐẶT HỆ THỐNG QUẢN LÝ TẬP TINĐể gia tăng hiệu quả trong việc truy xuất và giảm chi phí quản lý địa chỉ trên đĩa, mỗi đơn vị dữ liệu truy xuất gồm một hoặc nhiều sector gọi là một khối. 1. Bảng thư mục, bảng cấp phát file* Bảng thư mục (Directory Table)Gồm nhiều mục, mỗi mục cung cấp các thông tin cần thiết để tìm kiếm các khối lưu trữ tập tin. Thông tin có thể là địa chỉ trên đĩa của toàn bộ tập tin hoặc số hiệu của khối đầu tiên, hoặc là số I-node.Bảng này thường được cài đặt ở phần đầu của đĩa. Mỗi mục (entry) sẽ lưu thông tin về tên , thuộc tính, vị trí lưu trữ vv của một tập tin hay thư mục.Ví dụ: một entry trong bảng thư mục của hđh CP/M chứa tất cả các số hiệu khối chứa tập tin : ví dụ: hđh MSDOS, mỗi entry directory chỉ lưu trữ số hiệu khối đầu tiên của mỗi tập tin. Để biết số hiệu khối còn lại dùng bảng phân phối vùng nhớ.* Bảng cấp phát file (FAT: File Allocation Table)Bảng này thường được sử dụng phối hợp với bảng thư mục, lưu giữ dãy các khối trên đĩa đã cấp phát cho tập tin hay thư mục. 2. Cài đặt hệ thống tập tin* Cách 1: Cấp phát liên tục3 Cách này dễ cài đặt, dễ thao tác vì toàn bộ tập tin được đọc từ đĩa không cần định vị lại, chỉ cần bảng DIR không cần bảng FAT, khuyết điểm là tập tin không thể phát triển và có thể gây ra sự phân mảnh trên đĩa, gây lãng phí lớn.* Cách 2: Cấp phát không liên tục - Dùng danh sách liên kết: mỗi mục trong bảng directory chứa số hiệu của khối đầu tiên, mỗi khối chứa dữ liệu và địa chỉ của khối kế. Cách này không bị lãng phí do phân mảnh ngoại vi và , không cần bảng FAT. Tuy nhiên truy xuất ngẫu nhiên sẽ chậm và khó bảo vệ số hiệu khối của tập tin.4 - Dùng bảng chỉ mục: Mỗi file có một bảng chỉ mục cất ở một khối nào đó. Mỗi bảng chỉ mục chứa tất cả các số hiệu khối của một file. Ví dụ: Giả sử đĩa cứng có dung lượng 32 GB, kích thước max của file là 256K, kích thước 1 khối là 512 Bytes thì kích thước một bảng chỉ mục là bao nhiêu? Nếu kích thước khối là 1024 byte thì sao?32 GB=25x210x210 byte = 225 byte = 216 khối => có 216 địa chỉ trên đĩa => mỗi phần tử bảng chỉ mục cần 2 byte .256K=256x1024 byte = 512 khối => bảng chỉ mục cần có 512 phần tử=> một bảng chỉ mục chiếm hai khối!- Dùng bảng FATMỗi mục trong bảng DIR chứa số hiệu của khối đầu tiên của một file, bảng FAT chứa số hiệu các khối còn lại của tất cả các file. Khi đó toàn bộ khối chỉ chứa dữ liệu và truy xuất ngẫu nhiên sẽ dễ dàng hơn. Kích thước tập tin được mở rộng hơn. Hạn chế là bảng này bị giới hạn bởi kích thước bộ nhớ . 5 * Cách 3: I-nodesMỗi tập tin được quản lý bằng một I-node. I-node là cấu trúc dữ liệu gồm hai phần: - Phần thứ nhất là thuộc tính của tập tin. Phần này lưu trữ các thông tin liên quan đến tập tin như kiểu, người sở hữu, kích thước, v.v .6 - Phần thứ hai có 13 phần tử: 10 phần tử đầu chứa địa chỉ khối dữ liệu của tập tin. Phần tử thứ 11 chứa địa chỉ gián tiếp cấp 1 (single indirect), chứa địa chỉ của một khối, trong khối đó chứa một bảng có thể từ 210 đến 232 phần tử mà mỗi phần tử mới chứa địa chỉ của khối dữ liệu. Phần tử thứ 12 chứa địa chỉ gián tiếp cấp 2 (double indirect), chứa địa chỉ của bảng các khối single indirect. Phần tử thứ 13 chứa địa chỉ gián tiếp cấp 3 (double indirect), chứa địa chỉ của bảng các khối double indirect. Cách tổ chức này tương đối linh động. Phương pháp này hiệu quả trong trường hợp sử dụng để quán lý những hệ thống tập tin lớn. Hệ điều hành Unix sử dụng phương pháp này .III. Quản lý các khối trống- Dùng vector bit (dãy bít) : bit thứ i = 1 là khối thứ i trống, 0 là đã sử dụng.ví dụ: đĩa 1 GB, kích thước 1 khối là 4K, tính kích thứơc vector bit.Kích thước khối: 4K=212 byte Dung lượng đĩa: 1GB= 230 byte => đĩa có 230/212=218 khối => kích thước vector bit: 218 bit = 215 byte= 32 K = 8 khốivector bit lưu trên đĩa, khi cần sẽ đọc vào bộ nhớ. Cần đồng bộ giữa bộ nhớ và trên đĩa.- Dùng dslkSử dụng danh sách liên kết của khối đĩa. Mỗi khối chứa một số các địa chỉ các khối trống. Ví dụ: . Một đĩa 20M, dùng khối có kích thước 1 K. DSLK cần bao nhiêu khối (số nút của dslk) để quản lý đĩa này? 20M= 20x 210 Khối ~ 215 khối => cần dùng 16 bit=2 byte để lưu một số hiệu khối => 1 khối=1024K lưu được 511 số hiệu khối => để quản lý đĩa có 20x 210 khối, dslk cần 20x 210/ 511 ~ 40 khối .Nếu dùng vector bit thì kích thước vector bit là :20x 210 bit = 20x 210 /8/ 210 K ~ 3 khối. 7 V. ĐỘ AN TỒN CỦA HỆ THỐNG TẬP TIN1. Quản lý khối bị hỏng Có hai giải pháp : phần mềm và phần cứng.- Dùng phần cứng: dùng một sector trên đĩa để lưu giữ danh sách các khối bị hỏng. Khi bộ kiểm sốt đĩa thực hiện lần đầu tiên, nó đọc những khối bị hỏng và dùng một khối thừa để lưu giữ. Từ đó khơng cho truy cập những khối hỏng nữa. - Dùng phần mềm: dùng một tập tin chứa các khối hỏng .2. BackupTập tin trên đĩa mềm được backup bằng cách chép lại tồn bộ qua một đĩa khác. Dữ liệu trên đĩa cứng nhỏ thì được backup trên các băng từ. Đối với đĩa cứng , việc backup có thể tiến hành như sau: chia đĩa cứng làm hai phần một phần dữ liệu và một phần là backup. Mỗi khi backup, phần dữ liệu sẽ được chép sang phần backup.8 VI. GIỚI THIỆU MỘT SỐ HỆ THỐNG TẬP TINA. HỆ THỐNG TẬP TIN CỦA MS-DOS1. Boot sectorỞ sector đầu tiên, track 0, side 0 của đĩa mềm, đối với đĩa cứng thì vị trí này là bảng partiton, rồi mới tới boot sector. Boot sector chứa đoạn mã dùng để nạp các file hệ thống và chứa bảng tham số đĩa BPB (Bios Parameter Block) :Boot sector có cấu trúc sau:Offset Size Content0h 3 JMP Lệnh nhảy đến đầu đoạn mã boot3h 8 Tên công ty, phiên bản hđhBh 2 SectSiz số byte của một sector (bắt đầu BPB)DH 1 ClustSize số sector trên một clusterEh 2 ResSecs sector dành riêng trước FAT10h 1 FatCnt số bảng FAT11h 2 RootSiz Kích thước của một entry directory13h 2 TotSecs Tổng số sector trên đĩa hay trong partition15h 1 Media Byte nhận dạng đĩa16h 2 FatSize Số sector cho một bảng FAT18h 2 TrkSecs số sector trên một track1Ah 2 HeadCnt số đầu đọc1Ch 2 HidnSec số sector ẩn (dùng cho partion)1Eh đầu đoạn mã khởi động2. Bảng FATSau bootsector là FAT (File Allocation Table), thường có hai FAT để an toàn. Mỗi entry của FAT quản lý một khối (còn gọi là cluster được đánh số bắt đầu từ 2) trên đĩa. Kích thước khối được lưu trong bootsector thông thường từ 1 đến 8 sector. Có ba loại FAT là FAT 12 và FAT 16, FAT 32. FAT 12 có thể quản lý được 212 = 4096 khối, FAT 16 có thể quản lý 216 = 64 K khối, FAT 32 có thể quản lý 232 = 4 G khối trên một partition. Hai entry đầu tiên của bảng FAT dùng mô tả loại đĩa. 9 0 Cluster còn trống(0)002 - (F)FEF Cluster chứa dữ liệu của các tập tin(F)FF0 - (F)FF6 Dành riêng, không dùng(F)FF7 Cluster hỏng(F)FF8 - (F)FFF Cluster cuối cùng của chuỗi Hình : Giá trị trong một entry trong bảng FAT 3. Bảng Root DirectoryKhi hệ thống mở một tập tin, MS-DOS tìm tên tập tin trong bảng thư mục. Bảng thư mục (Root Directory Entry Table (RDET)) nằm ngay sau FAT, và mỗi entry của bảng RDET là 32 byte. Tên tập tin (8 bytes)Phần mở rộng (3 bytes)1049 [...]... chứa mã khởi động của hệ thống - Khối super block (khối đặc biệt): chứa thông tin về toàn bộ hệ thống tập tin, bao gồm: Kích thước của toàn bộ hệ thống tập tin Địa chỉ của khối dữ liệu đầu tiên Số lượng và danh sách các khối còn trống Số lượng và danh sách các I-node còn trống Ngày super block được cập nhật cuối cùng Tên của hệ thống tập tin Nếu khối này bị hỏng, hệ thống tập tin sẽ không truy cập... volume, cấu trúc của hệ thống tập tin cũng như những thông tin và mã nguồn khởi động - Master File Table (MFT): lưu các thông tin về tất cả tập tin và thư mục trên volume NTFS này cũng như thông tin về các vùng trống - Các tập tin hệ thống: Có kích khoảng 1Mb bao gồm : MFT2 : bản sao của MFT Log file : thông tin về các giao tác dùng cho việc phục hồi Cluster bitmap : biểu diễn thông tin lưu trữ của các... sử dụng Giá trị byte thuộc tính: 1 : tập tin chỉ đọc 2 : tập tin ẩn 4 : tập tin hệ thống 8 : nhãn đĩa 16 : thư mục con 32 : tập tin chưa backup Ví dụ : Trên đĩa 1.44Mb, được format dưới hệ điều hành MS-DOS gồm có 2880 sector: Sector đầu tiên là bootsector, bao gồm bảng tham số vật lý của đĩa và chương trình khởi động của hệ điều hành (nếu có) 18 sector tiếp theo là FAT (FAT12), gồm 2 bảng, mỗi bảng... định nghĩa các kiểu thuộc tính hỗ trợ cho volume đó MFT được tổ chức thành nhiều dòng Mỗi dòng mô tả cho một tập tin hoặc một thư mục trên volume Nếu kích thước tập tin nhỏ thì toàn bộ nội dung của tập tin được lưu trong dòng này mỗi dòng cũng lưu những thuộc tính cho tập tin hay thư mục mà nó quản lý Kiểu thuộc tính Mô tả Thông tin chuẩn Bao gồm các thuộc tính truy xuất (chỉ đọc, đọc/ghi, ), nhãn... dụng thông tin lưu trữ trong super block Vì vậy một bản sao super block của hệ thống tập tin gốc được đặt trong RAM để tăng tốc độ truy xuất đĩa Việc cập nhật super block sẽ được thực hiện ngay trong RAM và sau đó mới ghi xuống đĩa - Các I-node: được đánh số từ 1 Mỗi I-node có độ dài là 64 byte và mô tả cho một tập tin duy nhất (chứa thuộc tính và địa chỉ khối lưu trữ trên đĩa của tập tin) - Các khối... cluser = 1 sector) Hệ thống quản lý đĩa của MSDOS B HỆ THỐNG TẬP TIN CỦA WINNT 11 Sử dụng hệ thống NTFS Kích thước tập tin tối đa trong NTFS là 232 cluster, tương đương 248 bytes Sự tương ứng giữa kích thước volume (partition) và cluster như hình sau : Cấu trúc volume của NTFS : - Partition boot sector: là sector khởi động của partition (có thể đến 16 sectors) bao gồm các thông tin về cấu trúc của... dòng của MFT Tên tập tin Mô tả an toàn thông tin về người sở hữu và truy cập Dữ liệu Chỉ mục gốc dùng cho thư mục Chỉ mục định vị dùng cho thư mục thông tin volume như tên version và tên volume 12 Bitmap hiện trạng các dòng trong MFT Hình : Các kiểu thuộc tính của tập tin và thư mục của Windows NTFS C UNIX Hệ thống tập tin của UNIX thông thường được cài đặt trên đĩa như ở hình sau : - Khối boot: chứa... V – S - H - R Dành riêng (10 bytes) để sử dụng sau này Giờ (2 bytes): 6 bit cho giây, 6 bit cho phút, 4 bit cho giờ Ngày (2 bytes): 5 bit cho ngày, 4 bit cho tháng và 7 bit cho năm (từ 1980) Số hiệu khối đầu tiên (2 bytes) Kích thước tập tin (4 bytes) Hình : Một entry trong thư mục Byte thuộc tính có thể được đọc ghi trong quá trình sử dụng Giá trị byte thuộc tính: 1 : tập tin chỉ đọc 2 : tập tin ẩn... Hiện trạng của FAT12 và RDET (mỗi entry chỉ gồm tên tập tin và cluster đầu tiên)của một đĩa như sau : 240 255 255 247 79 0 VD TXT 3 6 0 0 255 LT DOC 7 159 0 10 240 255 255 127 255 THO DAT 8 Cho biết hiện trạng của FAT12 và RDET sau khi xoá tập tin vd.txt và chép vào tập tin bt.cpp có kích thước 1025 bytes ( giả sử 1 cluster = 1 sector) Bài 6 : Một tập tin được lưu trên đĩa tại những khối theo thứ tự sau... tử trong FAT (dưới dạng số thập phân) Bài 3 : 13 Chép 1 tập tin kích thước là 3220 bytes lên một đĩa 1.44Mb còn trống nhưng bị hỏng ở sector logic 33 Cho biết giá trị từng byte của Fat (thập phân) từ byte 0 đến byte 14 Bài 4 : Giả sử một đĩa mềm có 2 side, mỗi side có 128 track, mỗi track có 18 sector Thư mục gốc của đĩa có tối đa là 251 tập tin (hoặc thư mục) Một cluster = 2 sector Đĩa sử dụng Fat . BÀI 8 HỆ THỐNG QUẢN LÝ TẬP TINI. TỔ CHỨC VÀ QUẢN LÝ TẬP TIN1 .Tập tin :* Tên tập tin :UNIX phân biệt chữ thường và hoa còn MS-DOS thì không phân. của tập tin :- Dãy tuần tự các byte không cấu trúc- Dãy các mẫu tin có chiều dài cố định.* Kiểu tập tin :- Tập tin thường : là tập tin văn bản hay tập tin