1
Câu 1: Chức năng, nhiệm vụ của hệ
điều hành. Phân loại hệ điều hành
Định nghĩa
- Hệ Điều Hành là hệ chương trình hoạt động
giữa người sử dụng và phần cứng thiết bị
của máy tính.
- Hệ Điều Hành giúp thi hành các chương
trình, làm cho máy tính dễ sử dụng và hiệu
quả hơn.
2
I. Khái niệm về HĐH
Các thành phần của một hệ thống máy tính
- Phần cứng: CPU, bộ nhớ, các thiết bị nhập xuất,
… cung cấp các tài nguyên tính toán cơ bản cho
hệ thống.
- Hệ Điều Hành: điều khiển và phối hợp việc sử
dụng phần cứng cho những ứng dụng khác nhau
của nhiều người sử dụng khác nhau.
- Các chương trình ứng dụng: chương trình dịch,
hệ thống cơ sở dữ liệu, các trò chơi, và các ứng
dụng thương mại. Xác định tài nguyên nào được
sử dụng cho các vấn đề tính toán của người sử
dụng.
- Người sử dụng:
3
Các chương trình ứng dụng
Hệ Điều Hành
Phần cứng
Người
sử dụng 1
Chương trình
dịch
Người
sử dụng 2
Hợp ngữ
Người
sử dụng 3
Soạn thảo văn
bản
Người
sử dụng n
Cơ sở
dữ liệu
4
Lịch sử phát triển Hệ Điều Hành
- Thế hệ 1 (1945 – 1955): Máy tính lớn, chưa có
Hệ Điều Hành.
- Thế hệ 2 (1955 – 1965): Hệ thống xử lý theo lô,
thực hiện các công việc tuần tự theo một
chương trình định trước. Chương trình này là
tiền thân của Hệ Điều Hành.
- Thế hệ 3 (1965 – 1980): Hệ Điều Hành đa
chương và Hệ Điều Hành chia sẻ thời gian.
- Thế hệ 4 (1980 - 2004): Hệ Điều Hành mạng và
Hệ Điều Hành phân tán.
5
II. Phân loại Hệ Điều Hành
•
Hệ thống xử lý theo lô (batch)
•
Hệ thống xử lý đa chương (multiprogram)
•
Hệ thống xử lý đa nhiệm (multitasking)
•
Hệ thống đa xử lý (hệ thống xử lý song
song)
•
Hệ thống xử lý phân tán
•
Hệ thống xử lý thời gian thực ‘
•
Hệ thống nhúng
6
Hệ thống xử lý theo lô (batch)
•
Tại một thời điểm có một công việc trong
bộ nhớ. Khi thực hiện xong một công việc,
công việc khác sẽ được tự động nạp vào
và cho thực thi. Có một chương trình, gọi
là bộ giám sát, giám sát việc thực hiện
dãy các công việc một cách tự động,
chương trình này luôn luôn thường trú
trong bộ nhớ chính và chính là Hệ Điều
Hành thô sơ nhất. VD: DOS
7
Hệ thống xử lý đa chương
(multiprogram)
•
Tại một thời điểm có nhiều công việc
trong bộ nhớ và khi một công việc đang
thực hiện, nếu có yêu cầu nhập/xuất thì
CPU không nghỉ mà hệ thống sẽ thực hiện
tiếp công việc khác. Hệ phải xử lý các vấn
đề lập lịch cho công việc, lập lịch cho bộ
nhớ và cho CPU.
8
Hệ thống xử lý đa nhiệm
(multitasking)
•
Là mở rộng của hệ đa chương. Mỗi công
việc được thực hiện luân phiên qua cơ
chế chuyển đổi CPU, thời gian mỗi lần
chuyển đổi diễn ra rất nhanh nên có cảm
giác là các công việc đang được thi hành
cùng lúc.
9
Hệ thống đa xử lý (hệ thống xử lý
song song)
Có nhiều bộ xử lý cùng chia sẻ hệ thống đường truyền dữ
liệu cao tốc, đồng hồ, bộ nhớ và các thiết bị ngoại vi.
- Ưu điểm:
+ Sự hỏng hóc của một bộ xử lý sẽ không ảnh hưởng đến
toàn bộ hệ thống.
+ Hệ thống sẽ thực hiện rất nhanh do thực hiện các công
việc đồng thời trên các bộ xử lý khác nhau.
- Có hai loại hệ thống đa xử lý:
+ Hệ thống đa xử lý đối xứng: mỗi bộ xử lý chạy với một bản
sao của Hệ Điều Hành và các bộ xử lý là ngang cấp.
+ Hệ thống đa xử lý bất đối xứng: có một bộ xử lý chính kiểm
soát, lập lịch cho các bộ xử lý khác.
Vấn đề của đa xử lý là gì?
10
Hệ thống xử lý phân tán
Tương tự như hệ thống đa xử lý nhưng mỗi bộ xử lý có bộ
nhớ cục bộ riêng. Các bộ xử lý liên lạc với nhau thông
qua các đường truyền dữ liệu. Mạng LAN, WAN là hệ
xử lý phân tán.
- Ưu điểm:
+ Chia sẻ tài nguyên: máy in, tập tin …
+ Tăng tốc độ tính toán: phân chia công việc để tính toán
trên nhiều vị trí khác nhau.
+ An toàn: Nếu một vị trí bị hỏng, các vị trí khác vẫn tiếp
tục làm việc.
+ Truyền thông tin dễ dàng: download/upload file, gởi/nhận
mail, …
11
Hệ thống xử lý thời gian thực
- Hệ thống phải cho kết quả chính xác trong
khoảng thời gian nhanh nhất.
- Có hai loại:
+ Hệ thống thời gian thực cứng: công việc
được hoàn tất đúng lúc.
+ Hệ thống thời gian thực mềm: mỗi công
việc có một độ ưu tiên riêng và sẽ được
thi hành theo độ ưu tiên.
12
III. Các chức năng của Hệ Điều
Hành
•
Quản lý tiến trình
•
Quản lý bộ nhớ chính
•
Quản lý bộ nhớ phụ
•
Quản lý hệ thống nhập xuất
•
Quản lý hệ thống tập tin
•
Bảo vệ hệ thống
•
Hệ thống dòng lệnh và giao diện người dùng
•
Quản lý mạng (hệ điều hành mạng)
13
* Câu 2: Tiến trình (process) và tiểu trình (thread):
Nguyên lý chung, thông tin lưu trữ và phân loại tiểu
trình
•
Tiến trình (process)
- Tiến trình là một chương trình đang xử lý, sở hữu
một ngữ cảnh: không gian địa chỉ, một con trỏ
lệnh, tập các thanh ghi và stack. Tiến trình có
thể cần đến một số tài nguyên như CPU, bộ nhớ
chính, các tập tin và thiết bị nhập/xuất.
- Hệ Điều Hành sử dụng bộ điều phối (scheduler)
để quyết định thời điểm cần dừng hoạt động của
tiến trình đang xử lý và lựa chọn tiến trình tiếp
theo cần thực hiện.
14
Tiểu trình (thread)
•
Một tiến trình có thể chạy trong một tiểu trình (thread)
đơn hoặc tạo nhiều tiểu trình, mỗi tiểu trình thực hiện
một chức năng nào đó và thực thi đồng thời cũng bằng
cách chia sẻ CPU. Các tiểu trình trong cùng một tiến
trình dùng chung không gian địa chỉ tiến trình nhưng có
con trỏ lệnh, tập các thanh ghi và stack riêng. Một tiểu
trình cũng có thể tạo lập các tiến trình con, và nhận các
trạng thái khác nhau như một tiến trình.
•
Các tiến trình chỉ có thể liên lạc với nhau thông qua các
cơ chế do Hệ Điều Hành cung cấp. Các tiểu trình liên lạc
với nhau dễ dàng thông qua các biến toàn cục của tiến
trình.
15
Process #1
Process #1
Bộ nhớ cục
bộ
Bộ nhớ cục
bộ
Process #2
Process #2
Bộ nhớ cục
bộ
Bộ nhớ cục
bộ
Process #3
Process #3
Bộ nhớ cục
bộ
Bộ nhớ cục
bộ
Bộ nhớ chia
sẻ
Bộ nhớ chia
sẻ
Hệ điều hành
Hệ điều hành
Multitasking
16
Thread
#1
Thread
#1
Biến cục
bộ
Biến cục
bộ
Thread
#2
Thread
#2
Biến cục
bộ
Biến cục
bộ
Thread
#3
Thread
#3
Biến cục
bộ
Biến cục
bộ
Bộ nhớ cục
bộ
Bộ nhớ cục
bộ
Process #3
Process #3
Multithreading
Paradigm
Process #1
Process #1
Process #2
Process #2
Hệ điều hành
Hệ điều hành
17
Câu 3: Quản lý tiến trình: Các trạng thái
và chế độ xử lý tiến trình
Khi một tiến trình thực hiện, nó thay đổi trạng thái.
Tại một thời điểm, một tiến trình có thể nhận
trong một các trạng thái sau đây:
+ New tiến trình mới được tạo.
+ Running các chỉ thị của tiến trình đang thực thi.
+ Waiting (blocked) tiến trình chờ một sự kiện nào
đó xảy ra (như hoàn thành I/O, được cấp phát
một tài nguyên, nhận tín hiệu).
+ Ready tiến trình chờ được cấp phát CPU.
+ Terminated tiến trình kết thúc xử lý.
18
New
Ready Running
Terminated
Waiting
19
1: Tiến trình mới tạo được đưa vào hệ thống (admitted).
2: Bộ điều phối (scheduler) cấp phát cho tiến trình một
khoảng thời gian sử dụng CPU (scheduler dispatch).
3: Tiến trình kết thúc sau khi chạy (exit).
4: Tiến trình yêu cầu một tài nguyên nhưng chưa được đáp
ứng vì tài nguyên chưa sẵn sàng; hoặc tiến trình phải chờ
một sự kiện hay thao tác nhập/xuất (I/O hoặc event wait).
5: Bộ điều phối chọn một tiến trình khác để xử lý (interrupt).
6: Tài nguyên mà tiến trình yêu cầu trở nên sẵn sàng để cấp
phát; hay sự kiện hoặc thao tác nhập/xuất tiến trình đang
đợi hoàn tất (I/O hoặc event completion).
Tại một thời điểm, chỉ có một tiến trình có thể nhận trạng
thái Running trên một bộ xử lý bất kỳ. Trong khi đó, nhiều
tiến trình có thể ở trạng thái Ready hay Waiting.
20
Chế độ xử lý của tiến trình
•
Tập lệnh của CPU được phân chia thành các lệnh đặc quyền
(lệnh có nguy cơ ảnh hưởng đến hệ thống) và lệnh không đặc
quyền. Phần cứng chỉ cho phép các lệnh đặc quyền được
thực hiện trong chế độ đặc quyền. Thông thường chỉ có Hệ
Điều Hành hoạt động trong chế độ đặc quyền, các tiến trình
của người dùng hoạt động trong chế độ không đặc quyền,
không thực hiện được các lệnh đặc quyền có nguy cơ ảnh
hưởng đến hệ thống.
•
Khi một tiến trình người dùng gọi đến một lời gọi hệ thống,
tiến trình của Hệ Điều Hành xử lý lời gọi này sẽ hoạt động
trong chế độ đặc quyền, sau khi hoàn tất thì trả quyền điều
khiển về cho tiến trình người dùng trong chế độ không đặc
quyền.
21
* Câu 4: Quản lý tiến trình: Cấu trúc dữ liệu khối quản lý tiến trình và
Thao tác trên tiến trình
Điều Hành quản lý các tiến trình trong hệ thống thông qua khối quản lý tiến trình
(Process Control Block – PCB, còn gọi là Task Control Block). PCB là một vùng
nhớ lưu trữ các thông tin mô tả cho một tiến trình chỉ định, với 05 thành phần
chủ yếu bao gồm:
•
Định danh của tiến trình (1) giúp phân biệt các tiến trình.
•
Trạng thái tiến trình (2) xác định hoạt động hiện hành của tiến trình (new,
ready, running, waiting, …).
•
Ngữ cảnh của tiến trình (3) mô tả các tài nguyên tiến trình đang sử dụng,. Ngữ
cảnh bao gồm các thông tin về:
–
Trạng thái CPU: bao gồm nội dung các thanh ghi, quan trọng nhất là con trỏ lệnh IP
lưu trữ địa chỉ câu lệnh kế tiếp tiến trình sẽ xử lý.
–
Số hiệu bộ xử lý: xác định số hiệu CPU mà tiến trình đang sử dụng.
–
Bộ nhớ chính: danh sách các khối nhớ được cấp cho tiến trình.
–
Tài nguyên sử dụng: danh sách các tài nguyên hệ thống mà tiến trình đang sử dụng.
–
Tài nguyên tạo lập: danh sách các tài nguyên được tiến trình tạo lập.
•
Thông tin giao tiếp (4) phản ánh các thông tin về quan hệ của tiến trình với các
tiến trình khác trong hệ thống:
–
Tiến trình cha (parent): tiến trình đã tạo lập tiến trình này.
–
Tiến trình con (progeny): các tiến trình do tiến trình này tạo lập.
–
Độ ưu tiên (priority): giúp bộ điều phối có thông tin để lựa chọn tiến trình được cấp
CPU.
•
Thông tin thống kê (5) là những thông tin thống kê về hoạt động của tiến trình,
như thời gian đã sử dụng CPU, thời gian chờ.
22
ready queue / waiting
queue
pid
status
CPU-state-rec
processor
main store
resource
created resource
parent
progeny
priority
CPU time
RCB1 RCB2
RCB1 RCB2
PCB
PCB1 PCB2
Unit1 Unit2
PCB3
23
5 thao tác của HĐH trên tiến trình
•
Hệ Điều Hành cung cấp các thao tác chủ
yếu sau đây trên một tiến trình:
+ Tạo lập tiến trình (process creation)
+ Kết thúc tiến trình (process termination)
+ Tạm dừng tiến trình (process suspension)
+ Tái kích hoạt tiến trình (resume)
+ Thay đổi độ ưu tiên tiến trình.
24
* Câu 5: Điều phối tiến trình: 5 Mục tiêu
điều phối. Điều phối không độc quyền
và điều phối độc quyền.
•
Bộ điều phối (scheduler) sẽ sử dụng một giải
thuật điều phối thích hợp để lựa chọn tiến trình
được xử lý tiếp theo. Bộ phân phối (dispatcher)
sẽ chịu trách nhiệm chuyển đổi ngữ cảnh và trao
CPU cho tiến trình được chọn bởi bộ điều phối
để thực thi.
•
Hàng đợi điều phối (Scheduling Queue)
•
Các cấp độ điều phối
•
Chuyển đổi ngữ cảnh
25
Các tiêu chuẩn điều phối
•
Sự công bằng ( Fairness) :
–
Các tiến trình chia sẻ CPU một cách công bằng, không có
tiến trình nào phải chờ đợi vô hạn để được cấp phát CPU
•
Tính hiệu qủa (Efficiency) :
–
Hệ thống phải tận dụng được CPU 100% thời gian.
•
Thời gian đáp ứng hợp lý (Response time) :
–
Cực tiểu hoá thời gian hồi đáp cho các tương tác của
người sử dụng
•
Thời gian lưu lại trong hệ thống ( Turnaround Time) :
–
Cực tiểu hóa thời gian hoàn tất các tác vụ xử lý theo lô.
•
Thông lượng tối đa (Throughput ) :
–
Cực đại hóa số công việc được xử lý trong một đơn vị
thời gian.