Bài giảng Hệ điều hành - Chương 7: Quản lý hệ thống file - Đại học Bách khoa TP.HCM

pdf 64 trang ngocly 3090
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Hệ điều hành - Chương 7: Quản lý hệ thống file - Đại học Bách khoa TP.HCM", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên

Tài liệu đính kèm:

  • pdfbai_giang_he_dieu_hanh_chuong_7_quan_ly_he_thong_file_dai_ho.pdf

Nội dung text: Bài giảng Hệ điều hành - Chương 7: Quản lý hệ thống file - Đại học Bách khoa TP.HCM

  1. MÔN HỆ ĐIỀU HÀNH Chương 7 QUẢN LÝ HỆ THỐNG FILE 7.1 Giới thiệu hệ thống file 7.2 Giao tiếp sử d ụng phân hệ quản lý file 7.3 Giao tiếp sử dụng phân hệ quản lý thư mục 7.4 Hiện thực file 7.5 Hiện thực thư mục 7.6 Quản lý các cluster chưa dùng 7.7 Các việc quản lý khác trên hệ thống file 7.8 Quản lý hệ thống file trên máy PC Tài liệu tham khảo : chương 6, sách "Modern Operating Systems", Andrew S. Tanenbaum: , 2nd ed, Prentice Hall Môn : Hệ ₫iều hành Khoa Công nghệ Thông tin Chương 7 : Quản lý hệ thống file Trường ĐH Bách Khoa Tp.HCM Slide 1
  2. 7.1 Giới thiệu hệ thống file ‰ Bộ nhớ nội của máy tính thường có dung lượng nhỏ, chỉ ₫ủ chứa chương trình và dữ liệu ₫ang ₫ược xử lý. ‰ Cần có thiết bị khác làm chỗ chứa các chương trình và dữ liệu ₫ã/₫ang/sẽ xử lý, thiết bị này ₫ược gọi là bộ nhớ ngoài, nó cần có dung lượng rất lớn. Có rất nhiều kỹ thuật khác nhau ₫ể tạo ra bộ nhớ ngoài như ₫ĩa cứng, băng, CDROM, flash ROM, ‰ Đễ giúp user dùng các loại bộ nhớ ngoài dễ dàng, ₫ồng nhất, HĐH sẽ trừu tượng hóa chúng thành 1 hệ thống cây phân cấp ₫ược gọi là hệ thống file. Chương này sẽ giới thiệu các kiến thức liên quan ₫ến việc quản lý hệ thống file của HĐH. Môn : Hệ ₫iều hành Khoa Công nghệ Thông tin Chương 7 : Quản lý hệ thống file Trường ĐH Bách Khoa Tp.HCM Slide 2
  3. Giới thiệu hệ thống file ‰ Các tính chất thiết yếu của 1 hệ thống file : ƒ nó cần có dung lượng rất lớn ₫ể chứa rất nhiều file chương trình và dữ liệu cần dùng trên máy tính. ƒ nội dung ₫ược lưu trên hệ thống file phải tồn tại lâu dài, ngay cả khi process tạo ra nó ₫ã chết. ƒ nhiều process có thể truy xuất ₫ồng thời vào từng phần tử trên hệ thống file. Môn : Hệ ₫iều hành Khoa Công nghệ Thông tin Chương 7 : Quản lý hệ thống file Trường ĐH Bách Khoa Tp.HCM Slide 3
  4. Giới thiệu hệ thống file Cấu trúc của một ổ ₫ĩa cứng Môn : Hệ ₫iều hành Khoa Công nghệ Thông tin Chương 7 : Quản lý hệ thống file Trường ĐH Bách Khoa Tp.HCM Slide 4
  5. Giới thiệu hệ thống file sector track Môn : Hệ ₫iều hành Khoa Công nghệ Thông tin Chương 7 : Quản lý hệ thống file Trường ĐH Bách Khoa Tp.HCM Slide 5
  6. Giới thiệu hệ thống file Truy xuất ₫ĩa vật lý : ƒ disk vật lý là không gian dữ liệu 3 chiều, mỗi disk = nhiều cylinder, mỗi cylinder gồm nhiều track (head — vòng tròn chứa tin) có cùng ₫ường kính), mỗi track chứa nhiều cung chứa tin nhỏ ₫ược truy xuất ₫ộc lập nhau (sector). Sector là ₫ơn vị truy xuất tin nhỏ nhất ở cấp vật lý (từ ngoài ta không thể truy xuất từng byte dữ liệu trên disk ₫ược). ƒ muốn truy xuất 1 sector, ta phải xác ₫ịnh tọa ₫ộ 3 chiều của nó (C,H,S) → rất khó tư duy. ƒ dữ liệu có nghĩa thường có ₫ộ lớn khác nhau và cần nhiều sector mới chứa ₫ủ. Ở cấp vật lý này, người dùng phải tự quản lý danh sách các tọa ₫ộ sector 3 chiều ₫ược dùng ₫ể lưu trữ 1 dữ liệu có nghĩa nào ₫ó → rất khó khăn và phiền hà → cần 1 cấp giao tiếp khác dễ sử dụng hơn. Môn : Hệ ₫iều hành Khoa Công nghệ Thông tin Chương 7 : Quản lý hệ thống file Trường ĐH Bách Khoa Tp.HCM Slide 6
  7. Giới thiệu hệ thống file Thời gian truy xuất 1 sector ₫ĩa vật lý = ∑ : 1. thời gian dời ₫ầu ₫ọc/ghi ₫ến cyclinder c ần truy xuất (thông qua từ 0 tới n xung tác ₫ộng vào step motor). Đây là hoạt ₫ộng tốn nhiều thời gian nhất. 2. thời gian chờ ₫ĩa quay sector cần truy xuất về vị trí ₫ầu ₫ọc/ghi (trung bình là nữa vòng quay). 3. thời gian truy xuất dữ liệu của sector (tốn 1/n vòng quay). Thờ i gian truy xuất 1 track/cylinder ₫ĩa vật lý = ∑ : 1. thời gian dời ₫ầu ₫ọc/ghi ₫ến cyclinder cần truy xuất (thông qua từ 0 tới n xung tác ₫ộng vào step motor). Đây là hoạt ₫ộng tốn nhiều thời gian nhất. 2. thời gian truy xuất dữ liệu của track/cylinder (tốn 1 vòng quay). So sánh những kết quã trên, ta thấy thời gian truy xuất 1 sector hay 1 track hay 1 cyclinder gồm nhiều track hầu như bằng nhau → nên truy xuất 1 lần 1 cyclinder hơn là 1 track hay 1 sector. Môn : Hệ ₫iều hành Khoa Công nghệ Thông tin Chương 7 : Quản lý hệ thống file Trường ĐH Bách Khoa Tp.HCM Slide 7
  8. Giới thiệu hệ thống file Truy xuất ₫ĩa luận lý cấp 1 : ƒ disk luận lý cấp 1 là không gian dữ liệu 1 chiều, mỗi ₫ĩa = danh sách nhiều ₫ơn vị chứa tin có ₫ộ dài bằng nhau (cluster, block, sector luận lý). Độ dài của cluster cần ₫ộc lập với ₫ộ dài sector ₫ĩa vật lý. Để dễ quản lý, thường ta chọn kích thước 1 cluster = 2i sector. ƒ ₫ể truy xuất 1 cluster, ta chỉ cần xác ₫ịnh tọa ₫ộ 1 chiều (chỉ số) của nó (0 → n). ƒ dữ liệu có nghĩa thường có ₫ộ lớn khác nhau và cần nhiều cluster mới chứa ₫ủ. Ở cấp luận lý này, người dùng phải tự quản lý danh sách các chỉ số cluster ₫ược dùng ₫ể lưu trữ 1 dữ liệu có nghĩa nào ₫ó → vẫn còn khó khăn và phiền hà → cần 1 cấp giao tiếp khác dễ sử dụng hơn. Môn : Hệ ₫iều hành Khoa Công nghệ Thông tin Chương 7 : Quản lý hệ thống file Trường ĐH Bách Khoa Tp.HCM Slide 8
  9. Giới thiệu hệ thống file Truy xuất ₫ĩa luận lý cấp 2 : ƒ disk luận lý cấp 2 là không gian dữ liệu 1 chiều, mỗi ₫ĩa = danh sách nhiều ₫ơn vị chứa tin có ₫ộ dài thay ₫ổi tùy ý theo yêu cầu của người dùng (file). Mỗi file ₫ược nhận dạng bằng tên gợi nhớ thay vì bằng chỉ số. Để dễ quản lý, thường ta sẽ dùng n cluster ₫ĩa ₫ể lưu nội dung của 1 file. ƒ muốn truy xuất 1 file, ta chỉ cần xác ₫ịnh tên gợi nhớ thay vì bằng chỉ số của nó. ƒ dữ liệu có nghĩa thường có ₫ộ lớn khác nhau, nhưng ở cấp ₫ộ này ta chỉ cần thay ₫ổi kích thước file cho phù hợp → rất dễ quản lý thông tin chứa trên disk. ƒ thường disk có dung lượng rất lớn và chứa rất nhiều file dữ liệu nên việc ₫ặt tên file dễ tranh chấp nhau, hơn nữa việc quản lý file sẽ gặp nhiều khó khăn (xóa/tạo mới, xác ₫ịnh file nào cần truy xuất, ) → cần 1 cấp giao tiếp khác dễ sử dụng hơn. Môn : Hệ ₫iều hành Khoa Công nghệ Thông tin Chương 7 : Quản lý hệ thống file Trường ĐH Bách Khoa Tp.HCM Slide 9
  10. Giới thiệu hệ thống file Truy xuất ₫ĩa luận lý cấp 3 : ƒ disk luận lý cấp 3 là không gian dữ liệu dạng cây phân cấp, mỗi ₫ĩa = thư mục gốc chứa nhiều phần tử con, mỗi phần tử con có thể là file hoặc thư mục ƒ muốn truy xuất 1 file/thư mục, ta chỉ cần dùng pathname. ƒ có 2 loại pathname : tuyệt ₫ối và tương ₫ối. Pathname tuyệt ₫ối sẽ xuất phát từ thư mục gốc ₫ể tìm phần tử cần truy xuất. Pathname tương ₫ối xuất phát từ thư mục hiện hành (working) ₫ể tìm phần tử cần truy xuất. Tùy thuộc vào ngữ cảnh cụ thể mà loại pathname nào thích hợp hơn. Môn : Hệ ₫iều hành Khoa Công nghệ Thông tin Chương 7 : Quản lý hệ thống file Trường ĐH Bách Khoa Tp.HCM Slide 10
  11. 7.2 Giao tiếp sử dụng phân hệ quản lý file 1. Tên file : dùng ₫ể nhận dạng file cần truy xuất. Các ₫ịnh dạng ₫ược dùng phổ biến là 8.3 và chu ỗi ký tự bất kỳ <= 256 ký tự. Môn : Hệ ₫iều hành Khoa Công nghệ Thông tin Chương 7 : Quản lý hệ thống file Trường ĐH Bách Khoa Tp.HCM Slide 11
  12. Giao tiếp sử dụng phân hệ quản lý file 2. Cấu trúc file (cấp HĐH) : có 3 cấu trúc phổ biến : a. danh sách các byte chưa có nghĩa b.danh sách các record ng ữ nghĩa xác ₫ị nh c. cây các record ngữ nghĩa xác ₫ịnh. Môn : Hệ ₫iều hành Khoa Công nghệ Thông tin Chương 7 : Quản lý hệ thống file Trường ĐH Bách Khoa Tp.HCM Slide 12
  13. Giao tiếp sử dụng phân hệ quản lý file 3. Cấu trúc ngữ nghĩa của file : do mỗi ứng dụng tự quy ₫ịnh, thường là 1 tập các record thông tin có liên quan nhau. Môn : Hệ ₫iều hành Khoa Công nghệ Thông tin Chương 7 : Quản lý hệ thống file Trường ĐH Bách Khoa Tp.HCM Slide 13
  14. Giao tiếp sử dụng phân hệ quản lý file 4. Cơ chế truy xuất file : ƒ Truy xuất tuần tự (Sequential access) : ₫ọc/ghi các byte/record từ ₫ầu, không thể nhảy cóc. ƒ Truy xuất trực tiếp (Random access) : có thể dời ₫ầu ₫ọc/ghi ₫ến bất kỳ vị trí nào trước khi ₫ọc/ghi dữ liệu Môn : Hệ ₫iều hành Khoa Công nghệ Thông tin Chương 7 : Quản lý hệ thống file Trường ĐH Bách Khoa Tp.HCM Slide 14
  15. Giao tiếp sử dụng phân hệ quản lý file 5. Thuộc tính file : mỗi file có 1 tập các thuộc tính khác nhau ₫ể HĐH quản lý và kiểm soát việc truy xu ất file của người dùng. Môn : Hệ ₫iều hành Khoa Công nghệ Thông tin Chương 7 : Quản lý hệ thống file Trường ĐH Bách Khoa Tp.HCM Slide 15
  16. Giao tiếp sử dụng phân hệ quản lý file 6. Các hàm API truy xuất file : HĐH cung cấp 1 tập các hàm chức năng phục vụ việc truy xuất file bởi ứng dụng. 6.1 Truy xuất nội dung file : gồm 3 bước 1. Mở/Tạ o mới file : CreateFile : tạo mới 1 file OpenFile : mở/tạo mới 1 file ₫ể truy xuất 2. Truy xuất nội dung file : Read : ₫ọc n byte nội dung từ vị trí truy xuất hiện hành Write : ghi n byte nội dung từ vị trí truy xuất hiện hành Append : ghi thêm n byte vào ₫ uôi file Seek : dời vị trí truy xuất file v ề v ị trí xác ₫ịnh 3. Đóng file : Delete : xóa file ₫ang tồn tại Close : ₫óng file và không cho phép truy xuất nữa 6.2 Truy xuất các thuộc tính file : Get attributes : ₫ọc các thu ộc tính của file Set Attributes : thiết lập lại các thuộc tính file Rename : ₫ặt lại tên file Môn : Hệ ₫iều hành Khoa Công nghệ Thông tin Chương 7 : Quản lý hệ thống file Trường ĐH Bách Khoa Tp.HCM Slide 16
  17. Giao tiếp sử dụng phân hệ quản lý file 7. Chương trình demo việc ₫ọc/ghi file : #include #include #include //₫iểm nhập của chương trình int main(int argc, char* argv[]) { int fin, fout; int flen; char* buffer; //mở file ₫ể ₫ọc vào if ((fin = open("c:\\s.exe",O_RDONLY|O_BINARY))< 0) { printf("Không thề mở file c:\\s.exe\n"); exit(1); } //mở file ₫ể ghi ra if ((fout = open("c:\\p.exe",O_WRONLY|O_BINARY|O_CREAT))< 0) { printf("Không thề mở file c:\\p.exe\n"); exit(1); } Môn : Hệ ₫iều hành Khoa Công nghệ Thông tin Chương 7 : Quản lý hệ thống file Trường ĐH Bách Khoa Tp.HCM Slide 17
  18. Giao tiếp sử dụng phân hệ quản lý file //xác ₫ịnh ₫ộ lớn của file flen = filelength (fin); //cấp phát ₫ộng buffer chứa dữ liệu buffer = (char*) malloc(flen); if (buffer==0) { printf("Không thể cấp phát buffer chứa file\n"); exit(1); } //₫ọc toàn bộ file vào buffer read(fin,buffer,flen); //ghi toàn bộ buffer ra file write(fout,buffer,flen); //₫óng các file lại close (fin); close(fout); } Môn : Hệ ₫iều hành Khoa Công nghệ Thông tin Chương 7 : Quản lý hệ thống file Trường ĐH Bách Khoa Tp.HCM Slide 18
  19. 7.3 Giao tiếp sử dụng phân hệ quản lý thư mục 1. Hệ thống file dùng th ư mục 1 cấp : ƒ Thiết bị chứa tin ₫ược trừu tượng thành 1 cây với 1 thư mục gốc. ƒ Tất cả các file ₫ều ₫ược chứa trực tiếp vào thư mục gốc, không có thư mục con nào cả. ƒ Dạng thư mục 1 cấp rất thích hợp cho các thiết bị chứa tin có dung lượng nhỏ như ₫ĩa mềm Môn : Hệ ₫iều hành Khoa Công nghệ Thông tin Chương 7 : Quản lý hệ thống file Trường ĐH Bách Khoa Tp.HCM Slide 19
  20. Giao tiếp sử dụng phân hệ quản lý thư mục 2. Hệ thống file dùng thư mục 2 cấp : ƒ Thiết bị chứa tin ₫ược trừu tượng thành 1 cây với 1 thư mục gốc. Thư mục gốc chứa nhiều thư mục con (cấp 2). ƒ Mỗi thư mục con cấp 2 chỉ chứa 1 số file chứ không chứa thư mục con nào cả. ƒ Dạng thư mục 2 cấp rất thích hợp cho các thiết bị chứa tin có dung lượng trung bình như ₫ĩa flash ROM USB, Môn : Hệ ₫iều hành Khoa Công nghệ Thông tin Chương 7 : Quản lý hệ thống file Trường ĐH Bách Khoa Tp.HCM Slide 20
  21. Giao tiếp sử dụng phân hệ quản lý thư mục 3. Hệ thống file dùng thư mục n cấp : ƒ Thi ết bị chứa tin ₫ược trừu tượng thành 1 cây với 1 thư mục gốc. Thư mục gốc chứa nhiều thư mục con (cấp 2) và nhiều file. ƒ Mỗi thư mục con lại chứa 1 số file & 1 số thư mục con khác ƒ Dạng thư mục n cấp rất thích hợp cho các thiết bị chứa tin có dung lượng lớn như ₫ĩa cứng Môn : Hệ ₫iều hành Khoa Công nghệ Thông tin Chương 7 : Quản lý hệ thống file Trường ĐH Bách Khoa Tp.HCM Slide 21
  22. Giao tiếp sử dụng phân hệ quản lý thư mục 4. Hệ thống file dùng ₫ồ thị thư mục n c ấp : ƒ Thi ết bị chứa tin ₫ược trừ u tượng thành 1 ₫ồ thị với 1 thư mục gốc. Thư mục gốc chứa nhiều thư mục con (cấp 2) và nhiều file. ƒ Mỗi thư mục con lại chứa 1 số file & 1 số thư mục con khác. Thư mục con của 1 thư mục có thể là thư mục mới hay thư mục ₫ã có sẵn ƒ Dạng ₫ồ thị thư mục rất thích hợp trong trường hợp quản lý các thư mục dùng chung Môn : Hệ ₫iều hành Khoa Công nghệ Thông tin Chương 7 : Quản lý hệ thống file Trường ĐH Bách Khoa Tp.HCM Slide 22
  23. Giao tiếp sử dụng phân hệ quản lý thư mục 5. Pathname : ƒ Pathname tương ₫ối ₫ược chuyển thành pathname tuyệt ₫ối trước khi xử lý tiếp. ƒ HĐH sẽ ₫ọc lần lượt các thư mục trong pathname tuyệt ₫ối, bắt ₫ầu từ thư mục gốc, ₫ể dò lần ra phần tử cần truy xuất. Môn : Hệ ₫iều hành Khoa Công nghệ Thông tin Chương 7 : Quản lý hệ thống file Trường ĐH Bách Khoa Tp.HCM Slide 23
  24. Giao tiếp sử dụng phân hệ quản lý thư mục 6. Các hàm API truy xu ất thư mục : HĐH cung cấp 1 tập các hàm chức năng phục vụ việc truy xuất thư mục bởi ứng dụng. 6.1 Duyệt ₫ọc nội dung thư mục : FindFirst : ₫ọc record chứa thông tin quản lý phần tử ₫ầu tiên trong thư mục. FindNext : ₫ọc record chứa thông tin quản lý phần tử kế tiếp trong thư mục. 6.2 Hiệu chỉnh nội dung thư mục : 1 cách gián tiếp thông qua các lệnh sau : - rename, create, delete, link, unlink, move file hay thư mục con. - set_attributes file hay thư mục con Môn : Hệ ₫iều hành Khoa Công nghệ Thông tin Chương 7 : Quản lý hệ thống file Trường ĐH Bách Khoa Tp.HCM Slide 24
  25. 7.4 Hiện thực file 1. File = danh sách ₫ặc các cluster liên tiếp trên ₫ĩa. - Để quản lý 1 file, ta chỉ cần cặp thông số : (ch ỉ số cluster ₫ầu file, số cluster cần dùng) -rất bất tiện khi cần nới rộng kích thước file. Môn : Hệ ₫iều hành Khoa Công nghệ Thông tin Chương 7 : Quản lý hệ thống file Trường ĐH Bách Khoa Tp.HCM Slide 25
  26. Hiện thực file 2. File = danh sách liên kết các cluster bất kỳ trên ₫ĩa. ƒ truy xuất các cluster nội dung file theo cơ chế tuần tự → rất chậm, nhất là các dữ liệu nằm ở các cluster cuối của file lớn. ƒ kích thước phần chứa dữ liệu trong cluster bị xé lẻ → khó tính toán và xác ₫ịnh vị trí dữ liệu cần truy xuất. Môn : Hệ ₫iều hành Khoa Công nghệ Thông tin Chương 7 : Quản lý hệ thống file Trường ĐH Bách Khoa Tp.HCM Slide 26
  27. Hiện thực file 3. File = danh sách liên kết các cluster bất kỳ trên ₫ĩa dùng FAT. ƒ tách phần link trong các cluster và tập hợp chúng thành 1 bảng, ta gọi bảng này là FAT (File Allocation Table). ƒ Số lượng phần tử trong bảng FAT = số cluster trên partition tương ứng, mỗi phần tử chứa pointer (dạng chỉ số) ₫ến cluster ₫i ngay sau luận lý nó trong file. ƒ có nhiều loại FAT : FAT12, FAT16, FAT32. Fat i chứa maximum 2i phần tử, mỗi phần tử dài i bit. Thí dụ FAT32 chứa tối ₫a 232 phần tử, mỗi phần tử dài 32 bit, miêu tả chỉ số cluster từ 0 — 232-1. ƒ nếu HĐH nạp toàn bộ bảng FAT vào RAM thì việc truy xuất dữ liệu của các file là trực tiếp (giải quyết ₫ược khuyết ₫iểm 1 của danh sách liên kết). ƒ mỗi cluster dữ liệu chỉ chứa dữ liệu → kích thước chẵn (giải quyết ₫ược khuyết ₫iểm 2 của danh sách liên kết). ƒ thực tế cần dung hòa giữa dung lượng RAM dành cho FAT và hiệu quả truy xuất file → nạp từng ‘window’ của FAT vào RAM khi cần thiết. Môn : Hệ ₫iều hành Khoa Công nghệ Thông tin Chương 7 : Quản lý hệ thống file Trường ĐH Bách Khoa Tp.HCM Slide 27
  28. Hiện thực file ƒ nếu ta biết file A có cluster ₫ầu là 4, dựa vào bảng FAT bên phải ta sẽ tìm ₫ược các cluster còn lại của file A là 7, 2, 10, 12. ƒ tương tự, nếu ta biết file B có cluster ₫ầu là 6, dựa vào bảng FAT bên phải ta sẽ tìm ₫ược các cluster còn lại của file B là 3, 11, 14. Môn : Hệ ₫iều hành Khoa Công nghệ Thông tin Chương 7 : Quản lý hệ thống file Trường ĐH Bách Khoa Tp.HCM Slide 28
  29. Hiện thực file Kích thước cluster và partition dùng FAT : Môn : Hệ ₫iều hành Khoa Công nghệ Thông tin Chương 7 : Quản lý hệ thống file Trường ĐH Bách Khoa Tp.HCM Slide 29
  30. Hiện thực file 4. File = dsách liên kết các cluster trên ₫ĩa dùng bảng chỉ số. ƒ tập hợp các phần link trong các cluster của từng file thành 1 b ảng chỉ số cho file ₫ó. Bảng này ₫ược chứa trong 1 cấu trúc quản lý file (i-node trên Unix). ƒ Do kích thước các file rất khác nhau nên bảng chỉ số dài ngắn khác nhau → gây khó khăn trong việc quản lý → Unix dùng bảng chỉ số nhiều cấp : ƒ 10 phần tử ₫ầu chứa chỉ số các cluster dữ liệu. ƒ 1 phần tử chỉ số ₫ến cluster chứa các chỉ số các cluster dữ liệu (C11). ƒ 1 phần tử chỉ số ₫ến cluster chứa các chỉ số các cluster C11 (C12). ƒ 1 phần tử chỉ số ₫ến cluster chứa các chỉ số các cluster C12 (C13). ƒ mỗi khi cần truy xuất file, HĐH nạp i-node của file vào RAM → việc truy xuất dữ liệu của file là trực tiếp. ƒ mỗi cluster dữ liệu chỉ chứa dữ liệu → kích thước chẵn (giải quyết ₫ược khuyết ₫iểm 2 của danh sách liên kết). Môn : Hệ ₫iều hành Khoa Công nghệ Thông tin Chương 7 : Quản lý hệ thống file Trường ĐH Bách Khoa Tp.HCM Slide 30
  31. Hiện thực file Môn : Hệ ₫iều hành Khoa Công nghệ Thông tin Chương 7 : Quản lý hệ thống file Trường ĐH Bách Khoa Tp.HCM Slide 31
  32. 7.5 Hiện thực thư mục 1. Thư mục = file (gồm nhiều cluster ₫ĩa). ƒ cấu trúc ngữ nghĩa của thư mục = danh sách ₫ặc các record, mỗi record (entry) quản lý thông tin của 1 phần tử con, gồm 2 thành phần chính : tên gợi nhớ của phần tử, các thuộc tính quản lý phần tử. ƒ Hình a. : tất cả các thuộc tính quản lý phần tử ₫ều ₫ược ₫ể trong entry thư mục (FAT). ƒ Hình b. : entry thư mục chỉ chứa chỉ số i-node, i-node mới là record chứa các thuộc tính quản lý phần tử (Unix). Môn : Hệ ₫iều hành Khoa Công nghệ Thông tin Chương 7 : Quản lý hệ thống file Trường ĐH Bách Khoa Tp.HCM Slide 32
  33. 7.5 Hiện thực thư mục Cấu trúc entry thư mục của chuẩn ISO9660 (CDROM). Môn : Hệ ₫iều hành Khoa Công nghệ Thông tin Chương 7 : Quản lý hệ thống file Trường ĐH Bách Khoa Tp.HCM Slide 33
  34. 7.5 Hiện thực thư mục Cấu trúc entry thư mục trên HĐH CP/M. Cấu trúc entry thư mục của FAT16 (Microsoft). Môn : Hệ ₫iều hành Khoa Công nghệ Thông tin Chương 7 : Quản lý hệ thống file Trường ĐH Bách Khoa Tp.HCM Slide 34
  35. Hiện thực thư mục Có 2 cách quản lý tên file dài : ƒ Hình a. : in-line. ƒ Hình b. : in a heap. Môn : Hệ ₫iều hành Khoa Công nghệ Thông tin Chương 7 : Quản lý hệ thống file Trường ĐH Bách Khoa Tp.HCM Slide 35
  36. Hiện thực thư mục Dùng i-node ₫ể quản lý các thuộc tính của file/thư mục rất thích hợp cho việc dùng chung file/thư mục. ƒ File F là file dùng chung cho 2 thư mục B và C. F Môn : Hệ ₫iều hành Khoa Công nghệ Thông tin Chương 7 : Quản lý hệ thống file Trường ĐH Bách Khoa Tp.HCM Slide 36
  37. Hiện thực thư mục i-node Môn : Hệ ₫iều hành Khoa Công nghệ Thông tin Chương 7 : Quản lý hệ thống file Trường ĐH Bách Khoa Tp.HCM Slide 37
  38. 7.6 Quản lý các cluster chưa dùng Tại từng thời ₫iểm, mỗi cluster thuộc 1 trong 2 trạng thái sau : ƒ ₫ã dùng, cluster này phải thuộc về 1 file nào ₫ó → truy xuất file ₫óta sẽ tìm ₫ược cluster này. ƒ chưa dùng nên chưa thuộc file nào cả → cần có cơ chế quản lý các cluster này. Môn : Hệ ₫iều hành Khoa Công nghệ Thông tin Chương 7 : Quản lý hệ thống file Trường ĐH Bách Khoa Tp.HCM Slide 38
  39. Quản lý các cluster chưa dùng 1. Dùng bảng trạng thái ƒ bảng trạng thái có N phần tử (N : số cluster của partition), mỗi phần tử là 1 bit nhị phân, nếu = 0 thì cluster tương ứng chưa dùng, nếu = 1 thì cluster tương ứng ₫ã dùng rồi bởi file nào ₫ó. ƒ khi ứng dụng xin cấp phát 1 cluster, HĐH sẽ dò tuần tự trong bảng trạng thái ₫ể tìm 1 phần tử (chỉ số i) = 0 → cluster i chưa dùng. ƒ Việc dò tuần tự là không hiệu quả, ngay cả có cải tiến bằng cách lưu giữ vị trí ₫ã dò tìm lần cuối ₫ể mỗi khi tìm cluster chưa dùng, ta chỉ dò từ vị trí lưu giữ chứ không phải dò từ ₫ầu bảng. Môn : Hệ ₫iều hành Khoa Công nghệ Thông tin Chương 7 : Quản lý hệ thống file Trường ĐH Bách Khoa Tp.HCM Slide 39
  40. Quản lý các cluster chưa dùng 2. Dùng danh sách liên kết các cluster chưa dùng ƒ danh sách chỉ chứa các cluster chưa dùng. ƒ khi ứng dụng xin cấp phát 1 cluster, HĐH sẽ lấy ngay cluster ở ₫ầu danh sách rồi hiệu chỉnh lại ₫ầu danh sách mới. ƒ tốn nhiều bộ nhớ cho danh sách liên kết, nhất là lúc partition mới format, chưa có file nào cả. Môn : Hệ ₫iều hành Khoa Công nghệ Thông tin Chương 7 : Quản lý hệ thống file Trường ĐH Bách Khoa Tp.HCM Slide 40
  41. Quản lý các cluster chưa dùng 3. Tính nhất quán của hệ thống file ƒ Về ý nghĩa, tại từng thời ₫iểm, mỗi cluster hoặc thuộc 1 file nào ₫óhoặc chưa dùng và ₫ược quản lý trong danh sách cluster chưa dùng. ƒ hệ thống file ₫ược gọi là ₫ang nhất quán nếu từng cluster trong hệ thống thỏa mãn ₫iều kiện nêu trên. Hệ thống bị mất tính nhất quán khi 1 trong các ₫iều kiện sau ₫ã xảy ra : 1. 1 cluster ₫ược dùng bởi nhiều hơn 1 file. 2. 1 cluster ₫ược dùng bởi 1 file nhưng vẫn xuất hiện trong danh sách cluster chưa dùng. 3. 1 cluster không thuộc file nào nhưng tồn tại nhiều lần trong danh sách các cluster chưa dùng. 4. 1 cluster không thuộc file nào và không xuất hiện trong danh sách các cluster chưa dùng. Môn : Hệ ₫iều hành Khoa Công nghệ Thông tin Chương 7 : Quản lý hệ thống file Trường ĐH Bách Khoa Tp.HCM Slide 41
  42. Quản lý các cluster chưa dùng 4. Trình phát hiện mất tính nhất quán của hệ thống file và chữa trị (scandisk) : 1. dùng 2 cấu trúc dữ liệu chính yếu : used[N], trong ₫ó used[i] = số file sử dụng cluster i (thường là 0 hay 1). noused[N], trong ₫ ó noused[i] = số lầ n cluster i xuất hiện trong danh sách cluster chưa dùng (thường là 0 hay 1 ). 2. khởi ₫ộng giá trị ban ₫ầu của 2 cấu trúc dữ liệu : for (i =0; i <N; i++) used[i] = noused[i] = 0; 3. xây dựng vector used[N] bằng cách duyệt ₫ệ quy hệ thống file từ thư mục gốc, mỗi lần gặp 1 file/thư mục, ta duyệt từng cluster ₫ược nó sử dụng, mỗi lần gặp cluster i, ta thực hiện used[i]++. 4. xây dựng vector noused[N] bằng cách duyệt danh sách các cluster chưa dùng, mỗi lần gặp cluster i, ta thực hiện noused[i]++. Môn : Hệ ₫iều hành Khoa Công nghệ Thông tin Chương 7 : Quản lý hệ thống file Trường ĐH Bách Khoa Tp.HCM Slide 42
  43. Quản lý các cluster chưa dùng 4. Trình phát hiện mất tính nhất quán của hệ thống file và chữa trị 5. Lặp kiểm tra trạng thái của từng cluster : for (i =0; i 1) //case 1: báo sai ₫ể user tự sửa if (noused[i] >1) //case 3: chỉ giữ lạ i 1 lần cluster i if (used[i] + noused[i] > 1) //case 2: bỏ i khỏi danh sách chưa dùng if (used[i]+noused[i] ==0) //case 4: thêm i vào danh sách chưa dùng } Môn : Hệ ₫iều hành Khoa Công nghệ Thông tin Chương 7 : Quản lý hệ thống file Trường ĐH Bách Khoa Tp.HCM Slide 43
  44. Quản lý các cluster chưa dùng a. còn nhất quán b. bị mất nhất quán (case 4) ở c. bị mất nhất quán (case 3) ở d. bị mất nhất quán (case 1) ở Môn : Hệ ₫iều hành Khoa Công nghệ Thông tin Chương 7 : Quản lý hệ thống file Trường ĐH Bách Khoa Tp.HCM Slide 44
  45. 7.7 Các việc quản lý khác trên hệ thống file Tốc ₫ộ truy xuất dữ liệu 1. Cấp phát các cluster chứa dữ liệu và các cluster quản lý của từng file trên cùng 1 cylinder : Môn : Hệ ₫iều hành Khoa Công nghệ Thông tin Chương 7 : Quản lý hệ thống file Trường ĐH Bách Khoa Tp.HCM Slide 45
  46. 7.7 Các việc quản lý khác trên hệ thống file Tốc ₫ộ truy xuất dữ liệu • Các cluster dữ liệ u của từng file nằm liền kề nhau (dùng trình defragmentation khi thích hợp). 3. Mua disk có các tham số sau tốt nhất : tốc ₫ộ quay ₫ĩa, tốc ₫ộ step motor, chuẩn giao tiếp SCSI, SATA, Môn : Hệ ₫iều hành Khoa Công nghệ Thông tin Chương 7 : Quản lý hệ thống file Trường ĐH Bách Khoa Tp.HCM Slide 46
  47. 7.7 Các việc quản lý khác trên hệ thống file Tốc ₫ộ truy xuất dữ liệu 4. Dùng cơ chế Cache các cluster cần ₫ọc/ghi : yêu cầu truy xuất yêu cầu truy xuất 1 cluster Module 1 cluster quản lý (N lần) file (N lần) yêu cầu truy xuất 1 cluster Module Module yêu cầu truy xuất quản lý quản lý m cluster liền kề (N lần) file Cache (n lần) buffer các cluster Môn : Hệ ₫iều hành Khoa Công nghệ Thông tin Chương 7 : Quản lý hệ thống file Trường ĐH Bách Khoa Tp.HCM Slide 47
  48. 7.7 Các việc quản lý khác trên hệ thống file Tốc ₫ộ truy xuất dữ liệu 5. Lập l ịch phục vụ truy xuất các cluster từ các ứng dụng chạy ₫ồng thời : sao cho ₫ộ dời ₫ầu ₫ọc/ghi (số xung clock gởi tới step motor) tối thiểu. Thí dụ tại thời ₫iểm t ₫ầu ₫ọc/ghi ở cylinder 0, có 4 yêu cầu ₫ọc/ghi sau ₫ây của 4 ứng dụng ₫ộc lập : ƒ P1 yêu cầu truy xuất cylinder 1000. ƒ P2 yêu cầu truy xuất cylinder 0. ƒ P3 yêu cầu truy xuất cylinder 999. ƒ P4 yêu cầu truy xuất cylinder 1. Nếu lập lịch phục vụ P1 → P2 → P3 → P4 thi cần step motor 1000+1000+999+998 = 3997 lần. Nếu lập lịch phục vụ P2 → P4 → P3 → P1 thi cần step motor 0+1+998+1 =1000 lần, ít hơn 4 lần so với cách lập lịch trước. Môn : Hệ ₫iều hành Khoa Công nghệ Thông tin Chương 7 : Quản lý hệ thống file Trường ĐH Bách Khoa Tp.HCM Slide 48
  49. 7.7 Các việc quản lý khác trên hệ thống file Tính tin cậy & sẵn sàng trong truy xuất file 1. Trang bị disk của hãng nổi tiếng, uy tín về thương hiệu → giá cao hơn nhiều so với sự mong ₫ợi. 2. Dùng cơ chế dư thừa : ƒ copy, backup các file tường minh bởi người dùng. ƒ copy, backup các file tự ₫ộng bởi HĐH. ƒ dùng cơ chế master/mirror phần cứng. master ₫ọc yêu cầu ₫ọc/ghi Card ₫ọc/ghi yêu cầu ₫ổi vai trò khi ₫iều ₫ọc/ghi Card master hư khiển ₫iều khiển ghi slave Môn : Hệ ₫iều hành Khoa Công nghệ Thông tin Chương 7 : Quản lý hệ thống file Trường ĐH Bách Khoa Tp.HCM Slide 49
  50. 7.7 Các việc quản lý khác trên hệ thống file Bảo mật trong truy xuất file 1. Quản lý người dùng bằng Account : mỗi người ₫ược cấp 1 account. Hệ thống sẽ phục vụ người dùng thông qua qui trình 2 bước : ƒ Xác nhận người dùng : hệ thống sẽ yêu cầu người dùng cung cấp 1 số thông tin ₫ể xác ₫ịnh mình là ai, có hợp pháp không (thí dụ username+password của account). Nếu hệ thống xác nhận người dùng là hợp pháp, hệ thống sẽ biết người dùng ₫ó ₫ang dùng Account nào (thứ i trong danh sách quản lý). ƒ Phục vụ người dùng : mỗi lần người dùng i ra lệnh (₫ọc/ghi/xóa/ file A), hệ thống sẽ kiểm tra lệnh ₫ócó tương thích với quyền ₫ược ghi nhận trong account tương ứng với user không. Nếu không thì báo sai, nếu có thì phục vụ. Môn : Hệ ₫iều hành Khoa Công nghệ Thông tin Chương 7 : Quản lý hệ thống file Trường ĐH Bách Khoa Tp.HCM Slide 50
  51. 7.7 Các việc quản lý khác trên hệ thống file Bảo mật trong truy xuất file 2. Ma trận ₫ặc tả quyền truy xuất tài nguyên của các user : ƒ Hàng i ghi nhận các quyền của user i trên các tài nguyên. ƒ Cột j ghi nhận các quyền của từng user trên tài nguyên j. ƒ Khi có lệnh của user i trên tài nguyên j, hệ thống sẽ xem phần tử (i,j) có cho phép chức năng tương ứng không ? Môn : Hệ ₫iều hành Khoa Công nghệ Thông tin Chương 7 : Quản lý hệ thống file Trường ĐH Bách Khoa Tp.HCM Slide 51
  52. 7.7 Các việc quản lý khác trên hệ thống file Bảo mật trong truy xuất file Ma trận ₫ặc tả quyền truy xuất tài nguyên của các user : 1. Kích thướ c rất lớn, nhất là số lượng cột của ma tr ận. 2. Thay ₫ổi nhanh chóng, từng cột có thể ₫ược thêm vào/xóa ₫i rất nhanh theo thời gian khi file tương ứng ₫ược tạo ra/xóa ₫i. Dùng ma trận ₫ặc 2 chiều là không thích hợp. Cần tìm cách biểu diễn ma trận quyền truy xu ất sao cho 2 vấn ₫ề trên ₫ược ₫ược khắc phục. Lưu ý ma trận ₫ặc tả quyền truy xuất là ma trận rất thưa vì tuyệt ₫ại ₫a số các phần tử trong ma trận ₫ều có giá trị NULL. Môn : Hệ ₫iều hành Khoa Công nghệ Thông tin Chương 7 : Quản lý hệ thống file Trường ĐH Bách Khoa Tp.HCM Slide 52
  53. 7.7 Các việc quản lý khác trên hệ thống file Bảo mật trong truy xuất file 3. Biểu diễn ma trận quyền truy xuất bằng các danh sách liên kết theo hàng : 1. Kết hợp mỗi user 1 danh sách liên kết (Capability), mỗi phần tử trong danh sách cho biết file nào ₫ược truy xuất và các hoạt ₫ộng cụ thể nào (Read/Write/Execute, ) ₫ược phép trên file ₫ó. Hệ ₫iều hành Novell Netware dùng cách này. 2. Trong thực tế số lượng phần tử trong danh sách Capability kết hợp với từng user vẫn còn rất lớ n, người ta tối giản thêm bằng cách gom các file trong cùng thư mục thành 1 phần tử, phần tử này là thư mục với nghĩa : nếu user i có các quyền nào ₫ó trên thư mục xác ₫ịnh thì cũng sẽ có các quyề n ₫ó trên mọi phần tử con của nó trong cây gia phả. Vớ i cách tồi giản này, danh sách các phần tử ₫ược phép truy xuất bởi từng user sẽ giảm thiểu rất lớn, chỉ cần vài 3 phần tử là ₫ủ. Môn : Hệ ₫iều hành Khoa Công nghệ Thông tin Chương 7 : Quản lý hệ thống file Trường ĐH Bách Khoa Tp.HCM Slide 53
  54. 7.7 Các việc quản lý khác trên hệ thống file Bảo mật trong truy xuất file 4. Biểu diễn ma trận quyền truy xuất bằng các danh sách liên kết theo cột : 1. Kết hợp mỗi tài nguyên 1 danh sách liên kết (ACL — Access Control List), mỗi phần tử trong danh sách cho biết user nào ₫ược truy xuất và các hoạt ₫ộng cụ thể nào (Read/Write/Execute, ) mà user ₫ó ₫ược phép trên tài nguyên tương ứng. Hệ ₫iều hành Windows, Linux dùng cách này. 2. Trong thực tế số lượng phần tử trong danh sách ACL kết hợp với từng tài nguyên vẫn còn lớ n, hơn nữa thường có nhiều user có cùng khả năng trên tài nguyên, do ₫ó Unix ₫ã tố i giản ACL bằng bảng tra gồm 3 phần tử như sau : Môn : Hệ ₫iều hành Khoa Công nghệ Thông tin Chương 7 : Quản lý hệ thống file Trường ĐH Bách Khoa Tp.HCM Slide 54
  55. 7.7 Các việc quản lý khác trên hệ thống file Bảo mật trong truy xuất file 4. Biểu diễn ma trận quyền truy xuất bằng các danh sách liên kết theo cột : Read Write Execute Owner 0/1 0/1 0/1 Group 0/1 0/1 0/1 Other 0/1 0/1 0/1 Bảng tra trên dài 9 bit, ₫ây là field Protection trong i-node chứa các thông tin thuộc tính của file tươ ng ứng. Môn : Hệ ₫iều hành Khoa Công nghệ Thông tin Chương 7 : Quản lý hệ thống file Trường ĐH Bách Khoa Tp.HCM Slide 55
  56. 7.8 Quản lý hệ thống file trên máy PC Cấu trúc 1 ₫ĩa cứng PC Trình bootstrap bằng mã MBR máy, có nhiệm vụ tìm BR Mỗi khi boot máy, ROM partition active và nạp Partition 1 BIOS sẽ ₫ọc MBR vào BR của partition này RAM và chạy nó. BR vào máy và giao ₫iều 446 byte Partition 2 khiển cho nó BR Partition 3 Mỗi ₫ĩa cứng có thể chia tối ₫a 4 partition BR ₫ộc lập, thông tin về 1 16 byte 16 byte Partition 4 partition ₫ược lưu 16 byte trong 1 record 16 byte. 16 byte Môn : Hệ ₫iều hành Khoa Công nghệ Thông tin Chương 7 : Quản lý hệ thống file Trường ĐH Bách Khoa Tp.HCM Slide 56
  57. Quản lý hệ thống file trên máy PC Cấu trúc record ₫ặc tả partition của bảng quản lý các partition : Byte Offset Length Sample Value Field Name and Definition 0x0 BYTE 0x80 80. Active partition, 00 : No Active. 0x1 BYTE 0x01 Starting Head. 0x2 6 bits 0x01 * Starting Sector. Only bits 0-5 are used. 0x3 10 bits 0x00 * Starting Cylinder. 0x4 BYTE 0x07 System ID. Defines the volume type. values. 0x5 BYTE 0xFE Ending Head. 0x6 6 bits 0xBF * Ending Sector. Only bits 0-5 are used. 0x7 10 bits 0x09 * Ending Cylinder. 0x8 DWORD 0x3F000000 Relative Sectors. 0xC DWORD 0x4BF57F00 Total Sectors. Môn : Hệ ₫iều hành Khoa Công nghệ Thông tin Chương 7 : Quản lý hệ thống file Trường ĐH Bách Khoa Tp.HCM Slide 57
  58. Quản lý hệ thống file trên máy PC Cấu trúc BootSector của partition FAT32 : Byte Offset Field Length Field Name 0x00 3 bytes Jump Instruction 0x03 LONGLONG OEM ID 0x0B 53 bytes BPB (BIOS Parameter Block) 0x40 26 bytes Extended BPB 0x5A 420 bytes Bootstrap Code 0x01FE WORD End of Sector Marker Môn : Hệ ₫iều hành Khoa Công nghệ Thông tin Chương 7 : Quản lý hệ thống file Trường ĐH Bách Khoa Tp.HCM Slide 58
  59. Quản lý hệ thống file trên máy PC Cấu trúc BPB của FAT32 : Byte Offset Length Sample Value Field Name and Definition 0x0B WORD 0x0002 Bytes Per Sector. (512byte) 0x0D BYTE 0x08 Sectors Per Cluster. 0x0E WORD 0x0200 Reserved Sectors. 0x10 BYTE 0x02 Number of FATs. 0x11 WORD 0x0000 this field must be set to zero. 0x13 WORD 0x0000 this field must be set to zero. 0x15 BYTE 0xF8 Media Descriptor. (0xF8 -> hard disk) 0x16 WORD 0x0000 this field must be set to zero. 0x18 WORD 0x3F00 Sectors Per Track. 0x1A WORD 0xFF00 Number of Heads. 0x1C DWORD 0xEE39D700 Hidden Sectors (before the boot sector) 0x20 DWORD 0x7F324E00 Large Sectors (total number of sectors) 0x24 DWORD 0x83130000 Sectors Per FAT (FAT32 only). Môn : Hệ ₫iều hành Khoa Công nghệ Thông tin Chương 7 : Quản lý hệ thống file Trường ĐH Bách Khoa Tp.HCM Slide 59
  60. Quản lý hệ thống file trên máy PC Cấu trúc BPB của FAT32 (tt) : Byte Offset Length Sample Value Field Name and Definition 0x28 WORD 0x0000 Extended Flags 0x2A WORD 0x0000 File System Version (FAT32 only). 0x2C DWORD 0x02000000 Root Cluster Number 0x30 WORD 0x0100 File System Information Sector Number 0x34 WORD 0x0600 Backup Boot Sector 0x36 12 bytes 0x0000 Reserved Môn : Hệ ₫iều hành Khoa Công nghệ Thông tin Chương 7 : Quản lý hệ thống file Trường ĐH Bách Khoa Tp.HCM Slide 60
  61. Quản lý hệ thống file trên máy PC Cấu trúc Extended BPB của FAT32 : Byte Offset Length Sample Value Field Name and Definition 0x40 BYTE 0x80 hard disks -> 0x80 0x41 BYTE 0x00 Reserved 0x42 BYTE 0x29 Extended Boot Signature 0x43 DWORD 0xA88B3652 Volume Serial Number 0x47 11 bytes NO NAME Volume Label 0x52 LONGLONG FAT32 System ID, chuỗi “FAT32”. Môn : Hệ ₫iều hành Khoa Công nghệ Thông tin Chương 7 : Quản lý hệ thống file Trường ĐH Bách Khoa Tp.HCM Slide 61
  62. Quản lý hệ thống file trên máy PC Cấu trúc thông tin của partition FAT32 : Truy xuất các cluster dữ liệu của từng file dựa vào entry thư mục và bảng FAT Môn : Hệ ₫iều hành Khoa Công nghệ Thông tin Chương 7 : Quản lý hệ thống file Trường ĐH Bách Khoa Tp.HCM Slide 62
  63. Quản lý hệ thống file trên máy PC Cấu trúc entry thư mục (entry chính) của partition FAT32 : Cấu trúc entry thư mục (entry nới rộng) của partition FAT32 : Môn : Hệ ₫iều hành Khoa Công nghệ Thông tin Chương 7 : Quản lý hệ thống file Trường ĐH Bách Khoa Tp.HCM Slide 63
  64. Quản lý hệ thống file trên máy PC Thí dụ về các entry thư mục FAT32 ₫ược dùng ₫ể quản lý file có tên là “The quick brown fox jumps over the lazydog” Môn : Hệ ₫iều hành Khoa Công nghệ Thông tin Chương 7 : Quản lý hệ thống file Trường ĐH Bách Khoa Tp.HCM Slide 64