Giáo trình Nguyên lý hệ điều hành (Phần 2)

Tóm tắt Giáo trình Nguyên lý hệ điều hành (Phần 2): ...ường hợp này, không cần thiết phải nạp đoạn code xử lý lỗi từ đầu. Từ nhận xét trên, một giải pháp được đề xuất là cho phép thực hiện một chương trình chỉ được nạp từng phần vào bộ nhớ vật lý. Ý tưởng chính của giải pháp này là tại mỗi thời điểm chỉ lưu trữ trong bộ nhớ vật lý các chỉ thị và...phân khu 04 1 byte Chỉ thị hệ thống 4.2 Hệ thống bảng Fat Chương trình mồi BPB 3 byte lệnh nhẩy 512 byte kết thúc 114 Hình 4.9 FAT là vùng chứa thông tin định vị các vùng chớa nội dung các file trên đĩa a) Bootsector Bao gồm bảng tham số vật lý của đĩa và chương trình khởi độ...khiển để thực hiện công việc khác. Sau khi thực hiện xong, bộ điều khiển phát sinh một ngắt để báo hiệu cho CPU biết và đến lấy kết quả được lưu giữ trong các thanh ghi. 5.2.4 Truy nhập bộ nhớ trực tiếp DMA (Direct Memory Access) Đa số các loại thiết bị, đặc biệt là các thiết bị dạng khối, h...

pdf70 trang | Chia sẻ: havih72 | Lượt xem: 318 | Lượt tải: 0download
Nội dung tài liệu Giáo trình Nguyên lý hệ điều hành (Phần 2), để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
ce drivers 
Đặt tên thiết bị 
Bảo vệ thiết bị 
Cung cấp khối độc lập thiết bị 
Tổ chức buffer 
Định vị lưu trữ trên thiết bị khối 
Cấp phát và giải phóng thiết bị tận 
hiến 
Báo lỗi 
Chức năng cơ bản của phần mềm nhập/xuất độc lập thiết bị là những chức năng 
chung cho tất cả các thiết bị và cung cấp một giao tiếp đồng nhất cho phần mềm phạm 
vi người sử dụng. 
Trước tiên nó phải có chức năng tạo một ánh xạ giữa thiết bị và một tên hình 
thức. Ví dụ đối với UNIX, tên /dev/tty0 dành riêng để mô tả I-node cho một file đặc 
biệt, và I-node này chứa chứa số thiết bị chính, được dùng để xác định driver thích hợp 
và số thiết bị phụ, được dùng để xác định các tham số cho driver để cho biết là đọc hay 
ghi. 
Thứ hai là bảo vệ thiết bị, là cho phép hay không cho phép người sử dụng truy 
xuất thiết bị. Các hệ điều hành có thể có hay không có chức năng này. 
 130
Thứ ba là cung cấp khối dữ liệu độc lập thiết bị vì ví dụ những đĩa khác nhau sẽ 
có kích thước sector khác nhau và điều này sẽ gây khó khăn cho các phần mềm người 
sử dụng ở lớp trên. Chức năng này cung cấp các khối dữ liệu logic độc lập với kích 
thước sector vật lý. 
Thứ tư là cung cấp buffer để hỗ trợ cho đồng bộ hóa quá trình hoạt động của hệ 
thống. Ví dụ buffer cho bàn phím. 
Thứ năm là định vị lưu trữ trên các thiết bị khối. 
Thứ sáu là cấp phát và giải phóng các thiết bị tận hiến. 
Cuối cùng là thông báo lỗi cho lớp bên trên từ các lỗi do device driver báo về. 
5.3.4 Phần mềm vào/ra phạm vi người sử dụng 
Hầu hết các phần mềm nhập/xuất đều ở bên trong của hệ điều hành và một phần 
nhỏ của chúng chứa các thư viện liên kết với chương trình của người sử dụng ngay cả 
những chương trình thi hành bên ngoài hạt nhân. 
Lời gọi hệ thống, bao gồm lời gọi hệ thống nhập/xuất thường được thực hiện 
bởi các hàm thư viện. Ví dụ khi trong chương trình C có lệnh 
count = write(fd, buffer, nbytes) ; 
Hàm thư viện write được địch và liên kết dưới dạng nhị phân và nằm trong bộ 
nhớ khi thi hành. Tập hợp tất cả những hàm thư viện này rõ ràng là một phần của hệ 
thống nhập/xuất. 
Không phải tất cả các phần mềm nhập/xuất đều chứa hàm thư viện, có một loại 
quan trọng khác gọi là hệ thống spooling dùng để khai thác tối đa thiết bị nhập/xuất 
trong hệ thống đa chương. 
Các hàm thư viện chuyển các tham số thích hợp cho lời gọi hệ thống và hàm 
thư viện thực hiện việc định dạng cho nhập và xuất như lệnh printf trong C. Thư viện 
nhập/xuất chuẩn chứa một số hàm có chức năng nhập/xuất và tất cả chạy như chương 
trình người dùng. 
Chức năng của spooling là tránh trường hợp một tiến trình đang truy xuất thiết 
bị, chiếm giữ thiết bị nhưng sau đó không làm gì cả trong một khoảng thời gian và như 
vậy các tiến trình khác bị ảnh hưởng vì không thể truy xuất thiết bị đó. Một ví dụ của 
 131
spooling device là line printer. Spooling còn được sử dụng trong hệ thống mạng như 
hệ thống e-mail chẳng hạn. 
 132
Chương 6: HỆ THỐNG QUẢN LÝ FILE 
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. 
6.1 File và các khái niệm liên quan 
Tập tin 
Máy tính có thể lưu giữ thông tin trên các thiết bị lưu trữ khác nhau như đĩa từ, 
băng từ, đĩa quangĐể cho máy tính trở nên thuận tiện và dễ sử dụng, HĐH cung cấp 
một cách lưu giữ thông tin logic như nhau trên các thiết bị lưu giữ đó là file (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ý tạo hay kết thúc các tiến trình, chỉ mất 
đi khi user thật sự muốn xóa. Tập tin được quản lý bởi hệ điều hành. 
Các thuộc tính file 
- Tên tập tin : 
Tập tin là một cơ chế trừu tượng và để quản lý mỗi đối tượng phải có một tên. 
Khi tiến trình tạo một tập tin, nó sẽ đặt một tên, khi tiến trình kết thúc tập tin vẫn tồn 
tại và có thể được truy xuất bởi các tiến trình khác với tên tập tin đó. 
Cách đặt tên tập tin của mỗi hệ điều hành là khác nhau, đa số các hệ điều hành 
cho phép sử dụng 8 chữ cái để đặt tên tập tin như ctdl, caycb, tamhghau v.v, thường 
thường thì các ký tự số và ký tự đặc biệt cũng được sử dụng như baitap2, 
Hệ thống tập tin có thể có hay không phân biệt chữ thường và chữ hoa. Ví dụ : 
UNIX phân biệt chữ thường và hoa còn MS-DOS thì không phân biệt. 
Nhiều hệ thống tập tin hỗ trợ tên tập tin gồm 2 phần được phân cách bởi dấu ‘.’ 
mà phần sau được gọi là phần mở rộng. Ví dụ : vidu.txt. Trong MS-DOS tên tập tin có 
từ 1 đến 8 ký tư, phần mở rộng có từ 1 đến 3 ký tự. Trong UNIX có thể có nhiều phân 
cách như prog.c.Z. Một số kiểu mở rộng thông thường là : 
 133
.bak, .bas, .bin, .c, .dat, .doc, .ftn, .hlp, .lib, .obj, .pas, .tex, .txt. 
Trên thực tế phần mở rộng có hữu ích trong một số trường hợp, ví dụ như có 
những trình dịch C chỉ nhận biết các tập tin có phần mở rộng là .C 
Loại File: được thể hiện ở phần mở rộng và cách thực hiện trên file 
Loại File Phần mở 
rộng 
Chức năng 
Excutable Exe, com, bin sẵn sàng để chạy ngôn ngữ máy 
Object Obj,o dịch ngôn ngữ máy, không liên kết 
Source code C, pas, asm Mã nguồn 
Batch Bat, sh xử lý theo lô 
Text Txt, doc đocữ liệu văn bản, tài liệu 
Library Lib,a Thư viện 
Print or 
view 
Ps, pdf, gif In ấn và hiển thị 
Archive Arc, zip, tar Nhóm các file trong một file, lưu 
giữ. 
Ngoài tên và dữ liệu, hệ điều hành cung cấp thêm một số thông tin cho tập tin 
gọi là thuộc tính. 
Các thuộc tính thông dụng trong một số hệ thống tập tin : 
Tên thuộc tính Ý nghĩa 
Bảo vệ Ai có thể truy xuất được và bằng cách nào 
Mật khẩu Mật khẩu cần thiết để truy xuất tập tin 
Người tạo Id của người tạo tập tin 
Người sở hữu Người sở hữu hiện tại 
Chỉ đọc 0 là đọc ghi, 1 là chỉ đọc 
ẩn 0 là bình thường, 1 là không hiển thị khi liệt 
kê 
Hệ thống 0 là bình thường, 1 là tập tin hệ thống 
Lưu trữ 0 đã đuợc backup, 1 cần backup 
ASCII/binary 0 là tập tin văn bản, 1 là tập tin nhị phân 
Truy xuất ngẫu nhiên 0 truy xuất tuần tự, 1 là truy xuất ngẫu nhiên 
Temp 0 là bình thường, 1 là bị xóa khi tiến trình 
kết thúc 
Khóa 0 là không khóa, khác 0 là khóa 
Độ dài của record Số byte trong một record 
Vị trí khóa Offset của khóa trong mỗi record 
Giờ tạo Ngày và giờ tạo tập tin 
Thời gian truy cập Ngày và giờ truy xuất tập tin gần nhất 
 134
cuối cùng 
Thời gian thay đổi 
cuối cùng 
Ngày và giờ thay đổi tập tin gần nhất 
Kích thước hiện thời Số byte của tập tin 
Kích thước tối đa. Số byte tối đa của tập tin 
Hình 8.3 Một số thuộc tính thông dụng của tập tin 
6.2 Thư mục: khái niệm, hệ thống thư mục, tổ chức bên trong 
Thư mục 
Thư mục là nơi để lưu giữ tập các file 
Để lưu trữ dãy các tập tin, hệ thống quản lý tập tin cung cấp thư mục, mà trong 
nhiều hệ thống có thể coi như là tập tin. 
Hệ thống thư mục theo cấp bậc 
Mộ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. 
 135
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ẻ. 
Hình 6.1 
 136
Hình 6.2 Hệ thống thư mục theo cấp bậc 
Đường dẫn : 
Khi 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. 
Các thao tác trên 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 . 
 137
Đổ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. 
6.3 Các phương pháp lưu giữ file 
Định vị liên tiếp : 
Lưu trữ tập tin trên dãy các khối liên tiếp. 
Phương pháp này có 2 ưu điểm : thứ nhất, dể dàng cài đặt. Thứ hai, dể dàng 
thao tác vì toàn bộ tập tin được đọc từ đĩa bằng thao tác đơn giản không cần định vị 
lại. 
Phương pháp này cũng có 2 khuyết điểm : không linh động trừ khi biết trước 
kích thước tối đa của tập tin. Sự phân mảnh trên đĩa, gây lãng phí lớn. 
Định vị bằng danh sách liên kết : 
Hình 6.3 Định vị bằng danh sách liên kết 
 138
Mọi khối đều được cấp phát, không bị lãng phí trong trường hợp phân mảnh và 
directory entry chỉ cần chứa địa chỉ của khối đầu tiên. 
Tuy nhiên khối dữ liệu bị thu hẹp lại và truy xuất ngẫu nhiên sẽ chậm. 
Danh sách liên kết sử dụng index : 
Tương tự như hai nhưng thay vì dùng con trỏ thì dùng một bảng index. Khi đó 
toàn bộ khối chỉ chứa dữ liệu. Truy xuất ngẫu nhiên sẽ dễ dàng hơn. Kích thước tập tin 
được mở rộng hơn. Hạn chế là bản này bị giới hạn bởi kích thước bộ nhớ . 
Hình 6.4 Bảng chỉ mục của danh sách liên kết 
I-nodes : 
Một I-node bao gồm hai phần. Phần thứ nhất là thuộc tính của tập tin. Phần này 
lưu trữ các thông tin liên quan đến tập tin như kiểu, người sở hữu, kích thước, 
v.v...Phần thứ hai chứa địa chỉ của khối dữ liệu. Phần này chia làm hai phần nhỏ. Phần 
nhỏ thứ nhất bao gồm 10 phần tử, mỗi phần tử chứa địa chỉ khối dữ liệu của tập tin. 
Phần tử thứ 11 chứa địa chỉ gián tiếp cấp 1 (single indirect), chứa địa chỉ của một khối, 
trong khối đó chứa một bảng có thể từ 210 đến 232 phần tử mà mỗi phần tử mới chứa 
địa chỉ của khối dữ liệu. Phần tử thứ 12 chứa địa chỉ gián tiếp cấp 2 (double indirect), 
 139
chứa địa chỉ của bảng các khối single indirect. Phần tử thứ 13 chứa địa chỉ gián tiếp 
cấp 3 (double indirect), chứa địa chỉ của bảng các khối double indirect. 
Cách tổ chức này tương đối linh động. Phương pháp này hiệu quả trong trường 
hợp sử dụng để quán lý những hệ thống tập tin lớn. Hệ điều hành sử dụng phương 
pháp này là Unix (Ví dụ : BSD Unix) 
Hình 6.5 Cấu trúc của I-node 
6.4 Các yêu cầu quản lý file. 
- Người sử dụng có thể dễ dàng tạo, sửa, thêm, bớt, xoá file. 
- Người sử dụng có thể chia sẻ file cho người sử dụng khác 
- Người sử dụng có thể truyền thông tin giữa các file lẫn nhau. 
- Người sử dụng có thể lấy lại, lưu giữ file một cách dễ dàng. 
- Người sử dụng có thể ngăn chặn các hành vi xâm phạm đến file và thực hiện 
được chế độ bảo vệ file. 
 140
- Có giao diện sử dụng file dễ dàng. 
6.5 Các thao tác file 
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. 
Thê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. 
6.6 Tổ chức file, truy nhập file 
Cấu trúc của tập tin : 
Gồm 3 loại : 
 141
Dãy tuần tự các byte không cấu trúc : hệ điều hành không biết nội dung của tập 
tin:MS-DOS và UNIX sử dụng loại này. 
Dãy các record có chiều dài cố định. 
Cấu trúc cây : gồm cây của những record, không cần thiết có cùng độ dài, mỗi 
record có một trường khóa giúp cho việc tìm kiếm nhanh hơn. 
Tập tin lưu trữ các thông tin. Khi tập tin được sử dụng, các thông tin này được 
đưa vào bộ nhớ của máy tính. Có nhiều cách để truy xuất chúng. Một số hệ thống cung 
cấp chỉ một phương pháp truy xuất, một số hệ thống khác, như IBM chẳng hạn cho 
phép nhiều cách truy xuất. 
Kiểu truy xuất tập tin đơn giản nhất là truy xuất tuần tự . Tiến trình đọc tất cả 
các byte trong tập tin theo thứ tự từ đầu. Các trình soạn thảo hay trình biên dịch cũng 
truy xuất tập tin theo cách này. Hai thao tác chủ yếu trên tập tin là đọc và ghi. Thao tác 
đọc sẽ đọc một mẫu tin tiếp theo trên tập tin và tự động tăng con trỏ tập tin. Thao tác 
ghi cũng tương tự như vậy. Tập tin có thể tự khởi động lại từ vị trí đầu tiên và trong 
một số hệ thống tập tin cho phép di chuyển con trỏ tập tin đi tới hoặc đi lui n mẫu tin. 
Truy xuất kiểu này thuận lợi cho các loại băng từ và cũng là cách truy xuất khá 
thông dụng. Truy xuất tuần tự cần thiết cho nhiều ứng dụng. Có hai cách truy xuất. 
Cách truy xuất thứ nhất thao tác đọc bắt đầu ở vị trí đầu tập tin, cách thứ hai có một 
thao tác đặc biệt gọi là SEEK cung cấp vị trí hiện thời làm vị trí bắt đầu. Sau đó tập tin 
được đọc tuần tự từ vị trí bắt đầu. 
Hình 6.6 Truy xuất tuần tự trên tập tin 
Một kiểu truy xuất khác là truy xuất trực tiếp. Một tập tin có cấu trúc là các mẫu 
tin logic có kích thước bằng nhau, nó cho phép chương trình đọc hoặc ghi nhanh 
chóng mà không cần theo thứ tự. Kiểu truy xuất này dựa trên mô hình của đĩa. Đĩa cho 
phép truy xuất ngẫu nhiên bất kỳ khối dữ liệu nào của tập tin. Truy xuất trực tiếp được 
sử dụng trong trường hợp phải truy xuất một khối lượng thông tin lớn như trong cơ sở 
 142
dữ liệu chẳng hạn. Ngoài ra còn có một số cách truy xuất khác dự trên kiểu truy xuất 
này như truy xuất theo chỉ mục ... 
6.7 Độ an toàn của hệ thống file 
Một hệ thống tập tin bị hỏng còn nguy hiểm hơn máy tính bị hỏng vì những hư 
hỏng trên thiết bị sẽ ít chi phí hơn là hệ thống tập tin vì nó ảnh hưởng đến các phần 
mềm trên đó. Hơn nữa hệ thống tập tin không thể chống lại được như hư hòng do phần 
cứng gây ra, vì vậy chúng phải cài đặt một số chức năng để bảo vệ. 
Quản lý khối bị hỏng 
Đĩa thường có những khối bị hỏng trong quá trình sử dụng đặc biệt đối với đĩa 
cứng vì khó kiểm tra được hết tất cả. 
Có hai giải pháp : phần mềm và phần cứng. 
Phần cứng là dùng một sector trên đĩa để lưu giữ danh sách các khối bị hỏng. 
Khi bộ kiểm soát tực hiện lần đầu tiên, nó đọc những khối bị hỏng và dùng một khối 
thừa để lưu giữ. Từ đó không cho truy cập những khối hỏng nữa. 
Phần mềm là hệ thống tập tin xây dựng một tập tin chứa các khối hỏng. Kỹ 
thuật này loại trừ chúng ra khỏi danh sách các khối trống, do đó nó sẽ không được cấp 
phát cho tập tin. 
Backup 
Mặc dù có các chiến lưọc quản lý các khối hỏng, nhưng một công việc hết sức 
quan trọng là phải backup tập tin thường xuyên. 
Tập tin trên đĩa mềm được backup bằng cách chép lại toàn bộ qua một đĩa khác. 
Dữ liệu trên đĩa cứng nhỏ thì được backup trên các băng từ. 
Đối với các đĩa cứng lớn, việc backup thường được tiến hành ngay trên nó. Một 
chiến lược dể cài đặt nhưng lãng phí một nữa đĩa là chia đĩa cứng làm hai phần một 
phần dữ liệu và một phần là backup. Mỗi tối, dữ liệu từ phần dữ liệu sẽ được chép 
sang phần backup. 
 143
Hình 6.7 Backup 
Tính không đổi của hệ thống tập tin 
Một vấn đề nữa về độ an toàn là tính không đổi. Khi truy xuất một tập tin, 
trong quá trình thực hiện, nếu có xảy ra những sự cố làm hệ thống ngừng hoạt động 
đột ngột, lúc đó hàng loạt thông tin chưa được cập nhật lên đĩa. Vì vậy mỗi lân khởi 
động ,hệ thống sẽ thực hiện việc kiểm tra trên hai phần khối và tập tin. Việc kiểm tra 
thực hiện , khi phát hiện ra lỗi sẽ tiến hành sữa chữa cho các trường hợp cụ thể: 
Hình 6.8 Trạng thái của hệ thống tập tin 
 144
Tài liệu tham khảo: 
[1] “Tập slide bài giảng”. Bộ môn Các hệ thống thông tin. 
[2] “Operating System Concepts”. A. Silberschatz, P. B. Galvin, G. Gagne, Wiley & Sons, 
2002. 
[3] “Operating Systems”, H. M. Deitel, P. J. Deitel and D. R. Choffnes, Pearson Education 
International, 2004. 
[4] “Modern Operating Systems”. Andrew S. Tanenbaum, Prentice-Hall International, 2001. 
[5] “Operating Systems – Internals and Design Principles”. William Stallings, Pearson 
Education International, 2005. 

File đính kèm:

  • pdfgiao_trinh_nguyen_ly_he_dieu_hanh_phan_2.pdf