Tải bản đầy đủ (.pdf) (5 trang)

Giáo trình hướng dẫn phân tích chuyển địa chỉ trong kỹ thuật table indecator kết hợp paging p7 pps

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (552.41 KB, 5 trang )

đặc biệt trong trường hợp bảng chỉ mục lớn. Bảng chỉ mục lớn là do đĩa lớn, đĩa có
bao nhiêu block thì bảng chỉ mục có bấy nhiêu phần tử, mỗi phần tử trong bảng chỉ
mục có thể là 1 word, 1.5 word, 2 word, 4 word, vv phụ thuộc vào kích thước đĩa,
kích thước block và cách tổ chức quả lý block đĩa của mỗi hệ điều hành.
Các hệ điều hành hiện nay khắc phục hạn chế trên đây bằng cách, không nạp
tất cả bảng chỉ mục vào bộ nhớ mà chỉ nạp phần bảng chỉ mục liên quan đến các
file đang mở trên bộ nhớ tại một thời điểm cụ thể nào đó, tức là, phần bảng chỉ mục
này luôn thay đổi trong quá trình làm việc của hệ thống. Khái niệm cửa sổ bảng
FAT trong hệ thống file của hệ điều hành windows98 là một ví dụ của trường hợp
này. Chúng ta sẽ được nhắc đến điều này trong phần sau của chương này.
 I-nodes (index-node): trong chiến lược này, hệ điều hành thiết kế một bảng
nhỏ để theo dõi các blocks của một file, được gọi là I-node. I-node liệt kê các thuộc
tính và các địa chỉ đĩa của các block của file. Hình sau đây minh hoạ cho chiến lược
này.












Đầu tiên một phần địa chỉ đĩa (các block đĩa) được lưu trữ trong chính I-
node. Sau đó, đối với các file nhỏ thì tất cả các thông tin cần thiết là phải chứa
trong chính I-node, đó là các thông tin được nhận từ đĩa vào bộ nhớ chính khi file
được mở. Đối với các file lớn, gồm nhiều block, thì một trong các địa chỉ trong I-
node là địa chỉ của một block đĩa, được gọi là block gián tiếp đơn. Block này chứa


các địa chỉ đĩa được thêm vào. Nếu vẫn còn không đủ thì một địa chỉ khác trong I-
node, được gọi là block gián tiếp đôi, sẽ chứa địa chỉ của một block mà nó chứa
một danh sách các block gián tiếp đơn. Mỗi block gián tiếp đơn trỏ đến khoảng 100
block dữ liệu. Nếu vẫn còn không đủ thì có thể một block gián tiếp ba được sử
dụng. Nhìn hình vẽ trên ta dẽ dàng phân biệt được sự khác nhau giữa: block gián
tiếp đơn, block gián tiếp đôi và block gián tiếp ba.


Attributes

I-node








Địa
chỉ
đĩa
Địa
ch ỉ
của
các
block
dữ
liệu



block gián tiếp đơn

block gián tiếp ba

block gián

tiếp đôi
Hình 4.5:
M
ột I
-
node

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
Chiến lược này được windows 2000 cải tiến và sử dụng trong cấu trúc MFT
trong hệ thống file của nó. Chúng ta sẽ thấy điều này khi tìm hiểu hệ thống file của

windows 2000 trong phần sau của chương này.
 Cấp phát không liên tục với block chỉ mục: Cả hai chiến lược cấp phát,
theo danh sách liên kết và theo liên kết chỉ mục đều tồn tại hạn chế là phải phân
tích danh sách liên kết hay bảng chỉ mục để dò tìm ra danh sách các block đĩa chứa
nội dung của tập tin cần đọc, khi đọc tập tin, dẫn đến làm chậm tốc độ đọc tập tin
trên đĩa.












Để khắc phục điều này các hệ điều hành có thể cài đặt chiến lược cấp phát
không liên tục với block chỉ số. Hệ điều hành sử dụng một block đĩa để chứa danh
sách các block đĩa chứa nội dung của một tập tin nào đó, block đĩa này được gọi là
block chỉ mục. Trong hình trên block 11 là chỉ mục của file A, block 8 là chỉ mục
của file A. Như vậy chỉ cần thiết kế một con trỏ, tại phần tử trong bảng chỉ mục, trỏ
tới block chỉ mục của tập tin trên đĩa là hệ điều hành có thể quản lý được danh sách
các block đĩa chứa nội dung của một tập tin.
Với chiến lược này thì tốc độ đọc file của hệ điều hành sẽ tăng lên, nhưng nó
chỉ dụng được đối với các file nhỏ, vì nếu file lớn thì một block có thể không chứa
đủ danh sách các block đĩa chứa nội dung của một file. Mặt khác nếu block chỉ
mục của file bị hỏng thì hệ điều hành không thể đọc được file, mặc dầu nội dung
của file vẫn còn tồn tại trên các block đĩa.

IV.1.5. An toàn trong quản lý tập tin
Bảo toàn dữ liệu tập tin: Một hệ quản trị file phải cung cấp những cơ chế thích
hợp để phục hồi nội dung của file trong trường hợp hệ thống gặp sự cố về phần
mềm hoặc phần cứng. Để thực hiện được điều này hệ điều hành phải luôn tạo bản
sao của các tập tin đang mở trên hệ thống, để có thể phục hồi lại khi cần thiết. Có
hai kỹ thuật được sử dụng trong cơ chế này:
 DUMP có chu kỳ: Sau một khoảng thời gian nhất định nội dung của
Hình 4.6:
C
ấp phát không li
ên t
ục với block chỉ mục

A
1

4


5

B
1

6

A
3

7



8

B
2

9

A
2

10


11

B
3

12

x
13

A
4

14


B
4

15


4

10

7

14


6

9

12

15

Block chỉ mục
của file A
Block chỉ mục
của file B
Các block đĩa chứa các file A và B

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
các tập tin đang mở trên bộ nhớ chính sẽ được đổ (Dum/backup) ra lại đĩa. Nếu hệ
thống gặp sự cố thì tất cả các tập tin đang mở sẽ được tái tạo lại kể từ trạng thái mà
chúng được DUMP ra lần cuối cùng. Rõ ràng việc DUM này sẽ làm tốn thời gian
thực hiện của hệ thống.
 DUMP Incremental: Trong cách này, hệ thống chỉ lưu trữ các thông
tin được sửa đổi kể từ lần Dump sau cùng, tức là chỉ có các tập tin được tạo lập
hoặc sửa đổi so với lần đổ ra cuối cùng mới được Dump ra. Với kỹ thuật này thông
tin cần lưu trữ ít hơn do đó hệ thống có thể thực hiện Dump thường xuyên hơn.
Để biết được trong số những tập tin đang mở tập tin nào có sự cập nhật
dữ liệu hoặc có sự thay đổi so với lần Dump ra trước đó hệ thống đưa thêm
vào danh mục người sử dụng một trường mới, dài 2 bit, tạm gọi là trường
kiểm tra cập nhật (KTCN). Nếu KTCN = 00: mở không cập nhật;
KTCN = 01: mở có cập nhật; KTCN = 10: không có thay đổi so với
lần Dump trước. KTCN = 11: có thay đổi so với lần Dump trước.
Với cách này hệ thống phải luôn kiểm tra bảng danh mục và phải cập nhật
lại trường KTCN sau mỗi lần Dump, dẫn đến làm chậm tốc độ thực hiện của
hệ thống.

Để hệ thống không phải khảo sát tất cả các điểm vào của danh mục, hệ
điều hành cài đặt thêm một bảng danh mục mới để ghi nhận thông tin của các
tập tin đang được truy xuất (ghi/đọc) trên hệ thống và chỉ có Dump sử dụng
bảng danh mục này, do đó hệ thống Dump có thể hoạt động song song với
các thao tác khác của hệ thống.
Dump Incremental là một tiến trình có độ ưu tiên thấp, thường trú trong bộ
nhớ phân tích các bảng danh mục để tìm ra các tập tin cần phải thực hiện Dump.
Danh sách các quyền truy cập (Access Right): Trong phần trình bày về tập tin
chia sẻ ở trên, chúng tôi đã trình bày về kỹ thuật tạo ra tập tin chia sẻ của hệ điều
hành, kỹ thuật này hoàn toàn trong suốt với người sử dụng. Trong phần này chúng
tôi trình giới thiệu một công cụ mà hệ điều hành dùng để bảo vệ các tập tin chia sẻ
trong môi trường nhiều người sử dụng. Đó là quyền truy cập, quyền truy cập và
quản lý truy cập đồng thời là các công cụ cơ bản mà hệ điều hành dùng để quản lý
và bảo vệ các tập tin chia sẻ trong các hệ thống nhiều người sử dụng (multiuser
systems).
Quyền truy cập có thể được gán cho một người sử dụng (User) cụ thể, một
nhóm người sử dụng (User Group) hay tất cả người sử dụng (All User) có trong các
hệ thống multiuser. Một user group chứa nhiều user, khi một group được gán quyền
nào đó thì tất cả các uer thành viên trong group này đều được cũng được gán quyền
truy cập đó.
Sau đây là các quyền truy cập mà hệ điều hành thường dùng để gán cho mộ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
người sử dụng cụ thể đến một file cụ thể nào đó:
 None: Người sử dụng không biết được là file có tồn tại hay không.
Với giới hạn của quyền này, người sử dụng không được phép đọc thư mục chứa file
này.
 Knowledge: Người sử dụng có thể xác định được là file đang tồn tại
và ai là người sở hữu file.
 Excution: Người sử dụng có thể nạp và thực hiện một chương trình
nhưng không thể copy nó. Các chương trình thuộc dạng độc quyền của một nhà sản
xuất nào đó thường được tạo với sự giới hạn với quyền này.
 Reading: Người sử dụng có thể đọc file cho bất kỳ mục đích nào, bao
gồm cả copy và execution. Một vài hệ thống cho phép có sự khác nhau giữa xem và
copy file. Trong trường hợp này nội dung của file có thể được hiển thị để người sử
dụng xem, nhưng họ không được cung cấp công cụ để copy nội dung này.
 Appending: Người sử dụng có thể thêm dữ liệu vào file, thường là ở
cuối file, nhưng không thể thay đổi hoặc xoá bất kỳ một nội dung nào trong file.
 Updating: Người sử dụng có thể thay đổi, xoá và thêm dữ liệu vào file.
 Changing protection: Người sử dụng có thể thay đổi các quyền truy
cập được gán đến người sử dụng khác. Quyền này thường chỉ được gán cho người
sở hữu file.
 Deletion: Người sử dụng có thể xoá được file từ hệ thống file.
Người sử dụng được gán quyền truy cập đến file, và họ chỉ có thể truy cập
file ở mức độ tương ứng với quyền truy cập được gán. Ví dụ, người sử dụng A
được gán quyền đọc (read) file tailieu.doc, nhưng không được gán quyền xoá
(delete) file tailieu.doc thì người sử dụng A này chỉ có thể thực hiện thao tác mở
file tailieu.doc ra để đọc nội dung của file, chứ không thể thay xóa hay thay đổi nội

dung của file (vì không được gán quyền thay đổi (modify) nội dung file).
Người sử dụng có thể được gán nhiều quyền truy cập đến một file, khi đó họ
sẽ có đầy đủ các sự cho phép và sự giới hạn tương ứng với các quyền đã được gán.
Tuy nhiên quyền truy cập có tính kế thừa, nên chỉ cần gán một quyền truy cập cao
nhất thì họ có đủ các sự cho phép và sự giới hạn của các quyền khác. Ví dụ , nếu
người sử dụng được gán quyền Updating với một file nào đó, thì xem như họ đã
được gán các quyền Knowledge, execution, reading và appending đối với file này.
Mở và đóng tập tin: Hệ điều hành cho rằng các tập tin được lưu trữ trên đĩa đều ở
trang thái đóng, để thực hiện bất kỳ một thao tác đọc/ghi/thay đổi nội dung của tập
tin thì trước hết chương trình, tiến trình của người sử dụng (kể cả người sử dụng)
phải thực hiện thao tác mở tập tin. Khi nhận được yêu cầu mở tập tin bộ phận quản
lý tập tin của hệ điều hành sẽ đọc nội dung của tập tin từ đĩa và nạp nó vào bộ nhớ
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
chính, sau đó trả về cho chương trình, tiến trình của người sử dụng một thẻ tập tin/
thẻ file (file handle) hoặc một biến tương ứng với tập tin này để chương trình, tiến
trình theo dõi và thao tác trên tập tin này. Sau khi thực hiện xong một thao tác nào
đó trên nội dung của tập tin thì chương trình, tiến trình và cả người sử dụng phải

thực hiện thao tác đóng tập tin lại. Đối tượng yêu cầu đóng tập tin phải cung cấp
đúng thẻ tập tin của tập tin cần đóng cho hệ điều hành.
Một số hệ điều hành cho phép thực các thao tác trên tập tin (mở/cập nhật/
đóng) bằng chính tên của tập tin. Các hệ điều hành đều cung cấp hai thủ tục chính
để chương trình của người sử dụng thực hiện các thao tác mở/đóng file: Open (tên
file cần mở, chế độ mở): dùng để mở file (chế độ: Đọc/ Viết/ Tạo lập) và Close (tên
file cần đóng): dùng để đóng file khi mở.
Thao tác mở/đóng file sẽ đơn giảm trong môi trường hệ điều hành đơn nhiệm
và sẽ phức tạp hơn trong môi trường hệ điều hành đa nhiệm. Trong môi trường đa
nhiệm, hệ điều hành chỉ thực sự đóng file theo yêu cầu của một tiến trình từ một
người sử dụng nào đó khi tất cả các thao tác ghi/đọc file này từ các tiến trình người
sử dụng khác đều đã kết thúc. Trong trường hợp này hệ điều hành phải luôn theo
dõi các tiến trình người sử dụng tham gia vào việc mở file này. Để đáp ứng yêu cầu
mở file từ một chương trình, tiến trình của người sử dụng trong môi trường đa
nhiệm hệ điều hành phải thực hiện các bước cơ bản sau đây để đảm bảo việc truy
xuất file sau này là hợp lệ:
1. Kiểm tra tên của file cần mở, tại các entry, trong bảng danh mục file của
hệ thống (đó là bảng thư mục trong hệ điều hành DOS và Windows9x).
2. Kiểm tra tiến trình gọi tới từ một người sử dụng hay chương trình người
sử dụng có được quyền truy cập file ở chế độ đã được chỉ ra hay không.
3. Kiểm tra nếu file đã được mở để đọc bởi một tiến trình trước đó thì tiến
trình hiện tại không thể mở để ghi vào file, mặc dầu tiến trình này được
quyền ghi file. Ngược lại tiến trình hiện tại không thể mở file để đọc khi
đã có một tiến trình nào đó đang ghi vào file.
4. Đảm bảo sự sẵn sàng của các thiết bị lưu trữ, đĩa chẳng hạn, và vật mang
liên quan đến file cần mở.
Để mô tả đầy đủ các thông tin về một file thì một phần tử trong bảng danh
mục cần phải chứa các trường sau: Tên file; Mô tả của đơn vị của lưu trữ file; Địa
chỉ của Block đầu tiên trong dãy các block (trên đĩa) chứa file; Địa chỉ của các
block kế tiếp trong dãy các block chứa file; Chế độ truy cập tập tin; vv.

Trong môi trường hệ điều hành đa nhiệm có thể có các tiến trình song song
cùng đọc nội dung của một file, đối với các file chia sẻ, nhưng không thể xảy ra
trường hợp có hai tiến trình cùng ghi vào một file hoặc có một tiến trình ghi vào
file trong khi có một hoặc nhiều tiến trình khác đang đọc nội dung của file. Hệ điều
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

×