
1
1
1
Nguyên lý hệđiềuhành
NguyễnHải Châu
Khoa Công nghệthông tin
Trường Đạihọc Công nghệ
2
Giao diện
hệthống tệp
Khái niệm tệp
Các phương pháp truy cập
Cấu trúc thư mục
Nối hệthống tệp
Dùng chung tệp
Bảo vệ
3
Khái niệm tệp
zKhông gian địa chỉlogic liên tục
zCác kiểu:
zDữliệu
zSố
zKý tự
zNhịphân
zChương trình
4
Cấu trúc tệp
zChuỗi các từ, byte
zCấu trúc bản ghi đơn giản: gồm các dòng, độ
dài cố định, độ dài thay đổi
zCấu trúc phức tạp: tài liệu có khuôn dạng,
các tệp nạp có định vịlại
zYếu tốquyết định cấu trúc:
zHệ điều hành
zChương trình
5
Thuộc tính tệp
zName – Thông tin người đọc được vềtệp
zType –cần cho chương trình, hệ điều hành
zLocation –Vịtrí tệp trên các thiết bị lưu trữ
zSize –Cỡhiện tại của tệp
zProtection –Điều khiển các quyền truy cập
zTime, date, and user ID –Dữliệu vềthời
gian và định danh người sửdụng
zThông tin vềcách lưu trữtệp trên thiết bị,
được lưu trong cấu trúc của thư mục6
Các toán tửtrên tệp
zCreate: Tạo tệp mới
zWrite: Ghi vào tệp
zRead: Đọc từtệp
zSeek –Định vịlại con trỏtệp
zDelete: Xóa tệp
zTruncate: Xóa dữliệu hiện có trong tệp
zOpen(Fi) – mởtệp Fi(tìm phần tửFi trong thư
mục và đưa nội dung của Fivào bộnhớ)
zClose(Fi) – đóng tệp Fi (đưa nội dung của Fi
trong bộnhớ ra đĩa)

2
2
7
Mởtệp
zMột sốthông tin cần quản lý khi mởtệp:
zCon trỏtệp (file pointer): Con trỏ đến vịtrí đọc/ghi
cuối cùng của mỗi tiến trình
zĐếm số lượng mởtệp (file-open count): Biến đếm
sốlần tệp được mở, để cho phép xóa dữliệu từ
bảng mởtệp khi tiến trình cuối cùng đóng tệp
zVịtrí trên đĩa của tệp: thông tin truy cập dữliệu
của tệp lưu trên đĩa
zQuyền truy cập (access rights): Thông tin vềcác
quyền truy cập tệp của mỗi tiến trình
8
Mởtệp có khóa
zMột số HĐH có toán tửnày
zDùng để điều khiển truy cập đồng thời đến
tệp
zCó hai cách khóa:
zMandatory – Khóa mang tính chất toàn cục
zAdvisory – Khóa mang tính chất hợp tác giữa
các tiến trình
9
Kiểu tệp, tên và phần mởrộng
10
Các phương pháp truy cập
zTruy cập tuần tự
read next
write next
reset
no read after last write
(rewrite)
zTruy cập trực tiếp
read n
write n
position to n
read next
write next
rewrite n
n= relative block number
11
Tệp truy cập tuần tự
12
Mô phỏng truy cập tuần tựvà trực tiếp

3
3
13
Ví dụvềtệp chỉsốvà Relative
Files
14
Cấu trúc thư mục
zThư mục là một tập các node chứa thông tin
vềtất cảcác tệp
F1F2F3
F4
Fn
Thư mục
Tệp
zThư mục và
tệp đều nằm
trên đĩa
zBackup của
thư mục và
đĩa có thểnằm
trên băng từ
15
Ví dụmột hệthống tệp
16
Thông tin trên thư mục thiết bị
zTên
zKiểu
zĐịa chỉ
zĐộ dài hiện tại
zĐộ dài lớn nhất
zThời gian của lần truy cập cuối (để lưu trữ)
zThời gian của lần cập nhật cuối (for dump)
zID của người chủtệp
zCác thông tin bảo vệ
17
Các toán tử trên thư mục
zTìm một tệp
zTạo một tệp
zXóa một tệp
zLiệt kê nội dung thư mục
zĐổi tên một tệp
zDuyệt toàn bộhệthống tệp
18
Cần tổchức thư mục để đạt được:
zTính hiệu quả: tìm thấy một tệp nhanh chóng
zTên tệp mang lại sựtiện lợi cho người dùng
zHai NSD có thể đặt cùng tên cho hai tệp khác nhau
zMột tệp có thểcó nhiều tên khác nhau
zNhóm tệp: Các tệp có thể được nhóm lại dựa
trên thuộc tính (ví dụnhóm các tệp chương
trình nguồn Java, nhóm các tệp thực hiện
được...)

4
4
19
Thư mục một mức
zMột thư mục cho tất cảNSD
zVấn đề đặt tên
zVấn đề nhóm các tệp với nhau
20
Thư mục hai mức
zMỗi NSD có các thư mục riêng
z Đường dẫn
zHai NSD có thể đặt cùng tên cho hai tệp khác nhau
zTìm kiếm tệp hiệu quả
zKhông có khả năng nhóm các tệp
21
Thư mục cấu trúc cây
22
Thư mục cấu trúc cây (tiếp)
zTìm kiếm hiệu quả
zCó khả năng nhóm các tệp
zThư mục làm việc hiện hành
zĐổi thư mục làm việc hiện hành
23
Thư mục cấu trúc cây (tiếp)
zĐường dẫn tuyệt đối và tương đối
zTạo một tệp trong thư mục hiện hành
zXóa tệp
rm <tên tệp>
zTạo thư mục con trong thư mục hiện hành
mkdir <tên thư mục>
Ví dụ:Nếu thư mục hiện hành là /mail
mkdir count mail
prog copy prt exp count 24
Thư mục với cấu trúc đồ thị
phi chu trình
zCác thư mục
có thểcó
chung thư
mục con và
tệp

5
5
25
Thư mục với cấu trúc đồ thị
phi chu trình (tiếp)
zTệp hoặc thư mục có thểcó các tên khác
nhau
zShortcut trong Windows
zLink trong Unix/Linux
zMềm dẻo hơn cấu trúc cây nhưng phức tạp
hơn:
zKhi xóa một tệp hoặc thư mục có nhiều tên
zCần sửdụng con trỏ ngược
zSửdụng biến đếm sốtên
26
Thư mục đồ thịtổng quát
27
Thư mục đồ thịtổng quát (tiếp)
zLàm cách nào để đảm bảo không có chu
trình?
zChỉcó phép link tới tệp, không cho link đến thư
mục
z“Dọn dẹp” hệthống tệp (garbage collection)
zMỗi khi có link mới, thực hiện thuật toán phát hiện
chu trình
28
Kết nối (mount) hệthống tệp
zMột hệthống tệp phải được mount trước khi
có thểtruy cập tới (sửdụng)
zMột tệp được mount tại điểm kết nối (mount
point)
29
Minh họa mount/unmount
30
Điểm kết nối (mount point)