Hệ điều hành - Chương 3: Hệ thống quản lý tập tin

pdf 56 trang vanle 2410
Bạn đang xem 20 trang mẫu của tài liệu "Hệ điều hành - Chương 3: Hệ thống quản lý tập tin", để 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:

  • pdfhe_dieu_hanh_chuong_3_he_thong_quan_ly_tap_tin.pdf

Nội dung text: Hệ điều hành - Chương 3: Hệ thống quản lý tập tin

  1. Chương 3: Hệ thống quảnlýtập tin „ Nội dung chương: „ Các khái niệmcơ bảnvề hệ thống tậptin „ Cài đặthệ thống quảnlýtậptin „ Mô hình tổ chứcvàquảnlýtậptin củacác HĐH thông dụng. „ Truy xuấthệ thống quảnlýtậptin. 1
  2. Hệ thống lưutrữ trong máy tính „ Bộ nhớ trong „ RAM, ROM, Register, Cache „ Bộ nhớ ngoài Bộ nhớ thứ cấp độ „ HD (Hard Disk) c (băng từ) ố T „ FD (Floppy Disk) Giá thành „ CD (Compact Disk) Bộ nhớ phụ (đĩa) „ DVD (Digital Video Disk) „ USB disk ng Bộ nhớ chính „ ượ cache Dung l 2
  3. Các khái niệmcơ bản „ RAM không có khả năng lưutrữ dữ liệulâudài. „ Máy tính phảisử dụng các thiếtbị có khả năng lưutrữ lâu dài vì: „ Chứalượng thông tin lớn. „ Thông tin đượclưutrữ trướckhixử lý. „ Nhiều ứng dụng muốntruycậpcùnglúc. Æ Phảisử dụng các thiếtbị lưutrữ ngoài gọilàbộ nhớ ngoài với các đơnvị lưutrữđượctổ chức thành: „ Tậptin „ Thư mục 3
  4. Tổ chứcdữ liệutrênđĩatừ „ Cấutrúcvậtlýcủa đĩatừ: „ Hình tròn, gồmnhiềumặtgọilàhead. „ Mỗimặtcónhiều đường tròn đồng tâm gọi là track hay cylinder. „ Trên các đường tròn (track) đượcchia thành các cung tròn gọilàsector. „ Mỗi cung tròn chứa 4096 điểmtừ (~ 4096 bit = 512 bytes). „ Mỗimặtcó1 đầu đọc để đọcghidữ liệu „ Mỗilần đọc/ghi ít nhất 1 cung tròn (512B). 4
  5. Cấutrúcđĩatừ Head 0 Head 2 5
  6. Cấutrúcđĩatừ sectors read-write head track 6 cylinder
  7. Cấutrúcđĩatừ 7
  8. Tổ chứcdữ liệutrênđĩatừ (tt) „ Mỗilần đọc hay ghi đĩacóthể thựchiệnN sector liên tiếp (N>=1). „ Vị trí củamỗi sector trong đĩa đượcthể hiệnbằng 3 tham số : {sector, track, head}. „ Head được đánh số từ trên xuống bắt đầutừ 0. „ Track được đánh số từ ngoài vào bắt đầutừ 0. „ Sector được đánh số bắt đầutừ 1 theo chiều ngượcvớichiều quay của đĩa. 8
  9. Tổ chức đĩa logic 0 1 2 3 4 N-1 „ Thay vì phảidùngđến3 thamsố dựatrêncấutrúcđĩa vật lý nên khái niệm đĩalogic được đưarađể dễ thao tác và tính toán hơn. „ Đĩa logic là một dãy sector được đánh số bắt đầutừ 0. „ Mỗi sector trên đĩa logic tương ứng với 1 sector duy nhất trên đĩavật lý sao cho khi truy xuấtsector K thìkhitruy xuấttiếp sang sector K+1 là nhanh nhất. 9
  10. Dung lượng đĩa „ Kích thước đĩaphụ thuộcvàocácyếutố sau: „ Số mặttừ (platter) „ Số track trên mỗimặttừ „ Số sector trên mỗitrack „ Kích thước (byte) trên mỗitrack. 10
  11. Ví dụ cách tổ chức đĩamềm „ Các thông số trên đĩamềm 1.44MB: „ Đĩa có 2 head, 80 track/head, 18 sector/track. „ Dung lượng đĩa = 2 head/disk *80 track/head *18 sector/track = 2880 sector/disk = 0.5 KB/sector * 2880 sector/disk = 1440 KB/disk (~ 1.4MB) „ Các sector logic có chỉ số từ 0 đến 2879 và tương ứng với các sector vậtlýnhư sau: „ Sector 0 17 tương ứng với sector vật lý (1,0,0) (18,0,0) „ Sector 18 35 tương ứng vớisector vật lý (1,0,1) (18,0,1) „ „ Sector 2879 tương ứng với sector vật lý (18,79,1). 11
  12. Thờigiantruycập đĩa Mặt đĩa Đầu đọc Tay quay „ Disk access time = Seek Time + Latency Time + Transfer Time 12
  13. Các thuậttoánđọc đĩa „ First-Come-First-Serve (FCFS) „ SCAN, C-SCAN „ Shortest Seek Time First (SSTF) „ Look 13
  14. First Come First Serve (FCFS) „ Phụcvụ theo thứ tự yêu cầu „ Đơngiảnnhưng không đáp ứng tốtdịch vụ Các khốicần đọc(đầu đọchiệntạitạivị trí 11): 12 14 2 7 21 8 24 cylinder number scheduling 1 5 10 15 20 25 queue 12 14 2 7 21 8 24 time 14
  15. SCAN „ Di chuyển đầu đọcvề 1 phía của đĩa đếnblock xanhấtsau đódichuyểnvề phía kia. „ Còn gọilàthuật toán thang máy. Các khốicần đọc(đầu đọchiệntạitạivị trí 11): 1212 1414 2 77 2121 88 2424 cylinder number 1 5 10 15 20 25 scheduling queue time 15
  16. SCAN vs. FCFS cylinder number 1 5 10 15 20 25 „ Trong trường hợp này, SCAN tốthơn FCFS vì hạnchế sự di chuyển time của đầu đọc đĩa 16 time
  17. C-SCAN „ Nguyên tắc: „ Tương tự thuật toán SCAN. „ Chỉ khác khi di chuyển đến1 đầucủa đĩathìtrở về vị trí bắt đầucủa đĩa. 17
  18. C-SCAN 18
  19. LOOK „ Nhậnxét: „ Hai thuậttoánlậplịch SCAN và C-SCAN luôn luôn di chuyển đầu đọccủa đĩatừđầu này sang đầukia nhưng thông thường thì đầu đọcchỉ di chuyển đến khốixanhất ở mỗihướng chứ không đếncuối. „ Nguyên tắc: „ Giống SCAN và C-SCAN nhưng chỉ di chuyển đầu đọc đếnkhống xa nhấtchứ không đếncuối. 19
  20. LOOK 20
  21. SSTF „ SSTF = Shortest Seek Time First „ Nguyên tắc: „ Di chuyển đầu đọc đếncáckhốicầnthiếttheovị trí lầnlượtgầnvớivị trí hiệnhànhcủa đầu đọcnhất 21
  22. SSTF 22
  23. Lậptrìnhtương tác với đĩa „ Các truy xuất đĩatrựctiếp trong C: „ Đọcnội dung sector trên đĩa logic: hàm absread. „ Ghi nội dung vào sector logic: abswrite. „ Thựchiệnthaotáctrênđĩavật lý: biosdisk. „ Cú pháp: „ int absread(int drive, int nsects, long lsect, void *buffer). „ int abswrite (int drive, int nsects, long lsect, void *buffer); „ int biosdisk (int cmd, int drive, int head, int track, int sector, int nsects, void *buffer); 23
  24. Tập tin (1/4) „ Tập tin (file) là đơnvị lưutrữ thông tin trên bộ nhớ ngoài. „ Thông tin chứa trong tập tin là bềnvững (không bị mất đi khi bị mất điện). „ Tên tập tin: „ Là cơ chế trừutượng để quảnlýtậptin. „ Có thể phân biệtchữ hoavàthường (tuỳ HĐH cụ thể) „ Hỗ trợ tên tập tin theo định dạng 8.3 (gồm tên và phần mở rộng) hay tên dài (Long File Name). „ Ví dụ: baitap.cpp hay “bai tap lap trinh.cpp” 24
  25. Tập tin (2/4) Các thuộc tính củatập tin: „ Ngườisở hữu/nhóm sở hữu „ Chỉđọc (Read-only) „ Ẩn (Hidden) „ Hệ thống (System) „ Lưutrữ (Archive) „ Ngày giờ tạo. „ Ngày giờ truy cậpcuốicùng „ Ngày giờ thay đổicuốicùng „ Kích thước 25
  26. Tập tin (3/4) Các thao tác trên tập tin: „ Tạo „ Thêm „ Xoá „ Tìm „ Mở „ Lấythuộc tính „ Đóng „ Thiếtlậpthuộc tính „ Đọc „ Đổitên „ Ghi 26
  27. Tập tin (4/4) „ Các loạitập tin: „ Tập tin vănbản (text file): chứa các dòng vănbản, cuối dùng có ký hiệukết thúc dòng (end line) „ Tập tin nhị phân (binary file): là tập tin có cấutrúc. „ Các truy xuấttrêntập tin: „ Tuầntự: Phải đọctừđầutập tin đếnvị trí mong muốn. „ Ngẫu nhiên: Có thể di chuyển nhanh (SEEK) đến đúng vị trí cần đọc. 27
  28. Khối điều khiểntập tin 28
  29. Thư mục „ Giúp cho việcquảnlýcáctập tin dễ dàng hơn. „ Giúp định vị các tập tin 1 cách nhanh chóng. „ Gom nhóm các tập tin vào trong các thư mụctheo ý nghĩavàmục đích sử dụng củangười dùng. root bob sue 3013 www fun 29
  30. Thư mục Ví dụ 1 cấutrúccâythư mục phân cấp 30
  31. Thư mục-Đường dẫn (Path) „ Dùng để xác định vị trí lưutập tin khi hệ thống đượctổ chức thành cây thư mục: „ Đường dẫntuyệt đối: „ Ví dụ: “C:\Downloads\software\baigiang.doc” „ Đường dẫntương đối: „ Ví dụ: “software\baigiang.doc” nếuthư mụchiệnhànhlà “C:\Downloads\” „ Các thư mục đặcbiệt: „ Thư mụchiệnhành(.) „ Thư mục cha ( ) 31
  32. Thư mục „ Các thao tác trên thư mục: „ Tạo Đổitên „ Mở Liệtkê „ Liên kết: Chophép1 tập tin có thể xuấthiện trong nhiềuthư mụckhácnhau. „ Bỏ liên kết: Nếutập tin chỉ có 1 liên kếtvới1 thư mục, nó sẽ bị loạibỏ hoàn toàn, ngượclạinósẽ bị giảmchỉ số liên kết 32
  33. Cấp phát vùng nhớ chứatập tin „ Các khối (block) đĩasẽđượccấp phát để lưutrữ nội dung tập tin theo các cơ chế cấp phát: „ Cấpphátliêntục „ Cấpphátbằng danh sách liên kết „ Cấpphátbằng danh sách liên kếtsử dụng chỉ mục (index). „ Cấpphátbằng I-node 33
  34. Cấp phát liên tục „ Cấp phát 1 số block liên tụctrênđĩa để lưutrữ nội dung tập tin „ Nhậnxét: „ Đơngiản: chỉ cầnquảnlýsố hiệukhốibắt đầuvàtổng số block chiếmbởitậptin. „ Truy cậpnội dung tập tin nhanh chóng vì các block nằmkề nhau. „ Gâylãngphíbộ nhớ. „ Khó khănkhitậptin mở rộng kích thước. 34
  35. Cấp phát liên tục (tt) 35
  36. Cấp phát bằng danh sách liên kết „ Nội dung tập tin đượclưutrữởnhững block không cần liên tục. Các block này đượcxâuchuỗi tạo thành 1 danh sách liên kết để quảnlý. „ Nhậnxét: „ Đơngiản: Chỉ cầnquảnlýblock bắt đầu. „ Tậndụng hiệuquả không gian đĩa. „ Truy cậptập tin lâu hơnvìđầu đọcphảidichuyển nhiềugiữacáckhối không liên tiếp. „ Khốidữ liệubị thu hẹplạivìmỗikhốiphải dùng 1 phần để lưuphầnliênkết đếnkhốikế tiếp. 36
  37. Cấpphátbằng danh sách liên kết (tt) 37
  38. Cấp phát bằng danh sách liên kếtsử dụng chỉ mục (index) „ Tương tự như phương pháp cấp phát bằng danh sách liên kếtnhưng thay vì sử dụng 1 phầnnhỏ củamỗiblock để lưuchuỗi liên kếtthìsử dụng 1 block riêng để lưutoànbộ chuỗi liên kết. „ Æ Các block chỉ chứadữ liệu. 38
  39. Cấp phát bằng danh sách liên kếtsử dụng chỉ mục (index) (tt) 39
  40. Cấp phát bằng I-node „ Mỗi I-node gồm2 phần: „ Các thuộctínhcủatậptin „ Địachỉ củacáckhốidữ liệu: gồm 13 phầntử „ 10 phầntửđầu tiên: Địachỉ của các khốidữ liệutrựctiếp. „ Phầntử thứ 11: Địachỉ của các khốidữ liệugiántiếp đơn (single indirect): gồm 1 khốitrỏđến 210 phầntử chứa địa chỉ của các khốidữ liệu. „ Phầntử thứ 12: Địachỉ của các khốidữ liệugiántiếp đôi (double indirect): chứa địachỉ của các khối single indirect. „ Phầntử thứ 13: Địachỉ của các khốidữ liệugiántiếpba (triple indirect) 40
  41. Cấp phát bằng I-node (tt) 41
  42. Cài đặthệ thống tập tin của các HĐH cụ thể „ MS-DOS „ Windows „ Unix 42
  43. Tổ chứcquảnlýhệ thống tập tin trên đĩatừ Đĩatừ bao gồm danh sách các sector có kích thước512Bytes 0 1 2 3 Kích thước đĩa (bytes) = (tổng số sector) x (512 bytes/sector) 43
  44. Phân vùng đĩa (Disk Partition) „ Toàn bộ vùng lưutrữ của đĩa được phân thành các vùng logic không chồng lên nhau gọi là phân vùng đĩa. unused Partition #1 Partition #2 Partition #3 44
  45. Master Boot Record „ Mộtphầnnhỏđầu tiên của đĩa được dành riêng cho các thông tin quảnlýđĩa. 0 1 2 MBR partition #1 „ Sector logic thứ 0 của đĩa (CHS = 001) là Master Boot Record chứa thông tin mô tả cấutrúcvậtlýcủa đĩavà thông tin về các phân vùng logic của đĩa. 45
  46. MBR „ Thông tin chứa trong MBR bao gồm: „ Đoạnchương trình để giúp khởi động hệ thống „ Bảng mô tả thông tin các phân vùng logic „ Thông tin nhậndiệnMBR Bootstrap Loader 512 (446 bytes) bytes Partition Table (64 bytes) signature (2 bytes) 46
  47. Bảng mô tả các phân vùng „ MBR có thể mô tả cho tối đa 4 phân vùng logic đượcchiatrênđĩatrongđóthường có 1 phân vùng ở trạng thái “Active” S T T A Y T P U 16 S E bytes Starting sector Partition length ID-number (in sectors) Some fields contain ‘obsolete’ information 47
  48. Primary Partition vs Extended Partition Primary Partition Extended Partition Partition MBR Table Reserved Reserved Reserved Reserved Reserved Reserved Reserved Reserved Reserved Reserved Reserved Reserved Reserved Reserved 48
  49. Bảng mô tả cácphânvùng(tt) „ Phân vùng “active” là phân vùng chứa HĐH sẽ đượcnạpmặc định khi máy tính khởi động. 49
  50. Trường TYPE-ID trong bảng mô tả phân vùng „ Ý nghĩacủatrường Type-ID trong mỗi phân vùng „ TYPE-ID = 0x07 : Phân vùng chứa “Windows” „ TYPE-ID = 0x83 : Phân vùng chứa “Linux” „ TYPE-ID = 0x00 : Phân vùng không sử dụng. 50
  51. Quá trình khởi động hệ thống và nạp HĐH dựa trên thông tin các phân vùng „ B1: POST (Power-On Self-Test) „ B2: TảiMBR để đọc thông tin bảng phân vùng. „ B3: Tìm phân vùng “active”. „ B4: Chuyển quyền điều khiểnvề cho đoạnmã chương trình nằm trong Boot Record của phân vùng “active” „ B5: Tải HĐH tại phân vùng “active”. 51
  52. Tổ chứctập tin trên Windows: FAT (12,16,32) 52
  53. Tổ chứctập tin trên Windows: FAT (12,16,32) (tt) „ FAT: File Allocation Table „ Các phiên bảncủa FAT: FAT12, FAT16, FAT32 12 16 32 „ 12,16,32: Số bít dùng để đánh STT các khối(2 ,2 ,2 ) 12 „ FAT12: 2 (khối) x 512 bytes/khối = 2MB 16 „ FAT16: 2 (khối) x 512 bytes/khối = 32MB 32 „ FAT32: 2 (khối) x 512 bytes/khối = 4GB Boot Root FAT1 FAT2 Other directories and files sector (backup) directory 0000 0000 0001 0002 0003 0004 0005 0001 0000 0002 0003 empty empty File1 File1 File1 File2 0003 0004 0004 FFFF 0006 0007 0008 0009 0010 0011 0005 0006 0006 0008 File2 File3 File2 empty empty empty 0007 FFFF 0008 FFFF 0012 0013 0014 0015 0016 0017 0009 0000 empty empty empty empty empty empty 53
  54. Tổ chứctập tin trên Windows: NTFS „ Nhóm các sector liên tiếp nhau lại để tạo thành các Cluster. 54
  55. Tổ chứctập tin trên Windows: NTFS „ NTFS không sử dụng khái niệm FAT và Root Dir để quảnlýcáctập tin lưutrênđĩamàsử dụng khái nhiệm MFT (Master File Table). „ MFT là 1 Metadata file bao gồm 1 danh sách các trường chứa thông tin về mỗitập tin lưutrữ trên đĩa. „ Thông tin trong MFT có thể giúp thiếtlậpcác thuộc tính bảovệ, phụchồi, tìm kiếm, thiếtlập quota cho từng tập tin, thư mụctrênđĩa. 55
  56. Tổ chứctập tin trên Unix/Linux: I-node I-node mode Data block owner Data block Direct block 0 Data block Direct block 1 Data block Direct block 10 Data block Direct block 11 Data block Single indirect Double indirect index Data block Triple indirect Data block Data block index indexindex Data block Data block Data block indexindex index index index Data block Data block 56