Bài giảng Hệ điều hành - Nguyễn Thị Ngọc Vinh - Chương 2: Hệ thống File

1. Các khái niệm

2. Các phƣơng pháp truy cập file

3. Các thao tác với file

4. Thƣ mục

5. Cấp phát không gian cho file

6. Quản lý không gian trống trên đĩa

7. Độ tin cậy của hệ thống file

8. Bảo mật cho hệ thống file

9. Cấu trúc hệ thống file

10. Hệ thống file FAT

pdf66 trang | Chuyên mục: Hệ Điều Hành | Chia sẻ: dkS00TYs | Lượt xem: 2905 | Lượt tải: 4download
Tóm tắt nội dung Bài giảng Hệ điều hành - Nguyễn Thị Ngọc Vinh - Chương 2: Hệ thống File, để xem tài liệu hoàn chỉnh bạn click vào nút "TẢI VỀ" ở trên
Quyền thay đổi chủ file (change owner)
VIII. BẢO MẬT CHO HỆ THỐNG FILE
www.ptit.edu.vn GIẢNG VIÊN: THS NGUYỄN THỊ NGỌC VINH
BỘ MÔN: KHOA HỌC MÁY TÍNH – KHOA CNTT1
Trang 50
 Quản lý vào ra:
 Gồm các chƣơng trình điều khiển thiết bị (driver) và chƣơng 
trình xử lý ngắt cứng
 Lƣu chuyển thông tin và dữ liệu giữa bộ nhớ và thiết bị nhớ 
ngoài
 Nhận các lệnh đọc/ghi thông tin từ lớp trên; dịch các yêu cầu; 
IX. CẤU TRÚC HỆ THỐNG FILE
www.ptit.edu.vn GIẢNG VIÊN: THS NGUYỄN THỊ NGỌC VINH
BỘ MÔN: KHOA HỌC MÁY TÍNH – KHOA CNTT1
Trang 51
 Hệ thống file cơ sở:
 Sinh ra các lệnh đọc/ghi khối nhớ cụ thể cho lớp dƣới
 Trung chuyển các khối tin giữa lớp dƣới và MEM
 Không cần hiểu nội dung thông tin và tổ chức file
IX. CẤU TRÚC HỆ THỐNG FILE
www.ptit.edu.vn GIẢNG VIÊN: THS NGUYỄN THỊ NGỌC VINH
BỘ MÔN: KHOA HỌC MÁY TÍNH – KHOA CNTT1
Trang 52
 Modul tổ chức file:
 Ánh xạ giữa khối logic và vật lý
 Quản lý các khối trống chƣa đƣợc cấp phát trên đĩa
 Hệ thống file logic:
 Quản lý thƣ mục
 Cung cấp thông tin vị trí file 
 Thực hiện các chức năng liên quan đến bảo mật và đảm bảo 
toàn vẹn cho hệ thống file
IX. CẤU TRÚC HỆ THỐNG FILE
www.ptit.edu.vn GIẢNG VIÊN: THS NGUYỄN THỊ NGỌC VINH
BỘ MÔN: KHOA HỌC MÁY TÍNH – KHOA CNTT1
Trang 53
 3 phiên bản: FAT12, FAT16, FAT32
 Chữ số chỉ kích thƣớc ô bảng FAT tƣơng ứng 12, 16 
và 32 bit
X. HỆ THỐNG FILE FAT
www.ptit.edu.vn GIẢNG VIÊN: THS NGUYỄN THỊ NGỌC VINH
BỘ MÔN: KHOA HỌC MÁY TÍNH – KHOA CNTT1
Trang 54
Boot sector
và các khối dự phòng
Bảng FAT1 Bảng FAT2 Thư mục gốc
(chỉ có trên FAT12 và
FAT16)
Phần còn lại cho tới cuối đĩa
chứa các file và thư mục của đĩa lô gic
X. HỆ THỐNG FILE FAT
1. ĐĨA LOGIC
 Đơn vị cấp phát không gian trên đĩa (khối logic) là cluster (lũy 
thừa 2 của số lƣợng sector)
 Boot sector: 
 Sector đầu tiên của đĩa logic
 Chứa thông tin mô tả cấu trúc đĩa logic: kích thƣớc sector, cluster, kích 
thƣớc bảng FAT
 Chứa mã chƣơng trình mồi để tải HĐH nếu đĩa logic là đĩa khởi động
 FAT: bảng chỉ số quản lý cấp phát khối cho file
 Thƣ mục gốc ROOT
 Vùng dữ liệu: chứa các file và thƣ mục của đĩa logic
www.ptit.edu.vn GIẢNG VIÊN: THS NGUYỄN THỊ NGỌC VINH
BỘ MÔN: KHOA HỌC MÁY TÍNH – KHOA CNTT1
Trang 55
Vị trí Độ dài Ý nghĩa
0 3
Lệnh Jump. Chỉ thị cho CPU bỏ qua phần thông tin và nhẩy tới thực hiện phần mã mồi của hệ điều hành nếu
đây là đĩa mồi hệ điều hành.
3 8 Tên hãng sản xuất, bổ sung dấu trắng ở cuối cho đủ 8B. Ví dụ: IBM 3.3, MSDOS5.0.v.v.
11 2
Bytes per sector. Kích thƣớc sector tính bằng byte. Giá trị thƣờng gặp là 512 đối với đĩa cứng.
Đây cũng là vị trí bắt đầu của Khối Thông số BIOS (BIOS Parameter Block, viết tắt là BPB)
13 1 Sectors per cluster. Số sector trong một cluster, luôn là lũy thừa của 2 và không lớn hơn 128.
14 2
Reserved sectors. Số lƣợng sector dành cho vùng đầu đĩa đến trƣớc FAT, bao gồm boot sector và các sector dự 
phòng.
16 1 Số lƣợng bảng FAT. Thƣờng bằng 2.
17 2 Số khoản mục tối đa trong thự mục gốc ROOT. Chỉ sử dụng cho FAT12 và FAT16. Bằng 0 với FAT32.
19 2 Total sector. Tổng số sector trên đĩa. Nếu bằng không thì số lƣợng sector đƣợc ghi bằng 4 byte tại vị trí 0x20.
21 1 Mô tả loại đĩa. Ví dụ 0xF0 là đĩa mềm 3.5” hai mặt với 80 rãnh trên mỗi mặt, 0xF1 là đĩa cứng .v.v.
22 2 Sectors per FAT. Kích thƣớc FAT tính bằng sector (đối với FAT12/16)
24 2 Sectors per track. Số sector trên một rãnh.
26 2 Number of heads. Số lƣợng đầu đọc (mặt đĩa đƣợc sử dụng)
28 4 Hidden sectors. Số lƣợng sector ẩn.
32 4 Total sector. Tổng số sector trên đĩa cho trƣờng hợp có nhiều hơn 65535.
X. HỆ THỐNG FILE FAT
BOOT SECTOR
32 Byte đầu tiên
www.ptit.edu.vn GIẢNG VIÊN: THS NGUYỄN THỊ NGỌC VINH
BỘ MÔN: KHOA HỌC MÁY TÍNH – KHOA CNTT1
Trang 56
Vị trí Độ dài Ý nghĩa
36 1 Số thứ tự vật lý của đĩa (0: đĩa mềm, 80h: đĩa cứng .v.v.)
37 1 Dự phòng
38 1 Dấu hiệu của phần mã mồi. Chứa giá trị 0x29 (ký tự „)‟) hoặc 0x28.
39 4 Số xê ri của đĩa (Volume Serial Number) đƣợc tạo lúc format đĩa
43 11 Volume Label. Nhãn của đĩa đƣợc tạo khi format.
54 8 Tên hệ thống file FAT, ví dụ"FAT12 ", "FAT16 ". 
62 448 Mã mồi hệ điều hành, đây là phần chƣơng trình tải hệ điều hành khi khởi động.
510 2 Dấu hiệu Boot sector (0x55 0xAA)
X. HỆ THỐNG FILE FAT
BOOT SECTOR
Các byte tiếp theo với FAT12/16
www.ptit.edu.vn GIẢNG VIÊN: THS NGUYỄN THỊ NGỌC VINH
BỘ MÔN: KHOA HỌC MÁY TÍNH – KHOA CNTT1
Trang 57
Vị trí Độ dài Ý nghĩa
36 4 Sectors per FAT. Kích thƣớc FAT tính bằng sector.
0x28 2 Cờ của FAT
0x2a 2 Version. Phiên bản.
0x2c 4 Số thứ tự của cluster đầu tiên của thƣ mục gốc root.
0x30 2 Số sector của Information Sector. Đây là phần nằm trong số sector dự phòng ngay sau boot sector.
0x32 2 Số thứ tự sector đầu tiên của bản sao của boot sector (nếu có)
0x34 12 Dự phòng
0x40 1 Số thứ tự vật lý của đĩa
0x41 1 Dự phòng
0x42 1 Dấu hiệu của phần mã mồi mở rộng.
0x43 4 Số xê ri của đĩa (Volume Serial Number)
0x47 11 Volume Label
0x52 8 "FAT32 "
0x5a 420 Mã mồi hệ điều hành
0x1FE 2 Dấu hiệu Boot sector (0x55 0xAA)
X. HỆ THỐNG FILE FAT
BOOT SECTOR
Các byte tiếp theo với FAT32
www.ptit.edu.vn GIẢNG VIÊN: THS NGUYỄN THỊ NGỌC VINH
BỘ MÔN: KHOA HỌC MÁY TÍNH – KHOA CNTT1
Trang 58
 Quản lý các cluster trên đĩa và các file theo nguyên tắc: 
 Các khối thuộc cùng 1 file đƣợc liên kết thành 1 danh sách
 Con trỏ đƣợc chứa trong ô tƣơng ứng của bảng FAT
 Mỗi ô trong bảng FAT tƣơng ứng với một cluster trên đĩa, 
chứa 1 trong các thông tin:
 STT cluster tiếp theo trong danh sách các khối của file
 Dấu hiệu kết thúc nếu ô tƣơng ứng với cluster cuối cùng của file
 Dấu hiệu đánh dấu cluster hỏng, không đƣợc sử dụng
 Dấu hiệu đánh dấu cluster dự phòng
 Bằng 0 nếu cluster trống, chƣa cấp phát cho file nào
X. HỆ THỐNG FILE FAT
BẢNG FAT
www.ptit.edu.vn GIẢNG VIÊN: THS NGUYỄN THỊ NGỌC VINH
BỘ MÔN: KHOA HỌC MÁY TÍNH – KHOA CNTT1
Trang 59
FAT12 FAT16 FAT32 Ý nghĩa
0x000 0x0000 0x00000000 Cluster trống
0x001 0x0001 0x00000001
Cluster dự phòng, không đƣợc 
sử dụng
0x002–0xFEF 0x0002–0xFFEF 0x00000002–0x0FFFFFEF
Cluster đã đƣợc cấp cho file. 
Chứa số thứ tự cluster tiếp
theo của file.
0xFF0–0xFF6 0xFFF0–0xFFF6 0x0FFFFFF0–0x0FFFFFF6 Cluster dự phòng
0xFF7 0xFFF7 0x0FFFFFF7 Cluster hỏng.
0xFF8–0xFFF 0xFFF8–0xFFFF 0x0FFFFFF8–0x0FFFFFFF Cluster cuối cùng của file
X. HỆ THỐNG FILE FAT
BẢNG FAT
 Cluster đầu tiên của vùng dữ liệu đƣợc đánh STT là 2
 2 ô đầu tiên của bảng FAT không dùng để quản lý cluster
www.ptit.edu.vn GIẢNG VIÊN: THS NGUYỄN THỊ NGỌC VINH
BỘ MÔN: KHOA HỌC MÁY TÍNH – KHOA CNTT1
Trang 60
 Mỗi thƣ mục đƣợc lƣu trong bảng thƣ mục, thực chất là 1 
file đặc biệt chứa các khoản mục của thƣ mục
 Mỗi khoản mục chứa thông tin về một file hoặc thƣ mục 
con của thƣ mục đang xét
 Với FAT12/16, thƣ mục trên cùng của đĩa đƣợc chứa 
trong 1 vùng đặc biệt gọi là thƣ mục gốc
 Các thƣ mục mức thấp hơn/ thƣ mục gốc của FAT32 đƣợc 
chứa trong vùng dữ liệu trên đĩa cùng với các file
 Mỗi thƣ mục gồm các khoản mục 32 byte xếp liền nhau
X. HỆ THỐNG FILE FAT
THƯ MỤC GỐC (ROOT)
www.ptit.edu.vn GIẢNG VIÊN: THS NGUYỄN THỊ NGỌC VINH
BỘ MÔN: KHOA HỌC MÁY TÍNH – KHOA CNTT1
Trang 61
Vị trí Độ dài Mô tả
0 8 Tên file, thêm bằng dấu trắng ở cuối nếu ngắn hơn 8 byte
8 3 Phần mở rộng, thêm bằng dấu trắng ở cuối nếu ngắn hơn 3 byte
11 1 Byte thuộc tính của file. Các bit của byte này nếu bằng 1 sẽ có ý nghĩa như sau:
Bit 0: file chỉ được đọc; Bit 1: file ẩn; Bit 2: file hệ thống; Bit 3: Volume label; Bit 4: thư mục con
Bit 5: archive; Bit 6: thiết bị nhớ khác (dùng cho hệ điều hành); Bit 7: không sử dụng
Byte thuộc tính bằng 0x0F là dấu hiệu của file tên dài.
12 1 Dự phòng
13 1 Thời gian tạo file tính theo đơn vị 10ms, giá trị từ 0 đến 199
14 2 Thời gian tạo file theo format sau: bit 15-11: giờ (0-23); bit 10-5: phút (0-59); bit 4-0: giây/2 (0-29)
16 2 Ngày tạo file theo format sau. Bit 15-9: năm (0-1980, 127 =2107); bit 8-5: tháng (1-12); bit 4-0:
ngày (1-31)
18 2 Ngày truy cập cuối, theo format như ngày tạo file
20 2 2 byte cao của số thứ tự cluster đầu tiên của file trong FAT32
22 2 Thời gian sửa file lần cuối, theo format thời gian tạo file
24 2 Ngày sửa file lần cuôi, theo format như ngày tạo file
26 2 Số thứ tự cluster đầu tiên của file trong FAT12/16.
28 4 Kích thước file tính bằng byte. Bằng 0 với thư mục con
X. HỆ THỐNG FILE FAT
THƯ MỤC GỐC (ROOT)
www.ptit.edu.vn GIẢNG VIÊN: THS NGUYỄN THỊ NGỌC VINH
BỘ MÔN: KHOA HỌC MÁY TÍNH – KHOA CNTT1
Trang 62
 www.echip.com.vn/echiproot/html/2006/so329/usb.html
X. HỆ THỐNG FILE FAT
TẠO ĐĨA USB KHỞI ĐỘNG 
www.ptit.edu.vn GIẢNG VIÊN: THS NGUYỄN THỊ NGỌC VINH
BỘ MÔN: KHOA HỌC MÁY TÍNH – KHOA CNTT1
Trang 63
 int absread(int drive, int nsects, long lsect, void *buffer)
 drive: ổ đĩa cần đọc, A: 0, B:1, C:2
 nsects: số sector cần đọc
 lsect: vị trí sector bắt đầu đọc
 buffer: vùng nhớ lƣu nội dung thông tin cần đọc
X. HỆ THỐNG FILE FAT
HÀM ĐỌC ĐĨA
www.ptit.edu.vn GIẢNG VIÊN: THS NGUYỄN THỊ NGỌC VINH
BỘ MÔN: KHOA HỌC MÁY TÍNH – KHOA CNTT1
Trang 64
 Vị trí sector bắt đầu: reserved sector (byte 14, 15 trong bootsector)
 Tổng số sector cần đọc: sectors per FAT (byte 22, 23)
 Nội dung bảng FAT đã đƣợc đọc ra vùng buf
 FAT16: ô FAT thứ n = buf+n*2
X. HỆ THỐNG FILE FAT
ĐỌC FAT 
www.ptit.edu.vn GIẢNG VIÊN: THS NGUYỄN THỊ NGỌC VINH
BỘ MÔN: KHOA HỌC MÁY TÍNH – KHOA CNTT1
Trang 65
 Vị trí sector bắt đầu: reserved sector + NoOfFATs * sectors per 
FAT 
 Tổng số sector cần đọc: NoOfRootEntries * 32 /BytesPerSector
X. HỆ THỐNG FILE FAT
ĐỌC ROOT 
www.ptit.edu.vn GIẢNG VIÊN: THS NGUYỄN THỊ NGỌC VINH
BỘ MÔN: KHOA HỌC MÁY TÍNH – KHOA CNTT1
Trang 66
1. Viết chƣơng trình để hiển thị thông tin boot sector
2. Viết chƣơng trình đọc FAT
3. Viết chƣơng trình đọc ROOT và in nội dung giống lệnh DIR
4. Cho 1 tên file thuộc ROOT. Viết chƣơng trình tìm tất cả các cluster 
của file đó
5. Viết chƣơng trình đếm số cluster trống của ổ đĩa
X. HỆ THỐNG FILE FAT
BÀI TẬP THỰC HÀNH 

File đính kèm:

  • pdfBài giảng Hệ điều hành - Nguyễn Thị Ngọc Vinh - Chương 2 Hệ thống File.pdf