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
Đượ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
1. Một số khái niệm căn bản
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.
CLUSTER
nội dung của sector này.
BOOT SECTOR
1. Một số khái niệm căn bản
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.
BOOT SECTOR
1. Một số khái niệm căn bản
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 FAT giống hệt nhau.
FAT thứ nhất bắt đầu ngay sau Boot
Sector và chiếm dụng nhiều sector tiếp
theo, FAT thứ 2 để lưu đề phòng sự cố
nằm tiếp theo sau FAT thứ nhất.
FAT(File Allocation Table)
1. Một số khái niệm căn bản
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.
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
ABSREAD
2. Một số hàm đọc ghi đĩa
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
ABSREAD
2. Một số hàm đọc ghi đĩa
Abswrite() là hàm ghi đặc trưng của
những cung từ đĩ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.
ABSWRITE
2. Một số hàm đọc ghi đĩa
Cú pháp:
int abswrite(int driver, int nsects, long lect, void *buffer);