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.1 Cỏc thành phần của hệđiều hành
Một hệ điều hành tiờu biểu thường cú cỏc thành phần thực hiện những nhiệm vụ sau:
a. Quản lý tiến trớnh
Một chương trỡnh đang trong quỏ trỡnh thực hiện được gọi là tiến trỡnh. Điểm khỏc nhau cơ bản giữa chương trỡnh và tiến trỡnh ở chỗ chương trỡnh là một thực thể tĩnh, cú thể dưới dạng những bit, những byte ghi trờn đĩa, cũn chương trỡnh là một thực thể động đang tiến hành việc tớnh toỏn, xử lý.v.v. và được cung cấp một số tài nguyờn như thời gian CPU, bộ nhớ.v.v. (khỏi niệm tiến trỡnh sẽ được xem xột kỹ trong cỏc chương sau). Bản thõn cỏc tiến trỡnh của hệ điều hành trong khi chạy cũng tạo ra cỏc tiến trỡnh. Cỏc cụng việc liờn quan tới quản lý tiến trỡnh bao gồm:
Tạo và xoỏ tiến trỡnh (bao gồm cả tiến trỡnh người dựng lẫn tiến trỡnh hệ thống - tiến trỡnh hệ điều hành). Lưu thụng tin về cỏc tiến trỡnh.
Tạm treo và khụi phục cỏc tiến trỡnh bị treo. Một tiến trỡnh bị treo sẽ bị tạm dừng và cú thể bị chuyển từ bộ nhớ trong ra đĩa. Khi được khụi phục, tiến trỡnh sẽ thực hiện tiếp từ điểm bị treo thay vỡ thực hiện lại từ đầu. Người sử dụng Linux cú thể treo một tiến trỡnh bằng cỏch sử dụng lệnh suspend.
Lập lịch cho cỏc tiến trỡnh (process scheduling), hay cũn gọi là lập lịch cho CPU, là quyết định tiến trỡnh nào được cấp phỏt CPU để chạy
Đồng bộ hoỏ cỏc tiến trỡnh: khi cú nhiều tiến trỡnh cũng tồn tại cần đảm bảo để cỏc tiến trỡnh được thực hiện sao cho khụng dẫn tới xung đột về tài nguyờn hoặc cú thể hợp tỏc với nhau để dẫn tới kết quả mong muốn.
Giải quyết cỏc bế tắc, vớ dụ như khi cú xung đột về tài nguyờn.
Tạo cơ chế liờn lạc giữa cỏc tiến trỡnh.
b. Quản lý bộ nhớ
Bộ nhớ (nếu khụng núi gỡ thờm thỡ được hiểu là bộ nhớ trong hay bộ nhớ sơ cấp, hay RAM) là nơi chứa cỏc tiến trỡnh và dữ liệu. Đõy là tài nguyờn quan trọng thứ hai sau CPU. Bộ nhớ là khối ụ nhớ được nhúm lại thành cỏc từ hay cỏc byte và được đỏnh địa chỉ. Địa chỉ được sử dụng khi cần đọc hoặc ghi thụng tin vào bộ nhớ. Trong những hệ điều hành đa nhiệm, nhiều tiến trỡnh cú thể cựng thực hiện một lỳc và được chứa trong bộ nhớ.
Thành phần quản lý bộ nhớ của hệ điều hành thực hiện cỏc cụng việc sau:
- Cấp phỏt, phõn phối bộ nhớ cho cỏc tiến trỡnh.
- Tạo ra bộ nhớ ảo và ỏnh xạ địa chỉ bộ nhớ ảo vào địa chỉ bộ nhớ thực. Ngăn chặn cỏc truy cập bộ nhớ khụng hợp lệ, chẳng hạn truy cập sang vựng bộ nhớ khụng thuộc tiến trỡnh.
- Cung cấp và giải phúng bộ nhớ theo yờu cầu của cỏc tiến trỡnh.
- Quản lý khụng gian nhớ đó được cấp và khụng gian cũn trống.
c. Quản lý vào ra
Một trong cỏc nhiệm vụ của hệ điều hành là đơn giản hoỏ và tăng hiệu quả quỏ trỡnh trao đổi thụng tin giữa cỏc tiến trỡnh với thiết bị vào ra. Nhờ cú hệ điều hành, người dựng khụng phải quan tõm tới cỏc chi tiết liờn quan tới thiết bị vào ra cụ thể. Việc điều khiển trực tiếp thiết bị do cỏc chương trỡnh điều khiển thiết bị (driver) thực hiện. Ngoài ra cũn cú cỏc giao diện lớp trờn driver do hệ điều hành cung cấp. Cỏc thành phần này nằm trong hệ thống vào ra của hệ điều hành. Một nhiệm vụ khỏc của hệ vào ra là tăng hiệu quả trao đổi thụng tin với thiết bị ngoại vi nhờ hệ thống vựng đệm (buffer) và bộ nhớ cache. Như vậy, phõn hệ quản lý vào ra của hệ điều hành gồm cỏc thành phần sau:
- Giao diện cho driver ở mức cao hơn.
- Mụ đun quản lý vựng đệm, cache.
d. Quản lý file và thƣ mục
Để trỏnh cho người dựng khụng phải quan tõm tới đặc điểm cỏc thiết bị nhớ ngoài vốn khỏc nhau và đa dạng, hệ điều hành cho phộp sử dụng một khỏi niệm logic khi lưu trữ thụng tin trờn cỏc thiết bị nhớ này, đú là file. File là tập hợp cỏc thụng tin cú liờn quan đến nhau, là nơi cú thể ghi thụng tin vào hoặc đọc thụng tin ra. Cỏc chương trỡnh và người dựng khụng cần quan tõm tới việc file được cất giữ trờn bộ nhớ ngoài như thế nào. Hệ điều hành sẽ chịu trỏch nhiệm ỏnh xạ file lờn cỏc thiết bị nhớ này.
Khi số lượng file lớn tới một mức nào đú, cần cú cơ chế tổ chức cỏc file sao cho dễ tỡm kiếm và sử dụng. Chẳng hạn, nếu so sỏnh mỗi file như một quyển sỏch, khi số sỏch tương đối lớn như trong thư viện, người ta cần phõn loại sỏch theo thể loại, tỏc giả .v.v. cho dễ tỡm kiếm. Hệ điều hành phõn chia cỏc file thành cỏc nhúm gọi là thư mục. Mỗi thư mục chứa cỏc file cú cựng một đặc điểm nào đú, vớ dụ thư mục chứa cỏc văn bản, thư mục chứa chương trỡnh của cựng một hóng.
- Hệ thống quản lý file và thư mục đảm nhiệm cỏc chức năng sau:
- Tạo, xoỏ file và thư mục
- Đọc, ghi file
Ánh xạ file và thư mục sang bộ nhớ ngoài
e. Hỗ trợ mạng và xử lý phõn tỏn
Một trong cỏc xu hướng phỏt triển của cỏc hệ thống tớnh toỏn hiện nay là kết hợp mỏy tớnh vào cỏc mạng mỏy tớnh. Điều này cho phộp trao đổi, chia sẻ thụng tin giữa cỏc mỏy, đồng thời tạo khả năng xử lý phõn tỏn. Cỏc mỏy tớnh được nối với nhau qua cỏc mụi trường truyền thụng cho phộp truyền thụng tin và dữ liệu. Đối với những bài toỏn lớn, đũi hỏi tốc độ tớnh toỏn cao hoặc khả năng lưu trữ dữ liệu lớn cú thể phõn tỏn việc xử lý trờn cỏc mỏy tớnh đó được nối mạng. Xử lý phõn tỏn cho phộp tận dụng tài nguyờn của cỏc mỏy riờng lẻ để tạo nờn một hệ thống tớnh toỏn cú khả năng lớn hơn nhiều.
Chức năng hỗ trợ mạng và xử lý phõn tỏn của hệ điều hành bao gồm quản lý thiết bị mạng, hỗ trợ cỏc giao thức truyền thụng, quản lý việc truyền thụng, cõn bằng tải.
f. Giao diện với ngƣời dựng
Thành phần này được gọi bằng nhiều tờn khỏc nhau như bộ dịch lệnh (command intepreter), vỏ (shell). Thực chất đõy là giao diện giữa người dựng với hệ điều hành (cần phõn biệt với cỏc lời gọi hệ thống - system calls - là giao diện giữa cỏc chương trỡnh và hệ điều hành). Bộ dịch lệnh hay vỏ nhận lệnh từ người dựng và thực hiện cỏc lệnh này, cú thể bằng cỏch sử dụng dịch vụ do cỏc phần khỏc của hệ điều hành cung cấp. Cú thể lấy vớ dụ cỏc bộ dịch lệnh như
cmd.exe của Windows, bash của Linux. Cỏc lệnh được người dựng gừ trực tiếp dưới dạng văn
bản. Số lượng lệnh cú thể từ vài chục đến hàm trăm, từ những lệnh thụng dụng như liệt kờ thực mục (dir, ls), chộp file (copy) tới những lệnh để thiết lập cấu hỡnh mạng hoặc cỏc thành phần khỏc của hệ thống. Trờn hỡnh 1.11 là vớ dụ giao diện bộ dịch lệnh cmd.exe của
Giới thiệu chung
Trong cỏc hệ điều hành hiện nay, bộ dịch lệnh thường được thay thế bằng cỏc hệ giao diện đồ hoạ. Thay vỡ gừ cỏc lệnh dưới dạng văn bản, người sử dụng làm việc với cỏc đối tượng đồ hoạ như cửa sổ, biểu tượng rất trực giỏc và dễ hiểu. Cỏc giao diện đồ họa thường được biết đến là Windows Explorer cho Windows (xem hỡnh 1.12), X windows cho Linux.
g. Cỏc chƣơng trớnh tiện ỡch và chƣơng trớnh ứng dụng
Hệ điều hành thường chứa sẵn một số chương trỡnh tiện ớch và chương trỡnh ứng dụng. Đõy là thành phần khụng bắt buộc của hệ điều hành. Cỏc chương trỡnh tiện ớch cung cấp cho người dựng một số dịch vụ giỳp cho việc sử dụng hệ thống dễ dàng, hiệu quả hơn. Chẳng hạn cú cỏc tiện ớch giỳp nộn tệp, chộp cỏc tệp dài ra đĩa mềm, tiện ớch giỳp lưu trữ dữ liệu.
Hỡnh 8 Bộ dịch lệnh cmd.exe của Windows
Cỏc chương trỡnh ứng dụng hay cú trong thành phần của hệ điều hành là cỏc chương trỡnh dịch (trỡnh dịch Basic của DOS, trỡnh dịch C của Uni ), cỏc chương trỡnh soạn thảo văn bản (Notepad của Windows, vi của Linux), cỏc chương trỡnh trũ chơi. Cỏc bản phõn phối hệ điều hành Linux (Linux distributions) do cỏc tổ chức khỏc nhau cung cấp như RedHat, Ubuntu chứa cỏc chương trỡnh tiện ớch và ứng dụng tương đối khỏc nhau.
Trong nhiều trường hợp, việc xỏc định chương trỡnh nào là tiện ớch, chương trỡnh nào thuộc hệ điều hành khụng đơn giản do khụng cú tiờu chớ rừ ràng để phõn biệt.