Giáo trình Hệ điều hành - Chương 2: Cấu trúc hệ điều hành - Nguyễn Phú Trường

I Mục đích

Sau khi học xong chương này, người học nắm được những kiến thức sau:

o Hiểu hệ điều hành từ ba khía cạnh: người dùng, người lập trình và người

thiết kế

o Hiểu các dịch vụ mà hệ điều hànhcung cấp

o Biết các phương pháp được dùng để thiết kế kiến trúc hệ điều hành

pdf16 trang | Chia sẻ: hienduc166 | Lượt xem: 670 | Lượt tải: 0download
Bạn đang xem nội dung tài liệu Giáo trình Hệ điều hành - Chương 2: Cấu trúc hệ điều hành - Nguyễn Phú Trường, để tải tài liệu về máy bạn click vào nút TẢI VỀ ở trên
không yêu cầu phải hiệu chỉnh 
nhân. Kết quả là hệ điều hành dễ dàng hơn để chuyển đổi từ thiết kế phần cứng này 
sang thiết kế phần cứng khác. Vi nhân cũng cung cấp khả năng an toàn và tin cậy hơn 
vì hầu hết các dịch vụ đang chạy như người dùng –hơn là nhân- các quá trình. Nếu 
một dịch vụ bị lỗi, phần còn lại của hệ điều hành vẫn không bị ảnh hưởng. 
Một số hệ điều hành hiện đại dùng tiếp cận vi nhân. Tru64 UNIX (Digital UNIX 
trước đây) cung cấp giao diện UNIX tới người dùng, nhưng nó được cài đặt với nhân 
Mach. Nhân Mach ánh xạ các lời gọi hệ thống vào các thông điệp tới các dịch vụ cấp 
người dùng tương ứng. Hệ điều hành Apple MacOS Server được dựa trên cơ sở nhân 
Mach. 
QNX là hệ điều hành thời thực cũng dựa trên cơ sở thiết kế vi nhân. Vi nhân 
QNX cung cấp các dịch vụ cho việc truyền thông điệp và định thời quá trình. Nó cũng 
quản lý giao tiếp mạng cấp thấp và các ngắt phần cứng. Tất cả dịch vụ khác trong 
QNX được cung cấp bởi các quá trình chuẩn chạy bên ngoài nhân trong chế độ người 
dùng. 
Windows NT dùng một cấu trúc tổng hợp. Windows NT được thiết kế để chạy 
các ứng dụng khác nhau, gồm Win32 (ứng dụng thuần Windows), OS/2, và POSIX 
(Portable Operating System Interface for uniX). Nó cung cấp một server chạy trong 
không gian người dùng cho mỗi loại ứng dụng. Các chương trình khách hàng cho mỗi 
loại ứng dụng chạy trong không gian người dùng. Nhân điều phối việc truyền thông 
điệp giữa các ứng dụng khách hàng và server ứng dụng. Cấu trúc client-server của 
Windows NT được mô tả trong hình II.6 
Hình 0-6 – Cấu trúc client-server của Windows NT 
VIII Máy ảo 
Về mặt khái niệm, một hệ thống máy tính được cấu thành từ các tầng. Phần 
cứng là cấp thấp nhất trong tất cả hệ thống như thế. Nhân chạy tại cấp kế tiếp dùng 
các chỉ thị phần cứng để tạo một tập lời gọi hệ thống cho việc sử dụng các tầng bên 
ngoài. Do đó, các chương trình hệ thống trên nhân có thể dùng các lời gọi hệ thống 
hay các chỉ thị phần cứng. Trong nhiều trường hợp, các chương trình này không có sự 
khác biệt giữa hai cách thực hiện. Do đó, mặc dù chúng được truy xuất khác nhau, 
nhưng cả hai cung cấp chức năng mà chương trình có thể dùng để tạo thậm chí nhiều 
chức năng tiên tiến hơn. Sau đó, các chương trình hệ thống xem phần cứng và các lời 
gọi hệ thống như chúng đang ở cùng một cấp. 
Biên soạn: Th.s Nguyễn Phú Trường - 09/2005 Trang 
30
Đại Học Cần Thơ - Khoa Công Nghệ Thông Tin - Giáo Trình Hệ Điều Hành – V1.0 
Một vài hệ thống thực hiện cơ chế này một cách chi tiết hơn bằng cách cho 
phép các chương trình hệ thống được gọi dễ dàng bởi các chương trình ứng dụng. 
Trước đó, mặc dù các chương trình hệ thống ở tại cấp cao hơn các thủ tục khác, 
nhưng các chương trình ứng dụng có thể hiển thị mọi thứ dưới chúng trong cấu trúc 
phân cấp như là một phần của chính máy đó. Tiếp cận phân tầng này được đưa đến 
một kết luận luận lý trong khái niệm máy ảo (virtual machine). Một hệ điều hành máy 
ảo cho các hệ thống IBM là một thí dụ điển hình nhất về khái niệm máy ảo vì IBM 
tiên phong thực hiện trong lĩnh vực này. 
Bằng cách sử dụng bộ định thời CPU và kỹ thuật bộ nhớ ảo, một hệ điều hành 
có thể tạo một hình ảnh mà một quá trình có bộ xử lý của chính nó với bộ nhớ (ảo) 
của chính nó. Dĩ nhiên, thường thì một quá trình có các đặc điểm khác nhau, như các 
lời gọi hệ thống và hệ thống tập tin, mà không được cung cấp bởi phần cứng trơ. 
Thêm vào đó, tiếp cận máy ảo không cung cấp bất kỳ chức năng bổ sung nào; nhưng 
đúng hơn là cung cấp một giao diện giống hệt như phần cứng trơ ở bên dưới. Mỗi quá 
trình được cung cấp với một bản sao (ảo) của máy tính bên dưới (Hình II.7). 
Một khó khăn chính với tiếp cận máy ảo liên quan đến hệ thống đĩa. Giả sử rằng 
máy vật lý có ba ổ đĩa nhưng muốn hỗ trợ bảy máy ảo. Rõ ràng, nó không thể cấp 
phát một ổ đĩa tới mỗi máy ảo. Nhớ rằng chính phần mềm máy ảo sẽ cần không gian 
đĩa liên tục để cung cấp bộ nhớ ảo. Giải pháp này cung cấp đĩa ảo, mà nó đúng trong 
tất cả khía cạnh ngoại trừ kích thước-được thuật ngữ hóa đĩa nhỏ (minidisks) trong hệ 
điều hành máy ảo của IBM. Hệ thống cài đặt nhiều đĩa nhỏ bằng cách cấp phát nhiều 
rảnh ghi trên đĩa vật lý như là các đĩa nhỏ khi cần. Hiển nhiên, tổng kích thước của tất 
cả đĩa nhỏ là nhỏ hơn kích thước của không gian đĩa vật lý sẳn có. 
Hình 0-7-Các mô hình hệ thống. (a) Máy không ảo. (b) máy ảo 
Do đó, người dùng được cho máy ảo của chính họ. Sau đó, họ có thể chạy bất 
kỳ hệ điều hành hay gói phần mềm nào sẳn dùng trên phần cứng bên dưới. Đối với hệ 
thống IBM VM, một người dùng thường chạy CMS-một hệ điều hành giao tiếp đơn 
người dùng. Phần mềm máy ảo được quan tâm với đa máy ảo đa chương trên một 
máy vật lý nhưng không cần xem xét bất cứ phần mềm hỗ trợ người dùng. Việc sắp 
xếp này có thể cung cấp một sự phân chia hữu ích thành hai phần nhỏ hơn của vấn đề 
thiết kế một hệ thống giao tiếp đa người dùng. 
Biên soạn: Th.s Nguyễn Phú Trường - 09/2005 Trang 
31
Đại Học Cần Thơ - Khoa Công Nghệ Thông Tin - Giáo Trình Hệ Điều Hành – V1.0 
VIII.1 Cài đặt 
Mặc dù khái niệm máy ảo là hữu ích nhưng rất khó cài đặt. Nhiều công việc 
được yêu cầu cung cấp một bản sao chính xác của máy bên dưới. Máy bên dưới có hai 
chế độ: chế độ người dùng và chế độ kiểm soát. Phần mềm máy ảo có thể chạy trong 
chế độ kiểm soát vì nó là hệ điều hành. Chính máy ảo có thể thực thi chỉ trong chế độ 
người dùng. Tuy nhiên, chỉ khi máy vật lý có hai chế độ thì nó mới là máy ảo. Do đó, 
chúng ta phải có một chế độ người dùng ảo và một chế độ kiểm soát ảo. Cả hai đều 
chạy trong chế độ người dùng vật lý. Các hoạt động đó gây ra sự chuyển từ chế độ 
người dùng tới chế độ kiểm soát trên một máy thật (như lời gọi hệ thống hay cố gắng 
thực thi một chỉ thị được cấp quyền) cũng phải gây ra sự chuyển đổi từ chế độ người 
dùng ảo tới chế độ kiểm soát ảo trên một máy ảo. 
VIII.2 Lợi điểm 
Có hai lợi điểm chính trong việc sử dụng máy ảo. Thứ nhất, bằng cách bảo vệ 
hoàn toàn các tài nguyên hệ thống, máy ảo cung cấp mức độ bảo mật cao. Thứ hai, 
máy ảo cho phép phát triển hệ thống được thực hiện mà không cần phá vỡ hoạt động 
hệ thống thông thường. 
Mỗi máy ảo hoàn toàn bị cô lập từ các máy ảo khác, vì thế chúng ta không gặp 
phải bất kỳ vấn đề bảo mật nào như tài nguyên hệ thống khác hoàn toàn được bảo vệ. 
Thí dụ, các ứng dụng không được tin cậy được tải về từ Internet có thể được chạy 
trong một máy ảo riêng. Một bất lợi của môi trường này là không có sự chia sẻ tài 
nguyên trực tiếp. Hai tiếp cận cung cấp sự chia sẻ được cài đặt. Thứ nhất, có thể chia 
sẻ một đĩa nhỏ. Cơ chế này được làm mẫu sau một đĩa được chia sẻ vật lý. Thứ hai, có 
thể định nghĩa một mạng của các máy ảo, mỗi máy ảo có thể gửi thông tin qua các 
mạng giao tiếp này nhưng nó được cài đặt bằng phần mềm. 
Những hệ thống máy ảo như thế là một phương tiện truyền thông hữu hiệu cho 
việc nghiên cứu và phát triển hệ điều hành. Thông thường, thay đổi một hệ điều hành 
là một tác vụ khó. Vì các hệ điều hành là các chương trình lớn và phức tạp, sự thay 
đổi trên một phần này có thể gây một lỗi khó hiểu trong những phần khác. Sức mạnh 
của hệ điều hành làm cho trường hợp này là cực kỳ nguy hiểm. Vì hệ điều hành thực 
thi trong chế độ kiểm soát, một thay đổi sai trong một con trỏ có thể gây lỗi và có thể 
phá hủy toàn hệ thống tập tin. Do đó, cần phải kiểm tra tất cả thay đổi của hệ điều 
hành một cách cẩn thận. 
Tuy nhiên, hệ điều hành chạy trên máy và điều khiển hoàn toàn máy đó. Do 
đó, hệ thống hiện hành phải bị dừng và ngừng việc sử dụng trong khi những thay đổi 
được thực hiện và kiểm tra. Thời điểm này thường được gọi là thời gian phát triển hệ 
thống. Vì nó làm cho hệ thống không sẳn dùng đối với người sử dụng nên thời gian 
phát triển hệ thống thường được lập thời biểu vào buổi tối hay cuối tuần, khi tải hệ 
thống thấp. 
Một hệ thống máy ảo có thể loại trừ nhiều vấn đề này. Người lập trình hệ thống 
được cung cấp chính máy ảo của họ, và phát triển hệ thống được thực hiện trên máy 
ảo thay vì trên máy vật lý thật sự. Một hệ điều hành thông thường ít khi bị phá vỡ vì 
phát triển hệ thống. Mặc dù những thuận lợi này, nhưng rất ít cải tiến trên kỹ thuật 
này được thực hiện gần đây. 
Biên soạn: Th.s Nguyễn Phú Trường - 09/2005 Trang 
32
Đại Học Cần Thơ - Khoa Công Nghệ Thông Tin - Giáo Trình Hệ Điều Hành – V1.0 
IX Tóm tắt 
Hệ điều hành cung cấp một số dịch vụ. Tại cấp thấp nhất, lời gọi hệ thống cho 
phép một chương trình đang chạy thực hiện yêu cầu trực tiếp từ hệ thống. Tại cấp cao 
hơn, trình thông dịch cung cấp cơ chế cho người dùng đưa ra yêu cầu mà không viết 
chương trình. Các lệnh có thể xuất phát từ tập tin trong suốt thời gian thực thi theo 
chế độ xử lý theo lô, hay trực tiếp từ bàn phím trong chế độ tương tác hay chia sẻ thời 
gian. Các chương trình hệ thống được cung cấp để thoả mãn nhiều yêu cầu thông 
thường của người dùng. 
Các loại yêu cầu khác nhau dựa theo cấp yêu cầu. Cấp gọi hệ thống phải cung 
cấp các chức năng cơ bản, như điều khiển quá trình, quản lý tập tin và thiết bị. Các 
yêu cầu cấp cao hơn được thoả mãn bởi trình thông dịch lệnh và chương trình hệ 
thống được dịch vào một chuỗi các lời gọi hệ thống. Các dịch vụ hệ thống có thể được 
phân cấp thành nhiều loại: điều khiển chương trình, yêu cầu trạng thái, yêu cầu 
nhập/xuất. Lỗi chương trình được xem xét các yêu cầu ẩn cho dịch vụ. 
Một khi dịch vụ hệ thống được định nghĩa, cấu trúc của hệ điều hành được phát 
triển. Các bảng khác nhau cần được ghi thông tin định nghĩa trạng thái của hệ thống 
máy tính và trạng thái của công việc hệ thống. 
Thiết kế một hệ điều hành mới là công việc rất quan trọng. Thiết kế hệ thống 
như thứ tự của các tầng hay sử dụng vi nhân được xem là một kỹ thuật tốt. Khái niệm 
máy ảo thực hiện tiếp cận phân tầng và xem nhân của hệ điều hành và phần cứng như 
là phần cứng của nó. Các hệ điều hành khác có thể được nạp trên đỉnh của máy ảo. 
Biên soạn: Th.s Nguyễn Phú Trường - 09/2005 Trang 
33

File đính kèm:

  • pdfChuong2-Cau truc He dieu hanh.pdf
Bài giảng liên quan