Điều phối tiến trình

Download Report

Transcript Điều phối tiến trình

Trường CĐCĐ Đồng Tháp
Hệ Điều Hành
Bài Giảng 4
TIẾN TRÌNH (PHẦN 1)
GV: Phan Quốc Cường
Nội dung bài giảng
1. Giới thiệu
2. Các trạng thái của tiến trình
3. Chế độ xử lý của tiến trình
4. Khối điều khiển tiến trình
5. Điều phối tiến trình
2
Phan Quốc Cường
Giới thiệu
Để hỗ trợ sự đa
chương
Máy tính phải có khả
năng thực hiện nhiều
tác vụ đồng thời
Điều khiển nhiều
hoạt động song song
ở cấp độ phần cứng
rất khó khăn
3
Phan Quốc Cường
Mô hình song
song giả lập
Giới thiệu (tt)
Mô hình song song giả lập
 Chuyển đổi bộ xử lý qua lại giữa các
chương trình để duy trì hoạt động của
nhiều chương trình cùng lúc.
 Tất cả các phần mềm trong hệ thống
được tổ chức thành một số những tiến
trình.
4
Phan Quốc Cường
Giới thiệu (tt)
Phân biệt chương trình và tiến trình
 Một chương trình là một thực thể thụ
động chứa đựng các chỉ thị điều khiển
để thực hiện một tác vụ nào đó.
 Khi cho thực hiện các chỉ thị này,
chương trình chuyển thành tiến trình, là
một thực thể hoạt động.
5
Phan Quốc Cường
Giới thiệu (tt)
Sự đa chương (multiprogramming)
 Mỗi tiến trình sở hữu một bộ xử lý ảo
cho riêng nó. Nhưng trong thực tế, chỉ
có một bộ xử lý thật sự được chuyển đổi
qua lại giữa các tiến trình.
 Sự chuyển đổi nhanh chóng này được
gọi là sự đa chương.
6
Phan Quốc Cường
Giới thiệu (tt)
Bộ điều phối (Scheduler)
 Bộ điều phối thực hiện chức năng sử
dụng thuật toán để quyết định thời điểm
cần dừng hoạt động của tiến trình đang
xử lý để phục vụ cho một tiến trình khác
và lựa chọn tiến trình tiếp theo sẽ được
phục vụ.
7
Phan Quốc Cường
Nội dung bài giảng
1. Giới thiệu
2. Các trạng thái của tiến trình
3. Chế độ xử lý của tiến trình
4. Khối điều khiển tiến trình
5. Điều phối tiến trình
8
Phan Quốc Cường
Các trạng thái của tiến trình
 Trạng thái của tiến trình tại một thời điểm
được xác định bởi hoạt động hiện thời của
tiến trình tại thời điểm đó.
9
Phan Quốc Cường
Các trạng thái của tiến trình
Một tiến trình thay đổi trạng thái do nhiều
nguyên nhân:
 Phải chờ một sự kiện nào đó xảy ra.
 Chờ một thao tác nhập/xuất hoàn tất.
 Buộc phải dừng hoạt động do đã hết thời
gian xử lý.
10
Phan Quốc Cường
Các trạng thái của tiến trình
Tại một thời điểm, một tiến trình có thể nhận
một trong các trạng thái sau:
 New: tiến trình đang được tạo lập.
 Running: các chỉ thị của tiến trình đang
được xử lý.
 Waiting: tiến trình chờ được cấp phát một
tài nguyên hay chờ một sự kiện xảy ra.
 Ready: tiến trình chờ được cấp phát CPU
để xử lý.
 Terminated: tiến trình hoàn tất xử lý.
11
Phan Quốc Cường
Các trạng thái của tiến trình
1
3
5
2
4
6
Sơ đồ chuyển trạng thái của các tiến trình
12
Phan Quốc Cường
Các trạng thái của tiến trình
1. Tiến trình mới tạo được đưa vào hệ thống.
2. Bộ điều phối cấp phát cho tiến trình một
khoảng thời gian sử dụng CPU.
3. Tiến trình kết thúc.
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 cấp phát tại thời điểm đó.
5. Bộ điều phối chọn một tiến trình khác để
xử lý.
6. Tài nguyên mà tiến trình yêu cầu sẵn sàng.
13
Phan Quốc Cường
Các trạng thái của tiến trình
 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 Waiting hay Ready.
14
Phan Quốc Cường
Nội dung bài giảng
1. Giới thiệu
2. Các trạng thái của tiến trình
3. Chế độ xử lý của tiến trình
4. Khối điều khiển tiến trình
5. Điều phối tiến trình
15
Phan Quốc Cường
Chế độ xử lý của tiến trình
Người sử dụng
Shell, editors
Hệ điều hành
Phần cứng
16
Phan Quốc Cường
Chế độ không
đặc quyền
Chế độ đặc quyền
Nội dung bài giảng
1. Giới thiệu
2. Các trạng thái của tiến trình
3. Chế độ xử lý của tiến trình
4. Khối điều khiển tiến trình
5. Điều phối tiến trình
17
Phan Quốc Cường
Khối điều khiển tiến trình
Mỗi tiến trình
được hiện diện
trong hệ điều
hành bởi một
khối điều khiển
tiến trình
(Process
Control BlockPCB) – cũng
được gọi khối
điều khiển tác
vụ.
18
Phan Quốc Cường
Khối điều khiển tiến trình (tt)
 Pointer: con trỏ lệnh.
 Trạng thái tiến trình (process state): trạng thái có thể
là mới, sẳn sàng, đang chạy, chờ đợi, kết thúc, …
 Bộ đếm chương trình (program counter): bộ đếm hiển
thị địa chỉ của chỉ thị kế tiếp được thực thi cho quá
trình này.
 Các thanh ghi (registers) CPU: các thanh ghi khác nhau
về số lượng và loại, phụ thuộc vào kiến trúc máy tính.
Chúng gồm các bộ tổng (accumulators), các thanh ghi
chỉ mục, các con trỏ ngăn xếp, và các thanh ghi đa
năng (general-purpose registers), cùng với thông tin
mã điều kiện (condition-code information).
19
Phan Quốc Cường
Khối điều khiển tiến trình (tt)
 Thông tin lập thời biểu CPU (CPU-scheduling
information): thông tin gồm độ ưu tiên của tiến trình,
các con trỏ chỉ tới các hàng đợi lập thời biểu, và bất kỳ
tham số lập thời biểu khác.
 Thông tin quản lý bộ nhớ (Memory-management
information): thông tin này có thể gồm những thông
tin như giá trị của các thanh ghi nền và thanh ghi giới
hạn, các bảng trang hay các bảng phân đoạn, phụ
thuộc hệ thống bộ nhớ được dùng bởi hệ điều hành.
 Thông tin tính toán (accounting information): thông
tin này gồm lượng CPU và thời gian thực được dùng,
công việc hay số quá trình,…
20
Phan Quốc Cường
Khối điều khiển tiến trình (tt)
 Thông tin trạng thái nhập/xuất (I/O
status information): thông tin này gồm
danh sách của thiết bị nhập/xuất được
cấp phát quá trình này, một danh sách
các tập tin đang mở,..
21
Phan Quốc Cường
Khối điều khiển tiến trình (tt)
PCB đơn giản
phục vụ như
kho chứa cho
bất cứ thông
tin khác
nhau từ tiến
trình
này tới tiến
trình khác.
22
Phan Quốc Cường
Lưu đồ
hiển thị
việc
chuyển
CPU từ
tiến
trình
này tới
tiến
trình
khác
Nội dung bài giảng
1. Giới thiệu
2. Các trạng thái của tiến trình
3. Chế độ xử lý của tiến trình
4. Khối điều khiển tiến trình
5. Điều phối tiến trình
23
Phan Quốc Cường
Điều phối tiến trình
 Trong môi trường đa chương, có thể xảy ra trường hợp
nhiều tiến trình đồng thời sẵn sàng để xử lý.
 Hệ điều hành phải lựa chọn tiến trình được xử lý tiếp
theo.
 Bộ điều phối sẽ sử dụng giải thuật thích hợp để thực
hiện nhiệm vụ này. Bộ điều phối không cung cấp cơ chế
mà đưa ra quyết định. Các hệ điều hành xây dựng nhiều
chiến lược khác nhau để thực hiện việc điều phối.
24
Phan Quốc Cường
Điều phối tiến trình (tt)
Mục tiêu điều phối
 Sự công bằng
 Tính hiệu quả
 Thời gian đáp ứng hợp lý
 Thời gian lưu lại trong hệ thống
 Thông lượng tối đa
25
Phan Quốc Cường
Điều phối tiến trình (tt)
Điều phối độc quyền
 Cho phép một tiến trình khi nhận được
CPU sẽ có quyền độc chiếm CPU đến khi
hoàn tất xử lý hoặc tự nguyện giải phóng
CPU
26
Phan Quốc Cường
Điều phối tiến trình (tt)
Điều phối độc quyền
Quyết định điều phối sẽ xảy ra trong các
tình huống sau:
 Khi tiến trình chuyển từ trạng thái
Running sang Waiting.
 Khi tiến trình kết thúc.
27
Phan Quốc Cường
Điều phối tiến trình (tt)
Điều phối độc quyền
 Các giải thuật độc quyền đơn giản và dễ
cài đặt nhưng không phù hợp với các hệ
thống nhiều người dùng.
 Chỉ thích hợp với các hệ thống xử lý theo
lô.
28
Phan Quốc Cường
Điều phối tiến trình (tt)
Điều phối không độc quyền
Ngược với điều phối độc quyền, điều phối
không độc quyền cho phép tạm dừng hoạt
động của một tiến trình đang xử lý. Tiến
trình có thể bị tạm dừng bất kì lúc nào mà
không báo trước để tiến trình khác xử lý.
29
Phan Quốc Cường
Điều phối tiến trình (tt)
Điều phối không độc quyền
Quyết định điều phối sẽ xảy ra trong các tình
huống sau:
 Khi tiến trình chuyển từ trạng thái Running
sang Waiting.
 Khi tiến trình chuyển từ trạng thái Running
sang Ready.
 Khi tiến trình chuyển từ trạng thái Waiting
sang Ready.
 Khi tiến trình kết thúc.
30
Phan Quốc Cường
Điều phối tiến trình (tt)
Điều phối không độc quyền
Thích hợp với các hệ thống chia sẻ thời gian
(time sharing), các hệ thời gian thực (real
time).
31
Phan Quốc Cường
Điều phối tiến trình (tt)
Tổ chức điều phối
Sơ đồ chuyển đổi giữa các danh sách điều phối
32
Phan Quốc Cường
Điều phối tiến trình (tt)
Tổ chức điều phối
 Tiến trình có thể phát ra một yêu cầu
nhập/xuất và sau đó được đặt vào trong
hàng đợi nhập/xuất.
 Tiến trình có thể tạo một tiến trình con và
chờ cho tiến trình con kết thúc.
 Khi một ngắt xảy ra, tiến trình có thể bị buộc
trả lại CPU và được đặt trở lại trong hàng
đợi sẳn sàng.
33
Phan Quốc Cường
Điều phối tiến trình (tt)
Tổ chức điều phối
Cấp độ điều phối trung gian
34
Phan Quốc Cường
Điều phối tiến trình (tt)
Tổ chức điều phối
Bộ định thời trung gian xóa các tiến trình ra
khỏi bộ nhớ (từ sự cạnh tranh CPU) và do đó
giảm mức độ đa chương. Tại thời điểm sau đó,
tiến trình có thể được đưa trở lại bộ nhớ và
việc thực thi của nó có thể được tiếp tục nơi nó
bị đưa ra. Cơ chế này được gọi là hoán vị
(swapping). Tiến trình được hoán vị ra và sau
đó được hoán vị vào bởi bộ định thời trung
gian.
35
Phan Quốc Cường
Điều phối tiến trình (tt)
Các chiến lược điều phối
Chiến lược FCFS (First-come, first-serve): Với
cơ chế này, tiến trình yêu cầu CPU trước
được cấp phát CPU trước.
 Đây là thuật toán điều phối theo nguyên tắc
độc quyền.
 Một khi CPU được cấp phát cho tiến trình,
CPU chỉ được tiến trình tự nguyện giải
phóng khi kết thúc xử lý hay khi có một yêu
cầu nhập/xuất.
36
Phan Quốc Cường
Điều phối tiến trình (tt)
Các chiến lược điều phối
Chiến lược FCFS (First-come, first-serve)
Ready List
C
37
Phan Quốc Cường
B
A
CPU
Điều phối tiến trình (tt)
Các chiến lược điều phối
Chiến lược FCFS (First-come, first-serve)
38
Tiến trình
Thời điểm
vào
Thời gian xử
lý
P1
P2
P3
0
1
2
24
3
3
Phan Quốc Cường
Điều phối tiến trình (tt)
Các chiến lược điều phối
Chiến lược FCFS (First-come, first-serve)
Thứ tự cấp phát CPU cho các tiến trình là:
P1
0
39
P2
24
Phan Quốc Cường
P3
27
30
Điều phối tiến trình (tt)
Các chiến lược điều phối
Chiến lược FCFS (First-come, first-serve)
 Thời gian chờ đợi được xử lý đối với P1 là: 0
 Thời gian chờ đợi được xử lý đối với P2 là:
24
 Thời gian chờ đợi được xử lý đối với P3 là:
27
 Thời gian chờ đợi trung bình là: (0 + 24 +
27)/3 = 17 mili giây
40
Phan Quốc Cường
Điều phối tiến trình (tt)
Các chiến lược điều phối
Chiến lược FCFS (First-come, first-serve)
41
Tiến trình
Thời điểm
vào
Thời gian xử
lý
P2
P3
P1
0
1
2
3
3
24
Phan Quốc Cường
Điều phối tiến trình (tt)
Các chiến lược điều phối
Chiến lược FCFS (First-come, first-serve)
Thứ tự cấp phát CPU cho các tiến trình là:
P2
0
42
P3
3
Phan Quốc Cường
P1
6
30
Điều phối tiến trình (tt)
Các chiến lược điều phối
Chiến lược FCFS (First-come, first-serve)
 Thời gian chờ đợi được xử lý đối với P1 là: 0
 Thời gian chờ đợi được xử lý đối với P2 là: 3
 Thời gian chờ đợi được xử lý đối với P3 là: 6
 Thời gian chờ đợi trung bình là: (0 + 3 + 6)/3
= 3 mili giây
43
Phan Quốc Cường
Điều phối tiến trình (tt)
Các chiến lược điều phối
Chiến lược FCFS (First-come, first-serve)
 Thời gian chờ trung bình không đạt cực tiểu
và biến đổi đáng kể đối với các giá trị về thời
gian yêu cầu xử lý và thứ tự khác nhau của
các tiến trình trong danh sách sẵn sàng.
 Có thể xảy ra hiện tượng tích lũy thời gian
chờ khi tất cả các tiến trình phải chờ một
tiến trình có yêu cầu thời gian dài hơn để kết
thúc xử lý.
44
Phan Quốc Cường
Điều phối tiến trình (tt)
Các chiến lược điều phối
Chiến lược FCFS (First-come, first-serve)
 Không phù hợp với hệ phân chia thời gian vì
trong hệ này cần cho phép mỗi tiến trình
được cấp phát CPU đều đặn trong từng
khoảng thời gian.
45
Phan Quốc Cường
Q&A
Tài liệu tham khảo
1. [Lê Khắc Nhiêu Ân], Giáo trình Nhập Môn
Hệ Điều Hành, ĐH KHTN.
2. [Trần Hạnh Nhi], Giáo trình Hệ Điều Hành
Nâng Cao, ĐH KHTN.
47
Phan Quốc Cường
Cảm ơn!