Bài giảng Hệ điều hành - Chương 1: Mở đầu

Một hệ điều hành là phần mềm chứa đựng tất cả các chương trình cần thiết để

điều hành máy tính thực hiện các ứng dụng khác nhau. Nếu một người sử dụng

máy tính chỉ để xử lý text, anh ta sẽ mong rằng, máy tính chứa đựng tất cả các

chức năng của ứng dụng xử lý text.

Các phần mềm của hệ điều hành được dùng trên thị trường là những phần mềm

đã được chuẩn hoá. Tất cả đều có chung những chức năng là kết nối giữa phần

cứng của máy tính ( như bộ vi xử lý, bộ nhớ và thiết bị xuất nhập) và các phần

mềm ứng dụng ( như các files, các chương trình của người sử dụng ).

Ta định nghĩa cô động: Hệ điều hành là tổng hợp các chương trình được sử

dụng là phương tiện điều hành để quản lý và điều khiển. Định nghiax này không

đòi hỏi sự đa năng và hoàn mỹ mà nó thực nghiệm một cách uyển chuyển để mô

phỏng trạng thái tức thời của một khái niệm có thể thay đổi. Sự khác nhau của

định nghĩa thứ nhất là ở chỗ, những chương trình dịch vụ ( như biên dịch và kết

nối) được gắn vào hệ điều hành, nhưng nó lại được tách rời trong định nghĩa thứ

hai. Sau đây, chúng ta sẽ chấp nhận một quan điểm trung hoà:

Hệ điều hành là phần mềm có ứng dụng độc lập và cần thiết để điều hành một

máy tính.

pdf12 trang | Chuyên mục: Hệ Điều Hành | Chia sẻ: dkS00TYs | Lượt xem: 2026 | Lượt tải: 0download
Tóm tắt nội dung Bài giảng Hệ điều hành - Chương 1: Mở đầu, để xem tài liệu hoàn chỉnh bạn click vào nút "TẢI VỀ" ở trên
g trên những phần cứng có phiên bản 
thấp. 
4. Nó không được che phủ tất cả, mà nó phải đáp ứng một cách dễ dàng các 
yêu cầu chuyển đổi. 
5. Điều quan trọng: nó phải là một hệ điều hành mạnh. 
Nếu quan sát những dự kiến này, người ta thấy, đó là những điều nan giải. 
Những yêu cầu đồng thời ( như tương thích, bền vững, tiện lợi và mạnh) thì đối 
lập với chính nó, vì MS-DOS thì tuyệt đối không bền vững, không mạnh và hoàn 
toàn không tương thích với Unix. Tuy nhiên, tác giả vẫn đạt được mục đích, vì anh 
ta đã sử dụng kinh nghiệm của các hệ điều hành khác và đã biến điệu một cách 
mạnh mẽ. Việc phân lớp và những quan hệ gọi của nhân ở bản phác thảo gốc được 
trình bày trên hình 1.7. Nhân của hệ điều hành này mang tên Windows NT 
Executive, nó là phần dưới của khối chuyển đổi trạng thái người sử dụng và trạng 
thái hệ điều hành. 
Để giải quyết vấn đề thiết kế, dưới đây ba tiêu chí quan trọng của hệ điều hành 
được nói tới. 
 Tính tương thích ( compatible) 
Đó là khả năng đặc biệt của một hệ điều hành mà ta có thể truy cập được vào 
một hệ điều hành riêng lẻ. Với tư cách là cơ cấu hệ điều hành ảo, nó được chứa 
đựng trong khả năng dịch vụ của Windows NT Executive ( tức là gọi hệ thống 
được biểu thị bằng mũi tên vẽ đậm trên hình 1.7). 
Việc xuất nhập định hướng ký tự được dẫn ra bởi dịch vụ của Win32. Những 
dịch vụ của hệ thống con (subsystem) được yêu cầu qua các thông tin ( gọi các 
local procedure, xem mũi tên vẽ nhạt trên hình 1.7) của các chương trình người sử 
dụng hay của khách hàng. Nếu là server, chúng cũng có quan hệ client/server. 
  Độ bền vững ( strengthen) 
Nó đạt được nhờ sự phân chia chặt chẽ của các chương trình với nhau và nhờ 
việc luôn luôn giữ vững các quá trình ngoại vi (cơ cấu DOS ảo) đối với các 
chương trình chạy trên MS-DOS hay trên Windows. Các chức năng này là đồng 
đều, nhưng việc truy cập(số liệu) trực tiếp được tách ra trên phần cứng, do vậy với 
các chức năng này thì các chương trình cũ có thể chạy được. Những biện pháp phụ 
như một hệ thống files có độ chính xác lỗi và những cơ cấu bảo vệ chuyên dụng để 
kiểm tra sự chọn files, mạng và chương trình đã trợ giúp cho mục đích này. 
 Độ thuận tiện (commodity) 
Đó là khả năng có thể bảo quản và mở rộng, qua đó, một hệ điều hành được 
viết bằng ngôn ngữ C, có thể trao đổi mạnh và được phân lớp ngay từ đầu. Với lớp 
HAL (xem hình 1.7), phần cứng được mô phỏng như là máy ảo và ở việc truy cập 
tới các bộ vi xử lý khác nó thu hẹp sự thay đổi cần thiết trên các đơn thể. Điều thú 
vị là từ các version 4.0 của hệ thống Win32 thì đã tiết kiệm thời gian để gọi hệ 
thống từ Win32 tới Win NT. Sự trợ giúp của chuẩn khác ( như hệ thống file OS/2 
với version 4.0) thì hệ điều hành Win NT đã được điều chỉnh. 
1.4 Sự giao kết phần cứng và phần mềm. 
Cấu tạo của các máy ảo cho phép giữ lại giao diện một cách tương tự tới các 
đơn thể và thay đổi sự thực thi. Do đó, nó sẽ có điều kiện để thực hiện việc thực 
thi nhờ một sự giao trộn qua lại từ phần cứng và phần mềm. Đối với khả năng dịch 
vụ thì điều đó không quan trọng. Vì phần cứng làm việc hầu như nhanh hơn, 
nhưng giá đắt hơn; ngược lại phần mềm làm việc chậm hơn, nhưng giá lại rẻ hơn 
và có thể thay đổi nhanh chóng hơn. Do đó, khi thiết kế cấu trúc một máy tính , 
người ta phải lưu ý giải quyết hai nguyên do kể trên. Hình 1.8 là một thí dụ, cho 
thấy sự phân lớp theo mã máy tượng trưng (trên hình vẽ ký hiệu p-code), mà nó 
hoặc là được giao kết bằng phần mềm qua bộ biên dịch (compiler) và bộ thông 
dịch(interpreter), hoặc là có thể được thực hiện bằng phần cứng qua các lệnh máy. 
Trong trường hợp thứ hai, lớp ở giữa được di chuyển trong phần cứng (xem hình 
1.8 ở phía bên trái). Trong đó, mỗi lệnh p-code được thực hiện một chức năng (tức 
là được lập trình bằng mã microcode) ở trong CPU. 
Program in p-code 
p-code/machinecode 
CPU- hardware 
 Hình 1.8. Sự giao kết phần cứng và phần mềm bằng mã p-code 
Program in p-code 
Microcode-
hardware and CPU-
hardware 
Đối với vấn đề vừa nêu, một điều khác cần phải nói, đó là sự trợ giúp của các 
chức năng mạng. Với các bộ điều khiển mạng rẻ tiền thì hầu hết có chỉ chứa đựng 
tập hợp các chip theo tiêu chuẩn, nó chỉ là cấu nối tín hiệu và có thời hạn làm việc 
nhất định. Tất cả những chức năng và giao thức cao hơn để kết hợp các gói dữ liệu 
hoặc để tìm thấy lộ trình của mạng đều phải được bộ nhớ chính và phần mềm tích 
hợp thực hiện, điều đó làm giảm đi đáng kể khả năng của bộ vi xử lý đối với các 
nhiệm vụ khác(như giao diện người sử dụng, xử lý text…). Trên cơ sở đó, ở các 
bộ điều khiển mạng giá đắt hơn, các chức năng điều khiển mạng và quản lý dữ liệu 
được di chuyển trên phần cứng, nghĩa là bộ vi xử lý phải thực hiện một số quy 
trình để tiếp cận những chức năng ở mức độ cao. 
Ở đây, điều chẳng có gì quan trọng đó là: những chức năng của bộ điều khiển 
mạng đã được hoàn thiện nhờ một bộ vi xử lý riêng lẻ hoặc nhờ kết cấu thích hợp 
của chip. Ngoài ra, nếu một ngôn ngữ hình thức được sử dụng để thiết kế các lệnh 
cho máy thì sự khác nhau của hai vấn đề trên không còn điều gì để nói. Điều quyết 
định còn lại cần phải được xem xét, đó là giá thành, chất lượng tiêu chuẩn và sự 
mong muốn của khách hàng. 
1.5 Cấu trúc nhiều bộ vi xử lý (multi- processorsystem) 
Đối với vấn đề quản lý các phương tiện điều hành thì điều quan trọng là phải 
xem xét còn tồn tại những quan hệ và những sự phụ thuộc nào giữa chúng. Điều 
đó độc lập với việc sử dụng kiểu bộ vi xử lý, kiểu bus, hay loại sản phẩm vi mạch 
các bộ nhớ, vấn đề là, người ta phải biết phân biệt một vài kiểu cấu hình cơ bản. 
Trong trường hợp kinh điển và đơn giản, trước hết ta khảo sát hệ thống với chỉ 
một bộ vi xử lý được dùng làm bộ nhớ quảng đại (massen- memory) và bộ nhớ 
chính (main memory) để xây dựng hệ điều hành và thực hiện các chương trình của 
người sử dụng (xem hình 1.9). Ở đây, các thiết bị vào- ra (như màn hình, bàn 
phím, chuột…) không chỉ ra trên hình vẽ. 
 Hình 1.9. Hệ thống một bộ vi xử lý đơn 
Các chƣơng 
trình các dữ 
liệu 
 bộ nhớ chính 
Nhân 
HĐH 
Chƣơng 
trìnhNSD1 
… Chƣơng 
trìnhNSDn 
bộ nhớ 
quảng đại 
processor 
Từ việc nghiên cứu hệ thống đơn vi xử lý như vừa nêu, người ta có thể thiết lập 
một hệ thống với nhiều bộ vi xử lý. Mỗi lần người ta kết nối các bộ vi xử lý khác 
nhau thì sẽ nhận cấu trúc hệ thống khác nhau. Cấu trúc đơn giản nhất cho thấy, đó 
là một CPU mà các bộ vi xử lý đơn được mắc song song qua một bảng kết nối, 
chẳng hạn qua một bus đa nhiệm (multi-master- systembus). Hình 1.10 mô tả một 
hệ thống nhiều bộ vi xử lý; trong đó P1….Pn là các bộ vi xử lý đơn và M1…Mn là 
các bộ nhớ quảng đại. 
Các đơn thể bộ vi xử lý được định vị trên một phía bảng kết nối, còn phía kia 
là các đơn thể bộ nhớ. Đối với mỗi việc truy cập mã chương trình hay mã dữ liệu 
thì một sự kết nối giữa chúng được tạo ra, sự kết nối này tồn tại trong suốt thời 
gian yêu cầu. 
 Hình 1.10. Hệ thống đa vi xử lý 
Một cấu trúc như vậy dẫn tới một cách dễ dàng sự giảm sút hiệu suất thực thi, 
vì bảng kết nối quá tải khi phải thường xuyên truy cập bộ nhớ. Trong trường hợp 
này, một sự trợ giúp được dẫn ra từ việc quan sát, rằng các bộ vi xử lý hầu như chỉ 
tham chiếu giới hạn hẹp một phần chương trình. 
Ở đây, bộ nhớ có thể được phân chia và được dẫn ra một cách dày đặc hơn tới 
mỗi một bộ vi xử lý (xem hình 1.11). Tất nhiên, sự phân chia này phải được trợ 
giúp bởi bộ biên dịch để nó phân chia chương trìng người sử dụng một cách thích 
hợp. 
 Bảng kết nối 
 (với multi-master-systembus) 
M1 M2 
P1 P2 Pn 
Chƣơng 
trìnhNSD1 
… Chƣơng 
trìnhNSDn 
Nhân 
HĐH 
 Hình 1.11. Hệ thống nhiều máy tính 
Mạng máy tính tồn tại như là một kiểu kết nối thứ ba. Ở đây, các máy tính làm 
việc độc lập với hệ điều hành riêng lẻ (nghĩa là không cần thiết phải giống nhau), 
được kết nối với nhau trong một mạng (xem hình 1.12) 
 Hình 1.12. Mạng máy tính - cấu trúc đa vi xử lý 
Nếu có một phần mềm được tạo lập trên máy tính, mà máy tính này làm việc 
như là một máy chủ (server), nó cung cấp các dịch vụ (các tài nguyên) cho các 
máy tính khác (client) thì người ta gọi cấu trúc này có quan hệ khách- chủ (client-
server). Thông thường, máy chủ có những khả năng dịch vụ là quản lý chương 
trình (number- cruncher), quản lý in ấn (print server), quản lý dữ liệu (file 
server)… 
Mỗi một kiểu cấu trúc máy hệ điều hành máy tính được trình bày ở trên có 
những lợi thế và yếu thế khác nhau. Đối với chúng ta, điều quan trọng là, sử dụng 
cơ cấu nào để đạt được sự trao đổi thông tin qua các bộ vi xử lý và để đạt được sự 
Nhân 
HĐH 
Chƣơng 
trìnhNSD1 
Nhân 
HĐH 
Chƣơng 
trìnhNSDn 
P1 P1 
 Bảng kết nối 
M1 M2 
Nhân 
HĐH 
Chƣơng 
trìnhNSD1 
Nhân 
HĐH 
Chƣơng 
trìnhNSDn 
P1 P1 
 Bảng kết nối (mạng LAN, WAN) 
M1 M2 
truy cập đồng bộ ở các phương tiện điều hành. Đó chính là phương hướng được 
tiếp tục xem xét kỷ lưởng ở các chương sau. 
1.6. Các bài tập của chƣơng 1 
Bài tập 1.1. Về hệ điều hành 
Mục đích của hệ điều hành bao gồm việc phân bổ các phương tiện điều hành 
theo sự thỉnh cầu của người sử dụng. 
a). Vì sao phải tạo thô một hệ điều hành ? 
b). Có những phương tiện điều hành nào bạn biết? 
c). Người sử dụng nào có thể được thỉnh cầu ? (Ở đây khái niệm người sử dụng 
là một khái niệm khái quát). 
d). Người sử dụng đòi hỏi những yêu cầu gì ở hệ điều hành? 
e). Bạn hãy giải thích các khái niệm máy ảo và giao diện. 
Bài tập 1.2. Về hệ điều hành Unix 
a). Trên phạm vi các máy tính của cơ quan bạn, hệ điều hành Unix có bao 
nhiêu gọi hệ thống ? 
b). Các gọi hệ thống được phân thành máy nhóm chức năng ? 
c). Một gọi hệ thống được thực thi trên máy tính của bạn như thế nào? 
Gợi ý:Nếu bạn mở quyển sổ tay về lập trình Assembler hay C, hoặc nếu bạn 
thực hiện trình Debugger dịch trở lại một gọi hệ thống được viết bằng ngôn ngữ C 
thành Assembler; khi đó các tệp tin include của C (như syscall.h. trap.h, proc.h, 
kernel.h…)sẽ đưa ra nhiều trợ giúp thú vị. 

File đính kèm:

  • pdfHDH_chuong 1.pdf