1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Báo cáo bài thực hành số 3 Đọc và phân tích hệ thống file fat sử dụng hàm Đọc Đĩa mức thấp môn học hệ Điều hành

17 1 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Đọc và phân tích hệ thống file FAT sử dụng hàm đọc đĩa mức thấp
Tác giả Đinh Trường Duy, Nguyễn Bá Dương
Trường học Học viện Công nghệ Bưu chính Viễn thông
Chuyên ngành Hệ điều hành
Thể loại báo cáo
Năm xuất bản 2024
Thành phố Hà Nội
Định dạng
Số trang 17
Dung lượng 3,5 MB

Nội dung

Viết chương trình in các cluster thuộc file đó và in ra tên của File đó trong ROOT..  In các cluster thuộc file được lưu trữ trên cluster đầu tiên là n=7:  In ra tên của file đó trong

Trang 1

HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG



Báo cáo bài thực hành số 3: Đọc và phân tích

hệ thống file FAT sử dụng hàm đọc đĩa mức

thấp Môn học: Hệ điều hành

Giảng viên: Đinh Trường Duy Sinh viên: Nguyễn Bá Dương

Mã sinh viên: B22DCCN165 Ngày sinh: 08/02/2004

Số điện thoại: 0815750059

HÀ NỘI, 10/2024

Trang 2

1 Khởi động máy ảo:

Trang 3

 Mở và chạy file FAT.cpp:

1.1Viết đoạn chương trình in nội dung của 150 ô FAT đầu tiên của ổ đĩa D

ra màn hình từ đó in ra bảng bit của 150 khối nhớ của ổ D.\

 Nội dung của chương trình:Cấu trúc boot

Trang 4

 Cấu trúc ROOT:

Trang 5

 Hàm main:

In nội dung của 150 ô FAT đầu tiên:

 Kết quả:

Trang 6

1.2Viết chương trình đọc FAT vào bộ nhớ tại địa chỉ << int ∗fat >> Giả

sử một file được lưu trữ trên cluster đầu tiên là n Viết chương trình in các cluster thuộc file đó và in ra tên của File đó trong ROOT.

 In các cluster thuộc file được lưu trữ trên cluster đầu tiên là n=7:

 In ra tên của file đó trong ROOT:

Trang 7

 Kết quả:

1.3Viết chương trình đọc thư mục gốc của hệ thống file FAT16 sử dụng tên file độ dài tối đa 8 ký tự được đọc vào bộ nhớ tại địa chỉ << void ∗ root

>> Viết chương trình C/C++ thực hiện hai việc: in tên và độ dài các file trong thư mục gốc; tìm một file có tên cho trước trong thư mục gốc và cho biết file đó có bao nhiêu khối nhớ.

 Đọc thư mục gốc của hệ thống file FAT16 sử dụng tên file có độ dài tối đa

8 ký tự:

Trang 8

 In tên và độ dài các file trong thư mục gốc, tìm một file có trước trong thư mục gốc:

 Kết quả:

Trang 9

2 Sinh viên viết chương trình trên C/C++ để thực hiện các nội dung sau:

- Đọc và in thông tin từ BOOT.

- Đọc, phân tích, hiển thị nội dung bảng FAT.

- Đọc, phân tích, hiển thị ROOT.

- Duyệt số thứ tự hoặc nội dung các cluster của file cho trước.

- Viết đoạn chương trình in ra nội dung giống như câu lệnh dir.

 Đọc và in thông tin từ BOOT.

 Chương trình: được lưu trong file “BAI2_1.cpp”

Trang 10

Toàn bộ chương trình:

Trang 11

 Kết quả:

 Giải thích:

Đoạn mã trê sử dụng các hàm liên quan để đọc thông tin sector của ổ đĩa, đặc biệt là thông tin từ BOOT sector Chương trình đọc và in ra các thông tin cơ bản của BOOT sector từ một ổ đĩa ví dụ như kích thước sector, số lượng FAT,

Sử dụng một cấu trúc có tên là “bootsector” để chứa các thông tin trong BOOT sector của ổ đĩa

Sử dụng hàm “absread” để đọc dữ liệu từ một sector

Cuối cùng in thông tin BOOT sector ra màn hình qua hàm “bootsectorPrint”

Trang 12

 Đọc, phân tích, hiển thị nội dung bảng FAT:

 Chương trình: được lưu trong file “BAI2_2.cpp”

 Kết quả:

 Giải thích:

Chương trình giống như hai bài trên, ta chỉ thay đổi hàm main Đoạn mã đã thực hiện đọc, phân tích và hiển thị nội dung bảng FAT Đầu tiên đọc boot sector thông qua lệnh absread

Sau đó, ta xác định vị trí và kích thước của bảng FAT

Trang 13

Tiếp theo ta tiến hành đọc bảng FAT vào bộ đệm và cuối cùng in nội dung của bảng FAT ra màn hình

 Đọc, phân tích, hiển thị ROOT.

 Chương trình: được lưu trong file “BAI2_3.cpp”

Trang 14

 Kết quả:

 Giải thích:

Vẫn là đoạn chương trình của ý trên, ta thêm cấu trúc root_entry và hàm rootEntryPrint để in thông tin của các tệp và thư mục từ root

Hàm rootEntryPrint đã thực hiện in tên tệp, kích thước, ngày tạo và cluster đầu tiên của tệp

 Duyệt số thứ tự hoặc nội dung của file cho trước:

 Chương trình: được lưu trong file “BAI2_4.cpp”

Trang 15

 Kết quả:

 Giải thích:

Đoạn mã tìm kiếm file có tên là “bootsect” trong thư mục gốc

Sau khi tìm thấy file, mã sẽ lấy số cluster đầu tiên của file đó và sử dụng bảng FAT để suyệt qua tất cả các cluster

Trang 16

Quá trình này chạy cho đến khi gặp giá trị đặc biệt trong bảng FAT như 0xFFF8 thì file đã kết thúc

 Viết đoạn chương trình in ra nội dung giống như câu lệnh dir.

 Chương trình: được lưu trong file “BAI2_5.cpp”

 Kết quả:

Trang 17

 Giải thích:

Đoạn mã in ra danh sách các file trong thư mục gốc, bao gồm tên file, thuộc tính, kích thước, ngày tháng tạo và số cluster đầu tiên của mỗi file

Mỗi file sẽ được hiển thị theo tên

Đối với thư mục sẽ hiển thị <<DIR>> còn với file thông thường sẽ in ra kích thước file

Ngày tạo file được tính toán từ thông tin ngày tháng trong cấu trúc

created_date

Ngày đăng: 20/12/2024, 22:54

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w