thdẫn đến tình trng hỏng tập tin chia sẻ hoặc nội dung của tâp tin chia sẻ.
Chúng ta đã biết hệ điều hành giải quyết vấn đề này như thế nào trong chương
Quản tiến trình của tài liu này. Đây một vấn đề ln đối vi các hệ điều hành
đa nhiệm đặc biệt là các hđiu hành mng. Các hệ điều hành này cung cấp đầy đ
các công cđể người sử dụng và chương trình của người sử dụng kết hợp cùng vi
hđiều hành khai thác, sdụng tốt các tập tin chia sẻ nhưng hạn chế thấp nhất các
li thxảy ra. Trong phần sau của cơng y chúng ta sxem xét những thao
tác mà hđiều hành phải thực hiện để đáp ứng yêu cu mở file từ người sdụng
trong môi trường nhiều người sử dụng.
IV.1.3. Quản lý không gian đĩa
Kích thước block: Để tổ chức u trnội dung các file trên đĩa, các hđiều hành
đều chia không gian u trcủa đĩa thành các phần kích thước bằng nhau được
gọi là khối (block) u trữ. Nội dung của file cũng được chia thành các block
ch thước bằng nhau, trừ block cuối cùng, và bng với kích thước c block đĩa.
Khi cn u trfile trên đĩa hđiều hành cp cho mỗi tập tin một số lượng block
vừa đđể chứa hết nội dung của tập tin. Kích thước của một block phụ thuộc vào
qui định của vi xử và hệ điều hành, thường là 128 byte, 256 byte, hoặc 512 byte,
vv.
Khi chn kích thước của block hệ điu hành phải xem xét các vấn đề sau:
Nếu kích thước block lớn thì dlãng p đĩa, trong trường hợp kích
thước của tập tin không phải là bi số của kích thước block.
Nếu kích thước block nhỏ thì đĩa được chia thành nhiều block, dẫn đến
ch thước danh sách quản block của đĩa, danhch quản lý block của một
tập tin, bảng các block, vv, sng lên do đó dung lượng bộ nhớ chứa sẽ
tăng lên.
Kích thước của block phải là bi của kích thước khối dliệu mà h
thống dùng khi thực hiện truyền dữ liệu giữa bộ nhớ chính và bnhớ phụ.
Theo dõi các block t do: Khi cn u trnội dung của các file lên đĩa, hệ điều
hành cấp cho file một số lượng block đĩa nhất định để chứa hết nội dung của nó,
các block đĩa này có thnằm tại các vtrí bất k trên đĩa. Trong quá trình sdụng
file kích thước của file có thể thay đổi, ng lên hay giảm xuống, do đó hđiều
hành phải tổ chức cấp phát động các block đĩa cho các file. Khi kích thước của file
tăng lên thđiều hành phải cấp phát thêm block cho nó, khi kích thước file gim
xuống hoặc khi file b xoá khi đĩa thì hđiều hành phải thu hồi li c block đĩa
đã cấp cho nó để có thể cấp cho các file khác sau này.
Để tổ chức cấp phát động c block đĩa cho file hệ điều hành phải quản
được trạng thái của các block, còn tdo hay đã cấp phát, trên đĩa. Trong
trường hợp này các hđiều hành thsdụng 2 kthuật: Dùng bng bít
Click to buy NOW!
P
D
F
-
X
C
h
a
n
g
e
V
i
e
w
e
r
w
w
w
.
d
o
c
u
-
t
r
a
c
k
.
c
o
m
Click to buy NOW!
P
D
F
-
X
C
h
a
n
g
e
V
i
e
w
e
r
w
w
w
.
d
o
c
u
-
t
r
a
c
k
.
c
o
m
và/hoặc dùng danh sách liên kết. Trong bảng bít, mỗi bít cho biết trạng thái
của một block tương ng trên bnhớ phụ, = 0 thì block tương ng còn tdo,
= 1 thì block tương ứng đã cấp phát cho một file nào đó. Như vậy, để tìm N
block tdo hđiều hành chcần tìm N bít 0 trong bng bít, do đó tốc đtìm
và cấp phát block cho các file sẽ tăng n rất nhiều. Trong danh sách liên kết,
để quản các block còn tdo hệ điều hành dùng một danh sách liên kết.
Mỗi phn ttrong danh sách cho biết địa chỉ ca một block tdo trên đĩa.
Như vậy khi cần cấp phát block cho cho một file nào đó thđiều hành s
dựa vào danh sách các block tự do này.
Sau khi cấp phát hoặc thu hồi block hệ điu hành phải tiến hành cập nhật
li danh ch liên kết hay bảng bít. Trong trường hợp bảng bít hoặc danh
sách liên kết ln, hệ điu hành schứa đĩa và ch nạp phn cần thiết
vào bnhớ chính. Khi lựa chọn các block trong tập các block tự do đcấp
phát cho một file hệ điều hành phải chọn sao cho việc cấp phát được thực
hiện nhanh và việc đọc sau này ti ưu với một thuật toán đọc đĩa cth
nào đó.
Cấp hạn ngạch đĩa (Disk Quotas): Để ngăn chn người sử dụng sử dụng q
nhiều không gian đĩa, c hệ điều hành đa người sdụng thường cung cấp một
chiến lược để người qun trị hệ thống giới hn s lượng không gian đĩa tối đa
(block) mỗi người sử dụng được phép sử dụng và hđiều hành phải đảm bảo
rằng người sử dụng không thể sử dụng quá không gian đĩa mà hệ điều hành cấp cho
họ, chiến lược này được gọi là cấp hạn ngạch đĩa.
Khi người sử dụng mở file, thì các thuộc tính và các địa chỉ block đĩa mà h
điều hành cấp cho file được ghi vào bng mở file trong bộ nhchính, trong đó
cthuộc tính cho biết người sử dụng nào shữu file được mở. Bất kmột sự thay
đổi nào vkích thước file cũng thay đổi đến hạn ngạch của người sdụng shữu
file.
Hình 4.2:
Theo i
quota
c
ủa ng
ư
ời sử dụng
Attribute
Disk address
User = 8
Quota pointer
Bảng mở file
Soft block limit
Hard block limit
Current # of blocks
# Block warnings left
Soft file limit
Hard file limit
Current # of files
# File warnings left
Bảng Quota
Record Quota
cho user 8
Các record
quota
cho các user khác
Click to buy NOW!
P
D
F
-
X
C
h
a
n
g
e
V
i
e
w
e
r
w
w
w
.
d
o
c
u
-
t
r
a
c
k
.
c
o
m
Click to buy NOW!
P
D
F
-
X
C
h
a
n
g
e
V
i
e
w
e
r
w
w
w
.
d
o
c
u
-
t
r
a
c
k
.
c
o
m
Một bảng thứ hai chứa record quota, cho mỗi người sử dụng mở file hiện tại,
thm cnếu file được mở bởi một người nào đó, bng này được trình y hình
sau. Hình 4.2 cho thấy một phần của file quota trên đĩa, cho biết file của người s
dụng nào đang được mở. Khi tất cả các file đều được đóng, record sghi trở lại
file quota.
Khi có một entry mi được tạo ra trong bảng mfile thì một con trỏ (quota
pointer) trỏ tới record quota của người sở hữu file, là được nhập vào nó. Mi khi có
một block được thêm vào một file thì tng sblock của người sử dụng được ng
lên một check được n đến cả Hard block limit và Soft block limit. Soft limit
thđược vượt quá, nhưng hard limit thì kng thể. Một scố gắng thêm vào
cuối file khi hard block limit b ợt qgiới hạn sẽ trả về thông báo lỗi.
Khi một người sử dụng cố gắng login, hthống sẽ kiểm tra file quota để xem
người sdụng đã vựợt qsoft limit của block hoặc file hay chưa (soft block limit
hoặc soft file limit). Nếu cả hai limit đều bvi phm, thì một cảnh báo sẽ xuất hiện,
và bđếm (count) tương ứng vi cảnh o sgiảm xuống một đơn vị. Nếu bđếm
nhận được giá trị zero thì người sử dụng sẽ không được phép login.
IV.1.4. Quản lý các block chứa file trên đĩa
Trong phần này chúng ta xem xét các phương pháp khác nhau mà các hệ điều hành
sdụng để theo dõi danh sách các block đĩa mà hđiều hành đã cấp phát cho một
file, đchứa hết các block của một file, của tất cả các file đang được lưu trữ tên
đĩa.
Cấp phát liên tục (contiguous allocation): một chiến lược đơn giản nhất,
trong chiến lược nàyc block file được u trữ tại các block đĩa liên tục nhau. Tức
là, nếu 1 block đĩa là 1K tmột file 50K sẽ được u trtại 50 block liên tiếp
nhau tn đĩa. Chiến lược này đơn gin, dễ cài đặt và thời gian đọc file gim xuống
đáng kể, vì h điu hành chcần biết block đĩa đầu tiên chứa các block file và tng
số block đĩa chứa file là có thể tiến hành đọc nội dung ca file mà không cn dò tìm
danh sách các block đĩa chứa nội dung của file.
Chiến lược này ch thđược sử dụng với các file kích thước cố định,
không thay đổi so với thời điểm tạo ra file, hoặc với các file mà hđiu hành biết
trước được kích thước tối đa của file, trong trường hp này hđiều hành phi dự
trblock đĩa cho file, điu này d dẫn đến tình trng lãng ptrong việc sdụng
block đĩa. Chiến lược này có thể dẫn đến hiện tượng pn mảnh trên đĩa, tức là trên
đĩa thể xuất hiện các đon block trống nhỏ, không đ để chứa một file có kích
thước tối thiểu, nằm giữa các đoạn block chứa file, c đoạn block trống này có th
là nơi lưu trca một file nào đó mà file này đã bxoá khỏi đĩa. Hiện tượng phân
Click to buy NOW!
P
D
F
-
X
C
h
a
n
g
e
V
i
e
w
e
r
w
w
w
.
d
o
c
u
-
t
r
a
c
k
.
c
o
m
Click to buy NOW!
P
D
F
-
X
C
h
a
n
g
e
V
i
e
w
e
r
w
w
w
.
d
o
c
u
-
t
r
a
c
k
.
c
o
m
mảnh đĩa sẽ làm chm tốc độ đọc file của hệ điều hành.
Các hđiều hành hiện nay, hệ điều hành windowsNT/2000 chng hạn, cải
tiến chiến lược này để khắc phục các hn chế và tn dụng những thuận li của nó.
Bằng cách, vẫn cấp phát c block đĩa liên tục để chứa vừa đkích thước ban đầu
của file, và sau đó nếu kích thước của file ng lên t hđiều hành s tìm cấp
phát một đon block khác tại một vị trí bất ktrên đĩa để chứa vừa đphần kích
thước tăng n y. Tức là, ni dung của file được u trữ tại các đon block đĩa rời
rạc nhau trên đĩa. Nếu kích thước file giảm xuống thì hđiều hành phải tổ chức lại
việc u trfile để sao cho thể giải phóng được một đon block đĩa chứa file
trước đó. Vi việc cải tiến này, hđiu hành thđọc file nhanh n, ít xy ra
phân mnh n nhưng việc tổ chức u trsẽ phức tạp n. Chúng ta sthy cách
tchức này trong hthống file của hđiu hành windowsNT/2000 trong phn sau
của chương này.
Cấp phát theo danh sách liên kết (linked list allocation): chiến lược này
sdụng một danh sách liên kết các block đĩa để chứa nội dung ca một file. Word
đầu tiên của mỗi block đĩa được sử dụng như một con trỏ để trỏ đến block kế tiếp,
trừ word ca block cuối cùng được sử dụng để chứa tín hiệu báo kết thúc danh sách
của mt file, phần còn li của block đĩa dùng để chứa nội dung của file. Trong
trường hp này kích thước của block đĩa phải ln n kích thước của block file 1
word.
Hình sau đây minh hocho việc u trfile theo chiến c này, vi file A
được chia thành 4 block: block 0, block 1, block 2, block 3 được u trtại các
block đĩa, ln lượt là 3, 7, 5, 10. Với file B được chia thành 3 block: block 0, block
1, block 2, được u trữ tại các block đĩa, ln lượt là 4, 8, 6.
Không như cấp phát liên tc, mọi block đều có thể được sử dụng trong chiến
lược này, nên s không dẫn đến hin tượng phân mảnh đĩa và khai thác ti đa
fileA
block 0
3
fileA
block 1
7
fileA
block 2
5
0
fileA
block 3
10
fileB
block 0
4
fileB
block 1
8
0
fileB
block 2
6
B2
6
0
A0
3
7
B0
4
8
A2
5
10
A1
7
5
B1
8
6
9
A3
10
0
Danh sách liên kết của file A
Danh sách liên kết của file B
Các block đĩa chứa các
block của FileA và fileB
block file cuối cùng
nhỏ hơn 1 block đĩa
Hình 4.3: Cấp phát block theo danh sách liên kết
phần tử cuối cùng
Click to buy NOW!
P
D
F
-
X
C
h
a
n
g
e
V
i
e
w
e
r
w
w
w
.
d
o
c
u
-
t
r
a
c
k
.
c
o
m
Click to buy NOW!
P
D
F
-
X
C
h
a
n
g
e
V
i
e
w
e
r
w
w
w
.
d
o
c
u
-
t
r
a
c
k
.
c
o
m
không gian đĩa. Và hđiều hành chcần biết block đĩa đầu tiên chứa file là có th
đọc được toàn bnội dung của file, block đầu tiên y được ghi phần tử trong
bảng danh mục tương ng với mỗi file. Tốc độ đọc file theo cách truy cập ngẫu
nhiên trong chiến lược này srất chậm so với cách truy cập tuần tnhư chiến
lược cấp phát liên tục ở trên.
Cấp phát theo danh sách liên kết sdụng chỉ mục (linked list allocation
using an index): Cấp phát theo danh sách liên kết tồn tại hai hạn chế đó : chậm
tn một word để chứa con trỏ đến block kế tiếp. Để khắc phục hai hạn chế này,
các hđiều hành u c word con trnói trên vào trong một bảng chỉ mục và nạp
bảng chỉ mục này vào bnhớ khi hệ điều hành cn đọc nội dung ca file trên đĩa.
Hình 4.4 minh hocho việc u trfile theo chiến lược này, vi file A được
chia thành 4 block: A1, A2, A3, A4 được u trtại các block đĩa, lần lượt là 4, 10,
7, 14 (cuối cùng). Vi file B được chia thành 4 block: B1, B2, B3, B4 được u tr
tại các block đĩa, lần lượt là 6, 9, 12, 15 (cuối cùng).
Với cách tổ chức này thì toàn bblock đĩa được sử dụng đểu trfile và việc
truy cập ngẫu nhiên trong trường hợp này s dễ dàng hơn. Tuy nhiên cũng phải tồn
tại một móc xích để tìm ra tất cả c blick đĩa chứa nội dung của một file và móc
ch y phi được nạp vào b nhớ để hệ điều hành có thtìm đọc file khi cần.
Cũng như chiến ợc trên block đầu tiên của mt file phải được chứa trong phần t
bảng danh mục tương ứng với mỗi file, trong trường hợp này nó được xem như một
con trtrỏ đến bảng chỉ mục để bắt đầu dò my các block đĩa chứa nội dung của
file, mỗi khi hệ điều hành cn đọc file. Hệ điều hành MS_DOS tchức quản file
trên đĩa dựa theo chiến lược này.
Một hạn chế lớn ca chiến lược này toàn bbảng chỉ mục phi nạp vào b
nhtrong suốt thời gian làm việc của hệ thống, điều này slàm tn thời gian nạp
bảng chỉ mục của hệ điều hành làm ng phí không gian bnhớ của hệ thống,
Các cluster đĩa chứa các
Block của các file A và B
A1
4
5
B1
6
A3
7
8
B2
9
A2
10
x
11
B3
12
x
13
A4
14
B4
15
0
1
2
3
10
4
5
9
6
14
7
8
12
9
7
10
11
15
12
13
0
14
0
15
16
17
Một đoạn trong bảng ch mục
Hình 4.4:
Cấp phát block theo danh sách liên kết có chỉ mục
Click to buy NOW!
P
D
F
-
X
C
h
a
n
g
e
V
i
e
w
e
r
w
w
w
.
d
o
c
u
-
t
r
a
c
k
.
c
o
m
Click to buy NOW!
P
D
F
-
X
C
h
a
n
g
e
V
i
e
w
e
r
w
w
w
.
d
o
c
u
-
t
r
a
c
k
.
c
o
m