CHÖÔNG 8
HEÄ THOÁNG FILE
-1-
NỘI DUNG
Khái niệm hệ thống tệp Các phương pháp truy xuất tệp Cấu trúc thư mục Mount hệ thống tệp Chia sẻ tệp Cài đặt
Cấu trúc Cấu trúc thư mục Cấp phát Quản lý không gian trống
-2-
Khái niệm hệ thống tệp
Tổng quan Khái niệm tệp Thuộc tính tệp Các thao tác Các kiểu tệp Cấu trúc tệp
-3-
1
Khái niệm FS – tổng quan
Phần của OS cung cấp
– File system (FS) – Cách lưu trữ dữ liệu một cach bền vững, dễ
truy xuất, có thể lưu trữ trên các thiết bị lưu trữ (stockage device - SD) Gồm các phần riêng biệt – Partition (các khu vực) – Cấu trúc thư mục – Tập các tệp
-4-
Khái niệm FS – Khái niệm tệp
Tập thông tin trên 1 SD
– Dữ liệu chỉ có thể ghi lên SD ở dạng (hay được
chứa) trong 1 tệp
Được tạo – OS – NSD Phân loại
– Dựa trên kiểu dữ liệu mà tệp đang chứa
-5-
Khái niệm FS – Thuộc tính tệp
– Định danh – Duy nhất trong thư mục – Độc lập với NSD
Tên
– Số xác định tệp trong FS
Inode
– Dùng trong các hệ thống hỗ trợ nhiều kiểu FS
Kiểu
-6-
2
Vị trí Kích thước Time/ Date, sở hữu chủ
Khái niệm FS – Thao tác tệp
Dùng các hàm của OS để gọi các hàm của
hệ thống Các thao tác
– create, write, read, seek, delete,
truncate – open(Fi) – close (Fi)
-7-
Khái niệm FS – Kiểu tệp
Kiểu FS
– Được cung cấp bởi OS
Kiểu tệp
– Tệp thường – Thư mục – Tệp chứa symbol device
– Tệp khối (block device)
Input/Output thông tin qua các I/O device
-8-
Truy xuất trên block device (đĩa,..)
Khái niệm FS – Cấu trúc tệp
Cấu trúc tệp – Tuần tự
Tệp là dãy các byte
Dãy mẫu tin có size cố định
– Có cấu trúc
Thông tin tổ chức theo DOM
Cấu trúc quản lý – Open file table – Per-process File Table
Các tệp đang mở bởi 1 QT
-9-
3
– Cây
Các PP truy xuất
Tuần tự Trực tiếp Các PP khác
-10-
Các PP truy xuất - Tuần tự
-11-
Cấu trúc thư mục
Đơn cấp Hai cấp Cây Đồ thị không chu trình
-12-
4
Các PP truy xuất - Trực tiếp
– Cơ sở dữ liệu
-13-
Truy xuất theo mẫu tin/ khối dữ liệu Không theo thứ tự các khối Dùng cho các file có KT lớn
Các PP truy xuất - Các PP khác
Mở rộng truy xuất trực tiếp
Xây dựng chỉ mục các mẫu tin
-14-
Cấu trúc thư mục - Đơn cấp
Các tập tin được chứa trong cùng 1 thư mục
-15-
5
Cấu trúc thư mục - Hai cấp
Thư mục riêng của từng NSD Dùng thư mục chung (gốc) cho thao tác tìm
kiếm tệp Dùng PATH (DOS , Unix)
-16-
Cấu trúc thư mục - Cây
Tổ chức theo dạng cây
Gốc Quan hệ thư mục cha – con
Kiểu được quy định bởi inode
0: tệp , 1: sub dir
Một tệp: 1 đ/c duy nhất (PATH)
OS áp dụng DOS
-17-
Cấu trúc thư mục – Đồ thị không chu trình
Phục vụ chia sẻ tệp Tạo các copy của các tệp (link) trong các
thư mục (khác với thư mục chứa nó)
-18-
6
Mount FS
Khaí niệm
Mở trước khi sử dụng
Thủ tục
Tên/Mô tả của thiết bị
lưu trữ
Vị trí của FS (của thiết bị) trong FS chung (mount point) Thư mục con của root
-19-
Mount FS
Windows
Dùng cấu trúc 2 cấp Các thiết bị và khu vực
Gán bởi 1 ký tự ổ đĩa (A..Z)
Tự detect+mount các FS lúc khởi động OS
Linux
Mount point: thư mục con của root Có thể được mount/ hủy mount bằng tay,
-20-
Chia sẻ FS
Nhiều NSD
Dựa vào các thuộc tính hỗ trợ Sở hữu chủ + Nhóm + Khác
Truy cập từ xa
FTP Hệ thống file phân tán (DFS)
-21-
7
Cài đặt FS
Cấu trúc FS Cài đặt
Tổng quan FS ảo - VFS Cài đặt thư mục Cấp phát đĩa Kề Liên kết Dùng chỉ mục Quản lý không gian trống
Bit vector Danh sách Nhóm Bộ đếm
-22-
Cài đặt FS –Cấu trúc Đĩa: thiết bị lưu trữ với các đặc tính Được ghi lại bằng cách thay thế Có thể truy xuất ngẫu nhiên
Cấu trúc đĩa Cluster Sector
Thông thường: KT 512 byte
-23-
Cài đặt FS –Cấu trúc
– Cấp cao dùng các đặc tính của cấp thấp để
tạo FS – I/O Control
Các driver chuyển dữ liệu giữa MEM và disk Các bộ quản lý interrupt
– Basic FS
Func R/W các block/disk qua driver
– Module tổ chức tệp
Chuyển tệp logic thành tệp physique Quản lý không gian trống
-24-
8
Các cấp độ tạo FS
Cài đặt FS –Cấu trúc
– Logic FS
Quản lý metadata của FS Dùng FCB để quản lý các tệp
-25-
Các cấp độ tạo FS
Cài đặt FS - Tổng quan
Cấu trúc đĩa
Thông tin dùng để start OS từ 1 partittion được chỉ định. Cũng
được hiểu là control bootsector
– Boot Control block
– Couter FCB – Master file table
– Partition Control block Thông tin về partition Thông tin liên quan đến FS
Thông tin metadata để xây dựng tệp
-26-
– Cấu trúc tệp
Cài đặt FS - Tổng quan
Cấu trúc MEM (caching)
Thông tin về mỗi partition được mount
– Bảng khu vực
Thông tin thư mục của những thư mục vừa truy xuất
– Cấu trúc thư mục
Chứa các copy FCB
– Bảng các tệp đang mở của OS
Các con trỏ đến các mục tương ứng trong bảng trên
-27-
9
– Bảng các tệp đang mở của các QT
Cài đặt FS - Tổng quan
Quy trình tạo
-28-
– APP gọi logic FS – Xác định định dạng của cấu trúc thư mục – Cấp phát 1 FCB mới – Đọc thư mục vào MEM – Cập nhật thư mục với tên và FCB mới – Ghi lại thư mục vào disk
Cài đặt FS - Tổng quan
-29-
Quy trình tạo
Cài đặt FS - Tổng quan
-30-
10
Quy trình tạo
Cài đặt FS - Tổng quan
Quy trình mở
Unix: file descriptor Windows (NTFS): file handle
-31-
– FCB được copy vào bảng các tệp đang mở của OS – Xác định counter các QT đang truy cập tệp – Xác định các mô tả tệp cho từng QT truy cập
Cài đặt FS - VFS
Mục đích
NFS
PP
– Đơn giản hóa thao tác FS trên 1 NFS – Cho phép nhiều kiểu FS được cài đặt trên cùng cấu trúc
Tầng giao diện VFS Các FS từ xa hay cục bộ
-32-
– Viết riêng các proc cho tệp, thư mục cho từng kiểu FS – Phân tầng quá trình cài đặt FS
Cài đặt FS - VFS
– Các lời gọi hệ thống – Các FCB
Tầng giao diện
– Định nghĩa các interface VFS cho từng
FS
– Chứa các vnode: dùng ! cho mỗi tệp
qua NFS
VFS
-33-
11
Các FS từ xa hay cục bộ
Cài đặt FS - VFS
Họat động
local
-34-
– Phân biệt các kiểu FS Remote hay Local Các kiểu FS local – Kích hoạt các thao tác đặc tả FS để quản lý các request
Cài đặt FS – Cài đặt thư mục
Cấp phát & quản lý thư mục PP
Danh mục các tệp Đ/c các block dữ liệu
– Dùng cấu trúc dữ liệu chứa các thông tin trong thư mục
-35-
– Mỗi pp dựa trên 1 cấu trúc dữ liệu xác định
Cài đặt FS – Cài đặt thư mục
Danh sách linear
Hash talbe
– Đơn giản về cài đặt – Tính hiệu năng: kém
xác định các block dữ liệu
-36-
12
– Dùng 1 hash talbe để hỗ trợ các thao tác tìm kiếm tệp và
Cài đặt FS – Cấp phát
Yêu cầu
PP
– Tệp hay thư mục được truy xuất 1 cách nhanh nhất
-37-
– Liên tục – Liên kết – Chỉ mục
Cài đặt FS – Cấp phát kề
– Chứa trong 1 dãy block kề nhau / đĩa
Tệp
– Đ/c block đầu – Chiều dài (tính theo block)
OS sử dụng – IBM/ CMS Tệp được xác định bởi
– Xác định không gian cho 1 tệp mới fragment, cần algo – Xác định không gian đủ KT 1 tệp mới ? Khó có thể
-38-
Hạn chế
Cài đặt FS – Cấp phát liên kết
– Chứa trong 1 dãy block liên kết – Dùng con trỏ liên kết các block – Giải quyết các hạn chế của cấp phát kề
Tệp
– Chỉ mạnh cho truy xuất tuần tự – Cần phải có KG cho con trỏ Cần lưu giữ các con trỏ cho các tệp – Khó hỗ trợ truy xuất ngẫu nhiên Cần cơ chế xác định nhanh block
-39-
13
Hạn chế
Cài đặt FS – Cấp phát liên kết
FAT (File Allocation Talbe)
MS- DOS và OS/2
-40-
Cài đặt FS – Cấp phát liên kết - FAT
-41-
– Giải quyết các hạn chế của PP liên kết – Chứa các danh mục, chỉ mục các block của từng tệp – Lưu ở đầu 1 volume – OS sử dụng
Cài đặt FS – Cấp phát lập chỉ mục
– Chứa trong 1 dãy block liên kết – Một block giữ các chỉ mục các block
Tệp
– Xác định KT index block ? Cần cơ chế tạo, xác định
-42-
14
Hạn chế
Cài đặt FS – Cấp phát chỉ mục
Cơ chế liên kết
Chỉ mục nhiều cấp
– Một iblock chỉ chứa 1 range block, và – Các iblock được liên kết với nhau
Cơ chế kết hợp
– Chỉ mục cấp 1: giữ các chỉ mục cấp 2 – Chỉ mục cấp 2: giữ chỉ mục cho các block
-43-
– Dùng inode để lưu giữ các chỉ mục block
Cài đặt FS – Cấp phát chỉ mục
Cơ chế kết hợp
12
– Giữ các đ/c trực tiếp block
3: các đ/c gián tiếp
– A: đ/c gián tiếp đơn: giữ các đ/c block – B: đ/c gián tiếp đôi: giữ đ/c các iblock – C: đ/c triple
– 15 con trỏ đầu của iblock trong inode của tệp
-44-
– OS sử dụng: các cài đặt của UNIX: AIX hay Solaris
Cài đặt FS – Cấp phát chỉ mục
-45-
15
Cài đặt FS – Quản lý free space
– Dùng để lưu giữ danh mục cho kg trống
0: trống , 1: đang dùng
Bit vector
– Dùng 1 danh sách liên kết giữ các không gian trống – Dùng kết hợp với FAT
Danh sách
– Giữ đ/c khối trống đầu và n khối trống kề
-46-
16
Counter