You are on page 1of 26

ĐẠI HỌC BÁCH KHOA HÀ NỘI

TRƯỜNG CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG


---------------------*---------------------

BÀI TẬP LỚN


HỌC PHẦN: NGUYÊN LÝ HỆ ĐIỀU HÀNH
Đề tài:

GIAO DIỆN QUẢN LÝ BỘ NHỚ NGOÀI

Họ và tên : Đặng Hải Mai Linh


MSSV : 20210529
Lớp : Việt Nhật 03 K66
Mã lớp : 142574
Giảng viên hướng dẫn : ThS. Đỗ Tuấn Anh
Mục lục
1. Khái niệm File......................................................................................................3
1.1. Thuộc tính của file..........................................................................................3
1.2. Thao tác trên File...........................................................................................4
1.3. Kiểu file..........................................................................................................7
1.4. Cấu trúc file...................................................................................................8
1.5. Cấu trúc file trong hệ thống...........................................................................8
2. Các phương thức truy cập file..............................................................................8
2.1. Truy cập tuần tự (sequential access)..............................................................9
2.2 Truy cập trực tiếp (Direct Access)..................................................................9
2.3. Các phương pháp truy cập khác..................................................................10
3. Cấu trúc bộ nhớ và thư mục...............................................................................10
3.1. Cấu trúc lưu trữ...........................................................................................10
3.2. Tổng quan về thư mục..................................................................................11
3.2.1. Thư mục đơn tầng (Single-level directory).............................................12
3.2.2. Thư mục hai tầng (Two-level Directory)................................................12
3.2.3. Thư mục cấu trúc cây (Tree-structured Directory)................................13
3.2.4. Thư mục đồ thị Acylic (Acylic-graph Directory)....................................16
3.2.5. Thư mục cây tổng quát (General Graph Directory)...............................17
4. Liên kết các hệ thống file...................................................................................18
5. Chia sẻ file.........................................................................................................19
5.1. Chia sẻ file giữa những người dùng máy tính..............................................19
5.2. Chia sẻ giữa các hệ thống file ngoài máy tính.............................................20
5.2.1. Mô hình máy khách-máy chủ (client-server)..........................................20
5.2.2. Hệ thống thông tin phân tán (Distributed information System).............20
5.2.3. Xử lí các mâu thuẫn có thể xảy ra khi sử dụng chung file......................21
6. Bảo vệ file.......................................................................................................... 22
6.1. Kiểm soát truy cập file.................................................................................22
6.2. Kiểm soát người dùng..................................................................................23
6.3. Các phương pháp bảo vệ khác.....................................................................25
1. Khái niệm File
 Nói chung, file là tập hợp các thông tin được lưu trữ dưới dạng chuỗi bit, nội
dung của File được định nghĩa bởi người tạo File và người dùng File
 File được lưu trữ trong các thiết bị lưu trữ, ví dụ như: đĩa từ, băng, đĩa cững
 Hệ điều hành cung cấp một khung nhìn thân thiện cho người dùng, cho phép
tạo ra một bộ nhớ ảo, ánh xạ từ thiết bị bộ nhớ vật lý như đĩa từ sang đơn vị
lưu trữ logic, tạo nên các file.
 Các file được ánh xạ sang thiết bị lưu trữ vật lý nhờ hệ điều hành
 File lưu trữ các chương trình và dữ liệu. Dữ liệu có thể là số, chữ cái, hoặc
các bit nhị phân để biểu diễn các dữ liệu khá như ảnh, âm thanh, video
 Có 3 loại File chính:
o Text file: chuỗi các kí tự được sắp xếp thành hàng, có thể thành trang
o Source file: Chuỗi các hàm (functions), mỗi function được tổ chức
thành các định nghĩa và các dòng lệnh thực thi.
o Executable file: Các phần mã chương trình mà máy tính có thể nạp
vào bộ nhớ và thực thi chương trình.

1.1. Thuộc tính của file.


 Các thuộc tính của file thay đổi tùy từng hệ điều hành, trong đó tiêu biểu
gồm:
o Tên (name): Khi một file được đặt tên, file đó trở nên độc lập với các
tiến trình, người dùng và hệ thống tạo ra file. Tên file có thể là một
chuỗi kí tự để người dùng dễ đọc.
o Mã định danh (Identifier): Một tag đặc biệt (vd: một con số, ..), định
danh file đó trong hệ thống file. Con người không thể đọc mã này.
o Kiểu file (type): Cần thiết để hệ thống và ứng dụng quản lý và đọc file
này
o Địa chỉ (location)
o Kích thước (size)
o Lớp bảo vệ (protection): các phương thức cấp quyền xem và sửa file,
để bảo vệ file khỏi truy cập không tin cậy
o Ngày giờ, danh tính người dùng (Time, date and user identifier)
Cửa sổ thông tin của một tệp tin trên HĐH Window

1.2. Thao tác trên File


a. Các thao tác cơ bản
Các thao tác cơ bản mà hệ điều hành có thể cung cấp lời gọi hệ thống để thực hiện:
 Tạo File
o Tạo không gian chứa file trong hệ thống file
o Sau khi tạo file, hệ diều hành tạo đường dẫn (directory entry) tới file
mới trong thư mục
 Viết File
o Tìm kiếm trên thư mục để phát hiện vị trí của file
o Đặt con trỏ viết (write pointer) đến vị trí chuẩn bị viết trong file
o Khi người dùng viết file, con trỏ viết (write pointer) phải được cập
nhật vị trí liên tục
 Đọc File
o Tìm kiếm trên thư mục để phát hiện vị trí của file
o Cần sử dụng con trỏ đọc (read pointer) ở vị trí chuẩn bị đọc file.
o Vị trí đang đọc hiện tại có thể được đánh dấu là con trỏ vị trí hiện tại
trong file để thực hiện thêm thao tác viết file.
o Read pointer và write pointer có thể dùng chung con trỏ vị trí này,
giúp tiết kiệm bộ nhớ và giảm độ phức tạp của hệ thống.
 Thay đổi vị trí trong file
o Trong mỗi file đều chứa con trỏ vị trí hiện tại của file, con trỏ này có
thể thay đổi vị trí.
o Thao tác thay đổi vị trí hiện tại không cần các thao tác vào ra (I/O
Operation)
 Xóa file
o Để xóa file, ta tìm kiếm file cần xóa trong thư mục.
o Khi tìm thấy file, ta thực hiện giải phóng không gian bộ nhớ của file
để sử dụng cho các file khác, đồng thời xóa đường dẫn tới file trong
thư mục
 Cắt bới file
o Nếu người dùng muốn xóa nội dung file nhưng giữ nguyên các thuộc
tính các như tên, địa chỉ trong thư mục, hệ điều hành cho phép người
dùng thay đổi độ dài file và giải phóng bộ nhớ đã xóa, đồng thời giữ
các thuộc tính khác như tên, địa chỉ trong file.
Đây là 6 thao tác cơ bản trên file mà các hệ điều hành cần có. Ngoài ra hệ điều
hành cung cấp các thao tác khác để thực hiện trên file.
 Để giảm bớt thao tác tìm kiếm file trên thư mục liên tục, nhiều hệ thống yêu
cầu lời gọi hệ thống open() trước khi một file cần sử dụng. Những file được
thực hiện open() được lưu thông tin trong bảng open-file table. Khi người
dùng thao tác trên file, hệ thống có thể tìm kiếm ngay trên bảng. Khi file
không được dùng, hệ thống đóng file và xóa thông tin khỏi bảng.
 Hầu hết các hệ thống yêu cầu lập trình viên thực hiện lệnh gọi hệ thống
open() để mở file trước khi sử dụng file. Lệnh gọi hệ thống open() thực hiện
tìm file trong thư mực, lưu thông tin vào bảng open-file trả lại một con trỏ
đến file trong bảng. Ta có thể sử dụng con trỏ đó để thực hiện các thao tác
vào-ra, không cần tìm lại file, giúp đơn giản hóa giao diện lời gọi hệ thống
 Một vấn đề khác khi sử dụng file là khi nhiều ứng dụng cùng mở một file,
điều này có thể xảy ra bế tắc và sai lệch thông tin file, đồng thời khiến thao
tác open() và close() trên file phức tạp hơn. Để khắc phục vấn đề, hệ điều
hành sử dụng hệ thống bảng gồm 2 lớp:
o Per-process table: Bảng lưu thông tin về tiến trình được sử dụng file.
Mỗi con trỏ trong bảng này trỏ tới bảng open-file.
o System-wide open-file table: bảng lưu các thông tin của file không
liên quan đến tiến trình như địa chỉ vật lý, ngày truy cập, kích thước
file. Bảng thực hiện trên toàn hệ thống.
Khi một tiến trình mở 1 file, một con trỏ truy cập mới được thêm vào open-file
table của tiến trình, trỏ đến con trỏ truy cập phù hợp trên system-wide open-file
table. Trong mỗi file trong bảng system-wide open-file table có một biến count để
lưu số tiến trình đang sử dụng file. Mỗi lệnh hệ thống close() sẽ giảm biến count,
khi ( count = 0 ) thì hệ thống đóng file, xóa thông tin của file trong bảng open-file
table và system-wide open-file table.
Tóm lại, với mỗi file đang được mở open() sẽ đi kèm các thông tin sau:
 File pointer: con trỏ vị trí hiện tại của file để thực hiện thao tác read() và
write(). Trong mỗi tiến trình, file có một file pointer độc lập với các thuộc
tính khác của file.
 File-open count: biến count lưu số lượng tiến trình đang sử dụng file. Khi
một tiến trình thực hiện open(), biến count sẽ tăng lên, khi thực hiện close()
sẽ giảm biến count. Khi count = 0, hệ thống đóng file, xóa thông tin khỏi
bảng.
 Địa chỉ vật lí: hệ thống lưu địa chỉ của file trong bộ nhớ, để mỗi tiến trình hệ
thống không cần đọc file từ đĩa.
 Quyền truy cập: quyền truy cập được lưu tại bảng per-process table, giúp hệ
điều hành có thể cho phép hoặc cấm hoạt động vào-ra của file.
Một số hệ điều hành yêu cầu một tiến trình riêng để khóa file, tính năng này rất
hữu ích với những file được chia sẻ bởi nhiều tiến trình.
 Khi khóa file, hệ điều hành cung cấp các cơ chế khóa file bắt buộc hoặc tạm
thời:
o Khóa file bắt buộc (mandatory lock): Khi một tiến trình thực hiện
khóa file, hệ điều hành ngăn các tiến trình khác truy cập file đã khóa.
o Khóa file tạm thời (advisory lock): Khi một tiến trình thực hiện khóa
file, các tiến trình khác phải được lập trình để thu hồi khóa trước khi
truy cập file.
Ví dụ, hệ điều hành Windows áp dụng mandatory lock, với UNIX thì áp dụng
advisory lock.

1.3. Kiểu file


 Khi thiết kế hệ thống file, lập trình viên phải kiểm tra hệ điều hành có nhận
diện kiểu file được hỗ trợ không.
 Khi cấu hình kiểu file, ta thêm định dạng kiểu file như một phần tên file.
Tên file có dạng: name.extension.
 Hệ điều hành đọc phần định dạng file (extension) để xác định kiểu file và
các thao tác được thực hiện trên file.
 Các định dạng này không được hỗ trợ bới hệ điều hành, nhưng sẽ giúp các
ứng dụng có thể thực thi các thao tác được thực hiện trên file.

Các kiểu file phổ biến


1.4. Cấu trúc file
 Cấu trúc bên trong một file được xác định bằng kiểu file. Hệ điều hành yêu
cầu một số file phải tuân theo một cấu trúc quy định được định sẵn trong hệ
điều hành. Điều này khiến hệ điều hành phải chứa một số lệnh để hỗ trợ
nhiều kiểu cấu trúc file, khiến kích thước hệ điều hành tăng lên.
 Một số hệ điều hành hỗ trợ một số kiểu cấu trúc file nhất định. Trong UNIX,
mỗi file là một chuỗi các byte 8 bit, hệ điều hành không cần dịch các bit này.
Mỗi chương trình phải có những lệnh riêng để thông dịch file theo cấu trúc
phù hợp. Tuy nhiên, hệ điều hành phải hỗ trợ file thực thi (.exe) để hệ điều
hành có thể nạp và chạy chương trình.

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


 Các thao tác vào-ra trên bộ nhớ thực hiện theo từng block, và các block có
kích thước giống nhau, phụ thuộc kích thước của một sector. Nhưng các bản
ghi logic có độ dài khác nhau, nên cần đóng gói một số lượng bản ghi logic
và từng block vật lý.
 Ví dụ, hệ điều hành UNIX quy định các file là chuỗi các byte. Mỗi byte
được đánh địa chỉ riêng biệt bằng chỉ số offset ở đầu file. Nên kích thước
bản ghi logic là 1 byte, Hệ thống đóng gói các byte vào từng block trong địa
chỉ vật lý, ví dụ: 512 byte một block.
 Kích thước bản ghi logic, kích thước block vật lý, kĩ thuật đóng gói
(packing) quyết định số bản ghi logic trong mỗi block vật lý. Việc đóng gói
thực hiện bới các chương trình của hệ điều hành.
 Việc kích thước các block cố định có thể khiến một số phần của block bị
lãng phí.
Ví dụ: nếu 1 block có kích thước 512 byte, một file 1949 byte sẽ cần 4 block, thừa
99 byte !
Việc lãng phí block luôn xảy ra ở mọi hệ thống, để đảm bảo mọi file được lưu trữ
theo block, tránh hiện tượng phân mảnh (internal fragmentation).

2. Các phương thức truy cập file.


Khi cần sử dụng, hệ thống cần truy cập vào thông tin trong file và đọc thông tin
vào bộ nhớ máy tính. Sau đây là một số phương thức truy cập file phổ biến.
2.1. Truy cập tuần tự (sequential access)
 Truy cập tuần tự là truy cập file từ đầu file, các thông tin trong file được xử
lí tuần tự từng bản ghi.
Cách truy cập này được sử dụng trong các hệ thống dịch, editor và compiler.
Cách thức: khi đọc file, hệ thống gọi câu lệnh hệ thống readnext() ,đọc phần tiếp
theo của file và tự động tăng con trỏ vị trí hiện tại trong file (current-file-location
pointer). Tương tự với hoạt động viết file, câu lệnh writenext() được gọi, viết tiếp
vào cuối file và tịnh tiến đển cuối chuỗi được nhập vào file.

2.2 Truy cập trực tiếp (Direct Access)


 Hình thức truy cập trực tiếp quy định cấu tạo một file từ các bản ghi có độ
dài cố định, cho phép các chương trình đọc và viết các bản ghi với tốc độ
nhanh theo một thứ tự bất kỳ.
 Với hình thức truy cập trực tiếp, các thao tác trên file cần được điều chỉnh để
thêm số hiệu bản ghi (số hiệu block) là tham số. Theo đó, lệnh read(n) sẽ
đọc từ khối thứ n của file, khác với readnext() và write(n) thay vì
writenext(). Đặc biệt số hiệu block được người dùng cung cấp thường là số
hiệu tương đối so với block đầu file của file. Block đầu tiên của file là 0, tiếp
theo là 1 và nhiều hơn.
 Không phải mọi hệ điều hành đều hỗ trợ truy cập tuần tự và truy cập trực
tiếp. Nhưng lập trình viên có thể cấu hình truy cập tuần tự trên các file truy
cập trực tiếp bằng cách thêm biến cp xác định vị trí hiện tại trong file.

Cấu hình truy cập tuần tự trên file truy cập trực tiếp.
2.3. Các phương pháp truy cập khác.
 Truy cập theo chỉ số (index access): phương pháp dựa theo truy cập trực
tiếp, sử dụng chỉ số index chứa con trỏ trỏ đến nhiều block. Để tìm một bản
ghi trong file, hệ thống cần tìm chỉ số index và dùng con trỏ trong index để
truy cập trực tiếp đến file và tìm bản ghi mong muốn. Với các file lớn, ta có
thể tạo chỉ số cho các file chỉ số. Chỉ số chính chứa con trỏ đến các file chỉ
số thứ cấp, nơi lưu trữ con trỏ chỉ đến dữ liệu cần tìm.

3. Cấu trúc bộ nhớ và thư mục.


 Các file được lưu trữ trên các thiết bị truy cập ngẫu nhiên, bao gồm đĩa
cững, đĩa từ, đĩa tĩnh. Các thiết bị lưu trữ có thể được sử dụng toàn bộ dung
lượng để lưu trữ file, hoặc có thể được chia nhỏ để quản lý thuận tiện hơn.
Các thiết bị lưu trữ có thể được kết nối với nhau thành các tập RAID để bảo
vệ file khi một đĩa bị hỏng.
 Một hệ thống file có thể lưu trên từng phần của thiết bị lưu trữ. Một phần
thiết bị lưu trữ hệ thống file gọi là một volumn. Một volumn có thể là một
phần thiết bị lưu trữ, toàn bộ thiết bị, hoặc nhiều thiết bị kết nối với nhau
thành một RAID. Các volumn có thể chứa nhiều hệ điều hành, cho phép hệ
thống nạp và chạy nhiều hơn 1 hệ điều hành.
 Một volumn chứa một hệ thống file phải chứa thông tin về các file trong hệ
thống. Thông tin được lưu trong đầu vào của thư mục của thiết bị hoặc trong
một volumn chứa các bảng lưu thông tin. Thư mục này lưu các thông tin
gồm: tên, vị trí, địa chỉ, kích thước, của tất cả file trong hệ thống file.

3.1. Cấu trúc lưu trữ.


 Một máy tính đa chức năng sẽ lưu trữ các file theo hệ thống phục vụ từng
chức năng. Ví dụ:
o tmpfs, một hệ thống file "tạm thời" có nội dung bị mất nếu hệ thống
khởi động lại hoặc gặp sự cố, được tạo trong bộ nhớ chính không ổn
định.
o objfs là một hệ thống file "ảo" cho phép trình vá lỗi truy cập vào các
ký hiệu kernel. Về cơ bản, nó giao diện hóa hệ thống kernel giống như
một hệ thống file.
o ctfs: Hệ thống file ảo theo dõi dữ liệu "bắt buộc" để kiểm soát chương
trình nào được khởi chạy khi khởi động hệ thống và phải được duy trì
hoạt động trong suốt quá trình hoạt động.
+ lofs là hệ thống file "loop back " cho phép truy cập vào một hệ
thống file thay cho hệ thống file khác.
o procfs: hệ thống file ảo, cho phép xem dữ liệu trên tất cả các tiến trình
dưới dạng hệ thống file.
o ufs, zfs: hệ thống file phục vụ các mục đích chung
o Có rất nhiều hệ thống file trong máy tính. Trong mỗi hệ thống, các file
nên được chia thành các nhóm và quản lý và hoạt động theo nhóm.
Từng nhóm file được gọi là các thư mục (directories).

3.2. Tổng quan về thư mục.


 Thư mục được sử dụng để chuyển đổi tên file thành điểm vào thư mục
(directory entries). Cấu trúc logic của thư mục có thể được xác định bằng
nhiều cơ chế. Các thao tác có thể thực hiện trên thư mục.
1. Tìm kiếm các file: Để tìm một file cụ thể, bạn cần có khả năng tìm kiếm cấu
trúc thư mục. Các file có tên tượng trưng và các tên tương tự có thể biểu thị mối
quan hệ giữa các file, vì vậy hệ thống cần tìm tất cả các file có tên khớp với một
mẫu nhất định.
2. Tạo file trên thư mục: Người dùng có thể tạo file mới và thêm vào thư mục.
3. Xóa file: Khi một file không cần thiết, hệ thống có thể xóa được file khỏi thư
mục
4. Liệt kê file: Cần liệt kê các file trong thư mục và nội dung đầu vào thư mục của
mỗi file trong danh sách
5. Đổi tên file: Tên của một file đại diện cho nội dung của nó đối với người dùng,
do đó, có thể thay đổi tên nếu nội dung hoặc cách sử dụng file thay đổi. Đổi tên file
cũng có thể thay đổi vị trí của nó trong cấu trúc thư mục.
6. Duyệt hệ thống file: Đôi khi ta muốn truy cập tất cả các thư mục và file trong
cấu trúc thư mục. Vì lý do độ tin cậy, ta nên thường xuyên sao lưu nội dung và cấu
trúc của toàn bộ hệ thống file của mình. Trong hầu hết các trường hợp, hãy sao
chép tất cả các file vào băng từ. Kỹ thuật này cung cấp một bản sao dự phòng trong
trường hợp lỗi hệ thống. Ngoài ra, khi một file không còn được sử dụng, nó có thể
được sao chép vào băng, giải phóng không gian đĩa của file để các file khác sử
dụng lại.
Để thực hiện các thao tác trên, các thư mục có các cấu trúc riêng phục vụ các chức
năng. Các kiểu cấu trúc thư mục:

3.2.1. Thư mục đơn tầng (Single-level directory)


Trong thư mục đơn tầng, tất cả các file trong hệ thống nằm trong cùng một thư
mục.

Thư mục đơn tầng


- Lợi ích: Thư mục đơn tầng dễ hỗ trợ và dễ hiểu với người dùng
- Nhược điểm: Vì tất cả file trong cùng thư mục, các file phải có tên riêng biệt,
điều này khiến người dùng khó nhớ tên tất cả các file khi số lượng file tăng lên.
3.2.2. Thư mục hai tầng (Two-level Directory)
Trong thư mục hai tầng, Mỗi người dùng có Thư mục file người dùng (User Files
Directory-UFD) riêng. Các UFD có cấu trúc tương tự, nhưng mỗi UFD chỉ liệt kê
các file của một người dùng. Khi người dùng bắt đầu công việc của mình hoặc khi
người dùng đăng nhập, thư mục file chính của hệ thống (master file directory-
MFD) sẽ được tìm kiếm. MFD được lập chỉ mục theo tên người dùng hoặc số tài
khoản, với mỗi mục nhập trỏ đến UFD của người dùng đó.
Thư mục hai tầng
 Ưu điểm: Người dùng khác nhau có thể có các file trùng tên nên giải quyết
được vấn đề xung đột tên. Khi tạo hoặc xóa file, hệ điều hành chỉ tìm kiếm
UFD của người dùng đó để lấy file đó, nên sẽ không lấy hoặc xóa file của
người dùng khác.
 Nhược điểm: Cấu trúc này cô lập người dùng này với người dùng khác một
cách hiệu quả, khiến người dùng khó cộng tác trong các tác vụ hoặc truy cập
file của nhau. Một số hệ thống đơn giản không cho phép một người dùng
truy cập cục bộ các file của những người dùng khác. Hơn nữa, khi cấp quyền
truy cập, người dùng phải biết tên đường dẫn của file mong muốn (tên đĩa -
tên người dùng - tên file) để đặt tên duy nhất cho file. Ngoài ra, đối với các
file hệ thống chứa các lệnh, thư viện được tải bởi trình tải, nhiều trình thông
dịch lệnh chỉ coi các lệnh đó là tên của file để tải và thực thi. Tên file này sẽ
được tìm kiếm trên UFD hiện tại. Vì vậy, các file hệ thống phải được sao
chép vào từng UFD, điều này làm lãng phí rất nhiều dung lượng ổ đĩa.
Giải pháp cho tình huống này là sử dụng phương pháp tìm kiếm đường dẫn
(search path method). Đưa ra một tên file để tải, trước tiên hệ điều hành sẽ tìm
kiếm UFD cục bộ. Nếu file được tìm thấy, nó sẽ được sử dụng. Nếu không tìm
thấy, hệ thống sẽ tự động tìm kiếm các thư mục người dùng đặc biệt có chứa các
file hệ thống. Phương pháp này được sử dụng phổ biến nhất trên UNIX và
Windows. Mỗi người dùng có thể có đường dẫn tìm kiếm riêng của họ.
3.2.3. Thư mục cấu trúc cây (Tree-structured Directory)
Thư mục cấu trúc cây
Vì thư mục hai cấp có thể được xem như cây hai cấp nên có thể mở rộng cấu trúc
thư mục thành cây có chiều cao tùy ý. Cây có một thư mục gốc. Một thư mục
(hoặc thư mục con) chứa một tập hợp các file hoặc thư mục con. Một thư mục chỉ
đơn giản là một file khác, nhưng nó được xử lý theo một cách đặc biệt. Một bit
trong mỗi đầu vào của thư mục xác định đầu vào dưới dạng file (0) hoặc dưới dạng
thư mục con (1). Các lệnh gọi hệ thống đặc biệt được sử dụng để tạo và xóa các
thư mục. Mỗi quy trình có một thư mục hiện tại, thư mục này chứa hầu hết các file
mà quy trình hiện đang cần. Khi tham chiếu đến một file, thư mục hiện tại được
tìm kiếm. Nếu cần một file không có trong thư mục hiện tại, thì người dùng thường
phải chỉ định tên đường dẫn hoặc thay đổi thư mục hiện tại thành thư mục chứa file
đó.
Thư mục hiện tại ban đầu cho shell đăng nhập của người dùng được xác
định khi người dùng bắt đầu công việc hoặc khi người dùng đăng nhập. Hệ điều
hành tìm kiếm các file lưu tài khoản để tìm đầu vào hệ thống của người dùng. File
tài khoản có một con trỏ tới thư mục chính của người dùng. Bạn có thể sinh ra các
tiến trình khác từ shell.
Trong cấu trúc cây có 2 kiểu đường chỉ dẫn (path name):
 Chỉ dẫn tuyệt đối (absolute path): Bắt đầu từ gốc, đi xuống đến file cụ thể.
 Chỉ dẫn tương đối (relative path): chỉ dẫn bắt đầu từ thư mục hiện tại
Ưu điểm: Thư mục dạng cây cho phép người dùng xác định thư mục con của riêng
họ và thiết lập cấu trúc của file.Các thư mục riêng biệt chứa các file có chủ đề khác
nhau hoặc các định dạng thông tin khác nhau. Ngoài ra người dùng có thể sử dụng
tên đường dẫn để truy cập file của người dùng khác và thay đổi thư mục hiện tại.
Nhược điểm: Với thư mục cây, ta cần quan tâm vấn đề xóa file hoặc xóa thư mục.
Nếu thư mục không trống, người dùng phải xóa tất cả các thư mục con trước, việc
này rất tốn thời gian. Còn trong UNIX, với lệnh rm, người dùng có thể xóa tất cả
các file và thư mục con của thư mục. Cách tiếp cận này nguy hiểm hơn, nếu lệnh
đó được đưa ra do một lỗi hệ thống, một số lượng lớn file và thư mục sẽ cần được
khôi phục. Ngoài ra, những người dùng không thể chia sẻ file hoặc thư mục để
dùng chung.
3.2.4. Thư mục đồ thị Acylic (Acylic-graph Directory)

Thư mục đồ thị Acylic


 Thư mục đồ thị Acylic là thư mục có cấu trúc đồ thị Acylic và không tồn tại
chu trình. Thư mục Acylic là sự tổng quát hóa tự nhiên của thư mục dạng
cây. Kiến trúc thư mục này cho phép các thư mục được sử dụng chung các
thư mục con và file.
 Ưu điểm: nhiều người dùng có thể xem và sử dụng các thay đổi trong các
thư mục được chia sẻ, thay vì tạo hai bản sao của một file. Các file mới do
người dùng tạo sẽ tự động xuất hiện trong tất cả các thư mục con được chia
sẻ. Hoàn hảo cho làm việc theo nhóm. Ngay cả khi máy tính cá nhận, một số
file có thể cần được đặt trong các thư mục con khác nhau tùy thuộc vào tổ
chức file của người dùng. Tuy nhiên khi tạo các thư mục chia sẻ, phải đảm
bảo đồ hệ thống file không xảy ra chu trình.
 Nhược điểm: Khi tìm kiếm đồ thị acylic, hệ thống cần đảm bảo không duyệt
các thư mục được chia sẻ hai lần để tăng tốc độ duyệt. Nhưng một file ở thư
mục chung có thể có nhiều đường dẫn tuyệt đối (absolute path), nên tên file
khác nhau nhưng có thể chỉ đến cùng 1 file. Nếu duyệt toàn hệ thống, có thể
phải duyệt thư mục chung nhiều lần. Ngoài ra, khi 1 người dùng xóa file,
con trỏ đến file vẫn chỉ đến 1 file tuy không tồn tại. Nếu bộ nhớ dùng chung
của file đã được được hệ thống sử dụng cho file khác, con trỏ sẽ chỉ đến một
file khác không phải file người dùng tìm.
Để giải quyết vấn đề trên, Khi xóa file, hệ điều hành xóa cả thông tin trong
con trỏ file, không ảnh hưởng file gốc, chỉ xóa thông tin con trỏ. Lúc này hệ thống
không xác định được địa chỉ file, con trỏ không hiệu quả, nhưng để xóa con trỏ
trong hệ thống thì tốn kém. Một cách khác là hệ thống để con trỏ lại đến lúc cần
dùng. Khi nào dùng, hệ thống xác nhận tên file trong con trỏ không tồn tại và hệ
điều hành xử lý như khi gặp file có tên không hợp lệ. Một cách khác là giữ file đến
khi các con trỏ đến file bị xóa hết. Lưu các con trỏ đến file trong một danh sách
(file-reference list). Khi có một con trỏ mới đến file, hệ thống sẽ thêm thông tin
con trỏ vào list. Khi xóa con trỏ, hệ điều hành xóa thông tin con trỏ trong danh
sách. Khi hết con trỏ đến file, không còn thông tin con trỏ trong danh sách thì xóa
file. Có thể lưu thông tin bằng một biến count. Khi link mới đến file, count tăng
lên, khi xóa link sẽ giảm biến count. Khi count = 0, hệ điều hành xóa file khỏi bộ
nhớ. Hệ điều hành UNIX dùng cách này với các liên kết file không tượng trưng
(non-symbolic link). Một số hệ thống không cho phép chia sẻ chung các thư mục
để phòng ngừa lỗi xảy ra.
3.2.5. Thư mục cây tổng quát (General Graph Directory)

Thư mục cây tổng quát.


Thư mục cây tổng quát có cấu trúc như thư mục cây nhưng có các liên kết giữa
các thư mục giống thư mục đồ thị Acylic. Vì đồ thị thư mục có thể có các chu
trình, vì vậy hệ điều hành muốn tránh tìm kiếm bất kỳ thành phần nào hai lần để
tăng tốc độ tìm kiếm và đảm bảo độ chính xác.
 Nhược điểm: Vấn đề xảy ra khi hệ điều hành duyệt thư mục. Nếu thuật toán
duyệt thư mục chưa tối ưu, có thể xảy ra các vòng lặp vô hạn trong chu
trình. Để giải quyết vấn đề này, cần quy định số lượng thư mục sẽ được truy
cập trong quá trình tìm kiếm để kết thúc thuật toán. Ngoài ra, khi xóa file,
với thư mục đồ thị Acylic, nếu biến count bằng 0 thì không còn liên kết đến
file hoặc thư mục để có thể xóa. Nhưng khi các chu trình tồn tại, biến count
có thể không bằng 0 ngay cả khi không thể tham chiếu đến một thư mục
hoặc file nữa. Giải pháp cho vấn đề xóa file là sơ đồ thu gom rác (Garbage
collection scheme) để xác định khi nào tham chiếu cuối cùng đến file đã bị
xóa, đĩa có thể được sử dụng cho file khác. Việc thu gom rác liên quan đến
việc duyệt qua toàn bộ hệ thống file, đánh dấu mọi thứ có thể được truy cập.
Sau đó, lượt thứ hai thu thập mọi thứ không được đánh dấu vào danh sách
không gian trống. Cách tiếp cận này tốn thời gian, hiếm khi được thử. Một
cách để tránh chu trình khi thêm liên kết file mới vào cấu trúc là bỏ qua các
liên kết khi duyệt thư mục.

4. Liên kết các hệ thống file


Liên kết các hệ thống file là liên kết một volumn gồm nhiều file và thư
mục độc lập và một hệ thống file có sẵn để thành một sơ đồ, một hệ thống file mới,
cho phép hệ thống truy cập vào volumn mới đó.
một hệ thống file phải được liên kết trước khi nó có thể khả dụng cho các quy trình
trên hệ thống. Cấu trúc thư mục có thể được xây dựng từ nhiều file và hệ thống bắt
buộc liên kết file và thư mục để làm cho chúng khả dụng trong không gian tên hệ
thống file.
Quy trình liên kết file: Hệ điều hành được cung cấp tên của thiết bị và
điểm liên kết để xác định vị trí trong cấu trúc file khi hệ thống file được liên kết.
Một số hệ điều hành yêu cầu cung cấp loại hệ thống file khi liên kết, trong khi các
hệ điều hành khác kiểm tra cấu trúc của thiết bị và xác định loại hệ thống file. Tiếp
theo, hệ điều hành yêu cầu driver thiết bị đọc thư mục thiết bị, để xác minh thư
mục đó có hệ thống file hợp lệ. Cuối cùng, hệ điều hành thông báo trong cấu trúc
thư mục: một hệ thống file được liên kết vào vị trí đã chỉ định. Sơ đồ này cho phép
hệ điều hành duyệt qua cấu trúc thư mục, chuyển đổi giữa các hệ thống file.
Hệ thống có áp đặt các cơ chế để làm rõ chức năng liên kết file. Ví dụ, hệ
thống không cho phép liên kết trên một thư mục chứa file. Hoặc hệ thống có thể
cho phép hệ thống file được liên kết tại thư mục đó và che khuất các file hiện có
của thư mục cho đến khi hệ thống file dừng liên kết, chấm dứt việc sử dụng hệ
thống file và cho phép truy cập vào các file gốc trong thư mục đó. Hệ thống có thể
cho phép gắn nhiều lần cùng một hệ thống file, tại các điểm gắn khác nhau; hoặc
nó chỉ có thể cho phép một lần gắn kết trên mỗi hệ thống file.
Trong các hệ điều hành sẽ có các sơ đồ liên kết hệ thống file khác nhau. Ví
dụ:
 MAC OS X: Khi hệ thống file được tìm thấy, nó sẽ tự động được gắn vào
thư mục /volume và hiển thị biểu tượng thư mục với tên của hệ thống file.
Nhấp vào biểu tượng và người dùng có thể thấy hệ thống file mới được gắn.
 Windows: Các volumn có cấu trúc thư mục cây tổng quát (general graph
directory) với ký tự điều khiển (vd: C:/, D:/). Đường dẫn đến file có định
dạng: Ký tự điều khiển:\path\file. Các phiên bản Windows gần đây hơn cho
phép một hệ thống file được gắn vào bất kỳ đâu trong cây thư mục.
Trong thời gian khởi động, Windows sẽ tự động khám phá tất cả các thiết bị và gắn
kết tất cả hệ thống file được định vị.
 UNIX: Trong file cấu hình hệ thống chứa danh sách các thiết bị và điểm liên
kết để tự động liên kết khi khởi động, nhưng các quá trình liên kết khác có
thể được thực hiện thủ công.

5. Chia sẻ file
Khi thao tác trên file, các file có thể được chia sẻ trong các tiến trình để
tính toán nhanh hơn, đồng thời để những người dùng phối hợp với nhau trong dự
án. Khi chia sẻ file, những vấn đề cần giải quyết là:
5.1. Chia sẻ file giữa những người dùng máy tính
Khi chia sẻ file giữa các user, hệ điều hành phải xử lí vấn đề chia sẻ nội
dung file, thay đổi tên file, bảo vệ file. Hệ thống có thể cho phép người dùng truy
cập tự do vào file của người dùng khác hoặc người dùng đó cần quyền truy cập cụ
thể. Để lưu thông tin quyền của từng người dùng, hệ thống đa người dùng phải duy
trì nhiều thuộc tính file và thư mục hơn trên hệ thống một người dùng. Hệ thống có
thể sử dụng mô hình: chủ file và nhóm. Chủ sở hữu có nhiều quyền kiểm soát nhất
đối với file, thuộc tính nhóm xác định một số người dùng có thể chia sẻ quyền truy
cập vào file.
Trong hệ điều hành UNIX, chủ sở hữu có thể thực hiện mọi thao tác trên
file, các thành viên khác trong nhóm chỉ được thực hiện một số thao tác cụ thể do
chủ nhóm quyết định. ID chủ sở hữu và nhóm được lưu trữ với các thuộc tính file
khác. Khi người dùng yêu cầu một thao tác, Hệ thống sẽ kiểm tra chủ sở hữu hoặc
nhóm đó để cho biết quyền. Nhiều hệ thống có nhiều volume thì hệ thống sẽ liên
kết các volume đó và kiểm tra quyền.
5.2. Chia sẻ giữa các hệ thống file ngoài máy tính.
Trong các mạng máy mính, các máy tính từ xa có thể truyền thông và chia
sẻ tài nguyên với nhau, tài nguyên đó là các file. Các hình thức chia sẻ file qua
mạng máy tính có thể kể đến:
 Truyền file thủ công thông qua các chương trình, các giao thức như FTP
(File Transfer Protocol).
 Sử dụng các hệ thống file phân tán (Distributed File System – DFS), cho
phép sử dụng các thư mục từ xa trên các máy host.
 Mạng Internet, hay World Wide Web là phương pháp mở rộng phương pháp
đầu tiên, sử dụng các thao tác riêng biệt, về cơ bản là các wrapper của FTP
để truyền file.
Hiện nay, phương pháp chia sẻ file qua Internet là phổ biến nhất, có 2 hình thức
chia sẻ file qua Internet.
5.2.1. Mô hình máy khách-máy chủ (client-server)
Mô hình này cho phép liên kết hệ thống file từ máy từ xa. Trong mô hình này chứa
máy chủ (server) – máy chứa file, và máy khách (client) – máy truy cập vào file.
Server khai báo các tài nguyên có sẵn cho các client và gửi chính xác cho các
client đó. Để xác định ứng dụng client, mạng có thể sử dụng tên mạng hoặc địa chỉ
IP được mã hóa khác.
Ví dụ, trong hệ điều hành UNIX và hệ thống file mạng (NFS), xác thực diễn ra
thông qua thông tin mạng máy client, theo mặc định. Máy chủ phải tin tưởng máy
client để đưa ra ID người dùng chính xác để truyền thông. Và nhiều máy chủ có
thể cung cấp file cho nhiều máy khách.
5.2.2. Hệ thống thông tin phân tán (Distributed information System)
Để quản lý server-client dễ dàng hơn, hệ thống thông tin phân tán cung cấp quyền
truy cập thống nhất vào thông tin cần thiết cho tính toán từ xa, bao gồm tên máy
chủ và quyền truy cập mạng. Hệ thống sử dụng DNS để dịch giữa 2 thông tin. Các
hệ thống thông tin phân tán khác cung cấp tên người dùng/mật khẩu/userID/không
gian ID nhóm cho một cơ sở phân tán.
Các hệ thống UNIX đã sử dụng rất nhiều phương pháp thông tin phân tán. Còn hệ
thống file Internet chung của Microsoft (CIFS) yêu cầu xác thực người dùng để
đăng nhập mạng để yêu cầu máy chủ truy cập hệ thống file được yêu cầu.
Khi chia sẻ file qua mạng, rất nhiều vấn đề có thể xảy ra trong quá trình truy
cập hệ thống file từ xa, dẫn đến mất file. Để đảm bảo an toàn, hệ thống có thể có
cơ chế xử lý khi lỗi, bao gồm chấm dứt mọi hoạt động đối với máy chủ bị mất hoặc
trì hoãn hoạt động cho đến khi có thể truy cập lại máy chủ. Giải pháp thứ hai được
sử dụng nhiều hơn. Để thực hiện khôi phục truy cập sau khi mất, cả máy khách và
máy chủ phải duy trì một số thông tin trạng thái. Trong trường hợp mất kết nối,
nhưng các hệ thống file từ xa được gắn và mở file, giao thức NFS triển khai DFS
không trạng thái. Giao thức NFS mang tất cả thông tin cần thiết để định vị file
thích hợp và thực hiện thao tác được yêu cầu. Vì NFS coi kết nối từ máy khách là
hợp pháp nên một số vấn đề bảo mật có thể xảy ra. NFS4 đã cải thiện vấn đề này
và hiệu suất.
5.2.3. Xử lí các mâu thuẫn có thể xảy ra khi sử dụng chung file.
Khi nhiều người dùng cùng sử dụng file, thông tin trong file có thể bị thay đổi liên
tục bởi nhiều người dùng, dẫn đến sai lệch trong tính toán. Để giải quyết vấn đề,
cần có các cơ chế quản lí dùng chung file. Đó là cơ chế ngữ nghĩa nhất quán
(Consistency Semantics). Cơ chế chỉ định có bao nhiêu người dùng của một hệ
thống truy cập đồng thời vào một file được chia sẻ, từ đó chỉ định khi nào những
sửa đổi dữ liệu của một người dùng sẽ được quan sát bởi những người dùng khác.
Một số ví dụ nổi bật về tính nhất quán ngữ nghĩa
5.2.3.1. Cơ chế Ngữ nghĩa nhất quán trong UNIX
Trong UNIX, nội dung được ghi vào một file đang mở bởi một người dùng sẽ hiển
thị ngay lập tức đối với những người dùng khác đang mở file này. Chế độ chia sẻ
này cho phép người dùng chia sẻ con trỏ của vị trí hiện tại vào file (current-file-
position pointer). Do đó, việc một người dùng tăng con trỏ sẽ ảnh hưởng đến tất cả
người dùng chia sẻ. Trong cơ chế nhất quán ngữ nghĩa UNIX, một file được liên
kết với một hình ảnh vật lý duy nhất được truy cập dưới dạng tài nguyên độc
quyền. Tranh giành một hình ảnh duy nhất này gây ra sự chậm trễ trong quy trình
của người dùng.
5.2.3.2. Cơ chế phiên ( Session Semantics )
Cơ chế này được sử dụng trong hệ thống file Andrew (OpenAFS). Việc ghi vào
một file đang mở bởi một người dùng sẽ không hiển thị ngay lập tức đối với những
người dùng đang mở cùng một file. Sau khi một file được đóng, những thay đổi
được thực hiện đối với file đó chỉ hiển thị trong các phiên bắt đầu sau đó. Các
phiên bản đã mở của file không phản ánh những thay đổi này. Do đó, nhiều người
dùng được phép thực hiện cả truy cập đọc và ghi đồng thời trên hình ảnh file của
họ mà không bị chậm trễ. Hầu như không có ràng buộc nào được thực thi đối với
việc lên lịch truy cập.
5.2.3.3. Cơ chế file chia sẻ bất biến
Cơ chế này quy định không thể sửa đổi file được chia sẻ. Tên của file không thể
được sử dụng lại, nội dung của file không thể thay đổi. File được chia sẻ chỉ ở chế
độ read().

6. Bảo vệ file
File là tài nguyên quan trọng trong máy tính, lưu thông tin sử dụng của
người dùng. Vì vậy, ta muốn giữ thông tin được lưu trữ an toàn khỏi các tác động
vật lý và truy cập không đúng cách. Thông thường, bảo mật thường được thực hiện
bằng việc tạo bản sao của file. Nhiều máy tính có các chương trình hệ thống tự
động sao chép các file đĩa vào băng theo định kỳ để ngăn các file vô tình bị hủy do
sự cố phần cứng hoặc vô tình bị xóa. Ngoài ra, lỗi trong hệ thống file có thể khiến
nội dung file bị mất. Một số biện pháp bảo vệ file khỏi lỗi hệ thống bao gồm:
6.1. Kiểm soát truy cập file.
Nhu cầu bảo vệ file xuất phát trực tiếp của việc truy cập file, vì vậy điều
chúng ta cần là các quyền truy cập được kiểm soát. Hệ thống file cung cấp quyền
truy cập được kiểm soát bằng cách giới hạn các loại quyền truy cập file có thể
được thực hiện. Các loại truy cập có thể được kiểm soát:
 Đọc: Đọc từ file.
 Viết: Viết hoặc viết lại file.
 Thực thi: Tải file vào bộ nhớ và thực thi nó.
 Mở rộng: Ghi thông tin bổ sung vào cuối file.
 Xóa bỏ: Xóa file và giải phóng dung lượng để sử dụng lại.
 Liệt kê: Liệt kê tên và thuộc tính của các file
Các hoạt động cấp cao khác cũng có thể được kiểm soát. Nhưng đối với nhiều hệ
thống, các hoạt động này có thể được thực hiện bằng cách một chương trình hệ
thống thực hiện các cuộc gọi hệ thống cấp thấp hơn. Vì vậy, hệ thống có thể áp
dụng các cơ chế bảo vệ ở mức hoạt động thấp ở trên.Ví dụ: Thao tác sao chép có
thể được thực hiện bởi một chuỗi các thao tác đọc.
Tuy nhiên, các cơ chế bảo vệ phải phù hợp với các ứng dụng đã định. Một hệ
thống máy tính nhỏ có thể không cần các biện pháp bảo vệ phức tạp như một máy
tính công ty lớn phục vụ tài chính, nghiên cứu.,..
6.2. Kiểm soát người dùng
Cách tiếp cận phổ biến nhất cho vấn đề bảo vệ là kiểm soát người dùng.
Những người dùng khác nhau cần các kiểu truy cập khác nhau vào một file hoặc
thư mục. Việc triển khai này có thể được thực hiện với danh sách kiểm soát truy
cập (ACL) tại mỗi file và thư mục. Khi người dùng yêu cầu quyền truy cập vào
một file, hệ điều hành sẽ kiểm tra ACL để quyết định xem người dùng đó có được
phép truy cập file hay không.
 Ưu điểm: phương pháp cho phép các phương thức truy cập phức tạp.
 Nhược điểm: Độ dài của ACL có thể rất lớn và điểm đầu vào thư mục cần
thay đổi từ kích thước cố định sang kích thước động, điều này gây khó khăn
cho việc quản lý không gian bộ nhớ.
Để giải quyết vấn đề trên, nhiều hệ thống phân loại người dùng liên quan đến mỗi
file thành 3 nhóm:
 Chủ nhân (Owner): Người dùng đã tạo file là chủ sở hữu.
 Nhóm (Group): Một nhóm người dùng đang chia sẻ file và cần quyền truy
cập tương tự là một nhóm
 Toàn bộ (Universe). Tất cả những người dùng khác trong hệ thống tạo thành
universe.
Cách tiếp cận phổ biến nhất gần đây là kết hợp các ACL với lược đồ kiểm soát truy
cập chủ sở hữu, nhóm và toàn bộ, tạo góc nhìn tổng quát hơn (và dễ thực hiện hơn)
phương pháp phân nhóm vừa được mô tả.

Trong hệ thống UNIX, bảo vệ thư mục và file được xử lý theo sơ đồ ba trường này.
Mỗi trường bao gồm ba bit “rwx”, trong đó “r” kiểm soát quyền truy cập đọc, “w”
kiểm soát quyền ghi, “x” kiểm soát việc thực thi. Cần 9 bit cho mỗi file để lưu
thông tin bảo vệ. Do đó, người dùng chỉ có thể liệt kê nội dung của thư mục con
nếu bit “r” được đặt trong trường thích hợp. Tương tự, người dùng chỉ có thể thay
đổi thư mục hiện tại của mình sang thư mục hiện tại khác nếu bit “x” được liên kết
với thư mục con được đặt trong trường thích hợp
Để sơ đồ này hoạt động bình thường, các quyền và danh sách truy cập phải được
kiểm soát chặt chẽ. Việc kiểm soát này có thể được thực hiện theo nhiều cách. Ví
dụ, hệ thống UNIX. Các nhóm chỉ có thể được tạo và sửa đổi bởi người quản lý cơ
sở (hoặc siêu người dùng). Vì vậy, kiểm soát này được thực hiện bởi sự tương tác
của con người.
Một khó khăn là kết hợp các phương pháp bảo vệ này trong giao diện người dùng,
để người dùng có thể hiểu ACL tùy chọn được đặt trên file. Ví dụ: Windows quản
lý danh sách kiểm soát truy cập thông qua GUI, chủ sở hữu hoặc người quản lý file
có thể cho phép hoặc từ chối quyền truy cập của người dùng khác bằng GUI.

Giao diện quản lí người dùng trên Windows


Một khó khăn khác là cấp phép thêm quyền khi bảng ACL và quyền của người
dùng bị xung đột. Ví dụ khi người dùng trong nhóm được cấp quyền đọc nhưng
người dùng đó được cấp quyền đọc và ghi trong ACL. Nói chung, quyền ACL
được ưu tiên hơn, vì hệ thống ưu tiên rõ ràng rõ ràng.

6.3. Các phương pháp bảo vệ khác


Ngoài phương pháp lưu thông tin người dùng hoặc kiểm soát truy cập như đã kể
trên, một phương pháp khác là liên kết mật khẩu với mỗi tập tin
 Ưu điểm: Việc sử dụng mật khẩu có tính bảo mật cao, thông tin đăng nhập
được lưu để kiểm soát quyền truy cập vào file
 Nhược điểm: Một nhược điểm của phương pháp dùng mật khẩu là nếu mật
khẩu được chọn ngẫu nhiên và thay đổi thường xuyên thì số lượng mật khẩu
mà người dùng phải nhớ sẽ trở nên lớn hơn, gây bất tiện cho người dùng.
Ngoài ra, nếu một mật khẩu được sử dụng cho mỗi file, khi nó được phát
hiện, mọi file đều có thể được truy cập, các file dễ bị tấn công.
Giải pháp được đưa ra là một số hệ thống đã liên kết mật khẩu với thư mục con,
thay vì các file riêng lẻ, giúp giảm số lượng mật khẩu cần ghi nhớ, mà vẫn bảo đảm
bảo mật.
Trong cấu trúc thư mục nhiều cấp, chúng ta cần bảo vệ không chỉ các file riêng
lẻ mà cả tập hợp các file trong thư mục con; nghĩa là chúng ta cần cung cấp cơ chế
bảo vệ thư mục. Trong thư mục, việc tạo và xóa file phải được kiểm soát. Ngoài ra,
liệt kê các nội dung của thư mục cũng phải được bảo vệ hoạt động. Tương tự, nếu
tên đường dẫn đề cập đến một file trong thư mục, người dùng phải được phép truy
cập vào cả thư mục và file. Trong các hệ thống mà các file có thể có nhiều tên
đường dẫn (chẳng hạn như đồ thị Acylic và đồ thị cây tổng quát), một người dùng
nhất định có thể có các quyền truy cập khác nhau đối với một file cụ thể, tùy thuộc
vào tên đường dẫn được sử dụng.

You might also like