I. KHÁI NIỆM VÀ CHỨC NĂNG CỦA HỆ ĐIỀU HÀNH.
1)Khái niệm:
Hệ điều hành là một chương trình đóng vai trò trung gian trong
việc giao
tiếp giữa người sử dụng 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 (convenient) hơn
và có hiệu quả
(efficient) 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 4 phần: phần cứng,
hệ điều hành,
các chương trình ứng dụng và người sử dụng.
2) Chức năng:
a) Là bộ phân phối tài nguyên: (resource allocator)
Hệ điều hành đóng vai trò là bộ phân phối tài nguyên:
Tài nguyên hệ thống, đặc biệt là các tài nguyên phần cứng như
CPU, bộ
nhớ, thiết bò ngoại vi,… thường rất giới hạn về số lượng. Trong
các hệ thống đa
nhiệm, nhiều chương trình chạy đồng thời và cùng yêu cầu các
tài nguyên hữu
hạn. Hệ điều hành sẽ giữ vai trò quản lý và phân phối các tài
nguyên cho các
chương trình. Việc phân phối tài nguyên cho các chương trình
phải theo một trình
tự nào đó để tránh tranh chấp và làm cho máy tính hoạt động có
dùng và có các
process của hệ thống. Một process được xem như là một đơn vò
làm việc của hệ
thống. Tại cùng một thời điểm trong hệ thống có thể có nhiều
process cùng chạy
đồng thời. Các tài nguyên mà một process có thể cần dùng là:
CPU, vùng nhớ,
các tập tin, các thiết bò nhập xuất,…
Vai trò của hệ điều hành trong việc quản lý process là:
- Create/Destroy: tạo và hủy các process.
- Suspend/Resume: tạm ngưng và thực hiện lại một process.
- Synchronization: đồng bộ các process.
- Inter-Process Communications: truyền thông giữa các
process.
b) Quản lý bộ nhớ chính: (main memory management)
Bộ nhớ chính là thiết bò duy nhất mà CPU có thể truy xuất trực
tiếp. Một
chương trình muốn được thi hành, trước hết phải được nạp vào
trong bộ nhớ
chính, dữ liệu của chương trình cũng được nạp vào trong bộ nhớ
chính. Khi
process kết thúc thì dữ liệu và chương trình vẫn còn trong trong
bộ nhớ cho đến
khi có một process khác được ghi chồng lên. Trong một hệ
thống đa nhiệm, để
tăng hiệu suất sử dụng CPU thì hệ điều hành cố gắng giữ nhiều
process trong bộ
nhớ chính tại cùng một thời điểm.
Vai trò của hệ điều hành trong việc quản lý bộ nhớ chính:
- Cấp phát và thu hồi vùng nhớ cho các process.
Một trong những mục tiêu của hệ điều hành là che dấu những
chi tiết
phức tạp của các thiết bò phần cứng đối với người sử dụng. Thay
vào đó là một
lớp giao diện thân thiện độc lập với thiết bò, giúp cho người
dùng dễ thao tác
hơn. Thường thì các giao diện là các trình điều khiển (driver).
Chỉ có các driver
mới hiểu đến cấu trúc đặc thù của thiết bò mà nó mô tả. Hệ điều
hành đảm trách
việc điều khiển các thiết bi nhập xuất. Nó gởi các lệnh điều
khiển đến các thiết
bò, tiếp nhận các ngắt và xử lý các lỗi nhập xuất.
Một hệ thống nhập xuất bao gồm:
- Hệ thống buffer caching.
- Giao tiếp điều khiển thiết bò (device drivers) tổng quát.
- Bộ điều khiển (driver) cho các thiết bò phần cứng.
e) Quản lý bộ nhớ phụ : (secondary-storage management)
Muốn thực thi chương trình thì phải đưa chương trình và dữ liệu
của
chương trình vào trong bộ nhớ chính. Nhưng bộ nhớ chính quá
nhỏ để lưu trữ mọi
dữ liệu và chương trình. Mặt khác, bộ nhớ chính chỉ là nơi lưu
trữ tạm thời, dữ
liệu sẽ bò mất khi không cung cấp điện cho nó. Vì vậy cần phải
có một hệ thống
lư u trữ phụ như đóa mềm, đóa cứng, CD-ROM, flash, băng từ….
Hầu như tất các
các chương trình, dữ liệu đều được lưu trữ trên bộ nhớ phụ dưới
dạng các tập tin.
hệ thống có nhiều
người sử dụng hoặc có nhiều process diễn ra đồng thời, các
process cần phải
được bảo vệ để tránh sự xâm phạm vô tình hay cố ý có thể dẫn
đến sai lạc cho
toàn hệ thống. Hệ thống phải cung cấp được cơ chế để đảm bảo
rằng tập tin, bộ
nhớ, CPU và những tài nguyên khác chỉ được truy xuất bởi
những process có
quyền. Ví dụ: phải bảo đảm rằng một process chỉ được thi hành
trong phạm vi
vùng nhớ cấp phát cho nó, phải bảo đảm không có process nào
độc chiếm CPU,
phải bảo vệ các thiết bò ngoại vi như printer… Hệ thống bảo vệ
cũng phải làm
tăng tốc độ an toàn trong giao tiếp giữa các hệ thống nhỏ bên
trong.
Một hệ thống bảo vệ cần phải:
- Đònh rõ được phép dùng và không được phép dùng các tài
nguyên.
- Đònh rõ các loại kiểm soát cần phải áp dụng trong hệ
thống.
- Cung cấp các cơ chế buộc process, người dùng phải thi
hành theo.
h) Hệ thông dòch lệnh: (command-interpreter system)
Đây là một trong những bộ phận quan trọng nhất của hệ điều
hành, đóng
vai trò giao diện giữa hệ điều hành và người sử dụng. Các lệnh
được chuyển
đến hệ điều hành dưới dạng phát biểu điều khiển (control
cấu hình
lại hệ thống, gồm các bước sau:
- Hệ thống được cấu hình lại dựa trên thông tin từ Registry
của hệ điều
hành.
- Các trình điều khiển (driver) và các chương trình tiện ích
(utility
program) được nạp vào bộ nhớ. Các trình tiện ích như: volume
control,
antivirus software, file manager,…).
- Chứng thực việc đăng nhập của người dùng.
- Giao diện người dùng bắt đầu cho phép người dùng tương
tác với máy
tính.
Chú ý: Một số máy tính lưu trữ toàn bộ hệ điều hành vào trong
bộ nhớ
chính. Một số máy tính khác thì chỉ nạp phần cơ bản của hệ điều
hành vào trong
bộ nhớ chính, phần còn lại sẽ nạp vào bộ nhớ khi có nhu cầu.
Hầu hết các hoạt
động của hệ điều hành diễn ra ở dạng hậu trường (behind the
scences).
II. PHÂN LOẠI HỆ ĐIỀU HÀNH
Các loại hệ điều hành:
1) Hệ thống tuần tự: (sequential system)
Các chỉ thò của chương trình được thực hiện tuần tự, hết chỉ thò
này đến chỉ
thò khác. Được dùng cho các máy tính to lớn, cồng kềnh ngày
xưa. Vào giữa thập
chương trình đầu tiên
kết thúc, nó sẽ trả điều khiển cho resident monitor. Resident
monitor sẽ chuyển
điều khiển cho chương trình kế tiếp. Cứ như vậy mà lần lượt
từng công việc khác
nhau trong một chuỗi các công việc được thực thi.
Để resident monitor biết được chương trình nào là chương trình
kế tiếp
được thực hiện thì cần phải mô tả ngắn gọn về chương trình.
Nhờ vậy mà
resident monitor tích lũy các tài nguyên cần thiết cho chương
trình.
3) Hệ thống đa chương theo lô: (multiprogrammed batched
system):
Gia tăng khai thác CPU bằng cách tổ chức các công việc sao cho
CPU
luôn luôn phải trong tình trạng làm việc. Ý tưởng như sau: Hệ
điều hành lưu giữ
một phần các công việc ở trong bộ nhớ. CPU sẽ lần lượt thực
hiện các công việc
này. Khi đang thực hiện, nếu có yêu cầu truy xuất thiết bò thì
CPU không nghỉ
mà thực hiên tiếp công việc thứ hai Vì vậy hệ điều hành loại
này phải thực
hiện được các vấn đề điều phối (scheduling) công việc, điều
phối bộ nhớ và điều
phối CPU.
4) Hệ thống chia xẻ thời gian: (time-sharing system):
Còn được gọi là hệ thống đa nhiệm (multitasking). Là sự mở
rộng của hệ
trình lên các CPU). Hệ thống loại này có độ tin cậy cao vì sự
hỏng hóc của một
bộ xử lý sẽ không làm ảnh hưởng đến toàn bộ hệ thống.
6) Hệ thống phân bố: (distributed system)
Tương tự như hệ thống song song nhưng hệ thống này không
chia sẻ đồng
hồ hệ thống và bộ nhớ chung. Thay vào đó mỗi bộ xử lý có một
bộ nhớ cục bộ
riêng. Giữa các bộ xử lý có sự truyền thông (communication)
với nhau thông qua
các đường truyền. Các bộ xử lý không nhất thiết giống nhau mà
có thể khác
nhau về tốc độ và chức năng. Có thể chia sẻ tài nguyên như:
máy in, tập tin
Làm gia tăng tốc độ tính toán bằng cách chia công việc thành
các phần nhỏ giao
cho các bộ xử lý thực hiện đồng thời. Nếu một bộ xử lý hỏng
hóc thì các bộ xử
lý khác vẫn tiếp tục làm việc. Giữa các bộ xử lý có sự truyền
thông giúp cho
việc truyền và chia sẻ dữ liệu được thực hiện dễ dàng.
7) Hệ thống thời gian thực:
Có những bài toán (problem) đòi hỏi hệ thống máy tính thực thi
và cho
kết quả chính xác trong một khoảng thời gian cụ thể (bò thúc ép
về thời gian)
như: hệ thống điều khiển vũ khí, điều khiển các thí nghiệm khoa
học, dự báo
thời tiết
Hệ thống xử lý thời gian thực được sử dụng khi có những đòi hỏi
(control panel) và chỉ thực hiện được các thao tác cơ bản rất đơn
giản. Ngôn ngữ
lập trình và hệ điều hành đều chưa được biết đến. Vào đầu thập
niên 1950,
phiếu đục lỗ ra đời. Nhờ vậy mà chương trình được viết trên
phiếu thay cho bảng
điều khiển.
2) Thế hệ 2: (1955-1965)
Sự ra đời của thiết bò bán dẫn vào giữa thập niên 1950 làm
thay đổi bức
tranh tổng thể. Máy tính trở nên đủ tin cậy hơn. Nó được sản
xuất và cung cấp
cho khách hàng. Lần đầu tiên có sự phân chia rõ ràng giữa
người thiết kế, người
xây dựng, người vận hành, người lập trình và người bào trì.
Để thực hiện một công việc (một chương trình hay một tập
hợp chương
trình), lập trình viên trước hết viết chương trình trên giấy (bằng
hợp ngữ hay
bằng FORTRAN) sau đó đục lỗ trên phiếu và cuối cùng đưa
phiếu vào máy. Sau
khi thực hiện xong nó sẽ xuất kết quả ra máy in.
Hệ thống xử lý theo lô ra đời, nó lưu các yêu cầu cần thực
hiện lên băng
từ rồi hệ thống sẽ đọc và thi hành lần lượt. Sau đó nó sẽ ghi kết
quả lên băng từ
xuất và cuối cùng người dùng sẽ đem băng từ xuất đi in.
Hệ thống xử lý theo lô hoạt động dưới sự điều khiển của một
chương trình