Giáo trình môn Nguyên lý hệ điều hành

Khái niệm hệ điều hành

Hệ điều hành là một hệ thống các chương trình hoạt động giữa người sử dụng

(user) và phần cứng của máy tính. Mục tiêu của hệ điều hành là cung cấp một môi

trường để người sử dụng có thể thi hành các chương trình. Nó làm cho máy tính dễ sử

dụng hơn, thuận lợi hơn và hiệu quả hơn.

Hệ điều hành là một phần quan trọng của hầu hết các hệ thống máy tính. Một hệ

thống máy tính thường được chia làm bốn phần chính : phần cứng, hệ điều hành, các

chương trình ứng dụng và người sử dụng.

Phần cứng bao gồm CPU, bộ nhớ, các thiết bị nhập xuất, đây là những tài

nguyên của máy tính.

Chương trình ứng dụng như các chương trình dịch, hệ thống cơ sở dữ liệu, các

trò chơi, và các chương trình thương mại. Các chương trình này sử dụng tài nguyên

của máy tính để giải quyết các yêu cầu của người sử dụng.

Hệ điều hành điều khiển và phối hợp việc sử dụng phần cứng cho những ứng

dụng khác nhau của nhiều người sử dụng khác nhau. Hệ điều hành cung cấp một môi

trường mà các chương trình có thể làm việc hữu hiệu trên đó.

Giáo trình môn Nguyên lý hệ điều hành trang 1

Trang 1

Giáo trình môn Nguyên lý hệ điều hành trang 2

Trang 2

Giáo trình môn Nguyên lý hệ điều hành trang 3

Trang 3

Giáo trình môn Nguyên lý hệ điều hành trang 4

Trang 4

Giáo trình môn Nguyên lý hệ điều hành trang 5

Trang 5

Giáo trình môn Nguyên lý hệ điều hành trang 6

Trang 6

Giáo trình môn Nguyên lý hệ điều hành trang 7

Trang 7

Giáo trình môn Nguyên lý hệ điều hành trang 8

Trang 8

Giáo trình môn Nguyên lý hệ điều hành trang 9

Trang 9

Giáo trình môn Nguyên lý hệ điều hành trang 10

Trang 10

Tải về để xem bản đầy đủ

pdf 144 trang duykhanh 7460
Bạn đang xem 10 trang mẫu của tài liệu "Giáo trình môn Nguyên lý hệ điều hành", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

Tóm tắt nội dung tài liệu: Giáo trình môn Nguyên lý hệ điều hành

Giáo trình môn Nguyên lý hệ điều hành
ect 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 
cuối cùng 
Ngày và giờ truy xuất tập tin gần nhất 
Nguyên lý hệ điều hành 
133
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. 
Nguyên lý hệ điều hành 
134
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 
Nguyên lý hệ điều hành 
135
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 . 
Nguyên lý hệ điều hành 
136
Đổ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 
Nguyên lý hệ điều hành 
137
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), 
Nguyên lý hệ điều hành 
138
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. 
- Có giao diện sử dụng file dễ dàng. 
Nguyên lý hệ điều hành 
139
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 : 
Nguyên lý hệ điều hành 
140
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ở 
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 ... 
Nguyên lý hệ điều hành 
141
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. 
Nguyên lý hệ điều hành 
142
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ể: 
Nguyên lý hệ điều hành 
143
Hình 6.8 Trạng thái của hệ thống tập tin 
Nguyên lý hệ điều hành 
144
Tài liệu tham khảo: 
[1] “Tập slide bài giảng”. 
[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_mon_nguyen_ly_he_dieu_hanh.pdf