Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 29 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
29
Dung lượng
192,34 KB
Nội dung
LOGO Báo cáo BTL môn CSLT2 Vấn đề tổ chức của một đĩa mềm & Các hàm liên quan đến việc đọc-ghi đĩa GVHD & Sinh viên thực hiện GVHD: Nguyễn Trần Thi Văn Sinh viên thực hiện: Nguyễn Phú Cường Vũ Minh Hải Phan Đức Linh Nguyễn Kim Sơn Đỗ Đăng Trường Nội dung chính 1. Một số khái niệm căn bản về đĩa 1. Track 2. Sector 3. Cluster 4. Cylinder 5. Boot sector 6. FAT Nội dung chính 2. Tìm hiểu một số hàm đọc ghi đĩa trong DOS.H 1. Hàm absread 2. Hàm abswrite 3. Hàm getfat & getfatd 4. Hàm handler & harderr Nội dung chính 3. Demo 1. Format nhanh đĩa mềm 2. Ghi file lên đĩa A 3. Đọc file từ thư mục gốc đĩa A 1. Một số khái niệm căn bản DISK TRACK SECTOR SIDE 1. Một số khái niệm căn bản Là những đường tròn đồng tâm trên mặt đĩa dùng để lưu dữ liệu. 1 track có thể lưu được 100,000 bytes dữ liệu hoặc hơn. Được đánh số từ ngoài vào trong theo thứ tự 0 -> n. TRACK 1. Một số khái niệm căn bản Là 1 phần nhỏ của track, là vùng vật lý chứa dữ liệu nhỏ nhất trong ổ cứng. Trên mỗi loại đĩa khác nhau thì số lượng sector được chia trên 1 track cũng khác nhau. Thông thường thì 1 sector chứa được 512 bytes dữ liệu. Được đánh số thứ tự từ 1 -> n. SECTOR 1. Một số khái niệm căn bản Là đơn vị lưu trữ cơ bản được chỉ định của đĩa từ. Bao gồm 1 hoặc nhiều sector nằm liền nhau trên 1 track. Số lượng sector trên 1 cluster tùy vào hệ điều hành áp đặt cho từng loại đĩa có dung lượng thích hợp. CLUSTER 1. Một số khái niệm căn bản Không gian lưu trữ của đĩa được xác định dựa trên những cluster, nghĩa là khi 1 file (hoặc một phần của file) chỉ chiếm dụng một phần hoặc toàn bộ không gian của cluster thì điều đó cũng được coi là đã sử dụng một phần không gian của đĩa, tức là đã sử dụng hết 1 cluster. CLUSTER [...]... thị số đếm của phần tử FAT Với các đĩa mềm, số lượng các cluster là nhỏ nên chỉ cần 12 bit đủ để chỉ thị số đếm này vì vậy các đĩa mềm dùng FAT 12 bit 2 Một số hàm đọc ghi đĩa ABSREAD Absread() sử dụng lệnh ngắt 0x25 để đọc những sector đặc trưng của đĩa, nó sẽ bỏ qua những cấu trúc logic của đĩa và khi thực hiện nó không chú ý tới những File, FAT hoặc những thư mục… 2 Một số hàm đọc ghi đĩa ABSREAD... tự của ổ đĩa cần đọc Nsects: số lượng sector cần đọc Lsect: sector bắt đầu Buffer: địa chỉ nơi lưu các giá trị đọc được 2 Một số hàm đọc ghi đĩa ABSREAD Công dụng: Đọc dữ liệu của nsects sectors, bắt đầu từ sector lect từ đĩa vào vùng nhớ buffer Nếu thành công thì trả về giá trị 0, trả về giá trị 1 nếu bị lỗi 2 Một số hàm đọc ghi đĩa ABSWRITE Abswrite() là hàm ghi đặc trưng của những cung từ đĩa, nó... sửa lại nội dung của sector này 1 Một số khái niệm căn bản BOOT SECTOR Với đĩa mềm thì boot sector luôn là sector đầu tiên của đĩa Những thông tin ở sector đầu tiên này được gọi là Master boot record – MBR 1 Một số khái niệm căn bản FAT(File Allocation Table) Là bảng định vị các files trên đĩa, bảng này liệt kê tuần tự số thứ tự của các cluster dành cho file lưu trú trên đĩa Mỗi đĩa có 2 bảng... tin từ bảng FAT(0 = default, 1 = A, 2 = B, etc.) Dtable: trỏ đến cấu trúc fatinfo để điền thông tin vào đó 2 Một số hàm đọc ghi đĩa GETFAT & GETFATD Hàm GETFAT lấy thông tin bảng FAT từ một đĩa nào đó và điền thông tin vào cấu trúc fatinfo 2 Một số hàm đọc ghi đĩa HANDLER & HARDERR Cú pháp: handler(int errval, int ax, int bp, int si); Hàm handler có thể gọi: Hardresume: Để quay lại DOS, hoặc Hardretn... sector bắt đầu Buffer: địa chỉ nơi lưu các giá trị để ghi 2 Một số hàm đọc ghi đĩa ABSWRITE Công dụng: Ghi dữ liệu từ vùng nhớ buffer vào nsects sectors của đĩa, bắt đầu từ sector lect Nếu thành công, trả về giá trị 0, ngược lại, trả về -1 2 Một số hàm đọc ghi đĩa GETFAT & GETFATD Cú pháp: void getfat (unsigned char drive, struct fatinfo *dtable); Drive: đĩa mà hàm getfat lấy thông tin từ bảng FAT(0... phân vùng ổ đĩa, nó chứa các thông tin hoạt động của phân vùng tương ứng(độ lớn, sector bắt đầu và kết thúc phân vùng, …) và các chương trình cần hệ điều hành nạp vào máy 1 Một số khái niệm căn bản BOOT SECTOR Boot sector nắm vai trò quan trọng trong quá trình khởi động máy, nên thường được BIOS bảo vệ rất nghiêm ngặt Là nơi dễ bị các loại boot-virus tấn công phá hoại ổ đĩa, bằng cách chỉnh sửa... 2 để lưu đề phòng sự cố nằm tiếp theo sau FAT thứ nhất 1 Một số khái niệm căn bản FAT(File Allocation Table) Hiện tại có 3 loại FAT: FAT 12 dành cho đĩa mềm hoặc đĩa cứng có dung lượng rất bé FAT 16 dành cho đĩa cứng có dung lượng từ 1GB trở xuống FAT 32 dành cho đĩa cứng có dung lượng từ vài GB trở lên 1 Một số khái niệm căn bản FAT(File Allocation Table) Độ dài của mối phần tử của FAT...1 Một số khái niệm căn bản CLUSTER Gây lãng phí không gian trên đĩa, nhưng giúp hệ điều hành quản lý không gian đĩa tốt hơn 1 Một số khái niệm căn bản CYLINDER 2 track đối xứng ở 2 mặt của đĩa gọi là 1 cylinder Đầu đọc đọc-ghi dữ liệu ở 2 track đối xứng này trước khi chuyển tới track tiếp theo Được đánh số thứ tự theo thứ tự của track, nghĩa là những track 0 hợp thành cylinder 0 1 Một số... đĩa, nó sẽ bỏ qua những cấu trúc logic của môt đĩa và khi thực hiện nó không chú ý tới những File, FAT (bảng phân bố tệp), hoặc những thư mục…, nó sử dụng hệ điều hành DOS gián đoạn 0x26 dùng để ghi những sector đặc trưng của đĩa 2 Một số hàm đọc ghi đĩa ABSWRITE Cú pháp: int abswrite(int driver, int nsects, long lect, void *buffer); Driver: số thứ tự của ổ đĩa cần ghi Nsects: số lượng sector... đĩa HANDLER & HARDERR Cú pháp: handler(int errval, int ax, int bp, int si); Hàm handler có thể gọi: Hardresume: Để quay lại DOS, hoặc Hardretn để trả lại trực tiếp cho trình ứng dụng Giá trị trả về: hàm handler sẽ trả về 0 cho ignore 1 cho retry 2 cho abort 3 Demo Format nhanh Ghi files Đọc files The End! LOGO . LOGO Báo cáo BTL môn CSLT2 Vấn đề tổ chức của một đĩa mềm & Các hàm liên quan đến việc đọc-ghi đĩa GVHD & Sinh viên thực hiện GVHD: Nguyễn Trần. đếm của phần tử FAT. Với các đĩa mềm, số lượng các cluster là nhỏ nên chỉ cần 12 bit đủ để chỉ thị số đếm này vì vậy các đĩa mềm dùng FAT 12 bit. FAT(File Allocation Table) 2. Một số hàm. Hàm abswrite 3. Hàm getfat & getfatd 4. Hàm handler & harderr Nội dung chính 3. Demo 1. Format nhanh đĩa mềm 2. Ghi file lên đĩa A 3. Đọc file từ thư mục gốc đĩa A 1. Một số khái niệm