MÔ II.1 M Tập tin Thư m Tậ Tên tậ Tập tin l trình tạo được tru Cách đặ sử dụng các ký tự Hệ thống phân biệ Nhiều hệ sau được ký tư, ph prog.c.Z kết thúc các iều hành.. Nó c cho biết tê
Trang 1BÀI 8 HỆ THỐNG QUẢN LÝ TẬP TIN
Nguồn : 3c.com.vn
Trong hầu hết các ứng dụng, tập tin là thành phần chủ yếu Cho dù mục tiêu của ứng dụng là gì nó cũng phải bao gồm phát sinh và sử dụng thông tin Thông thường đầu vào của các ứng dụng là tập tin và đầu ra cũng là tập tin cho việc truy xuất của người sử dụng và các chương trình khác sau này Trong bài học này chúng ta sẽ tìm hiểu những khái niệm và cơ chế của hệ thống quản lý tập tin thông qua các nội dung như sau:
Các khái niệm cơ bản
Mô hình tổ chức và quản lý các tập tin
Bài học này giúp chúng ta hiểu được tập tin là gì, cách thức tổ chức và quản lý tập tin như thế nào Từ đó giúp chúng ta hiểu được các cơ chế cài đặt hệ thống tập tin trên các hệ điều hành
Bài học này đòi hỏi những kiến thức về : các thao tác với tập tin, một số tính chất của tập tin ở góc độ người sử dụng và những kiến thức về cấu trúc dữ liệu cũng như về kiến trúc máy tính phần cấu trúc và tổ chức lưu trữ của đĩa
I CÁC KHÁI NIỆM CƠ BẢN
I.1 Bộ nhớ ngoài
Máy tính phải sử dụng thiết bị có khả năng lưu trữ trong thời gian dài (long-term) vì : Phải chứa những lượng thông tin rất lớn (giữ vé máy bay, ngân hàng )
Thông tin phải được lưu giữ một thời gian dài trước khi xử lý
Nhiều tiến trình có thể truy cập thông tin cùng lúc
Giải pháp là sử dụng các thiết bị lưu trữ bên ngoài gọi là bộ nhớ ngoài
I.2 Tập tin và thư mục
Tập tin
Tập tin là đơn vị lưu trữ thông tin của bộ nhớ ngoài Các tiến trình có thể đọc hay tạo mới tập tin nếu cần thiết Thông tin trên tập tin là vững bền không bị ảnh hưởng bởi các xử lý
Trang 2tạo hay k
bởi hệ đ
Thư
Để lưu t
thống có
I.3 Hệ
Các tập
gồm : cá
dụng và
các thao
II MÔ
II.1 M
Tập tin
Thư m
Tậ
Tên tậ
Tập tin l
trình tạo
được tru
Cách đặ
sử dụng
các ký tự
Hệ thống
phân biệ
Nhiều hệ
sau được
ký tư, ph
prog.c.Z
kết thúc các
iều hành
ư mục
trữ dãy các
ó thể coi nh
ệ thống qu
tin được qu
ách hiển thị
bảo vệ tập
o tác trên thư
HÌNH TỔ
Mô hình
n
mục
ập tin :
ập tin :
là một cơ ch
o một tập tin
uy xuất bởi
t tên tập tin
8 chữ cái đ
ự số và ký t
g tập tin có
ệt chữ thườn
ệ thống tập
c gọi là phầ
hần mở rộn
Z Một số ki
c tiến trình,
tập tin, hệ
hư là tập tin
uản lý tập ti
uản lý bởi h , các yếu tố tin, các tha
ư mục
CHỨC VÀ
hế trừu tượn
n, nó sẽ đặt các tiến trìn
n của mỗi hệ
để đặt tên tậ
tự đặc biệt c
thể có hay
ng và hoa c tin hỗ trợ t
ần mở rộng
g có từ 1 đế iểu mở rộng
chỉ mất đi
thống quản
in
hệ điều hành
ố cấu thành
ao tác trên tậ
À QUẢN L
ng và để qu một tên, kh
nh khác với
ệ điều hành
ập tin như c cũng được s
không phâ còn MS-DO tên tập tin g Ví dụ : vid
ến 3 ký tự
g thông thườ
khi user thậ
n lý tập tin c
h với cơ chế tập tin, các
ập tin Cách
LÝ CÁC TẬ
uản lý mỗi đ
hi tiến trình
i tên tập tin
h là khác nh ctdl, caycb,
sử dụng như
ân biệt chữ t
OS thì không gồm 2 phần du.txt Tron Trong UNI ờng là :
ật sự muốn
cung cấp th
ế gọi là hệ t
ch đặt tên, c
h tổ chức th
ẬP TIN
đối tượng p
h kết thúc tậ
đó
hau, đa số cá tamhghau v
ư baitap2…
thường và c
g phân biệt
được phân
ng MS-DOS
IX có thể có
xóa Tập ti
hư mục, mà
thống quản cách truy xu
hư mục, các
phải có một
ập tin vẫn tồ
ác hệ điều h v.v…, thườ
…,
chữ hoa Ví
n cách bởi d
S tên tập tin
ó nhiều phâ
in được quả
trong nhiều
lý tập tin B uất, cách sử
c đặc tính và
tên Khi tiế
ồn tại và có
hành cho ph ờng thường t
í dụ : UNIX
dấu ‘.’ mà ph
n có từ 1 đến
ân cách như
ản lý
u hệ
Bao
ử
à
ến thể
hép thì
X
hần
n 8
Trang 3.bak, ba
Trên thự
dịch C c
Cấu tr
Gồm 3 l
Dãy tuầ
DOS và
Dãy cá
Cấu trú
một trườ
Kiểu t
Nếu hệ đ
tin đó C
tập tin th
Tập tin
Thư mụ
Tập tin
tự như m
Tập tin
Tập tin
Tập tin
có thể kh
một edit
cũng dễ
Tập tin n
phân gồm
đúng V
gồm năm
byte nhậ
as, bin, c,
ực tế phần m
chỉ nhận biế
rúc của tập
loại :
ần tự các by
UNIX sử d
ác record có
úc cây : gồm
ờng khóa gi
tập tin :
điều hành n
Các hệ điều
hường, thư
n thường : là
ục : là nhữn
n có ký tự đặ
màn hình, m
n khối : dùng
n thường đư
văn bản ch
hác nhau Ư
tor thông th
dàng làm đ
nhị phân :
m dãy các b
í dụ một mộ
m thành phầ
ận diện cho
.dat, doc, f
mở rộng có
ết các tập tin
p tin :
yte không c dụng loại nà
ó chiều dài c
m cây của n iúp cho việc
nhận biết đư hành hỗ trợ mục, tập tin
à tập tin tex
ng tập tin hệ
ặc biệt : liên
máy in, mạn
g để truy xu ược chia làm hứa các dòn
Ưu điểm của hường.Đa số đầu vào và đ
có cấu trúc byte , nhưng
ột tập tin nh
ần : header, biết đó là t
ftn, hlp, lib hữu ích tro
n có phần m
cấu trúc : hệ
ày
cố định
những recor
c tìm kiếm n
ược loại tập
ợ cho nhiều
n có ký tự đ
xt hay tập ti
ệ thống dùn
n quan đến
ng
uất trên thiế
m hai loại là
g văn bản c
a kiểu tập ti
ố các chươn đầu ra cho c
c khác tập ti
g hệ điều h
hị phân thi h , text, data, tập tin thi hà
b, obj, pas ong một số t
mở rộng là
ệ điều hành
rd, không cầ nhanh hơn
tin, nó có t
u loại tập tin đặc biệt, tập
n nhị phân
ng để lưu gi nhập xuất t
ết bị đĩa
à tập tin văn cuối dòng c
in này là nó
ng trình dùn
cơ chế pipe
in văn bản
ành chỉ thự hành được relocation b ành Sau đó
s, tex, txt
trường hợp,
C
không biết
ần thiết có c
thể thao tác
n khác nhau
p tin khối
chứa thông
ữ cấu trúc c thông qua c
n bản và tập
ó ký hiệu e
ó có thể hiển
ng tập tin vă eline
Mặc dù về
ực thi tập tin của UNIX
bits, symbo
ó là 16 bit c
, ví dụ như
t nội dung c
cùng độ dài
c một cách h
u bao gồm c
g tin của ngư của hệ thốn các thiết bị
p tin nhị phâ nter Mỗi d
n thị, in hay
ăn bản để n
mặt kỹ thu
n đó nếu nó Thường th
ol table Hea cho biết kích
có những tr
của tập tin:M
i, mỗi recor
hợp lý trên các kiểu như
ười sử dụng
ng tập tin
nhập xuất t
ân
dòng có độ d
y soạn thảo nhập xuất, n
uật , tập tin n
có cấu trúc hường nó ba ader bắt đầu
h thước các
rình
MS-rd có
tập
ư :
g
tuần
dài với
nó
nhị
c
ao
u bởi
c
Trang 4thành ph
text của
symbol đ
Một ví d
chưa đư
và kích t
Truy x
Tập tin l
bộ nhớ c
một phư
cách truy
Kiểu tru
trong tập
tin theo
hần của tập
tập tin Nó
được dùng
dụ khác là tậ
ợc liên kết
thước…
xuất tập tin
lưu trữ các
của máy tín
ương pháp tr
y xuất
uy xuất tập t
p tin theo th
cách này H
tin, địa chỉ được nạp v
để debug
ập tin nhị p Bao gồm m
n :
thông tin K
nh Có nhiều ruy xuất, m
tin đơn giản
hứ tự từ đầu Hai thao tác
bắt đầu thự vào bộ nhớ
phân kiểu ar một header
Khi tập tin đ
u cách để tr một số hệ thố
n nhất là tru
u Các trình
c chủ yếu trê
ực hiện và m
và định vị l
rchive Nó c cho biết tên
được sử dụn ruy xuất chú ống khác, n
uy xuất tuần soạn thảo h
ên tập tin là
một số bit c lại bởi nhữn
chứa các thư
n, ngày tạo,
ng, các thôn úng Một số như IBM ch
n tự Tiến tr hay trình bi
à đọc và ghi
cờ Sau head
ng bit reloc
ư viện đã đ , người sở h
ng tin này đ
ố hệ thống c hẳng hạn ch
rình đọc tất iên dịch cũn
i Thao tác
der là dữ liệ cation Bảng
được dịch nh hữu, mã bảo
được đưa và cung cấp ch
ho phép nhiề
t cả các byt
ng truy xuấ đọc sẽ đọc
ệu và
g
hưng
o vệ,
ào
hỉ
ều
e
t tập một
Trang 5mẫu tin
như vậy
cho phép
Truy xuấ
dụng Tr
xuất thứ
biệt gọi
tự từ vị t
Một kiểu
có kích t
cần theo
ngẫu nhi
trường h
hạn Ngo
theo chỉ
Thuộc
Ngoài tê
thuộc tín
Các thuộ
tiếp theo tr
Tập tin có
p di chuyển
ất kiểu này
ruy xuất tuầ
ứ nhất thao t
là SEEK cu
trí bắt đầu
u truy xuất
thước bằng
o thứ tự Kiể
iên bất kỳ k
hợp phải tru
oài ra còn c
mục
c tính tập ti
ên và dữ liệ
nh
ộc tính thôn
Tên th Bảo vệ
Mật khẩ
Người t
Người s
ên tập tin v
ó thể tự khở
n con trỏ tập
thuận lợi c
ần tự cần th tác đọc bắt ung cấp vị t
khác là truy nhau, nó ch
ểu truy xuất khối dữ liệu
uy xuất một
có một số cá
in :
u, hệ điều h
ng dụng tron
huộc tính
ẩu tạo
sở hữu
và tự động tă
ởi động lại từ
p tin đi tới h
ho các loại hiết cho nhiề đầu ở vị trí trí hiện thời
y xuất trực
ho phép chư
t này dựa tr
u nào của tậ
t khối lượng ách truy xu
hành cung c
ng một số h
Ai có thể Mật khẩu
Id của ng Người sở
ăng con trỏ
ừ vị trí đầu hoặc đi lui n
băng từ và
ều ứng dụn đầu tập tin
i làm vị trí b
tiếp Một tậ ương trình rên mô hình
ập tin Truy
g thông tin l
ất khác dự
cấp thêm m
hệ thống tập
Ý
ể truy xuất đ
u cần thiết đ gười tạo tập
ở hữu hiện t
tập tin Th tiên và tron
n mẫu tin
à cũng là các
g Có hai cá
n, cách thứ h bắt đầu Sau
ập tin có cấ đọc hoặc gh
h của đĩa Đ xuất trực ti lớn như tron trên kiểu tru
một số thông
p tin :
Ý nghĩa được và bằn
để truy xuất
p tin tại
hao tác ghi c
ng một số h
ch truy xuấ ách truy xu hai có một t
u đó tập tin
ấu trúc là cá
hi nhanh ch Đĩa cho phép iếp được sử
ng cơ sở dữ
uy xuất này
g tin cho tập
ng cách nào
t tập tin
cũng tương
hệ thống tập
ất khá thông uất Cách tru thao tác đặc
n được đọc t
ác mẫu tin lo hóng mà kh
p truy xuất
ử dụng trong
ữ liệu chẳng
y như truy x
p tin gọi là
o
tự
p tin
g
uy
c tuần
ogic hông
g
g xuất
Trang 6Th
HỆ TH
Chỉ đọc
Aån
Hệ thốn
Lưu trữ
ASCII/b
Truy xu
nhiên
Temp
Khóa
Độ dài c
Vị trí kh
Giờ tạo
Thời gia
cập cuố
Thời gia
đổi cuối
Kích thư
thời
Kích thư
hư mục :
HỐNG TH
c
ng
ữ binary uất ngẫu
của record hóa
an truy
ối cùng
an thay
i cùng ước hiện
ước tối đa
Hình 8.3 M
HƯ MỤC TH
0 là đọc g
0 là bình
kê
0 là bình
0 đã đuợc
0 là tập ti
0 truy xu
0 là bình thúc
0 là khôn
Số byte t Offset củ Ngày và Ngày và
Ngày và
Số byte c
Số byte t
Một số thuộ
HEO CẤP B
ghi, 1 là chỉ thường, 1 l
thường, 1 l
c backup, 1
in văn bản, uất tuần tự,
thường, 1 l
ng khóa, kh trong một re
ủa khóa tron giờ tạo tập giờ truy xu
giờ thay đổ
của tập tin
tối đa của tậ
ộc tính thôn
BẬC :
ỉ đọc
là không hi
là tập tin hệ
1 cần backup
1 là tập tin
1 là truy xu
là bị xóa kh
ác 0 là khóa ecord
ng mỗi reco tin
uất tập tin gầ
ổi tập tin gầ
ập tin
ng dụng của
ển thị khi li
ệ thống
p
n nhị phân uất ngẫu nhi
hi tiến trình
a
ord
ần nhất
ần nhất
a tập tin
iệt
iên
kết
Trang 7Một thư mục thường thường chứa một số entry, mỗi entry cho một tập tin Mỗi entry
chứa tên tập tin, thuộc tính và địa chỉ trên đĩa lưu dữ liệu hoặc một entry chỉ chứa tên tập tin và một con trỏ, trỏ tới một cấu trúc, trên đó có thuộc tính và vị trí lưu trữ của tập tin
Khi một tập tin được mở, hệ điều hành tìm trên thư mục của nó cho tới khi tìm thấy tên của tập tin được mở Sau đó nó sẽ xác định thuộc tính cũng như địa chỉ lưu trữ trên đĩa và đưa vào một bảng trong bộ nhớ Những truy xuất sau đó thực hiện trong bộ nhớ chính
Số lượng thư mục trên mỗi hệ thống là khác nhau Thiết kế đơn giản nhất là hệ thống chỉ
có thư mục đơn(còn gọi là thư mục một cấp), chứa tất cả các tập tin của tất cả người dùng, cách này dễ tổ chức và khai thác nhưng cũng dễ gây ra khó khăn khi có nhiều người sử dụng vì sẽ có nhiều tập tin trùng tên Ngay cả trong trường hợp chỉ có một người sử dụng, nếu có nhiều tập tin thì việc đặt tên cho một tập tin mới không trùng lắp là một vấn đề khó
Cách thứ hai là có một thư mục gốc và trong đó có nhiều thư mục con, trong mỗi thư mục con chứa tập tin của người sử dụng (còn gọi là thư mục hai cấp), cách này tránh được trường hợp xung đột tên nhưng cũng còn khó khăn với người dùng có nhiều tập tin Người sử dụng luôn muốn nhóm các ứng dụng lại một cách logic
Từ đó, hệ thống thư mục theo cấp bậc (còn gọi là cây thư mục) được hình thành với mô hình một thư mục có thể chứa tập tin hoặc một thư mục con và cứ tiếp tục như vậy hình thành cây thư mục như trong các hệ điều hành DOS, Windows, v v
Ngoài ra, trong một số hệ điều hành nhiều người dùng, hệ thống còn xây dựng các hình thức khác của cấu trúc thư mục như cấu trúc thư mục theo đồ thị có chu trình và cấu trúc thư mục theo đồ thị tổng quát Các cấu trúc này cho phép các người dùng trong hệ thống
có thể liên kết với nhau thông qua các thư mục chia sẻ
Trang 8ĐƯỜN NG DẪN :
Trang 9Khi một hệ thống tập tin được tổ chức thành một cây thư mục, có hai cách để xác định một tên tập tin Cách thứ nhất là đường dẫn tuyệt đối, mỗi tập tin được gán một đường
dẫn từ thư mục gốc đến tập tin Ví dụ : /usr/ast/mailbox
Dạng thứ hai là đường dẫn tương đối, dạng này có liên quan đến một khái niệm là thư mục hiện hành hay thư mục làm việc Người sử dụng có thể quy định một thư mục là
thư mục hiện hành Khi đó đường dẫn không bắt đầu từ thư mục gốc mà liên quan đến thư mục hiện hành Ví dụ, nếu thư mục hiện hành là /usr/ast thì tập tin với đường dẫn tuyệt đối /usr/ast/mailbox có thể được dùng đơn giản là mailbox
Trong phần lớn hệ thống, mỗi tiến trình có một thư mục hiện hành riêng, khi một tiến trình thay đổi thư mục làm việc và kết thúc, không có sự thay đổi để lại trên hệ thống tập tin Nhưng nếu một hàm thư viện thay đổi đường dẫn và sau đó không đổi lại thì sẽ có ảnh hưởng đến tiến trình
Hầu hết các hệ điều hành đều hỗ trợ hệ thống thư mục theo cấp bậc với hai entry đặc biệt cho mỗi thư mục là "." và " " "." chỉ thư mục hiện hành, " " chỉ thư mục cha
II.2 Các chức năng
Tập tin
Thư mục
Tập tin :
Tạo : một tập tin được tạo chưa có dữ liệu Mục tiêu của chức năng này là thông báo cho
biết rằng tập tin đã tồn tại và thiết lập một số thuộc tính
Xóa :khi một tập tin không còn cần thiết nữa, nó được xóa để tăng dung lượng đĩa Một
số hệ điều hành tự động xoá tập tin sau một khoảng thời gian n ngày
Mở : trước khi sử dụng một tập tin, tiến trình phải mở nó Mục tiêu của mở là cho phép
hệ thống thiết lập một số thuộc tính và địa chỉ đĩa trong bộ nhớ để tăng tốc độ truy xuất
Đóng : khi chấm dứt truy xuất, thuộc tính và địa chỉ trên đĩa không cần dùng nữa, tập tin
được đóng lại để giải phóng vùng nhớ Một số hệ thống hạn chế tối đa số tập tin mở trong một tiến trình
Đọc : đọc dữ liệu từ tập tin tại vị trí hiện thời của đầu đọc, nơi gọi sẽ cho biết cần bao
nhiêu dữ liệu và vị trí của buffer lưu trữ nó
Ghi : ghi dữ liệu lên tập tin từ vị trí hiện thời của đầu đọc Nếu là cuối tập tin,kích thước
tập tin sẽ tăng lên, nếu đang ở giữa tập tin, dữ liệu sẽ bị ghi chồng lên
Trang 10Thêm : gần giống như WRITE nhưng dữ liệu luôn được ghi vào cuối tập tin
Tìm :dùng để truy xuất tập tin ngẫu nhiên Khi xuất hiện lời gọi hệ thống, vị trí con trỏ
đang ở vị trí hiện hành được di chuyển tới vị trí cần thiết Sau đó dữ liệu sẽ được đọc ghi tại vị trí này
Lấy thuộc tính :lấy thuộc tính của tập tin cho tiến trình
Thiết lập thuộc tính :thay đổi thuộc tính của tập tin sau một thời gian sử dụng
Đổi tên :thay đổi tên của tập tin đã tồn tại
Thư mục :
Tạo : một thư mục được tạo, nó rỗng, ngoại trừ "." và " " được đặt tự động bởi hệ
thống
Xóa :xoá một thư mục, chỉ có thư mục rỗng mới bị xóa, tư mục chứa "." và " " coi như
là thư mục rỗng
Mở thư mục :thư mục có thể được đọc Ví dụ để liệt kê tất cả tập tin trong một thư mục,
chương trình liệt kê mở thư mục và đọc ra tên của tất cả tập tin chứa trong đó Trước khi thư mục được đọc, nó phải được mở ra trước
Đóng thư mục :khi một thư mục đã được đọc xong, phải đóng thư mục để giải phóng
vùng nhớ
Đọc thư mục :Lệnh này trả về entry tiếp theo trong thư mục đã mở Thông thường có thể
đọc thư mục bằng lời gọi hệ thống READ, lệnh đọc thư mục luôn luôn trả về một entry dưới dạng chuẩn
Đổi tên :cũng như tập tin, thư mục cũng có thể được đổi tên
Liên kết :kỹ thuật này cho phép một tập tin có thể xuất hiện trong nhiều thư mục khác
nhau Khi có yêu cầu, một liên kết sẽ được tạo giữa tập tin và một đường dẫn được cung cấp
Bỏ liên kết :Nếu tập tin chỉ còn liên kết với một thư mục, nó sẽ bị loại bỏ hoàn toàn
khỏi hệ thống, nếu nhiều thì nó bị giảm chỉ số liên kết
Câu hỏi kiểm tra kiến thức