Thông tin tài liệu:
Nội dung chương 12 gồm các phần sau: Cơ bản về lưu trữ trên đĩa từ. Một ứng dụng hiển thị sector. Một ứng dụng hiển thị Cluster. Các chức năng về file ở mức hệ thống. Quản lý đĩa và thư mục. Truy xuất đĩa với INT 13H của Rombios. Bài tập. Giới thiệu file và lập trình xử lý file.
Nội dung trích xuất từ tài liệu:
Chương 12: Lập trình xử lý đĩa và file LẬP TRÌNH XỬ LÝ ĐĨA&FILECƠBẢNVỀLƯUTRỮTRÊNĐĨATỪ.MỘTỨNGDỤNGHIỂNTHỊSECTORMỘTỨNGDỤNGHIỂNTHỊCLUSTER.CÁCCHỨCNĂNGVỀFILEỞMỨCHỆTHỐNG.QUẢNLÝĐĨAVÀTHƯMỤC.TRUYXUẤTĐĨAVỚIINT13HCỦAROMBIOSBÀITẬPGiỚITHIỆUFILEVÀLẬPTRÌNHXỬLÝFILE09/10/10 LAP TRINH XU LY DIA TU 1 CƠ BẢN VỀ LƯU TRỮ TRÊN ĐĨA TỪNgônngữASMvượttrộihơncácngônngữkhácvềkhảnăngxửlýđĩa.Taxemxétviệclưutrữthôngtintrênđĩatheo2mứcđộ:mứcphầncứng/BIOSvàmứcphầnmềm/DOS. mứcphầncứng:lưutrữthôngtinliênquanđếncáchdữliệuđượclưutrữ1cáchvậtlýnhưthếnàotrênđĩatừ? mứcphầnmềm:việclưutrữđượcquảnlýbởitiệníchquảnlýFilecủaHĐHDOS. 09/10/10 LAP TRINH XU LY DIA TU 209/10/10 LAP TRINH XU LY DIA TU 309/10/10 LAP TRINH XU LY DIA TU 4CÁC ĐẶC TÍNH LUẬN LÝ & VẬT LÝ CỦA ĐĨA TỪỞmứcvậtlý:đĩađượctổchứcthànhcácTracks,Cylinders,Sectors.Khảnănglưutrữcủađĩađượcmôtảbằng3thôngsô:C(cylindernumber)H(Headside)R(sectornumber) 09/10/10 LAP TRINH XU LY DIA TU 509/10/10 LAP TRINH XU LY DIA TU 6 CÁC KHÁI NIỆM TRACK, CYLINDER, SECTORTracks : là các vòng tròn đồng tâm được tạo ratrênbềmặtđĩa. Cylinder:tậpcáctrackscùngbánkínhtrên1 chồngđĩa.Mặtđĩacóbaonhiêutrackthìsẽcó bấynhiêuCylinder.Sector:là1đọancủatrack(cungtừ)cókhảnănglưutrữ512bytesdữliệu.Cácsectorđượcđánhsốbắtđầutừ1trênmỗitrack trên1đĩatồntạinhiềusectorcùngsốhiệu. 09/10/10 LAP TRINH XU LY DIA TU 709/10/10 LAP TRINH XU LY DIA TU 8 Ởmứcluậnlý:đĩađượctổchứcthànhcác Clusters,cácfilesmàDOSsẽdùngđểcấp phátvùnglưutrữchodữliệucầnlưutrữ. Cluster : là 1 nhóm gồm 2,4,6 các sector kềnhau.Đóchínhlàđơnvịcấpphátvùnglưutrữchodữliệu(file).Cácclusterđượcđánhsốbắtđầutừ0. Nếu dữ liệu cần lưu trữ chỉ 1 byte thì hệ điều hànhcũngcấpphát1cluster.sốbytes/clusterhaysector/clustertùythuộcvàotừngloạiđĩa. 09/10/10 LAP TRINH XU LY DIA TU 9TƯƠNG QUAN GIỮA SECTOR VẬT LÝ VÀ SECTOR LOGIC TRÊN ĐĨA MỀMMẶT TRACK SECTOR SECTOR THÔNG TINĐĨA LOGIC 0 0 1 0 BOOT RECORD 0 0 2-5 1-4 FAT 0 0 6-9 5-8 Thư mục gốc 1 0 1-3 9-11 Thư mục gốc 1 0 4-9 12-17 Dữ liệu 0 1 1-9 18-26 Dữ liệu 09/10/10 LAP TRINH XU LY DIA TU 10 BAD SECTORTrênbềmặtđĩacóthểtồntạicácsectormàHĐHkhôngthểghidữliệuvàođóhoặckhôngthểđọcdữliệutừđó.CácsectornàygọilàBadSector. Làm sao biết sector nào là bad sectorKiểmtragiátrịcủacácphầntử(entry)trongbảngFAT,phầntửnàochứagiátrị(F)FF7HthìclustertươngứngbịBad 09/10/10 LAP TRINH XU LY DIA TU 11 BẢNG FAT FILE ALLOCATION TABLE DOSquảnlýcácFilenhờvào1bảnggọilàbảngFAT. Trong bảng FAT có ghi cluster bắt đầu của File này ở đâu ? Và đĩa còn bao nhiêu Clusters trống chưa cấp phát.tổchứcluậnlýcủađĩađượcmôtảnhưhìnhsau:Boot Bảng Bảng Rootrecord FAT1 FAT2 directory data 09/10/10 LAP TRINH XU LY DIA TU 12 Thí dụ về bảng FAT Đĩamềm3.5””360Kthì: Sector0:bootsector Sector14:bảngFAT Sector5–11:thưmụcgốc Sector12719:vùngchứadata09/10/10 LAP TRINH XU LY DIA TU 13 BOOT RECORD Còn được gọi là Boot Sector. Ổ đĩa cứng gọi làMasterboot,làSectorđầutiênkhiđĩađượcformat. chứa 1 chương trình nhỏ cho biết dạng lưu trữtrên đĩa và tên hệ thống MT, kiểm tra xem có cácfile hệ thống IO.SYS, MSDOS.SYS,COMMAND.COMhaykhông? nếucóthìnạpchúngvàobộnhớ(gọilàchươngtrìnhmồicủaHĐH) 09/10/10 LAP TRINH XU LY DIA TU 14 BOOTRECORD(tt) Tọađộvậtlý:C=0, H=0, R =1 (C0H0R1) tức ở tại sectorđầutiêncủatrackđầutiên,mặttrêncủađĩađầutiêntrongổđĩacứng. TrongMasterbootcóchứabảngPARTITIONTABLEchobiếttầmđịachỉvậtlý(dunglượng)củaổđĩaluậnlý. MasterbootkhôngthuộcPartitionnào 09/10/10 LAP TRINH XU LY DIA TU 15 BOOTRECORD(tt) BOOTRECORDđượcROMBIOSnạpvàođịachỉ0000:7C00H. Nếu máy không bị Virus thì lệnh đầu tiên củachương trình BOOT là JMP 7C3EH, nghĩa là nh ...