Bài giảng Hệ điều hành - Chương 4: Quản lý tập tin

Ở việc bẻ gãy một tiến trình hay sau khi hoàn thành một tiến trình, một câu hỏi

được đặt ra là: Bạn lưu trữ dữ liệu của bạn như thế nào, để sau này, bạn có thể làm

việc trở lại với cái bạn đã có? Tính chất này của dữ liệu gọi là cố định dữ liệu,

người ta đạt được khi dữ liệu được viết vào bộ nhớ quảng đại trước khi kết thúc

chương trình. Tuy nhiên, chúng ta vẫn còn một vấn đề: Ở phần lớn bộ nhớ quảng

đại, danh sách các tệp tin quá dài, ấy nhưng người ta muốn thời gian truy cập phải

ngắn. Do đó, trường hợp này chỉ có thể dẫn tới một cách thức tổ chức tệp tin để

quản lý các tệp dữ liệu trong hệ thống máy tính.

pdf31 trang | Chuyên mục: Hệ Điều Hành | Chia sẻ: dkS00TYs | Lượt xem: 4267 | Lượt tải: 1download
Tóm tắt nội dung Bài giảng Hệ điều hành - Chương 4: Quản lý tập tin, để xem tài liệu hoàn chỉnh bạn click vào nút "TẢI VỀ" ở trên
c là nó bao gồm 
48bit cho số tệp tin và 16bit cho số tuần tự. Số tuần tự sẽ được gia tăng theo mỗi 
khi xoá tệp tin thuộc số tệp tin, do đó, người ta có thể phân biệt giữa sự tham chiếu 
tới các số tệp tin trung gian đã bị xoá và một tệp tin hiện hành, nếu chúng tham 
chiếu tới các số tệp tin tương tự. 
Ưu điểm của ý tưởng này là cung cấp cho người ta tương đối đầy đủ tất cả các 
thông tin về tệp tin: 
+ Cơ cấu truy cập tệp tin thì kiên đình và đơn giản, kể cả các thông tin khởi 
động hệ thống; 
+ Các thông tin về bảo vệ được tách bạch theo các thành phần quản lý, và với 
điều này, nó thì có thể thích hợp hơn ở các ứng dụng; 
+ Khi các phần đĩa từ không thể sử dụng được, do đó, các thông tin quản lý 
(mà người sử dụng không thể nhìn thấy…) có thể được nạp trở lại trên các phần 
khác của đĩa từ. 
Mỗi volume chứa đựng một bảng trung tâm gọi là bảng tệp tin chủ (master file 
table: MFT), mà trong đó, các tệp tin hệ thống được ghi chép rất đầy đủ. 
Hình 4.19 ở dưới đây cho thấy, chính nó là một tệp tin bao gồm tất cả các dữ 
liệu về các thư mục cũng như các thông tin về việc tự khởi động của hệ thống 
(bootstrap). Tất cả 16 tệp tin đầu tiên này được giữ chặt và tạo thành các tệp tin hệ 
thống của hệ điều hành Windows NT (NT file-system: NTFS). 
Tệp tin 0 Bảng tệp tin chủ (MFT) 
Tệp tin 1 Bản sao bảo vệ bảng MFT đối với các tệp tin hệ thống, định vị đĩa từ. 
Tệp tin 2 Tệp tin logic: Các tác vụ thay đổi cấu trúc NTFS, được biểu thị ở đây và đảm bảo 
các hoạt động chuyển đổi nhân tử. 
Tệp tin 3 Tệp tin volume: Các thông tin trạng thái của volume như tên, ấn bản… Nếu Bit 
corrupted được đặt thì chương trình chkdsk phải được thực hiện; chương trình này 
kiểm tra hệ thống tệp tin thường trú và sửa chữa lỗi đã được khẳng định. 
Tệp tin 4 Bảng định nghĩa thuộc tính: Ở đây biểu thị tất cả các kiểu thuộc tính tồn tại ở 
trong volume, như trạng thái 
Tệp tin 5 Thư mục gốc: Tên của thư mục gốc, thí dụ ký tự “\” 
Tệp tin 6 Tệp tin bitmap: Bảng che phủ của đơn vị bộ nhớ volume (sluster), xem thư mục 
3.1.1 
Tệp tin 7 Tệp tin boot: Tệp tin khởi động này được tạo ra nhờ chương trình format và chứa 
đựng mã bootstrap của Windows NT và địa chỉ vật lý của tệp tin MFT 
Tệp tin 8 Tệp tin bad cluster: Thư mục của colume cluster không thể sử dụng 
Tệp tin 9 … 
 … 
Tệp tin 16 Các tệp tin của người sử dụng bình thường và các thư mục 
Hình 4.19. Dãy tuần tự của 16 tệp tin đầu tiên của hệ thống các tệp tin (NTFS) ở Windows NT 
Cấu trúc logic của một volume được tạo thành như sau: Cấu trúc dữ liệu trung 
tâm của một hệ thống tệp tin là một bảng tệp tin chủ (master file table: MFT); 
bảng này đóng vai trò như một nút đặc biệt ở trong Unix. Bảng MFT chứa đựng 
một sự điền vào đối với mỗi tệp tin và mỗi thư mục. Sự điền vào này bao gồm dãy 
tuần tự các thuộc tính của tệp tin. Mỗi thuộc tính có thể hoặc tồn tại một cách đầy 
đủ, gọi là thuộc tính thường trú (resident atribute), hoặc là, nếu thuộc tính này quá 
dài (thí dụ các dữ liệu riêng lẻ tồn tại như là một thuộc tính bình thường), thêm 
vào đó, sự tham chiếu tới các block bộ nhớ tiếp theo (còn gọi là các cluster) được 
biểu thị là “runs”. Mỗi thuộc tính có một sự kéo căng hai đầu (header); bên cạnh 
sự biểu thị “resident” (thường trú ) hay “nonresident” (không thường trú), sự kéo 
căng này còn chứa đựng sự bắt đầu và cả chiều dài thuộc tính trong khi điền vào 
tệp tin. Nếu thuộc tính là không thường trú, do đó, nó chứa đựng sự bắt đầu và 
chứa đựng cả chiều dài của các khối bổ sung. Thêm vào đó, số tương đối của các 
khối 0…N, gọi là số của các cluster ảo (virtual cluster number: VCN), sẽ được 
biểu diễn ở trong tệp tin như là việc sắp xếp chúng từ số của cluster ảo thành số 
của cluster logic (logic cluster number: LCN). Hình 4.20 biểu diễn một sự điền 
vào như vậy. Những thuộc tính của tệp tin được giải thích một cách đầy đủ ở trong 
mục 4.3.2 ở trên. 
Nếu theo đó các block của bộ nhớ chỉ tồn tại toàn số 0, và nếu một thuộc tính 
chuẩn được biểu thị compress (nén lại) đối với tệp tin, do đó, các block trống của 
bộ nhớ sẽ không lưu trữ. Đáng lẽ là như vậy, nhưng khi đếm các cluster ảo, các 
khối cluster thích hợp sẽ được nhãy qua một cách đơn giản, do đó, ở trong dãy 
tuần tự VCN, các lỗ trống vẫn tồn tại. 
Hình 4.20************************************ 
Khi đọc các tệp tin, thì điều đó được các tệp tin hệ thống của Windows NT 
nhận biết và được đưa trở lại với các block khởi xướng là các số 0. Nếu các block 
của tệp tin nén không chứa đựng các số 0, do đó, một giải thuật nén tổng quát 
được đáp ứng; tuy nhiên, giải thuật này chỉ đạt được nén nhanh chứ không đạt 
được nén hiệu suất. 
Ở một thư mục, dòng dữ liệu bao gồm một chỉ số với tên tệp tin, mà bộ đệm 
của nó được tổ chức thành dạng cây B* (thí dụ các tệp tin hệ thống của hệ điều 
hành OS/2), xem mục 4.4.4 ở trên. 
Chỉ số này bao gồm 3 thành phần: phần thứ nhất là các tên được đánh chỉ số ở 
trong dãy tuần tự từ điển (gọi là chỉ số gốc: index root) và các chỉ dẫn của chúng; 
phần thứ hai là các bảng sắp xếp (VCN -> LCN) của các bộ đệm để cấp phát chỉ 
số (index allocation) cho các dữ liệu không thường trú; phần thứ ba là các bảng 
che phủ của các bộ đệm còn gọi là các bit ảnh xạ. 
Mỗi sự điền vào bao gồm số tham chiếu tệp tin, tên tệp tin, thời gian tạo lập và 
chiều dài tệp tin; tất cả những cái đó được bảng MFT sao chép lại ở tại đây. Tuy 
nhiên, một sự chi phí cho việc đồng bộ sẽ được bổ sung; chi phí này có lợi nhờ 
thời gian tìm kiếm ngắn hơn ở trong các thư mục. Tên tệp tin được đánh chỉ số ở 
trong dãy tuần tự từ điển. Mỗi tên tệp tin được chỉ dẫn trên một bộ đệm chỉ số và 
chứa đựng các sự điền vào với chỉ số nhỏ hơn. Một cây B* thường phát triển theo 
chiều rộng tốt hơn chiều sâu, vì nó cho phép các tác vụ tìm kiếm rất nhanh. 
Các bộ đệm bổ sung chứa đựng những chỉ dẫn tệp tin trong dạng đóng gói; ở 
lần sử dụng đầu tiên (mount) của tệp tin, cấu trúc dữ liệu phải được đóng gói ở 
trong bộ nhớ. Nhờ đó, một sự lưu trữ với khoáng 15 tên tệp trên mỗi bộ đệm với 
2kB hay 4 cluster (khoảng 512 Byte cho mỗi cluster) là có thể. 
4.6. Các bài tập về quản lý tệp tin 
 4.6.1.Các bài tập về tệp tin 
Bài tập 4.1. Về các thư mục cô lập 
Giả sử thư mục Test là thư mục gốc. Bạn hãy lập thư mục con của thư mục 
Test. Trên thư mục vừa thiết lập, bạn hãy tạo ra một kết nối cứng (hard link). Bấy 
giờ, nó tồn tại một kết nối quay vòng. Bạn hãy thử nghiệm xoá thư mục. Test từ 
đường dẫn gốc. Bạn đạt được cái gì ? 
4.6.2. Các bài tập về tên tệp tin và thƣ mục 
Bài tập 4.2. Về đổi tên tệp tin 
Ở ví dụ đổi tên file, giải thuật cho Windows NT được mô tả để đổi một tên tệp 
tin dài thành tên ngắn và rõ ràng. 
a). Tên các tệp tin có kích cỡ bao nhiêu để có thể mã hóa thành một tên ngắn 
và rõ ràng với 8 ký tự ? Với lưu ý: các ký tự của phần tên chính không được ít hơn 
6. 
b). Bạn có thể thay đổi sơ đồ như thế nào để mã hóa một số lượng lớn các tên 
tệp tin dài thành tên tệp tin rõ ràng với 8 ký tự theo mã ASCII ? Bạn hãy suy nghĩ 
vì sao các việc thực thi đã không chọn khả năng này ? 
Bài tập 4.3. Về tên đường dẫn 
Nhược điểm và ưu điểm của tên đường dẫn tương đối với tên đường dẫn tuyệt 
đối là gì ?. Ở đâu và khi nào người ta có thể thay thế tên đường dẫn nào cho phù 
hợp ? Bạn hãy lý giải điều này với sự trợ giúp của một hệ thống biên dịch! 
Bài tập 4.4. Về quản lý tệp tin hướng đối tượng 
Giả sử người ta cho phép việc quản lý tệp tin trong Unix một cách hướng đối 
tượng. Những phương pháp và những thuộc tính nào là cần thiết đối với một đối 
tượng thư mục và đối với một đối tượng tệp tin ở trong hệ điều hành Unix ? 
Bài tập 4.5. Về danh sách điều khiển truy cập 
Nhược điểm và ưu điểm của danh sách điều khiển truy cập là gì ? Khi điều đó 
được người sử dụng thiết đặt cho tất cả các tệp tin. 
4.6.3. Các bài tập về các chức năng tệp tin 
Bài tập 4.6. Về file mở 
Một hệ điều hành có thể thực hiện các tác vụ tệp tin trên hai loại khác nhau: 
+ Bình thường để truy cập tệp tin, trước hết người sử dụng phải mở tệp tin; 
+ Hoặc điều này xảy ra một cách tự động khi truy cập tệp tin. Ở trường hợp thứ 
nhất, một sự truy cập tệp tin được mô tả như sau: 
 open()...read() ...I/O-Ops...Close() 
Trong trường hợp thứ hai, người ta chỉ việc truy cập tệp tin (I/O- Ops); sau đó, 
tệp tin được đóng lại khi chương trình kết thúc. Với hai cách nói trên, tồn tại 
những ưu điểm và nhược điểm nào ? 
Bài tập 4.7. Lệnh copy 
Mỗi hệ điều hành thông thạo một số lệnh để quản lý các tệp tin. Bạn hãy đặt 
mình vào vị trí một nhà thiết kế hệ thống để viết một lệnhh copy. 
a). Bạn hãy thực thi lệnh copy để sao một tệp tin của hệ điều hành với các chức 
năng thư viện về quản lý tệp tin (read, write...). 
b). Những thay đổi nào phải được lựa chọn đối với lệnh move ? Nếu đầu tiên 
đạt được việc copy, thì khi đó, tệp tin ở thư mục nguồn có bị xóa không ? Xin lưu 
ý: Bạn hãy suy nghĩ tới cơ chế bảo vệ ! 
c). Lệnh copy phải được mô tả như thế nào để sao chép toàn bộ thư mục kể cả 
các thư mục con ? Bạn hãy thực thi lệnh này xem ! 
Bài tập 4.8. Về xuất- nhập 
Tại sao trong Unix có sự khác nhau giữa xuất chuẩn và xuất lỗi chuẩn, nếu cả 
hai đều dẫn tới sự mặc định trên màn hình ? 
Bài tập 4.9. Thực hiện lệnh echo bởi thiết bị đặc biệt 
Cái gì sẽ xảy ra, nếu trong Unix bạn xuất ra một bài text với chương trình echo 
(dội lại) theo các đường dẫn dev/tty hay dev/null ? 
4.6.4. Thực thi việc tổ chức tệp tin 
Bài tập 4.10. Về i-node 
Trong hệ điều hành Unix, các i-node chứa đựng 20 địa chỉ đối với các block dữ 
liệu, cũng như các địa chỉ của một block vô hướng của bậc đầu tiên, bậc 2 và bậc 
3. Nếu một trong các block chứa đựng 256 địa chỉ ổ đĩa, thì tệp tin có thể sử dụng 
lớn nhất là bao nhiêu ? Với kích cỡ một block của ổ đĩa là 1 KB. 
Bài tập 4.11. Về quản lý việc lưu trữ các tệp tin 
Việc lưu trữ các tệp tin dẫn tới việc phân mảnh nhỏ ổ đĩa từ. Bạn hãy trình bày 
về việc phân mảnh nhỏ các vòng xuyến ở ngoài và ở trong gần tâm của đĩa từ ? 

File đính kèm:

  • pdfHDH_chuong 4.pdf