1Khá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ột hệ thống máy tính thường được chia làm 4 phần
Trang 1I 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
Trang 2tự nào đó để tránh tranh chấp và làm cho máy tính hoạt động có hiệu quả Ngoài
ra, có nhiều trường hợp người dùng cần chia sẻ thông tin với nhau Khi đó, hệ
điều hành phải bảo đảm việc truy xuất đến các thông tin chia sẻ đó là hợp lệ,
không xảy ra sai trái hay mất đồng nhất dữ liệu
b) Là một chương trình điều khiển: (control program)
Hệ điều hành đóng vai trò là một chương trình điều khiển:
Một hệ điều hành cũng có thể được xem như là một chương trình kiểm
soát việc sử dụng máy tính, đặc biệt là các thiết bị nhập xuất Giúp người dùng
ngăn chặn lỗi, tránh lỗi, kiểm soát việc sử dụng máy tính một cách đúng đắn
Điều khiển việc thực thi chương trình của người dùng Che giấu
đi cấu trúc phức
tạp của các phần cứng, tạo ra một giao diện sử dụng phần cứng đơn giản, dễ
dùng nhưng đầy đủ chức năng
3) Các nhiệm vụ của hệ điều hành:
a) Quản lý tiến trình: (process management)
Một chương trình không thực hiện được gì cả nếu nó không được CPU thi
hành Một tiến trình (process) là một chương trình đang được thi hành Khi một
process được khởi tạo, nó phải được cung cấp các tài nguyên để hoạt động, khi
không còn dùng tài nguyên, process phải trả lại tài nguyên cho hệ thống để hệ
Trang 3thống tiếp tục cấp cho process khác Có các process của người 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:
Trang 4- Cấp phát và thu hồi vùng nhớ cho các process
- Ghi nhận tình trạng bộ nhớ: phần nào đã được cấp phát, phần nào
còn có thể sử dụng được
- Quyết định process nào được nạp vào bộ nhớ chính khi có một
vùng trống
c) Quản lý hệ thống tập tin : (file management)
Máy tính có thể lưu trữ thông tin trên nhiều loại thiết bị vật lý khác nhau:
đĩa mềm, CD-ROM, đĩa cứng, flash, băng từ… Mỗi loại thiết bị có tính chất và
cấu trúc vật lý khác nhau Để thống nhất trong lưu trữ, hệ điều hành định nghĩa
một đơn vị lưu trữ logic là tập tin Hệ điều hành tạo một ánh xạ từ tập tin đến
đến vùng lưu trữ thông tin trên đĩa và truy xuất thông tin này thông qua thiết bị
lưu trữ Hệ điều hành còn tổ chức lưu trữ các tập tin thành các thư mục Để dễ
dàng truy xuất, hệ điều hành tổ chức lưu trữ các tập tin một cách có hệ thống gọi
là hệ thống tập tin (filesystem) Có nhiều loại hệ thống tập tin khác nhau
Vai trò của hệ điều hành trong việc quản lý tập tin:
- Tạo và xóa một tập tin
- Tạo và xóa một thư mục
- Hỗ trợ thao tác cơ bản trên tập tin và thư mục
- Ánh xạ tập tin trên hệ thống lưu trữ phụ
- Backup tập tin trên các thiết bị lưu trữ
Trang 5d) Quản lý nhập xuất: (I/O system management)
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
Trang 6cá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
Khi cần thiết thì chúng được nạp vào bộ nhớ chính để thực thi Tốc độ của hệ
thống phụ thuộc rất nhiều vào tốc độ truy xuất các thiết bị lưu trữ phụ Vì vậy
một bộ quản lý hệ thống đĩa rất quan trọng cho hệ thống máy tính
Vai trò của hệ điều hành trong việc quản lý bộ nhớ phụ:
- Quản lý vùng trống trên đĩa
- Định vị lưu trữ đĩa
- Điều phối đĩa (disk scheduling)
f) Nối mạng: (networking)
Một hệ thống phân bố (distributed system) là một tập hợp các bộ xử lý
(processor) không cùng chia sẻ bộ nhớ chung Mỗi bộ xử lý có một bộ nhớ riêng
độc lập Các bộ xử lý giao tiếp với nhau thông qua mạng truyền thông bằng các
đường truyền vật lý như: đường truyền tốc độ cao, đường điện thoại, vệ tinh…
Nhờ có nối mạng mà người dùng có thể truy cập đến các tài nguyên khác nhau
trong mạng
Việc truy cập các tài nguyên dùng chung cho phép:
- Gia tăng tốc độ tính toán (speedup)
- Gia tăng sự sẵn dùng (available) của dữ liệu
- Tăng độ tin cậy (reliability)
g) Hệ thống bảo vệ: (protection system)
Trang 7Hệ thống bảo vệ là một cơ chế kiểm soát sự hợp lệ của việc truy xuất các
tài nguyên hệ thống và các tài nguyên của người dùng Trong 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
Trang 8vai 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
statements) Bộ thông
dịch lệnh có nhiệm vụ tiếp nhận lệnh và thông dịch lệnh đó để hệ điều hành có
xử lý tương ứng Có hai loại giao diện giữa người dùng và bộ thông dịch lệnh:
- Giao diện đồ họa (menu, cửa sổ, chuột )
- Giao diện dòng lệnh (như MS-DOS, shell của Unix)
4) Tiến trình khởi động máy và nạp hệ điều hành:
a) Khởi động máy tính: (starting the computer)
Tiến trình khởi động máy tính được thực hiện khi ta bật điện máy tính lên
Tiến trình này gọi là cold boot Cold boot gồm các bước theo
trình tự sau:
- ROM nạp BIOS (basic input/output sysytem – hệ thống nhập xuất cơ
bản) vào bộ nhớ máy tính
- BIOS kiểm tra các thiết bị nhập xuất xem có khả năng hoạt động được
không Công đoạn này được gọi là POST (Power-on Self-test)
BIOS xác định xem partition nào là active partition trong Master Boot
Record (MBR) Đi đến active partition để nạp kernel vào bộ nhớ chính
Kernel là lõi của hệ điều hành, là nơi chứa các thành phần cơ bản nhất
của hệ điều hành
Trang 9- Lúc này hệ điều hành đã nắm được quyền kiểm soát máy tính
b) Cấu hình hệ thống: (configuring the system)
Sau khi nắm quyền điều khiển máy tính, hệ điều hành tiến hành 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)
Trang 10Cá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
niên 1940, xuất hiện các máy tính mainframe cồng kềnh, tốc độ rất chậm, dùng
ống chân không Người lập trình cũng chính là người vận hành máy Chương
Trình được viết chủ yếu bằng ngôn ngữ máy dưới dạng các bít 0 và 1 Chương
trình được đưa bằng tay vào bộ nhớ dung lượng thấp của
mainframe thông qua
việc đục lỗ trên băng giấy hay thẻ đục lỗ Chương trình được chạy từng lệnh
một Người lập trình phải luôn quan sát khi chạy chương trình để phát hiện lỗi
Khi có lỗi thì dừng hệ thống lại, sửa lỗi rồi chạy lại từ đầu Dữ liệu xuất được in
ra máy in hay đục lỗ trên thẻ, băng giấy
2) Hệ thống xử lý theo lô: (batch system)
Hệ thống loại này sẽ tập trung tất cả tài nguyên để xử lý một công việc
tại một khoảng thời gian Khi công việc chấm dứt, hệ thống sẽ thực hiện công
việc kế tiếp mà không cần sự can thiệp của người lập trình, do đó thời gian thực
hiện công việc sẽ nhanh hơn
Một chương trình gọi là bộ giám sát (resident monitor) nằm
thường trú
Trang 11trong bộ nhớ chính có nhiệm vụ giám sát thường trực việc thực hiện một dãy các
công việc một cách tự động Khi máy tính được khởi động,
resident monitor được
gọi, nó chuyển điều khiển cho chương trình đầu tiên Khi
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
Trang 12hiệ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ệ
thống đa chương Nhiều công việc cùng thực hiện thông qua cơ chế chuyển đổi
CPU giống như hệ điều hành đa chương nhưng thời gian chuyển đổi diễn ra rất
nhanh Nếu trong quá trình thi hành của một chương trình nó phải thực hiện các
thao tác nhập xuất (I/O) thì trong khoảng thời gian đó CPU sẽ thi hành một
chương trình khác Hệ điều hành chia xẻ thời gian này dùng việc chuyển đổi
CPU (CPU switching) để cung cấp cho mỗi chương trình một lượng thời gian sử
dụng CPU rất nhỏ, do thời gian chuyển đổi CPU giữa các
chương trình rất nhanh
nên tạo ra cảm giác các chương trình được thực thi cùng một lúc 5) Hệ thống song song: (parallel system)
Ngoài các hệ thống máy tính chỉ có một bộ xử lý
(single-processor
system) còn có hệ thống máy tính có nhiều bộ xử lý bên trong nó Chúng cùng
chia xẻ các đường truyền dữ liệu (bus), đồng hồ hệ thống
(clock), bộ nhớ và các
thiết bị ngoại vi (peripheral devices) Với sự gia tăng số lượng bộ xử lý mà công
Trang 13việc được thực hiện nhanh chóng hơn, tối ưu hơn các máy có một bộ xử lý
Nhưng không có nghĩa cứ n bộ xử lý là giảm thời gian thực thi chương trình
xuống n lần (vì còn tốn phần thời gian cho việc chia xẻ các phần của chương
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