Bài giảng Hệ điều hành (Bản đầy đủ)

TF: Phổ biến, hiệu quả hơn FCFS l SCAN/C-SCAN hoạt động tốt hơn cho hệ thống có nhiều y/cầu truy nhập đĩa l Không gặp vấn đề "starvation: chờ đợi quá lâu" l Hiệu quả của các t/toán phụ thuộc số lượng và kiểu các y/cầu l Y/cầu truy xuất đĩa bị ảnh hưởng bởi các p/pháp phân phối đĩa cho file l P/phối liên tục: đưa ra các y/cầu truy xuất lân cận nhau l P/phối liên kết/ chỉ mục: có thể gồm các khối được phân bố rộng rãi trên đĩa l T/toán điều phối truy nhập đĩa có thể được viết như những modul riêng biệt của HĐH cho phép có thể thay thế bởi các t/toán khác khi cần thiết l Cả SSTF và LOOK đều có thể là lựa chọn hợp lý cho t/ toán mặc địnhKết chương 1. Nguyên tắc quản lý chung 1. Giới thiệu 2. Ngắt và xử lý ngắt 2. Dịch vụ vào ra của hệ thống 1. Vùng đệm (Buffer) 2. Quản lý lỗi vào ra 3. Kỹ thuật SPOOL 3. Hệ thống vào ra đĩa 1. Cấu trúc đĩa từ 2. Điều phối truy nhập đĩa

pdf765 trang | Chia sẻ: hachi492 | Ngày: 05/01/2022 | Lượt xem: 308 | Lượt tải: 0download
Bạn đang xem trước 20 trang tài liệu Bài giảng Hệ điều hành (Bản đầy đủ), để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
ều) l Vị trí tương đối so với sector đầu tiên của đĩa Sector → #6 Chương 4: Quản lý hệ thống file 3. Tổ chức thông tin trên đĩa từ 3.1 Cấu trúc vật lý của đĩa Định vị thông tin trên đĩa mềm l Sector đơn vị thông tin hệ thống dùng làm việc với đĩa l Sector xác định qua tọa độ 3 chiều: Header, Track, Sector l Ví dụ: Boot Sector của đĩa mềm: Sector l Sector được xác định qua số hiệu sector (tọa độ 1 chiều) l Vị trí tương đối so với sector đầu tiên của đĩa Sector → #7 Chương 4: Quản lý hệ thống file 3. Tổ chức thông tin trên đĩa từ 3.1 Cấu trúc vật lý của đĩa Định vị thông tin trên đĩa mềm l Sector đơn vị thông tin hệ thống dùng làm việc với đĩa l Sector xác định qua tọa độ 3 chiều: Header, Track, Sector l Ví dụ: Boot Sector của đĩa mềm: Sector l Sector được xác định qua số hiệu sector (tọa độ 1 chiều) l Vị trí tương đối so với sector đầu tiên của đĩa Sector → #8 Chương 4: Quản lý hệ thống file 3. Tổ chức thông tin trên đĩa từ 3.1 Cấu trúc vật lý của đĩa Định vị thông tin trên đĩa mềm l Sector đơn vị thông tin hệ thống dùng làm việc với đĩa l Sector xác định qua tọa độ 3 chiều: Header, Track, Sector l Ví dụ: Boot Sector của đĩa mềm: Sector l Sector được xác định qua số hiệu sector (tọa độ 1 chiều) l Vị trí tương đối so với sector đầu tiên của đĩa Sector → #9 Chương 4: Quản lý hệ thống file 3. Tổ chức thông tin trên đĩa từ 3.1 Cấu trúc vật lý của đĩa Định vị thông tin trên đĩa mềm l Sector đơn vị thông tin hệ thống dùng làm việc với đĩa l Sector xác định qua tọa độ 3 chiều: Header, Track, Sector l Ví dụ: Boot Sector của đĩa mềm: Sector l Sector được xác định qua số hiệu sector (tọa độ 1 chiều) l Vị trí tương đối so với sector đầu tiên của đĩa Sector → #10 Chương 4: Quản lý hệ thống file 3. Tổ chức thông tin trên đĩa từ 3.1 Cấu trúc vật lý của đĩa Định vị thông tin trên đĩa mềm l Sector đơn vị thông tin hệ thống dùng làm việc với đĩa l Sector xác định qua tọa độ 3 chiều: Header, Track, Sector l Ví dụ: Boot Sector của đĩa mềm: Sector l Sector được xác định qua số hiệu sector (tọa độ 1 chiều) l Vị trí tương đối so với sector đầu tiên của đĩa Sector → #15 Chương 4: Quản lý hệ thống file 3. Tổ chức thông tin trên đĩa từ 3.1 Cấu trúc vật lý của đĩa Định vị thông tin trên đĩa mềm l Sector đơn vị thông tin hệ thống dùng làm việc với đĩa l Sector xác định qua tọa độ 3 chiều: Header, Track, Sector l Ví dụ: Boot Sector của đĩa mềm: Sector l Sector được xác định qua số hiệu sector (tọa độ 1 chiều) l Vị trí tương đối so với sector đầu tiên của đĩa Sector → #16 Chương 4: Quản lý hệ thống file 3. Tổ chức thông tin trên đĩa từ 3.1 Cấu trúc vật lý của đĩa Định vị thông tin trên đĩa mềm l Sector đơn vị thông tin hệ thống dùng làm việc với đĩa l Sector xác định qua tọa độ 3 chiều: Header, Track, Sector l Ví dụ: Boot Sector của đĩa mềm: Sector l Sector được xác định qua số hiệu sector (tọa độ 1 chiều) l Vị trí tương đối so với sector đầu tiên của đĩa #0 #1 #2 #8 #9 Mô hình thiết bị lưu trữ (Disk) Chương 4: Quản lý hệ thống file 3. Tổ chức thông tin trên đĩa từ 3.1 Cấu trúc vật lý của đĩa Đĩa cứng 49 / 107 Chương 4: Quản lý hệ thống file 3. Tổ chức thông tin trên đĩa từ 3.1 Cấu trúc vật lý của đĩa Đĩa cứng Chương 4: Quản lý hệ thống file 3. Tổ chức thông tin trên đĩa từ 3.1 Cấu trúc vật lý của đĩa Cấu trúc vật lý đĩa cứng Cấu trúc l Gồm nhiều mặt đĩa, được đánh số từ 0,1 l Các rãnh cùng bán kính tạo nên cylinder, được đánh số từ 0, 1,.. l Các sector trên mỗi mặt của mỗi cylinder, được đánh số từ 1,2,... Định vị thông tin l Tọa độ 3 chiều (H, C, S) l Tọa độ 1 chiều: Số hiệu sector l Nguyên tắc như với đĩa mềm: Sector→Header→Cylinder Chương 4: Quản lý hệ thống file 3. Tổ chức thông tin trên đĩa từ 3.1 Cấu trúc vật lý của đĩa Truy nhập sector trên đĩa l Sector: đơn vị thông tin máy tính dùng để làm việc với đĩa từ l Có thể truy nhập (đọc/ghi/format/...) tới từng sector l Truy nhập sử dụng ngắt BIOS 13h (chức năng 2, 3, 5,...) l Không phụ thuộc hệ điều hành l Sector được xác định theo địa chỉ l Truy nhập sử dụng lời gọi hệ thống l Ngắt của hệ điều hành l Ví dụ: MSDOS cung cấp ngắt 25h/26h cho phép đọc/ghi các sector theo địa chỉ tuyến tính l Sử dụng hàm WIN32 API l CreateFile()/ReadFile()/WriteFile()... Chương 4: Quản lý hệ thống file 3. Tổ chức thông tin trên đĩa từ 3.1 Cấu trúc vật lý của đĩa Sử dụng ngắt 13h Thanh ghi Ý nghĩa AH 2h:Đọc sector; 3h: Ghi Sector AL Số sector cần đọc Các sector phải trên cùng một mặt, một rãnh DH Số hiệu mặt đĩa DL Số hiệu ổ đĩa. 0h:A; 80h: Đĩa cứng thứ nhất; 81h Đĩa cứng thứ 2 CH Số hiệu Track/Cylinder (Sử dụng 10 bit, trong đó lấy 2 bit cao của CL) CL Số hiệu sector (chỉ sử dụng 6 bit thấp) ES:BX Trỏ tới vùng đệm, nơi sẽ chứa dữ liệu đọc đươc (khi AH=2h) hoặc dữ liệu ghi ra đĩa (Khi AH=3h) CarryFlag CF=0 không có lỗi; CL chứa số sector đọc được CF=1 Có lỗi, AH chứa mã lỗi WinXP hạn chế sử dụng ngắt 13h để truy nhập trực tiếp Chương 4: Quản lý hệ thống file 3. Tổ chức thông tin trên đĩa từ 3.1 Cấu trúc vật lý của đĩa Sử dụng ngắt 13h (Ví dụ) #include #include int main(int argc, char *argv[]){ union REGS regs; struct SREGS sregs; int Buf[512]; int i; regs.h.ah = 0x02; regs.h.al = 0x01; regs.h.dh = 0x00; regs.h.dl = 0x80; regs.h.ch = 0x00; regs.h.cl = 0x01; regs.x.bx = FP_OFF(Buf); sregs.es = FP_SEG(Buf); int86x(0x13,®s,®s,&sregs); for(i=0;i<512;i++) printf("%4X",Buf[i]); return 0; } Chương 4: Quản lý hệ thống file 3. Tổ chức thông tin trên đĩa từ 3.1 Cấu trúc vật lý của đĩa Sử dụng WIN32 API l HANDLE CreateFile(. . .): Mở file/thiết bị vào ra l LPCTSTR lpFileName, ⇒ Tên file/thiết bị vào ra l ” "\\?\\\\\.\\C : ” Phân vùng / Ổ đĩa C l ”\\\\.\\PhysicalDrive0” Ổ đĩa cứng thứ nhất l DWORD dwDesiredAccess,⇒ Thao tác với thiết bị l DWORD dwShareMode,⇒ Cho phép dùng chung l LPSECURITY_ATTRIBUTES lpSecurityAttributes (NULL), l DWORD dwCreationDisposition,⇒ Hành động thực hiện l DWORD dwFlagsAndAttributes, ⇒ Thuộc tính l HANDLE hTemplateFile (NULL) l BOOL ReadFile(. . .) l HANDLE hFile,⇒File muốn đọc l LPVOID lpBuffer, ⇒ Vùng đệm chứa dữ liệu l DWORD nNumberOfBytesToRead,⇒, số byte cần đọc l LPDWORD lpNumberOfBytesRead,⇒ số byte đọc được l LPOVERLAPPED lpOverlapped (NULL) l BOOL WriteFile(. . .) ⇒Tham số tương tự ReadFile() #include #include int main(int argc, char *argv[] ) { HANDLE hDisk; BYTE Buf[512]; int byteread,i; hDisk=CreateFile("\\\\.\\PhysicalDrive0",GENERIC_READ, FILE_SHARE_READ | FILE_SHARE_WRITE, NULL, OPEN_EXISTING,0,NULL); i f (hDisk==INVALID_HANDLE_VALUE) printf("Loi thiet b i " ) ; else { ReadFile(hDisk,Buf,512,&byteread,NULL); for(i=0;i<512;i++) printf("%4X",Buf[i]); CloseHandle(hDisk); } return 0; } Chương 4: Quản lý hệ thống file 3. Tổ chức thông tin trên đĩa từ 3.1 Cấu trúc vật lý của đĩa Sử dụng WIN32 API (Ví dụ) Chương 4: Quản lý hệ thống file 3. Tổ chức thông tin trên đĩa từ 3.1 Cấu trúc vật lý của đĩa Kết quả thực hiện lCấu trúc vật lý của đĩa lCấu trúc logic của đĩa Chương 4: Quản lý hệ thống file 3. Tổ chức thông tin trên đĩa từ 3. 2.Cấu trúc logic của đĩa MBR Sector ẩn Phân vùng1 Phân vùng2 Chương 4: Quản lý hệ thống file 3. Tổ chức thông tin trên đĩa từ 3.2.Cấu trúc logic của đĩa Cấu trúc logic l Đĩa mềm: Mỗi hệ điều hành có một chiến lược quản lý riêng l Đĩa cứng (Có dung lượng lớn) l Được chia thành nhiều phân vùng (Partitions, Volumes,..) l Mỗi vùng là tập hợp các Cylinder liên tiếp nhau l Người dùng ấn định kích thước (Ví dụ dùng: fdisk) l Mỗi phân vùng có thể được quản lý bởi một HĐH riêng l HĐH format phân vùng theo định dạng được sử dụng l Tồn tại nhiều hệ thống khác nhau: FAT, NTFS, EXT3,... l Trước tất cả các phân vùng là các sector bị che l Master Boot Record (MBR): Sector đầu tiên của đĩa Sector ẩn với phân vùng 2 Chương 4: Quản lý hệ thống file 3. Tổ chức thông tin trên đĩa từ 3.2.Cấu trúc logic của đĩa Master Boor Record 1. Chương trình nhận biết l Đọc bảng phân chương để biết l Vị trí các phân vùng l Phân vùng tích cực (chứa HĐH) l Đọc và thực hiện sector đầu tiên của phân vùng tích cực 2. Bảng phân chương (64bytes) l Gồm 4 phần tử, mỗi phần tử 16 bytes l Mỗi phần tử chứa thông tin một vùng Vị trí, kích thước, hệ thống chiếm giữ 3. Chữ ký hệ thống (luôn là 55AA) l Sector quan trọng nhất của đĩa l Sector đầu tiên trên đĩa (Số hiệu 0 hoặc địa chỉ ) l Cấu trúc gồm 3 phần Stt Ofs Size Ý nghĩa 1 0 1B Phân vùng tích cực? 80h nếu đúng; 0: Data Đ ịa c hỉ đầ u 2 1 1B Số hiệu mặt đĩa đầu của phân vùng 3 2 1W Số hiêu sector và cylinder đầu của phân vùng 4 4 1B Mã nhận diện hệ thốn. 05/0F: Partition mởrộng 06:Big Dos; 07:NTFS; 0B: FAT32,.. đ/ c cu ối 5 5 1B Số hiệu đầu đọc cuối 6 6 1W Số hiệu sector và cylinder cuối của phân vùng. (Số hiệu sector chỉ dùng 6 bit thấp) 7 8 1DW Đia chỉ đầu, tính theo số hiệu sector 8 12 1DW Số sector trong phân vùng Chương 4: Quản lý hệ thống file 3. Tổ chức thông tin trên đĩa từ 3.2.Cấu trúc logic của đĩa Cấu trúc một phần tử bảng phân chương 00 01 01 00 07 FE 3F F8 3F 00 00 00 7A 09 3D 00 80 00 01 F9 0B FE BF 30 B9 09 3D 00 38 7B 4C 00 00 00 81 EB 0F FE FF FF 2B 1D B7 00 72 13 7A 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 55 AA Giải mã Boot Vi trí đầu Vi trí cuối #sector Số sectorHdr Cyl Sec HdR Cyl Sec No 1 0 1 254 248 63 63 4000122 Yes 0 249 1 254 560 63 4000185 5012280 No 0 747 1 254 1023 63 12000555 8000370 - 0 0 0 0 0 0 0 0 Chương 4: Quản lý hệ thống file 3. Tổ chức thông tin trên đĩa từ 3.2.Cấu trúc logic của đĩa Ví dụ 1 62 / 107 Chương 4: Quản lý hệ thống file 3. Tổ chức thông tin trên đĩa từ 3.2.Cấu trúc logic của đĩa Ví dụ 2 MBR MBR l Khi trường nhận diện có giá trị 05 hoặc 0F, partition tương ứng là partition mở rộng l Partition mở rộng được tổ chức như một đĩa cứng vật lý l Sector đầu tiên là MBR, chứa thông tin về các phân vùng trong partition mở rộng này l Các phần tử trong partition mở rộng có thể là partition rộng l Cho phép tạo hơn 4 ổ đĩa logic 80 07 00 0B 00 0F Sys#SectorAct Size 00 0B 00 05 Sys#SectorAct Size Chương 4: Quản lý hệ thống file 3. Tổ chức thông tin trên đĩa từ 3.2.Cấu trúc logic của đĩa Bảng phân chương mở rộng Bảng phân chương mở rộngBảng phân chương Phân vùng 1 Phân vùng mở rộng 64 / 107 Chương 4: Quản lý hệ thống file 3. Tổ chức thông tin trên đĩa từ 3.2.Cấu trúc logic của đĩa Ví dụ về bảng phân chương mở rộng 1 65 / 107 Chương 4: Quản lý hệ thống file 3. Tổ chức thông tin trên đĩa từ 3.2.Cấu trúc logic của đĩa Ví dụ về bảng phân chương mở rộng 2 66 / 107 Chương 4: Quản lý hệ thống file 3. Tổ chức thông tin trên đĩa từ 3.2.Cấu trúc logic của đĩa Ví dụ về bảng phân chương mở rộng 3 ①Hệ thống file ②Cài đặt hệ thống file ③Tổ chức thông tin trên đĩa từ ④Hệ thống FAT Chương 4 Quản lý hệ thống file Chương 4: Quản lý hệ thống file 4. Hệ thống FAT Các hệ thống file Tồn tại nhiều hệ thống file khác nhau l Hệ thống FAT l FAT 12/ FAT16 dùng cho MSDOS l FAT32 dùng từ WIN98 l 12/16/32: Số bit dùng để định danh cluster l Hệ thống NTFS l Sử dụng trong WINNT, WIN2000 l Dùng 64 bit để xác định một cluster l Ưu việt hơn FAT trong bảo mật, mã hóa, nén dữ liệu,... l Hệ thống EXT3 l Sử dụng trong Linux l Hệ thống CDFS l Hệ thống quản lý file trong CDROM l Hạn chế về độ sâu cây thư mục và kích thước tên l Hệ thốngs UDF l Phát triển từ CDFS cho DVD-ROM, hỗ trợ tên file dài Chương 4: Quản lý hệ thống file 4. Hệ thống FAT l Boot sector l Bảng FAT (File Allocation Table) l Thư mục gốc Chương 4: Quản lý hệ thống file 4. Hệ thống FAT Cấu trúc phân vùng cho FAT FAT12/16 l Số cluster lớn nhất FAT12: 212 − 18; FAT16 : 216 − 18 l K/thước max: FAT12: 32MB; FAT16: 2GB/4GB (32K/64K Cluster) FAT32 l Chỉ dùng 28 bit ⇒ Số cluster lớn nhất 228 − 18 l K/thước max: 2TB/8GB/16TB (8KB/32KB/64KB Cluster) Cấu trúc logic của hệ thống FAT Vùng hệ thống Vùng dữ liệu Jmp xx Bảng Tham số Chương trình mồi 55AA Chương 4: Quản lý hệ thống file 4. Hệ thống FAT 4.1 Boot sector Cấu trúc l Sector đầu tiên của phân vùng l Cấu trúc gồm 3 phần l Bảng tham số đĩa (BPB: Bios Parameter Block) l Chương trình mồi (Boot strap loader) l Chữ ký hệ thống (luôn là 55AA) Chương 4: Quản lý hệ thống file 4. Hệ thống FAT 4.1 Boot sector Cấu trúc bảng tham số đĩa - Phần chung Stt Ofs Kt Giá trị mẫu Ý nghĩa 1 0 3B EB 3C 90 Nhảy đến đầu chương trình mồi 2 3 8B MSDOS5.0 Tên hệ thống file đã format đĩa 3 11 1W 00 02 K/thước 1 sector, thường là 512 4 13 1B 40 Số sector cho một cluster (32K-Cluster) 5 14 1W 01 00 Số scts đứng trước FAT/Số scts để dành 6 16 1B 02 Số bảng FAT 7 17 1W 00 02 Số phần tử của ROOT. FAT32: 00 00 8 19 1W 00 00 Tổng số sector trên đĩa (< 32M) hoặc 0000 9 21 1B F8 Khuôn dạng đĩa (F8:HD, F0: Đĩa1.44M) 10 22 1W D1 09 Số sector cho một bảng FAT(209) 11 24 1W 3F 00 Số sector cho một rãnh (63) 12 26 1W 40 00 Số đầu đọc ghi (64) 13 28 1DW 3F 00 00 00 Số sector ẩn- Sectors trước volume (63) 14 32 1DW 41 0C 34 00 Tổng số sector trên đĩa (3411009) Ví dụ: 73 / 107 Chương 4: Quản lý hệ thống file 4. Hệ thống FAT 4.1 Boot sector Cấu trúc bảng tham số đĩa - Phần dành cho FAT12/FAT16 Chương 4: Quản lý hệ thống file 4. Hệ thống FAT 4.1 Boot sector Ví dụ giải mã bảng tham số đĩa của FAT16 Chương 4: Quản lý hệ thống file 4. Hệ thống FAT 4.1 Boot sector Ví dụ giải mã bảng tham số đĩa của FAT16 3 Bytes đầu: Nhảy đến đầu chương trình mồi Jmp+3C Chương 4: Quản lý hệ thống file 4. Hệ thống FAT 4.1 Boot sector Ví dụ giải mã bảng tham số đĩa của FAT16 OEName: MSDOS5.0 Chương 4: Quản lý hệ thống file 4. Hệ thống FAT 4.1 Boot sector Ví dụ giải mã bảng tham số đĩa của FAT16 8 Bytes Tên hệ thống file đã format đĩa Kích thước sector: 512 Chương 4: Quản lý hệ thống file 4. Hệ thống FAT 4.1 Boot sector Ví dụ giải mã bảng tham số đĩa của FAT16 1 Word K/thước 1 sector 2 sector cho 1 cluster Chương 4: Quản lý hệ thống file 4. Hệ thống FAT 4.1 Boot sector Ví dụ giải mã bảng tham số đĩa của FAT16 Số sector cho một cluster Chương 4: Quản lý hệ thống file 4. Hệ thống FAT 4.1 Boot sector Ví dụ giải mã bảng tham số đĩa của FAT16 Có 6 sector đứng trước bảng FAT thứ nhất Số sector đứng trước FAT Có 2 bảngFAT Chương 4: Quản lý hệ thống file 4. Hệ thống FAT 4.1 Boot sector Ví dụ giải mã bảng tham số đĩa của FAT16 Chương 4: Quản lý hệ thống file 4. Hệ thống FAT 4.1 Boot sector Ví dụ giải mã bảng tham số đĩa của FAT16 Số phần tử của ROOT Có tối đa 512 phần tử trong thư mục gốc Đĩa lớn hơn 32MB Chương 4: Quản lý hệ thống file 4. Hệ thống FAT 4.1 Boot sector Ví dụ giải mã bảng tham số đĩa của FAT16 Tổng số sector trên đĩa Chương 4: Quản lý hệ thống file 4. Hệ thống FAT 4.1 Boot sector Ví dụ giải mã bảng tham số đĩa của FAT16 Mã nhận diện khuôn dạng đĩa: F8 Chương 4: Quản lý hệ thống file 4. Hệ thống FAT 4.1 Boot sector Ví dụ giải mã bảng tham số đĩa của FAT16 Số sector cho một bảng FAT:245 Số sector cho một rãnh:63 Chương 4: Quản lý hệ thống file 4. Hệ thống FAT 4.1 Boot sector Ví dụ giải mã bảng tham số đĩa của FAT16 Số đầu đọc ghi: 255 Chương 4: Quản lý hệ thống file 4. Hệ thống FAT 4.1 Boot sector Ví dụ giải mã bảng tham số đĩa của FAT16 Số sector ẩn: 63 Chương 4: Quản lý hệ thống file 4. Hệ thống FAT 4.1 Boot sector Ví dụ giải mã bảng tham số đĩa của FAT16 Tổng số sector của Volume: 125889(≈64MB) Chương 4: Quản lý hệ thống file 4. Hệ thống FAT 4.1 Boot sector Ví dụ giải mã bảng tham số đĩa của FAT16 Chương 4: Quản lý hệ thống file 4. Hệ thống FAT 4.1 Boot sector Ví dụ giải mã bảng tham số đĩa của FAT16 Số hiệu ổ đĩa vật lý: 00 00 Chương 4: Quản lý hệ thống file 4. Hệ thống FAT 4.1 Boot sector Ví dụ giải mã bảng tham số đĩa của FAT16 Bootsector mở rộng: 29h Volume serial number: 70D4-EAA6 Chương 4: Quản lý hệ thống file 4. Hệ thống FAT 4.1 Boot sector Ví dụ giải mã bảng tham số đĩa của FAT16 Nhãn đĩa: NO NAME Chương 4: Quản lý hệ thống file 4. Hệ thống FAT 4.1 Boot sector Ví dụ giải mã bảng tham số đĩa của FAT16 Kiểu FAT: FAT16 Chương 4: Quản lý hệ thống file 4. Hệ thống FAT 4.1 Boot sector Ví dụ giải mã bảng tham số đĩa của FAT16 Bắt đầu của chương trình mồi Chương 4: Quản lý hệ thống file 4. Hệ thống FAT 4.1 Boot sector Ví dụ giải mã bảng tham số đĩa của FAT16 Stt Ofs Kt Giá tri mẫu Ý nghĩa 15 36 1DW C9 03 00 00 Tổng số sector cho bảng FAT 16 40 1W 00 00 Flags: #FAT chính(Không dùng ) 17 42 1W 00 00 Version: Phiên bản FAT32 (Không dùng ) 18 44 1DW 02 00 00 00 Số hiệu cluster bắt đầu của ROOT 19 48 1W 01 00 #sector chứa File System information 20 50 1W 06 00 Số hiệu sector dùng backup Bootsector 21 52 12B 00 . . . 00 Để dành 22 64 1B 00 Số hiệu ổ đĩa vật lý 0: ổ A; 80h: ổ C 23 65 1B 00 Để dành/Byte cao cho trường #Driver 24 66 1B 29 Boot sector mở rộng. Luôn có giá trị 29h 25 67 1DW 62 0E 18 66 Volumn Serial number 26 71 11B NO NAME Volumn Label: Nhãn đĩa (Ko s/dụng ) 27 82 8B FAT32 Để dành, thường là đoạn text miêu tả dạng FAT Chương 4: Quản lý hệ thống file 4. Hệ thống FAT 4.1 Boot sector Cấu trúc bảng tham số đĩa - Phần dành cho FAT32 76 / 107 Chương 4: Quản lý hệ thống file 4. Hệ thống FAT 4.1 Boot sector Ví dụ Boot sector của một hệ thống dùng FAT32 77 / 107 Chương 4: Quản lý hệ thống file 4. Hệ thống FAT 4.1 Boot sector Kết quả giải mã hệ thống FAT32 bằng chương trình Stt Ofs Size Ý nghĩa 1 0 1DW Chữ ký thứ nhất của FSInfo sector. Giá trị các byte theo thứ tự: 52h 52h 61h 41h 2 4 480B Không rõ, thường chứa giá trị 00 3 484 1DW Chữ ký của File System Information Sector. Giá trị các byte theo thứ tự: 72h 72h 41h 61h 4 488 1DW Số cluster tự do. -1 nếu không xác định 5 492 1DW Số hiệu của cluster vừa mới được cung cấp 6 496 12B Để dành 7 508 2B Không xác định, thường bằng 0 8 510 2B Chữ ký Bootsector. Có giá trị 55 AA Chương 4: Quản lý hệ thống file 4. Hệ thống FAT 4.1 Boot sector File System Information Sector l Thường là Sector thứ 2 của Volume l Ngay sau Boot sector (Sector số hiệu 1) l Cấu trúc Chương 4: Quản lý hệ thống file 4. Hệ thống FAT 4.1 Boot sector File system information sector của một volume dùng FAT32 Chương 4: Quản lý hệ thống file 4. Hệ thống FAT 4.1 Boot sector File system information sector của một volume dùng FAT32 Stt Ofs Kt Giá tri mẫu Ý nghĩa Nhảy đến đầu chương trình mồi Tên hệ th6ng file đã format đĩa Bytes perSector Sectors per Cluster (4K-Cluster ) Reserved sectors. Allways zero Allways 0 (FAT: Số bảng FAT) Allways 0 (FAT: Sốp/tử của ROOT) Not used by NTFS (FAT:K/thước đĩa) Media Type Allway 0 (FAT:Sectors cho FAT) Sector per Track (63 ) Number of Head (255 ) Hidden sectors (63) 1 0 3B EB 52 90 2 3 8B NTFS 3 11 1W 00 02 4 13 1B 08 5 14 1W 00 00 6 16 1B 00 7 17 1W 00 00 8 19 1W 00 00 9 21 1B F8 10 22 1W 00 00 11 24 1W 3F 00 12 26 1W FF 00 13 28 1DW 3F 00 0000 14 32 1DW 00 00 0000 Chương 4: Quản lý hệ thống file 4. Hệ thống FAT 4.1 Boot sector Cấu trúc bảng tham số đĩa cho hệ thống NTFS 1 Not used by NTFS (FAT: ∑ sectors ) Stt Ofs Kt Giá tri mẫu Ý nghĩa 15 36 1DW 80 00 80 00 Not used by NTFS(FAT:Tổng số sec- tors cho FAT) 16 40 1LCN 2B 92 00 02 Total sectors (LCN:LONGLONG ) 00 00 00 00 (33591851 ) 17 48 1LCN 00 00 0C 00 Logical cluster number for MFT 00 00 00 00 (786432 ) 18 56 1LCN 22 09 20 00 Logical #cluster for MFT mirroring 00 00 00 00 (2099490 ) 19 64 1DW F6 00 00 00 Clusters per file record segment (246) 20 68 1DW 01 00 00 00 Clusters per index block (1) 21 72 1LCN A6 CA D7 C6 Volume serial number 00 D8 6C 24 246C-D800-C6D7-CAA6 22 80 1DW 00 00 00 00 Checksum 23 84 - Bootstrap loader Chương 4: Quản lý hệ thống file 4. Hệ thống FAT 4.1 Boot sector Cấu trúc bảng tham số đĩa cho hệ thống NTFS 2 82 / 107 Chương 4: Quản lý hệ thống file 4. Hệ thống FAT 4.1 Boot sector Boot sectors của một đĩa dùng NTFS 83 / 107 Chương 4: Quản lý hệ thống file 4. Hệ thống FAT 4.1 Boot sector Giải mã bảng tham số của đĩa dùng NTFS 83 / 107 Chương 4: Quản lý hệ thống file 4. Hệ thống FAT 4.1 Boot sector Giải mã bảng tham số của đĩa dùng NTFS 83 / 107 Chương 4: Quản lý hệ thống file 4. Hệ thống FAT 4.1 Boot sector Giải mã bảng tham số của đĩa dùng NTFS 83 / 107 Chương 4: Quản lý hệ thống file 4. Hệ thống FAT 4.1 Boot sector Giải mã bảng tham số của đĩa dùng NTFS 83 / 107 Chương 4: Quản lý hệ thống file 4. Hệ thống FAT 4.1 Boot sector Giải mã bảng tham số của đĩa dùng NTFS 83 / 107 Chương 4: Quản lý hệ thống file 4. Hệ thống FAT 4.1 Boot sector Giải mã bảng tham số của đĩa dùng NTFS 83 / 107 Chương 4: Quản lý hệ thống file 4. Hệ thống FAT 4.1 Boot sector Giải mã bảng tham số của đĩa dùng NTFS 83 / 107 Chương 4: Quản lý hệ thống file 4. Hệ thống FAT 4.1 Boot sector Giải mã bảng tham số của đĩa dùng NTFS 83 / 107 Chương 4: Quản lý hệ thống file 4. Hệ thống FAT 4.1 Boot sector Giải mã bảng tham số của đĩa dùng NTFS 83 / 107 Chương 4: Quản lý hệ thống file 4. Hệ thống FAT 4.1 Boot sector Giải mã bảng tham số của đĩa dùng NTFS 83 / 107 Chương 4: Quản lý hệ thống file 4. Hệ thống FAT 4.1 Boot sector Giải mã bảng tham số của đĩa dùng NTFS 83 / 107 Chương 4: Quản lý hệ thống file 4. Hệ thống FAT 4.1 Boot sector Giải mã bảng tham số của đĩa dùng NTFS 83 / 107 Chương 4: Quản lý hệ thống file 4. Hệ thống FAT 4.1 Boot sector Giải mã bảng tham số của đĩa dùng NTFS 83 / 107 Chương 4: Quản lý hệ thống file 4. Hệ thống FAT 4.1 Boot sector Giải mã bảng tham số của đĩa dùng NTFS 83 / 107 Chương 4: Quản lý hệ thống file 4. Hệ thống FAT 4.1 Boot sector Giải mã bảng tham số của đĩa dùng NTFS 83 / 107 Chương 4: Quản lý hệ thống file 4. Hệ thống FAT 4.1 Boot sector Giải mã bảng tham số của đĩa dùng NTFS Chương 4: Quản lý hệ thống file 4. Hệ thống FAT l Boot sector l Bảng FAT (File Allocation Table) l Thư mục gốc FAT được sử dụng để quản lý các khối nhớ (blocks/clusters) trong vùng dữ liệu của bộ nhớ lưu trữ l Khối nhớ đang sử dụng l Phân phối cho từng file/thư mục l Khối nhớ tự do l Khối nhớ bị hỏng Chương 4: Quản lý hệ thống file 4. Hệ thống FAT 4.2 Bảng FAT Mục đích DATA #2 #3 #4 #5 #6 #7 #8 #9 Chương 4: Quản lý hệ thống file 4. Hệ thống FAT 4.2 Bảng FAT Phương pháp FAT gồm nhiều phần tử l Mỗi phần tử có thể 12bit, 16bit, 32bit l Mỗi phần tử ứng với 1 khối (cluster) trên vùng dữ liệu l 2 phần tử đầu (0,1) có ý nghĩa đặc biệt l Khuôn dạng đĩa, Bit shutdown, Bit diskerrror l Phần tử thứ 2 ứng với cluster đầu của phần Data FAT[(32)16]12 Ý nghĩa [(0000)0]000h Cluster tương ứng tự do [(0000)0]001h Giá trị không sửdụng [(0000)0]002h →[(0FFF)F]FEFh Cluster đang được sử dụng. Giá trị đóng vai trò con trỏ, trỏ tới cluster tiếp theo củafile [(0FFF)F]FF0h Các giá trị để dành, chưa được sử dụng →[(0FFF)F]FF6h [(0FFF)F]FF7h Đánh dấu cluster tương ứng bị hỏng [(0FFF)F]FF8h→ →[(0FFF)F]FFFh Cluster đang đc sử dụng và là cluster cuối cùng của file (EOC:End Of Cluster chain). Thực tế thường dùng giá trị [(0FFF)F]FFFh Chương 4: Quản lý hệ thống file 4. Hệ thống FAT 4.2 Bảng FAT Cài đặt Mỗi phần tử của bảng FAT mang một giá trị đặc trưng cho tính chất của cluster tương ứng Root entry #12 #13 #14 #15 #16 #17 #18 #19 #20 #21 ABC TXT A Time Date 008 Size FAT 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 Special values 03 04 05 FFF 00 00 09 10 12 FF7 15 00 00 16 FFF 00 21 FFF #2 #3 #4 #5 #6 #7 #8 #9 #10 #11 Chương 4: Quản lý hệ thống file 4. Hệ thống FAT 4.2 Bảng FAT Liên kết các cluster DATA Root entry values Special 03 04 05 FFF 00 00 09 10 12 FF7 15 00 00 16 FFF 00 21 FFF DATA #2 #3 #4 #5 #6 #7 #8 #9 #10 #11 #12 #13 #14 #15 #16 #17 #18 #19 #20 #21 Chương 4: Quản lý hệ thống file 4. Hệ thống FAT 4.2 Bảng FAT Liên kết các cluster ABC TXT A Time Date 008 Size FAT 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 Root entry values Special 03 04 05 FFF 00 00 09 10 12 FF7 15 00 00 16 FFF 00 21FFF DATA #2 #3 #4 #5 #6 #7 #8 #9 #10 #11 #12 #13 #14 #15 #16 #17 #18 #19 #20 #21 Chương 4: Quản lý hệ thống file 4. Hệ thống FAT 4.2 Bảng FAT Liên kết các cluster ABC TXT A Time Date 008 Size FAT 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 Root entry values Special 03 04 05 FFF 00 00 09 10 12 FF7 15 00 00 16 FFF 00 21FFF DATA #2 #3 #4 #5 #6 #7 #8 #9 #10 #11 #12 #13 #14 #15 #16 #17 #18 #19 #20 #21 Chương 4: Quản lý hệ thống file 4. Hệ thống FAT 4.2 Bảng FAT Liên kết các cluster ABC TXT A Time Date 008 Size FAT 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 Root entry values Special 03 04 05 FFF 00 00 09 10 12 FF7 15 00 00 16 FFF 00 21 FFF DATA #2 #3 #4 #5 #6 #7 #8 #9 #10 #11 #12 #13 #14 #15 #16 #17 #18 #19 #20 #21 Chương 4: Quản lý hệ thống file 4. Hệ thống FAT 4.2 Bảng FAT Liên kết các cluster ABC TXT A Time Date 008 Size FAT 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 Chương 4: Quản lý hệ thống file 4. Hệ thống FAT 4.2 Bảng FAT Ví dụ: Đọc một sector của FAT32 #include #include int main(int argc, char *argv[]){ HANDLE hDisk; BYTE Buf[512]; DWORD FAT[128]; WORD FATAddr; DWORD byteread, i; hDisk = CreateFile("\\\\.\\F:", GENERIC_READ, FILE_SHARE_READ|FILE_SHARE_WRITE, NULL, OPEN_EXISTING,0,NULL); ReadFile(hDisk,Buf,512,&byteread,NULL); memcpy(&FATAddr,&Buf[14],2);//Offset 14 Sector truoc FAT SetFilePointer(hDisk,FATAddr * 512, NULL,FILE_BEGIN); ReadFile(hDisk,FAT,512,&byteread,NULL); for(i=0;i<128;i++) printf(" %08X ",FAT[i]); CloseHandle(hDisk); return 0; } A Root entry 90 / 107 Chương 4: Quản lý hệ thống file 4. Hệ thống FAT 4.2 Bảng FAT Ví dụ: Sector đầu của một FAT32 FAT Chương 4: Quản lý hệ thống file 4. Hệ thống FAT l Boot sector l Bảng FAT (File Allocation Table) l Thư mục gốc Chương 4: Quản lý hệ thống file 4. Hệ thống FAT 4.3 Thư mục gốc Cấu trúc thư mục gốc l Bảng gồm các bản ghi file l Mỗi bản ghi có kích thước 32 bytes l Chứa các thông tin liên quan tới một file/thư mục/ nhãn đĩa l Hệ thống FAT12/FAT16 l Thư mục gốc nằm ngay sau các bảng FAT l Kích thước = Số phần tử tối đa trong thư mục gốc * 32 l Hệ thống FAT32 l Vị trí được xác định dựa vào BPB l Trường 18: Số hiệu cluster đầu của ROOT l Kích thước không xác định l Hỗ trợ tên file dài (LFN: Long File Name) l Một file có thể sử dụng nhiều hơn một phần tử Stt Ofs Size Ý nghĩa 1 0 8B Tên file 2 8 3B Phần mở rộng 3 11 1B Thuộc tính của file 4 12 10B Không dùng với FAT12/FAT16. Sử dụng với FAT32 4.1 12 1B Để dành 4.2 13 1B Thời điểm tạo file, theo đơn vị 10ms 4.3 14 1W Thời điểm tạo file (giờ - phút - giây ) 4.4 16 1W Ngày tạo file (tạo bởi ứng dụng hoặc bởi copy sang ) 4.5 18 1W Ngày truy nhập cu6i 4.6 20 1W Số hiệu cluster bắt đầu của file(FAT32: Phần cao) 5 22 1W Thời gian cập nhật cuối cùng 6 24 1W Ngày cập nhật cuối (không y/cầu sau ngày tạo file) 7 26 1W Số hiệu cluster bắt đầu của file (FAT32: Phần thấp) 8 28 1DW Kích thước tính bằng byte Chương 4: Quản lý hệ thống file 4. Hệ thống FAT 4.3 Thư mục gốc Cấu trúc một phần tử Chương 4: Quản lý hệ thống file 4. Hệ thống FAT 4.3 Thư mục gốc Cấu trúc một phần tử :Tên file l Chuỗi ASCII chứa tên file. Các ký tự là chữ in l Không chấp nhận khoảng trống ở giữa l Các câu lệnh copy, del,... không nhận biết tên có dấu trắng l Nếu ít hơn 8 ký tự, được chèn các ký tự trống cho đủ 8 l Ký tự đầu có thể mang ý nghĩa đặc biệt l 00h: Phần tử đầu tiên của phần chưa dùng đến l E5h (ký tự "δ"): File tương ứng với phần tử này đã bị xóa. l 2Eh (ký tự "."): Đây là thư mục con l Trường số hiệu cluster bắt đầu chỉ đến chính nó l Cấu trúc như thư mục con giống như thư mục gốc: gồm các phần tử 32bytes l 2Eh2Eh (ký tự ".."): Đây là thư mục cha của thư mục hiện tại l Trường số hiệu cluster bắt đầu chỉ đến thư mục cha l Nếu cha là gốc, #cluster bắt đầu bằng zero (FAT12/16) l Thư mục con nằm trên phần Data, được quản lý như một file ⇒ File của các bản ghi file l FAT12/16: Thư mục gốc ở vị trí xác định; FAT32: Thư mục gốc cũng nằm trong phần data Name DATA A Clst V 00 Sub-1 D File-A A Sub-2 D ROOT D... File-F A D Sub-11 D File-B AS ub -d ire ct or y F F F F .Sub-directory FDD.. File-E A F . D.. D File-C A AFile-D Sub-directory Chương 4: Quản lý hệ thống file 4. Hệ thống FAT 4.3 Thư mục gốc Thư mục con Name DATA A Clst V 00 Sub-1 D File-A A Sub-2 D ROOT . D .. D F ry File-F A Sub-directo Sub-11 D File-B A Sub-directory. D .. D File-E A F F . D.. D File-C A F F F DATA Sub-1 File-F Sub-11 File-C File-D File-B File-A Sub-2 File-E Chương 4: Quản lý hệ thống file 4. Hệ thống FAT 4.3 Thư mục gốc Thư mục con Sub-directory Ví dụ: Byte thuộc tính 0Fh: 0 0 0 0 1 1 1 1 ⇒ Có các thuộc tính Volume label+System+Hidden+Readonly Ghi chú: Giá tri byte thuộc tính 0x0F không sử dụng trong MS-DOS ⇒ Dùng để đánh dấu là phần tử Long File Name Chương 4: Quản lý hệ thống file 4. Hệ thống FAT 4.3 Thư mục gốc Cấu trúc một phần tử : Trường thuộc tính 0 1 1 1 1 1 0 0 0 1 0 1 0 1 1 0 Ví dụ: 15 giờ 34 phút 45 giây Chương 4: Quản lý hệ thống file 4. Hệ thống FAT 4.3 Thư mục gốc Cấu trúc một phần tử Có giá trị :7C56 Ví dụ: 17 tháng 5 năm2011 Có giá trị : 3EB1 Chương 4: Quản lý hệ thống file 4. Hệ thống FAT 4.3 Thư mục gốc Cấu trúc một phần tử : Trường ngày tháng ... Phần tử LFN 3 Phần tử LFN 2 Phần tử LFN 1 Phần tử 8.3 (ttt∼n.xxx) Ofs Kt Ý nghĩa 0 1B Trưong thứ tự. 1 5W 5 ký tự unicode đầu tiên 11 1B Thuộc tính. Đánh dấu là phần tử LFN. Luôn có giá trị 0Fh 12 1B Để dành (00) 13 1B Checksum: Cho phép kiểm tra tên file dài có ứng với tên file 8.3? 14 6W Các ký tự unicode 6,7,8,9,10,11 26 1W Số hiệu cluster. Không dùng (0000) 28 1W Ký tự unicode 12 30 1W Ký tự unicode 13 Chương 4: Quản lý hệ thống file 4. Hệ thống FAT 4.3 Thư mục gốc Hệ thống Long File Name (LFN) Entry Ord Attr Data LFN 3 0x43 0x0F ame.docx LFN 2 0x02 0x0F y long file n LFN 1 0x01 0x0F This is a ver 8.3 Name THISIS∼1.DOC Chương 4: Quản lý hệ thống file 4. Hệ thống FAT 4.3 Thư mục gốc Hệ thống Long File Name: Trường thứ tự l Cho biết trật tự các phần tử LFN l Mỗi phần tử LFN chứa 13 ký tự Unicode l Phần tử đầu tiên có giá trị trường thứ tự bằng 1 l Phần tử cuối sẽ dùng bít số 6 để đánh dấu l Chỉ dùng tối đa 20 phần tử l Sau ký tự cuối cùng là 0x00 0x00. l Các ký tự không sử dụng có giá trị 0xFF 0xFF l Bít số 7 (0x80) cho biết phần tử tương ứng đã bị xóa l Ví dụ file "This is a very long file name.docx" Chương 4: Quản lý hệ thống file 4. Hệ thống FAT 4.3 Thư mục gốc Ví dụ: Một sector của ROOT Chương 4: Quản lý hệ thống file 4. Hệ thống FAT 4.3 Thư mục gốc Ví dụ: Nội dụng của ROOT Chương 4: Quản lý hệ thống file 4. Hệ thống FAT 4.3 Thư mục gốc Giải mã ROOT DATA Nhãn đĩa #Cluster : 0 Size : 0 Chương 4: Quản lý hệ thống file 4. Hệ thống FAT 4.3 Thư mục gốc Giải mã ROOT 1 DATA Nhãn đĩa #Cluster : 0 Size : 0 File đã bi xóa Chương 4: Quản lý hệ thống file 4. Hệ thống FAT 4.3 Thư mục gốc Giải mã ROOT File ReadMBR.C Chương 4: Quản lý hệ thống file 4. Hệ thống FAT 4.3 Thư mục gốc Giải mã ROOT 2 File ReadMBR.C Tên file: READMBR Chương 4: Quản lý hệ thống file 4. Hệ thống FAT 4.3 Thư mục gốc Giải mã ROOT 2 File ReadMBR.C Tên file: READMBR Mở rộng:C Chương 4: Quản lý hệ thống file 4. Hệ thống FAT 4.3 Thư mục gốc Giải mã ROOT 2 File ReadMBR.C Tên file: READMBR Mở rộng:C Lư u trữ Chương 4: Quản lý hệ thống file 4. Hệ thống FAT 4.3 Thư mục gốc Giải mã ROOT 2 File ReadMBR.C Tên file: READMBR Mở rộng:C Lư u trữ 6 00 m s Chương 4: Quản lý hệ thống file 4. Hệ thống FAT 4.3 Thư mục gốc Giải mã ROOT 2 File ReadMBR.C Tên file: READMBR Mở rộng:C Lư u trữ 6 00 m s C re at e tim e 11 h2 8m 12 s Chương 4: Quản lý hệ thống file 4. Hệ thống FAT 4.3 Thư mục gốc Giải mã ROOT 2 File ReadMBR.C Tên file: READMBR C re at e da te 05 /0 5/ 20 11 Chương 4: Quản lý hệ thống file 4. Hệ thống FAT 4.3 Thư mục gốc Giải mã ROOT 2 Mở rộng:C Lư u trữ 6 00 m s C re at e tim e 11 h2 8m 12 s File ReadMBR.C Tên file: READMBR C re at e da te 05 /0 5/ 20 11 La st ac ce ss 05 /0 5/ 20 11 Chương 4: Quản lý hệ thống file 4. Hệ thống FAT 4.3 Thư mục gốc Giải mã ROOT 2 Mở rộng:C Lư u trữ 6 00 m s C re at e tim e 11 h2 8m 12 s File ReadMBR.C Tên file: READMBR C re at e da te 05 /0 5/ 20 11 La st ac ce ss 05 /0 5/ 20 11 M od ifi ed tim e 15 h1 4m 30 s Chương 4: Quản lý hệ thống file 4. Hệ thống FAT 4.3 Thư mục gốc Giải mã ROOT 2 Mở rộng:C Lư u trữ 6 00 m s C re at e tim e 11 h2 8m 12 s File ReadMBR.C Tên file: READMBR C re at e da te 05 /0 5/ 20 11 La st ac ce ss 05 /0 5/ 20 11 M od ifi ed tim e 15 h1 4m 30 s M od ifi ed da te 04 /0 5/ 20 11 Chương 4: Quản lý hệ thống file 4. Hệ thống FAT 4.3 Thư mục gốc Giải mã ROOT 2 Mở rộng:C Lư u trữ 6 00 m s C re at e tim e 11 h2 8m 12 s File ReadMBR.C Tên file: READMBR C re at e da te 05 /0 5/ 20 11 La st ac ce ss 05 /0 5/ 20 11 M od ifi ed tim e 15 h1 4m 30 s M od ifi ed da te 04 /0 5/ 20 11 Fi rs tc lu st er 11 84 0 Chương 4: Quản lý hệ thống file 4. Hệ thống FAT 4.3 Thư mục gốc Giải mã ROOT 2 Mở rộng:C Lư u trữ 6 00 m s C re at e tim e 11 h2 8m 12 s File ReadMBR.C Tên file: READMBR C re at e da te 05 /0 5/ 20 11 La st ac ce ss 05 /0 5/ 20 11 M od ifi ed tim e 15 h1 4m 30 s M od ifi ed da te 04 /0 5/ 20 11 Fi rs tc lu st er 11 84 0 File size :2749 Chương 4: Quản lý hệ thống file 4. Hệ thống FAT 4.3 Thư mục gốc Giải mã ROOT 2 Mở rộng:C Lư u trữ 6 00 m s C re at e tim e 11 h2 8m 12 s Chương 4: Quản lý hệ thống file 4. Hệ thống FAT 4.3 Thư mục gốc Giải mã ROOT 3 Phần tử LFN# 1(ReadBiosSecto) Phần tử LFN#2 - LFN cuối (r.c ) Ký tự sau ký tự cuối (0x0000) Phần tử 8.3 thườngREADBI∼1.C Chương 4: Quản lý hệ thống file 4. Hệ thống FAT 4.3 Thư mục gốc Giải mã ROOT 3 File: ReadBiosSector.c 4Chương 4: Quản lý hệ thống file Kết luận ① Hệ thống file ① Khái niệm file ② Cấu trúc thư mục ② Cài đặt hệ thống file ① Cài đặt thư mục ② Các phương pháp phân phối vùng lưu trữ ③ Quản lý vùng lưu trữ tự do ③ Tổ chức thông tin trên đĩa từ ① Cấu trúc vật lý của đĩa ② Cấu trúc logic của đĩa ④ Hệ thống FAT ① Boot sector ② Bảng FAT (File Allocation Table) ③ Thư mục gốc Hệ Điều Hành (Nguyên lý các hệ điều hành) Đỗ Quốc Huy huydq@soict.hust.edu.vn Bộ môn Khoa Học Máy Tính Viện Công Nghệ Thông Tin và Truyền Thông ①Nguyên tắc quản lý chung ②Dịch vụ vào ra của hệ thống ③ Hệ thống vào ra đĩa Chương 5 Quản lý vào ra lGiới thiệu lNgắt và xử lý ngắt Chương 5: Quản lý vào ra 1. Nguyên tắc chung Chương 5: Quản lý vào ra 1. Nguyên tắc chung 1.1 Giới thiệu Thiết bị vào ra l Đa dạng, nhiều loại thiết bị, mỗi loại có nhiều kiểu khác nhau Chương 5: Quản lý vào ra 1. Nguyên tắc chung 1.1 Giới thiệu Thiết bị vào ra Quan điểm l kỹ thuật: là các thiết bị với bộ VXL, motor, các linh kiện khác l lập trình: Giao diện như phần mềm để nhận lệnh, thực hiện và trả kết quả về Chương 5: Quản lý vào ra 1. Nguyên tắc chung 1.1 Giới thiệu Thiết bị vào ra l Phân loại thiết bị ngoại vi l khối (Đĩa từ, băng từ) l Thông tin được lưu trữ có kích thước cố định và địa chỉ riêng l Có thể đọc ghi 1 khối độc lập với khối khác l Tồn tại thao tác định vị thông tin (seek) l ký tự (Máy in, Bàn phím, chuột,..) l Chấp nhận luồng ký tự, không có cấu trúc khối l Không có thao tác định vị thông tin l Loại khác: Đồng hồ Thiết bị điều khiển I Chương 5: Quản lý vào ra 1. Nguyên tắc chung 1.1 Giới thiệu l Thiết bị ngoại vi (Tbnv) đa dạng và nhiều loại l CPU không biết hết ⇒ Không tồn tại tín hiệu riêng cho từng thiết bị l Processor không điều khiển trực tiếp thiết bị l TBNV được nối với hệ thống qua thiết bị điều khiển (D.C - Device Controller-Bộ điều khiển thiết bị) l Các mạch điện tử được cắm trên các khe cắm (slot) của mainboard máy tính Thiết bị điều khiển II Chương 5: Quản lý vào ra 1. Nguyên tắc chung 1.1 Giới thiệu Thiết bị điều khiển II Chương 5: Quản lý vào ra 1. Nguyên tắc chung 1.1 Giới thiệu l Mỗi TBĐK có thể điều khiển được 1,2,4,.. Tbnv l Tùy theo số giắc cắm có trên TBĐK l Nếu giao diện điều khiển chuẩn (ANSI, IEEE, ISO,...) có thể nối tới nhiều thiết bị khác l Mỗi TBĐK có các thanh ghi riêng để làm việc với CPU l Dùng các không gian địa chỉ đặc biệt cho các thanh ghi: cổng vào ra Thiết bị điều khiển III Chương 5: Quản lý vào ra 1. Nguyên tắc chung 1.1 Giới thiệu l Giao diện TBĐK và TBNV: Giao diện mức rất thấp l Sector = 512bytes = 4096bits l Bộ điều khiển đĩa phải đọc/ghi các bit và nhóm lại thành các sector l HĐH chỉ làm việc với các TBĐK l Thông qua các thanh ghi điều khiển của thiết bị l Các câu lệnh và tham số sẽ được đưa vào các thanh ghi điều khiển l Khi 1 lệnh được bộ điều khiển chấp nhận, CPU sẽ để cho bộ điều khiển hoạt động một mình và nó quay sang làm công việc khác l Khi lệnh thực hiện xong, bộ điều khiển sẽ báo cho CPU bằng tín hiệu ngắt l CPU sẽ lấy KQ và trạng thái thiết bị thông qua các thanh ghi điều khiển Chương 5: Quản lý vào ra 1. Nguyên tắc chung 1.1 Giới thiệu Thiết bị điều khiển IV Trình điều khiển thiết bị (Device driver) Chương 5: Quản lý vào ra 1. Nguyên tắc chung 1.1 Giới thiệu l Là đoạn mã trong nhân của hệ thống cho phép tương tác trực tiếp với phần cứng thiết bị l Cung cấp 1 giao diện chuẩn cho các Tbnv khác nhau l Các device driver thường được chia làm 2 mức l Mức cao : Được truy nhập qua các lời gọi hệ thống l Cài đặt tập lời gọi chuẩn như open(), close(), read(), write()... l Là giao diện của nhân HĐH với trình điều khiển l Luồng mức cao khởi động thiết bị thực hiện vào/ra và sau đó đặt luồng điều khiển tạm nghỉ l Mức thấp: Được thực hiện như 1 thủ tục ngắt l Đọc dữ liệu đầu vào, hoặc đưa khối dữ liệu tiếp theo ra ngoài l Đánh thức luồng tạm nghỉ mức trên khi vào/ra kết thúc Chu kỳ của một yêu cầu vào ra Chương 5: Quản lý vào ra 1. Nguyên tắc chung 1.1 Giới thiệu Giao tiếp thiết bị ngoại vi với hệ điều hành Chương 5: Quản lý vào ra 1. Nguyên tắc chung 1.1 Giới thiệu l Sau khi HĐH gửi yêu cầu ra tbnv, HĐH cần phải biết l Tbnv hoàn thành yêu cầu vào ra l Tbnv gặp lỗi l Có thể thực hiện theo 2 p/pháp Ngắt và thăm dò l Ngắt (I/O interrupts) l Tbnv phát sinh ra 1 tín hiệu ngắt để báo cho CPU biết l IRQ: Đường dẫn vật lý đến bộ quản lý ngắt l Ánh xạ các tín hiệu IRQ thành các vector ngắt l Gọi tới chương trình xử lý ngắt l Thăm dò (polling) l HĐH chu kỳ kiểm tra thanh ghi trạng thái của thiết bị l Lãng phí chu kỳ thăm dò nếu thao tác vào ra không thường xuyên l Các thiệt bị hiện thời có thể kết hợp cả 2 p/pháp (VD Các thiết bị mạng băng thông cao) l Ngắt khi gói tin đầu tiên tới l Thăm dò với các gói tin tiếp theo cho tới khi vùng đệm rỗng lGiới thiệu lNgắt và xử lý ngắt Chương 5: Quản lý vào ra 1. Nguyên tắc chung Khái niệm ngắt Chương 5: Quản lý vào ra 1. Nguyên tắc chung 1.2 Ngắt và xử lý ngắt Ngắt là phương tiện để cho các thiết bị khác trong hệ thống báo cho processor biết trạng thái của nó Ngắt là hiện tượng dừng đột xuất chương trình để chuyển sang thực hiện chương trình khác ứng với một sự kiện nào đó xảy ra l Ngắt >< chương trình con !? Phân loại ngắt Chương 5: Quản lý vào ra 1. Nguyên tắc chung 1.2 Ngắt và xử lý ngắt l Theo nguồn gốc l Ngắt bên trong l Ngắt bên ngoài l Theo thiết bị l Ngắt cứng l Ngắt mềm l Theo khả năng quản lý l Ngắt che được l Ngắt không che được l Theo thời điểm ngắt l Yêu cầu l Báo cáo Xử lý ngắt Chương 5: Quản lý vào ra 1. Nguyên tắc chung 1.2 Ngắt và xử lý ngắt ① Ghi nhận đặc trưng sự kiện gây ngắt vào ô nhớ cố định ② Ghi nhận trạng thái của tiến trình bị ngắt ③ Chuyển địa chỉ của chương trình xử lý ngắt vào thanh ghi con trỏ lệnh l Sử dụng bảng vector ngắt (IBM-PC) ④ Thực hiện chương trình xử lý ngắt ⑤ Khôi phục lại tiến trình bị ngắt ①Nguyên tắc quản lý chung ②Dịch vụ vào ra của hệ thống ③Hệ thống vào ra đĩa Chương 5 Quản lý vào ra lVùng đệm (Buffer) lQuản lý lỗi vào ra lKỹ thuật SPOOL Chương 5: Quản lý vào ra 2. Dịch vụ vào ra của hệ thống 2.1 Vùng đệm Khái niệm chung Chương 5: Quản lý vào ra 2. Dịch vụ vào ra của hệ thống 2.1 Vùng đệm l Đặc trưng của Tbnv: hoạt động chậm l Kích hoạt thiết bị l Chờ đợi thiết bị đạt được trạng thái h/động thích hợp l Chờ đợi các thao tác vào ra được thực hiện l Đảm bảo hiệu năng của hệ thống cần l Giảm số lượng thao tác vào ra, làm việc với từng khối dữ liệu l Thực hiện song song thao tác vào ra với các t/tác khác l Thực hiện trước các phép truy nhập Vùng đệm: Vùng nhớ trung gian, làm nơi lưu trữ thông tin trong các thao tác vào ra Phân loại vùng đệm 1 Chương 5: Quản lý vào ra 2. Dịch vụ vào ra của hệ thống 2.1 Vùng đệm l Vùng đệm vào l Có thể thực hiện ngay phép truy nhập dữ liệu l Ví dụ đọc đĩa l Vùng đệm ra l Thông tin được đưa ra vùng đệm, khi nào vùng đệm đầy sẽ đưa ra thiết bị Phân loại vùng đệm 2 Chương 5: Quản lý vào ra 2. Dịch vụ vào ra của hệ thống 2.1 Vùng đệm l Vùng đệm gắn với thiết bị l Được xây dựng khi mở thiết bị/file l Phục vụ riêng cho thiết bị bị xóa khi đóng thiết bị l Thích hợp khi các thiết bị có cấu trúc bản ghi vật lý khác nhau l Vùng đệm gắn với hệ thống l Xây dựng khi khởi tạo hệ thống, không gắn với thiết bị cụ thể l Tồn tại trong suốt quá trình hoạt động của hệ thống l Mở file/thiết bị ⇒ Gắn với 1 vùng đệm có sẵn l Khi đóng file/thiết bị⇒ vùng đệm được trả về hệ thống l Thích hợp khi các thiết bị có cấu trúc bản ghi vật lý chung l Tránh việc tạo xóa vùng đệm nhiều lần l Vùng đệm trở thành các tài nguyên găng ⇒ phải điều độ Phân loại vùng đệm 3 Chương 5: Quản lý vào ra 2. Dịch vụ vào ra của hệ thống 2.1 Vùng đệm l Vùng đệm trung chuyển l Vùng đệm vào l Vùng đệm ra l Vùng đệm xử lý l Vùng đệm vòng tròn l Vùng đệm vào l Vùng đệm ra l Vùng đệm xử lý lVùng đệm (Buffer) lQuản lý lỗi vào ra lKỹ thuật SPOOL Chương 5: Quản lý vào ra 2. Dịch vụ vào ra của hệ thống 2. 2 Quản lý lỗi vào ra Đặt vấn đề Chương 5: Quản lý vào ra 2. Dịch vụ vào ra của hệ thống 2.2 Quản lý lỗi vào ra l Lỗi luôn có thể xảy ra tại mọi bộ phận của hệ thống l Phần cứng: Intel 486? l Phần mềm: Win 98 ? l Tbnv: Hay gặp lỗi do tác động của môi trường l Xử lý lỗi ⇒ Trách nhiệm của hệ thống l Được quan tâm ngay tại giai đoạn thiết kế, chế tạo l Kiểm tra chẵn/lẻ (parity check) l Tổng kiểm tra (check sum) l Các phép kiểm tra do phần cứng/phần mềm đảm nhiệm l Yêu cầu sử dụng linh hoạt các phép kiểm tra Xử lý lỗi Chương 5: Quản lý vào ra 2. Dịch vụ vào ra của hệ thống 2.2 Quản lý lỗi vào ra l Phát hiện lỗi -> hệ thống cố gắng khắc phục bằng cách t/hiện lại nhiều lần l Nếu lỗi ổn định ⇒Cố gắng khôi phục lại thông tin ban đầu l Trường hợp lưu trữ, để đảm bảo chất lượng thông tin l TBĐK đọc lại kết quả vừa lưu trữ l So sánh với thông tin gốc/So sánh 2 tổng kiểm tra l Kết quả báo cho hệ thống để có xử lý tương ứng ⇒ Lặp lại thao tác/ Thông báo lỗi l Thiết bị vào ra thường cung cấp mã trả về (return code) l Phân tích và đánh giá dựa trên mã nhận được lVùng đệm (Buffer) lQuản lý lỗi vào ra lKỹ thuật SPOOL Chương 5: Quản lý vào ra 2. Dịch vụ vào ra của hệ thống 2.3 Kỹ thuật SPOOL Kỹ thuật SPOOL (Simultaneous peripheral operation on-line) Chương 5: Quản lý vào ra 2. Dịch vụ vào ra của hệ thống 2.3 Kỹ thuật SPOOL l Trên phương diện lập trình, Tbvr là l Trạm nhận các yêu cầu từ chương trình và thực hiện l Trả các mã trạng thái để hệ thống phân tích -> có thể dùng phần mềm mô phỏng các Tbvr l Tbvr có thể coi như tiến trình l Được điều độ theo quy tắc quản lý TT l Mục đích l Mô phỏng quá trình điều khiển, quản lý Tbnv l Kiểm tra hoạt động của các thiết bị đang chế tạo l Tạo hiệu ứng sử dụng song song cho các thiết bị truy nhập tuần tự Kỹ thuật SPOOL: Ví dụ máy in ảo Chương 5: Quản lý vào ra 2. Dịch vụ vào ra của hệ thống 2.3 Kỹ thuật SPOOL Chương 5: Quản lý vào ra 2. Dịch vụ vào ra của hệ thống 2.3 Kỹ thuật SPOOL Kỹ thuật SPOOL: Ví dụ nhập xuất thông tin ①Nguyên tắc quản lý chung ②Dịch vụ vào ra của hệ thống ③Hệ thống vào ra đĩa Chương 5 Quản lý vào ra lCấu trúc đĩa từ lĐiều phối truy nhập đĩa Chương 5: Quản lý vào ra 3. Hệ thống vào ra đĩa 3.1 Cấu trúc đĩa từ Cấu trúc Chương 5: Quản lý vào ra 3. Hệ thống vào ra đĩa 3.1 Cấu trúc đĩa từ l Mô hình hóa như mảng một chiều các khối logic l Khối logic là đơn vị trao đổi nhỏ nhất l Ánh xạ liên tiếp các khối logic tới các sector của đĩa l Khối 0 là sector đầu mặt 0 rãnh/Cylinder ngoài cùng l Ánh xạ theo trật tự: Sector → Header → Track/Cylinder l Ít phải dịch chuyển đầu từ khi đọc các sector kế tiếp nhau Vấn đề truy nhập đĩa Chương 5: Quản lý vào ra 3. Hệ thống vào ra đĩa 3.1 Cấu trúc đĩa từ l HĐH có trách nhiệm sử dụng hiệu quả phần cứng l Với đĩa: Thời gian truy nhập nhanh và băng thông cao l Băng thông được tính dựa trên l Tổng số bytes đã trao đổi l Khoảng t/gian từ y/cầu dịch vụ đầu tiên cho tới khi hoàn thành l Thời gian truy nhập gồm 2 phần l T/gian định vị (seek time) : T/gian dịch chuyển đầu từ tới cylinders chứa sector cần truy nhập l Độ trễ quay (Rotational latency) :T/gian chờ đợi để đĩa quay tới sector cần truy nhập Vấn đề truy nhập đĩa Chương 5: Quản lý vào ra 3. Hệ thống vào ra đĩa 3.1 Cấu trúc đĩa từ l Mục đích: cực tiểu hóa thời gian định vị l Thời gian định vị ≈khoảng cách dịch chuyển l Hàng đợi yêu cầu l Đĩa và bộ đ/khiển l sẵn sàng -> y/cầu truy nhập đc thực hiện ngay l chưa sẵn sàng -> y/cầu đc đặt trong hàng đợi l Hoàn thành 1 y/cầu truy nhập đĩa -> lựa chọn y/cầu nào? lCấu trúc đĩa từ lĐiều phối truy nhập đĩa Chương 5: Quản lý vào ra 3. Hệ thống vào ra đĩa 3.2 Điều phối truy nhập đĩa Các thuật toán Chương 5: Quản lý vào ra 3. Hệ thống vào ra đĩa 3. 2 Điều phối truy nhập đĩa Tồn tại một số t/toán điều phối dịch vụ cho y/cầu vào ra đĩa FCFS:First Come First Served SSTF: Shortest Seek Time First SCAN C-SCAN: Circular SCAN LOOK/C-LOOK Giả thiết l Các yêu cầu truy nhập 98, 183, 37, 122, 14, 124, 65, 67 l Đầu đọc đang ở cylinder 53 FCFS Chương 5: Quản lý vào ra 3. Hệ thống vào ra đĩa 3. 2 Điều phối truy nhập đĩa Truy nhập theo trật tự yêu cầu ⇒Không hiệu quả Yêu cầu truy nhập 98, 183, 37, 122, 14, 124, 65, 67 45 85 59 85 108 110 2 146 Tổng: 630 SSTF Chương 5: Quản lý vào ra 3. Hệ thống vào ra đĩa 3. 2 Điều phối truy nhập đĩa Chọn truy nhập có t/gian định vị từ vị trí hiện tại nhỏ nhất⇒Có thể tồn tại y/c phải đợi vô hạn do y/c mới x/hiện gần đầu đọc hơn (tương tự SJF) Yêu cầu truy nhập 98, 183, 37, 122, 14, 124, 65, 67 12 2 2 23 84 24 59 30 Tổng: 236 SCAN Chương 5: Quản lý vào ra 3. Hệ thống vào ra đĩa 3. 2 Điều phối truy nhập đĩa Đầu từ dich chuyển từ cylinder ngoài cùng đến cylinder trong cùng và quay ngược lại. Phục vụ cho các yêu cầu gặp trên đường đi Yêu cầu truy nhập 98, 183, 37, 122, 14, 124, 65, 67 15 23 24 65 2 31 2 14 Tổng: 235 59 Đầu từ đang dịch về phía cylinder 0 C-SCAN Chương 5: Quản lý vào ra 3. Hệ thống vào ra đĩa 3. 2 Điều phối truy nhập đĩa Nguyên tắc: Xử lý các cylinders như một danh sách nối vòng: Cylinder ngoài cùng nối tiếp với cylinder trong cùng l Đầu từ d/chuyển từ cylinder ngoài cùng -> cylinder trong cùng l Phục vụ cho các y/cầu gặp trên đường đi l Khi tới Cylinder trong cùng, quay ngược lại Cylinder ngoài cùng l Không phục vụ cho các y/cầu gặp trên đường đi l Nhận xét: l Thu được thời gian đợi đồng nhất hơn thuật toán SCAN l Khi đầu đọc đạt tới 1 phía của đĩa (cylinders trong cùng, ngoài cùng), mật độ các y/cầu xuất hiện ở phía bên kia > vị trí hiện tại (do vừa đi qua). l Các y/cầu này cũng đợi lâu hơn ⇒ Quay ngay lập tức về phía bên kia C-SCAN Chương 5: Quản lý vào ra 3. Hệ thống vào ra đĩa 3. 2 Điều phối truy nhập đĩa Đầu từ dich chuyển từ cylinder ngoài cùng đến cylinder trong cùng và quay ngược lại. Phục vụ cho các yêu cầu gặp trên đường đi Yêu cầu truy nhập 98, 183, 37, 122, 14, 124, 65, 67 LOOK/ C-LOOK Chương 5: Quản lý vào ra 3. Hệ thống vào ra đĩa 3. 2 Điều phối truy nhập đĩa Phiên bản của SCAN/C-SCAN: Đầu đọc không di chuyển tới các cylinders ngoài/trong cùng mà chỉ đến các y/cầu xa nhất về 2 phía rồi quay lại ngay Yêu cầu truy nhập 98, 183, 37, 122, 14, 124, 65, 67 Vấn đề lựa chọn thuật toán Chương 5: Quản lý vào ra 3. Hệ thống vào ra đĩa 3. 2 Điều phối truy nhập đĩa l SSTF: Phổ biến, hiệu quả hơn FCFS l SCAN/C-SCAN hoạt động tốt hơn cho hệ thống có nhiều y/cầu truy nhập đĩa l Không gặp vấn đề "starvation: chờ đợi quá lâu" l Hiệu quả của các t/toán phụ thuộc số lượng và kiểu các y/cầu l Y/cầu truy xuất đĩa bị ảnh hưởng bởi các p/pháp phân phối đĩa cho file l P/phối liên tục: đưa ra các y/cầu truy xuất lân cận nhau l P/phối liên kết/ chỉ mục: có thể gồm các khối được phân bố rộng rãi trên đĩa l T/toán điều phối truy nhập đĩa có thể được viết như những modul riêng biệt của HĐH cho phép có thể thay thế bởi các t/toán khác khi cần thiết l Cả SSTF và LOOK đều có thể là lựa chọn hợp lý cho t/ toán mặc định Kết chương Chương 5: Quản lý vào ra 1. Nguyên tắc quản lý chung 1. Giới thiệu 2. Ngắt và xử lý ngắt 2. Dịch vụ vào ra của hệ thống 1. Vùng đệm (Buffer) 2. Quản lý lỗi vào ra 3. Kỹ thuật SPOOL 3. Hệ thống vào ra đĩa 1. Cấu trúc đĩa từ 2. Điều phối truy nhập đĩa

Các file đính kèm theo tài liệu này:

  • pdfbai_giang_he_dieu_hanh_ban_day_du.pdf