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