Một số kiểu cấu trỳc hệđiều hành

Một phần của tài liệu Bao cao mon hoc he dieu hanh (Trang 33 - 36)

CHƢƠNG 2 TèM HIỂU KỸ CẤUTRÚC HỆĐIỀU HÀNH

2.3 CẤUTRÚC HỆĐIỀU HÀNH

2.3.3 Một số kiểu cấu trỳc hệđiều hành

Cỏc thành phần đó nờu ở phần trờn cần được tổ chức, kết hợp với nhau theo một cỏch nào đú để tạo ra một hệ thống thống nhất là hệ điều hành. Trong phần này, ta sẽ xem xột một số kiểu cấu trỳc hệ điều hành thường được sử dụng.

2.3.3.1 Cấu trỳc nguyờn khối

Cấu trỳc nguyờn khối (monolithic), hay cấu trỳc đơn giản, là cấu trỳc trong đú toàn bộ cỏc

chương trỡnh và dữ liệu của hệ điều hành cú chung một khụng gian nhớ và do vậy cú thể coi như một khối duy nhất. Hệ điều hành lỳc đú trở thành một chương trỡnh lớn, là tập hợp cỏc thủ tục hay cỏc chương trỡnh con. Mỗi chương trỡnh con cú thể tự do gọi chương trỡnh con khỏc khi cần thiết.

Cỏch tổ chức hệ điều hành như vậy cho ta hỡnh ảnh tương tự với chương trỡnh được viết theo kiểu lập trỡnh cấu trỳc, trong đú toàn bộ chương trỡnh tạo thành từ cỏc chương trỡnh con, vớ dụ chương trỡnh viết trờn ngụn ngữ C hay Pascal. Cỏc chương trỡnh con được dịch, sau đú liờn kết thành một chương trỡnh lớn. Việc che dấu thụng tin hoàn toàn khụng cú, tức là bất cứ chương trỡnh con nào cũng cú thể gọi chương trỡnh con khỏc hoặc truy cập vào cỏc dữ liệu chung của chương trỡnh.

Khi chương trỡnh ứng dụng cần dựng tới cỏc dịch vụ của hệ điều hành, chương trỡnh ứng dụng sẽ sử dụng lời gọi hệ thống do hệ điều hành cung cấp. Lời gọi hệ thống được chuyển cho chương trỡnh con tương ứng của hệ điều hành thực hiện. Chương trỡnh con này sẽ gọi thờm cỏc chương trỡnh con khỏc để thực hiện nhiệm vụ nếu cần thiết.

Hỡnh 10 Cấu trỳc nguyờn khối HĐH

Ưu điểm lớn nhất của cấu trỳc nguyờn khối là tốc độ thực hiện cao. Do cú chung khụng gian địa chỉ, việc truy cập dữ liệu hoặc gọi chương trỡnh con cần thiết được thực hiện nhanh chúng, khụng phải chịu những phớ tổn về thời gian và bộ nhớ (ngăn xếp) như khi chuyển đổi giữa những mụ đun cú khụng gian nhớ khỏc nhau (giữa cỏc chương trỡnh khỏc nhau).

Nhược điểm của cỏch tổ chức này là thiếu tớnh mềm dẻo và khú làm cho hệ thống cú độ tin cậy cao. Do toàn bộ nhõn là một chương trỡnh lớn nờn việc thay đổi bất cứ thành phần nào cũng ảnh hưởng tới toàn bộ nhõn. Điều này làm cho hệ thống khụng mềm dẻo, khú thay đổi. Ngoài ra, do toàn bộ hệ điều hành là một khối, mỗi chương trỡnh con trong khối lại cú thể truy cập tới dữ liệu và chương trỡnh con khỏc, việc xuất hiện lỗi sẽ làm cho cả hệ thống tờ liệt. Việc liờn kết cỏc thành phần thành một khối lớn cũn khiến cho nhõn luụn cú kớch thước lớn. Kể cả cỏc thành phần khụng cần đến cũng được tải vào bộ nhớ cựng với cỏc thành phần khỏc.

Để khắc phục cỏc nhược điểm núi trờn, trong một số hệ điều hành cấu trỳc khối, người ta tổ chức cỏc mụ đun cú thể tải từ đĩa và gắn vào nhõn khi cần thiết. Trong trường hợp khụng dựng tới cú thể xoỏ cỏc mụ đun khỏi nhõn. Tuy là cỏc mụ đun riờng nhưng khi đó được tải vào bộ nhớ, cỏc mụ đun này nhập vào với nhõn thành một khối cú cựng khụng gian địa chỉ. Điều này đảm bảo cho hệ điều hành giữ được cấu trỳc nguyờn khối mà vẫn khụng cú cỏc thành phần thừa. Một vớ dụ cho cỏch tổ chức kiểu này là hệ điều hành Linux

Bảng 7 Cấu trỳc hệ điều hành Linux

Cỏc trỡnh ứng dụng Cỏc trỡnh tiện ớch Cỏc trỡnh quản lý hệ thống

Thư viện hệ thống

Nhõn

Cỏc mụđun tải được

Cấu trỳc của Linux được thể hiện trờn hỡnh 1.15. Nhõn của Linux cú thể mở rộng nhờ cỏc mụđun. Cỏc mụđun này được tải vào bộ nhớ khi cần và khỏi bộ nhớ khi khụng cần nữa. Chẳng hạn khi ta sử dụng đĩa CD-ROM, mụđun chịu trỏch nhiệm điều khiển vào ra với đĩa sẽ được tải vào bộ nhớ. Quỏ trỡnh này khụng đũi hỏi khởi động lại mỏy để cú thể sử dụng thiết bị mới thờm vào. Cỏc mụđun được tải vào trong hai trường hợp: khi người dựng sử dụng cỏc lệnh insmod và rmmod hoặc khi nhõn cần cỏc mụđun và tự tải vào cho mỡnh. Sau khi được tải vào bộ nhớ, chương trỡnh và dữ liệu của mụđun tải vào cú cựng khụng gian nhớ với nhõn. Cỏc hàm chứa trong mụđun sẽ được cỏc hàm khỏc của nhõn “nhỡn thấy” và gọi nếu cần. Núi cỏch khỏc mụđun và cỏc thành phần khỏc của nhõn tạo thành một “khối” nhõn mới lớn hơn. Cỏch tổ chức này cho phộp tõn dụng ưu thế về tốc độ của cấu trỳc khối đồng thời đảm bảo cho nhõn khụng chứa cỏc phần thừa.

2.3.3.2 Cấu trỳc phõn lớp

Để việc xõy dựng một hệ thống phần mềm lớn và phức tạp như hệ điều hành được đơn giản hơn, nguyờn tắc thường được sử dụng là nguyờn tắc mụ đun húa, theo đú toàn hệ thống được phõn thành cỏc mụ đun sao cho từng mụ đun cú thể được phỏt triển, thay đổi, kiểm tra lỗi tương đối độc lập với cỏc mụ đun khỏc. Một trong cỏc kiểu cấu trỳc cho phộp ỏp dụng nguyờn tắc này là cấu trỳc phõn lớp.

Cấu trỳc phõn lớp là cấu trỳc trong đú cỏc thành phần của hệ điều hành được phõn thành cỏc lớp nằm chồng lờn nhau hay tiếp xỳc với nhau theo một thứ tự nhất định (hỡnh 1.16). Lớp trờn cựng (hay ngoài cựng) là lớp cỏc chương trỡnh ứng dụng, lớp dưới cựng (hoặc trong cựng) tương ứng với phần cứng. Việc liờn lạc giữa cỏc lớp được quy định sao cho mỗi lớp chỉ cú thể liờn lạc với lớp nằm kề bờn trờn và kề bờn dưới.

Điểm đặc biệt của cấu trỳc phõn lớp là mỗi lớp chỉ cú thể sử dụng dịch vụ do lớp nằm ngay bờn dưới cung cấp. Dịch vụ này được cung cấp qua giao diện của lớp dưới, thường là dưới dạng cỏc hàm mà lớp trờn cú thể gọi. Cỏc chi tiết cụ thể của lớp dưới như cấu trỳc dữ liệu, mó chương trỡnh được che dấu khỏi lớp trờn. Lớp trờn chỉ quan tõm tới dịch vụ được cung cấp mà khụng cần quan tõm đến cỏc chi tiết này. Như vậy, ta cú thể thay đổi cỏc lớp độc lập với nhau, chỉ cần đảm bảo giữ nguyờn giao diện với lớp trờn. Phần lớn cỏc lớp chạy trong chế độ nhõn hay chế độ đặc quyền.

Bảng 8 Vớ dụ về cấu trỳc phõn lớp

Trỡnh ứng dụng Hệ thống file Liờn lạc giữa cỏc tiến

trỡnh Quản lý vào/ra Quản lý bộ nhớ Quản lý tiến trỡnh

Phần cứng

Một ưu điểm rừ nột của cấu trỳc phõn lớp là cấu trỳc này cho phộp thực hiện dũ lỗi và hoàn thiện hệ điều hành một cỏch tương đối dễ dàng. Việc dũ lỗi và hoàn thiện được thực hiện từ dưới lờn trờn. Trước tiờn lớp dưới được kiểm tra độc lập với lớp trờn. Sau khi đó chắc chắn lớp dưới khụng cú lỗi, ta cú thể chuyển sang kiểm tra lớp trờn. Do cỏc dịch vụ lớp dưới cung cấp cho lớp trờn đó được kiểm tra, nờn nếu xuất hiện lỗi, cú thể tập trung tỡm lỗi trong lớp trờn. Quỏ trỡnh tỡm lỗi được thực hiện từ dưới lờn trờn như vậy cho tới khi tới lớp trờn cựng của hệ thống.

Tuy nhiờn, khú khăn thường gặp khi thiết kế hệ điều hành cú cấu trỳc phõn lớp là việc xỏc định số lớp cũng như phõn chia thành phần cụ thể của mỗi lớp là khụng dễ dàng. Do mỗi lớp chỉ cú thể gọi lớp nằm ngay bờn dưới, cần xỏc định và phõn hoạch chớnh xỏc cỏc lớp trờn cơ sở chức năng và tương tỏc giữa cỏc phần của hệ điều hành. Vớ dụ, khối quản lý bộ nhớ ảo của hệ điều hành thường sao chộp một phần khụng gian nhớ ảo lờn đĩa. Như vậy, chương trỡnh quản lý sao chộp ra đĩa phải nằm ở lớp thấp hơn lớp cú chứa khối quản lý bộ nhớ ảo. Cú như vậy, khối quản lý bộ nhớ mới cú thể sử dụng được dịch vụ sao chộp này.

Một nhược điểm nữa của cấu trỳc phõn lớp là tốc độ tương đối thấp so với cỏc kiểu cấu trỳc khỏc. Mỗi khi chương trỡnh ứng dụng yờu cầu thực hiện cỏc thao tỏc (chẳng hạn vào/ra) thụng qua lới gọi hệ thống. Yờu cầu này được truyền từ lớp trờn xuống phần cứng thụng qua cỏc lớp trung gian. Trong quỏ trỡnh truyền, mỗi lớp sẽ cú cỏc xử lý riờng của mỡnh như thờm địa chỉ, tạo ra lời gọi lớp dưới thớch hợp.v.v. Kết quả là thời gian phục vụ của hệ thống sẽ tăng lờn so với trường hợp khụng phõn lớp.

Do cỏc nhược điểm nờu trờn, cấu trỳc phõn lớp hoàn toàn ớt được sử dụng trong thời gian gần đõy. Trong một số trường hợp, cấu trỳc phõn lớp cũng được sử dụng nhưng với số lượng lớp ớt, mỗi lớp đảm nhiệm nhiều chức năng hơn (như hệ điều hành OS/2). Ngoài ra, cấu trỳc phõn lớp thường được sử dụng kết hợp với cỏc kiểu cấu trỳc khỏc (xem phần cấu trỳc lai bờn dưới). Cỏch tổ chức này cho phộp tận dụng một phần ưu điểm của việc phõn lớp đồng thời giảm được khú khăn trong khõu thiết kế và tổ chức tương tỏc giữa cỏc lớp.

2.3.3.3 Cấu trỳc vi nhõn

Một kiểu cấu trỳc mới hơn và khỏ phổ biến khỏc là cấu trỳc vi nhõn (microkernel). cỏc hệ điều hành cú cấu trỳc kiểu này, phần nhõn chỉ chứa cỏc chức năng quan trọng nhất như quản lý tiến trỡnh, quản lý bộ nhớ, liờn lạc giữa cỏc tiến trỡnh. Cỏc chức năng cũn lại của hệ điều hành được tổ chức thành cỏc mụđun khỏc, mỗi mụ đun cú thể là một chương trỡnh riờng biệt.

Vi nhõn quản lý mạng quản lý tệp trỡnh ứng dụng trỡnh ứng dụng

Cỏc mụđun này cú thể hoạt động trong chế độ đặc quyền như phần nhõn hoặc như cỏc chương trỡnh ứng dụng thụng thường.

Mỗi khi cú yờu cầu cung cấp dịch vụ từ chương trỡnh ứng dụng, chẳng hạn yờu cầu đọc hoặc ghi file, yờu cầu sẽ chuyển cho nhõn. Nhõn sẽ chuyển tiếp yờu cầu cho mụđun tương ứng thực hiện, trong trường hợp này là mụ đun quản lý hệ thống file. Như vậy, nhiệm vụ của nhõn khi đú chỉ là đảm bảo liờn lạc giữa chương trỡnh ứng dụng và mụđun cung cấp dịch vụ. Hỡnh 1.17 cho ta hỡnh dung về cấu trỳc vi nhõn và liờn lạc giữa trỡnh ứng dụng với cỏc mụđun của hệ điều hành thụng qua vi nhõn.

Cỏch tổ chức này cho phộp giảm tối thiểu kớch thước nhõn (từ đõy sinh ra tờn gọi vi nhõn) cũng như kớch thước cỏc mụđun. Ưu điểm chớnh của cỏch tổ chức này là việc thiết kế, cài đặt, quản lý cỏc mụđun sẽ dễ dàng và mềm dẻo hơn so với cấu trỳc khối. Cỏc mụđun cú thể được xõy dựng riờng biệt, sau đú tải vào khi cú nhu cầu. Một ưu điểm khỏc là do đa số cỏc mụđun chạy trong chế độ người dựng như cỏc chương trỡnh ứng dụng thụng thường, khi cỏc cỏc mụđun này cú lỗi sẽ khụng ảnh hưởng tới toàn bộ hệ điều hành. Lấy vớ dụ mụđun làm nhiệm vụ quản lý đĩa và file. Việc xuất hiện sự cố trong mụđun này chỉ ảnh hưởng tới việc đọc ghi cỏc file chứ khụng phỏ hoại toàn bộ hệ thống.

Hỡnh 11 Cấu trỳc vi phõn

Nhược điểm của cấu trỳc vi nhõn là việc chuyển đổi giữa cỏc mụđun đũi hỏi thời gian và tài nguyờn hệ thống. Cỏc mụđun chỉ cú thể liờn lạc với nhau theo những cơ chế liờn lạc nhất định (thường là bằng cỏch chuyển thụng điệp - message passing) chứ khụng thể trực tiếp gọi hàm và truy cập dữ liệu của mụđun khỏc. Cỏch liờn lạc như vậy chậm hơn nhiều so với cỏch gọi hàm trực tiếp. Việc chuyển đổi giữa tiến trỡnh khỏc nhau của cỏc mụđun cũng cần cỏc chi phớ về thời gian và tài nguyờn khỏc (cất giữ trạng thỏi tiến trỡnh của mụđun này trước khi chuyển sang tiến trỡnh của mụđun khỏc).

2.3.3.4 Cấu trỳc lai

Trờn thực tế, cỏc hệ điều hành thường được tổ chức bằng cỏch kết hợp cỏc kiểu cấu trỳc kể trờn, thay vỡ hoàn toàn dựa trờn một kiểu cấu trỳc duy nhất. Cỏch kết hợp như vậy được gọi là cấu trỳc lai. Như đó nhắc tới ở trờn, cấu trỳc cơ bản của Linux là cấu trỳc nguyờn khối, tuy vậy nhiều chức năng được tổ chức dưới dạng cỏc mụ đun tải được, cho phộp dễ dàng thờm, bớt, bổ sung vào nhõn. Như vậy, hệ thống cú tốc độ nhanh của cấu trỳc nguyờn khối, trong khi vẫn sử dụng được nguyờn tắc mụ đun húa để tăng tớnh mềm dẻo. Tương tự như vậy, mặc dự Windows cú cấu trỳc cơ bản dưới dạng vi nhõn, rất nhiều thành phần của Windows vẫn hoạt động trong chế độ nhõn và cú chung khụng gian nhớ để khụng ảnh hưởng tới tốc độ. Một cỏch kết hợp thường được sử dụng khỏc là kết hợp cấu trỳc phõn lớp với cấu trỳc vi nhõn, như trong cỏc hệ điều hành iOS.

Một phần của tài liệu Bao cao mon hoc he dieu hanh (Trang 33 - 36)

Tải bản đầy đủ (PDF)

(131 trang)