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 đó.
Trang 1
Trang 2
Trang 3
Trang 4
Trang 5
Trang 6
Trang 7
Trang 8
Trang 9
Trang 10
Tải về để xem bản đầy đủ
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
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:
- giao_trinh_mon_nguyen_ly_he_dieu_hanh.pdf