You are on page 1of 79

Nguyên lý hệ điều hành

(Priciples of operating systems)

Chương 3
ĐIỀU PHỐI TIẾN TRÌNH

Khoa Công nghệ Thông tin


Trường Đại học Thủ Dầu Một
Nội dung
• Thảo luận
• Các đặc điểm của tiến trình
• Điều phối tiến trình
• Các cơ chế điều phối
• Các chiến lược điều phối
• Ví dụ điều phối của các hệ điều hành

01/2016 Chương 3. Điều phối tiến trình 2


Thảo luận
• Với 1 CPU vật lý: làm thế nào để tạo cảm giác mỗi
tiến trình sở hữu 1 CPU riêng ?
Giải pháp:  Luân chuyển CPU giữa các tiến
trình.

CPU

 Luân chuyển (điều phối) CPU thế nào? Cần phải


đảm bảo điều gì?
01/2016 Chương 3. Điều phối tiến trình 3
Nội dung
• Thảo luận
• Các đặc điểm của tiến trình
• Điều phối tiến trình
• Các cơ chế điều phối
• Các chiến lược điều phối
• Ví dụ điều phối của các hệ điều hành

01/2016 Chương 3. Điều phối tiến trình 4


1/2
Các đặc điểm của tiến trình
• Tiến trình hướng nhập/xuất (I/O-boundedness)
– Nhiều lượt sử dụng CPU, mỗi lượt trong thời gian khá
ngắn.
– Ví dụ: Word
• Tiến trình hướng xử lý (CPU-boundedness)
– Ít lượt sử dụng CPU, mỗi lượt trong thời gian đủ dài.
– Ví dụ: Nhân ma trận
• Tiến trình tương tác hay xử lý theo lô
– Người sử dụng theo kiểu tương tác thường yêu cầu được
hồi đáp tức thời đối với các yêu cầu của họ, trong khi các
tiến trình của tác vụ được xử lý theo lô nói chung có thể
trì hoãn trong một thời gian chấp nhận được.

01/2016 Chương 3. Điều phối tiến trình 5


2/2
Các đặc điểm của tiến trình
• Độ ưu tiên của tiến trình
– Các tiến trình có thể được phân cấp ưu tiên theo một số
tiêu chuẩn nào đó. Các tiến trình có độ ưu tiên cao cần
thực hiện trước.
• Thời gian đã sử dụng CPU của tiến trình
– Một số quan điểm ưu tiên chọn những tiến trình đã sử
dụng CPU nhiều thời gian nhất vì hy vọng chúng sẽ cần ít
thời gian nhất để hoàn tất và rời khỏi hệ thống
• Thời gian còn lại để tiến trình hoàn tất.
– Có thể giảm thiểu thời gian chờ đợi trung bình của các
tiến trình bằng cách cho các tiến trình cần ít thời gian nhất
để hoàn tất được thực hiện trước

01/2016 Chương 3. Điều phối tiến trình 6


Nội dung
• Thảo luận
• Các đặc điểm của tiến trình
• Điều phối tiến trình
• Các cơ chế điều phối
• Các chiến lược điều phối
• Ví dụ điều phối của các hệ điều hành

01/2016 Chương 3. Điều phối tiến trình 7


1/15
Điều phối tiến trình
Chia sẽ thời gian – để chuyển đổi CPU qua lại giữa các
tiến trình.

2 thành phần đảm nhiệm vai trò điều phối tiến trình:
 Scheduler chọn 1 tiến trình

 Dispatcher chuyển đổi CPU cho tiến trình được chọn

01/2016 Chương 3. Điều phối tiến trình 8


2/15
Điều phối tiến trình - Mục tiêu
• Hiệu quả (Efficiency): Hệ thống phải tận dụng được
CPU 100%
  Thời gian
•  Thời gian đáp ứng (Response time): tính từ lúc tiến
trình nhận yêu cầu đến khi yêu cầu đầu tiên được đáp
ứng
 Cực tiểu hóa thời gian hồi đáp cho các tương tác của NSD.
•  Thời gian Hoàn tất (Turnaround Time = Tquit -Tarrive)
 Cực tiểu hóa thời gian hoàn tất các tác vụ xử lý theo lô
•  Thời gian Chờ (Waiting Time = T in Ready )
  Thông lượng (Throughput = # jobs/s)
• Cực đại hóa số công việc được xử lý trong một đơn vị thời gian.
• Công bằng (Fairness): Tất cả các tiến trình điều có cơ
hội nhận CPU để xử lý
01/2016 Chương 3. Điều phối tiến trình 9
3/15
Bộ điều phối (Scheduler)
Ra quyết định chọn một tiến trình trong ready queue để
cấp phát CPU :
– Nếu ready queue có 0 tiến trình : CPU rảnh rỗi (idle)
– Nếu ready queue > 1 tiến trình :
chọn như thế nào ?  Cần có thuật toán điều phối
 Xảy ra khi một tiến trình chuyển trạng thái.
– Running  Waiting hoặc Ready
– Waiting  Ready
– Kết thúc

01/2016 Chương 3. Điều phối tiến trình 10


4/15
Bộ điều phối (Scheduler)
• Sử dụng một giải thuật thích hợp để lựa chọn
tiến trình được thực thi tiếp theo
• Phân loại:
– Bộ điều phối công việc (Job scheduler /long-
term scheduler): có nhiệm vụ lựa chọn một công
việc đưa vào bộ nhớ
– Bộ điều phối CPU (CPU scheduler / Short-term
scheduler): còn gọi là bộ phân phối
(Dispacher)

01/2016 Chương 3. Điều phối tiến trình 11


5/15
Bộ điều phối (Scheduler)
• Đôi khi hệ điều hành (time-sharing systems) có thêm bộ điều
phối trung gian – Medium-term scheduler để điều chỉnh mức
độ đa chương của hệ thống
• Medium-term scheduler:
– Swap in: chuyển tiến trình từ đĩa vào bộ nhớ
– Swap out: chuyển tiến trình từ bộ nhớ ra đĩa

01/2016 Chương 3. Điều phối tiến trình 12


6/15
Các trạng thái của tiến trình – nhắc lại
• Sơ đồ chuyển trạng thái của tiến trình – sơ đồ 5 trạng thái

admitted exit
New Terminated
(1) (5) (3)

Interrupt

Ready Running
(2)

I/O or event (6) Scheduler dispatch


(4) I/O or event
completion wait
Waiting/Blocked

01/2016 Chương 3. Điều phối tiến trình 13


7/15
Mở rộng các trạng thái của tiến trình
new

suspended
ready
ready

running

suspended
blocked terminated
blocked

01/2016 Chương 3. Điều phối tiến trình 14


8/15
Phân loại các hoạt động điều phối

new
Long-term
scheduling

Medium-term
suspended scheduling
ready Short-term
ready
scheduling

running

Medium-term
scheduling
suspended
blocked terminated
blocked

01/2016 Chương 3. Điều phối tiến trình 15


9/15
Bộ phân phối (dispatcher)
• Chịu trách nhiệm cập nhật ngữ cảnh của tiến
trình bị tạm ngưng và trao CPU cho tiến trình
được chọn bởi bộ điều phối để tiến trình thực
thi. Bao gồm:
– Chuyển đổi ngữ cảnh
– Chuyển sang user mode
– Nhảy đến vị trí của chương trình người dùng để
khởi động lại chương trình đó

01/2016 Chương 3. Điều phối tiến trình 16


10/15
Bộ phân phối (dispatcher)
• Xét ví dụ
– Tiến trình A đang dùng CPU 1 chút thì bị HĐH thu hồi
CPU
– HĐH cấp CPU cho B dùng 1 chút, HĐH thu hồi lại
CPU.
– HĐH cấp CPU trở lại cho A.
•  Giá trị các thanh ghi giữa những lần chuyển
đổi CPU ?
• Kịch bản:
– Lưu ngữ cảnh tiến trình hiện hành
– Nạp ngữ cảnh tiến trình được chọn kế tiếp

01/2016 Chương 3. Điều phối tiến trình 17


11/15
Bộ phân phối (dispatcher)

Lưu đồ luân
chuyển CPU
giữa 2 tiến
trình

01/2016 Chương 3. Điều phối tiến trình 18


12/15
Thảo luận
• Bản thân HĐH cũng là 1 phần mềm, nghĩa là cũng sử
dụng CPU để có thể chạy được.
• Câu hỏi: Khi tiến trình A đang chiếm CPU, làm thế nào
HĐH có thể thu hồi CPU lại được ? (vì lúc này HĐH không
giữ CPU)
– Ép buộc NSD thỉnh thoảng trả CPU lại cho HĐH?
– Máy tính phải có 2 CPU, 1 dành riêng cho HĐH?
 HĐH sử dụng ngắt đồng hồ (ngắt điều phối) để
kiểm soát hệ thống
Mỗi khi có ngắt đồng hồ, HĐH kiểm tra xem có cần thu hồi
CPU từ 1 tiến trình nào đó lại hay không ?
HĐH chỉ thu hồi CPU khi có ngắt đồng hồ phát sinh.
Khoảng thời gian giữa 2 lần ngắt điều phối gọi là chu kỳ
đồng hồ (tối thiểu là 18.2 lần / giây
01/2016 Chương 3. Điều phối tiến trình 19
13/15
Tổ chức điều phối
• Để thực hiện điều phối, hệ điều hành sử dụng ba
loại hàng đợi là:
– Job queue (hàng đợi tác vụ): chứa tất cả các tiến trình
trong hệ thống
– Ready queue (hàng đợi sẵn sàng): Chứa các tiến trình
đang ở trong bộ nhớ chính và sẳn sàng thực thi khi được
cấp phát CPU
– Waiting queue (hàng đợi chờ đợi): chứa các tiến trình
tạm dừng vì chờ một sự kiện nào đó xảy ra (nhập/xuất,
chờ cấp phát tài nguyên,…)

01/2016 Chương 3. Điều phối tiến trình 20


14/15
Tổ chức điều phối
PCB7 PCB2
Ready head
queue tail Registers Registers

Mag tape head


unit 1 tail
Mag tape head PCB3 PCB14 PCB6
unit 2 tail
Registers Registers Registers
Disk head
unit 0 tail
PCB5
Terminal head
unit 0 tail Registers

01/2016 Chương 3. Điều phối tiến trình 21


15/15
Tổ chức điều phối
• Lưu đồ hàng đợi điều phối tiến trình

Ready queue CPU

I/O I/O queue I/O request

Time slice
expried

Child
executes Fork a child

Interrupt Wait for an


occurs interrupt

01/2016 Chương 3. Điều phối tiến trình 22


Nội dung
• Thảo luận
• Các đặc điểm của tiến trình
• Điều phối tiến trình
• Các cơ chế điều phối
• Các chiến lược điều phối
• Ví dụ điều phối của các hệ điều hành

01/2016 Chương 3. Điều phối tiến trình 23


1/5
Điều phối độc quyền (non-preemptive)
• Tiến trình 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.
– Quyết định điều phối xảy ra khi:
• Tiến trình chuyển từ tthái Running sang Blocked
• Tiến trình kết thúc

01/2016 Chương 3. Điều phối tiến trình 24


2/5
Điều phối không độc quyền (preemptive)
• Điều phối không độc quyền (preemptive)
– Tiến trình nhận được CPU vẫn được sử dụng CPU đến
khi hoàn tất xử lý hoặc tự nguyện giải phóng CPU.
– Nhưng tiến trình khác có độ ưu tiên có thể dành quyền sử
dụng CPU.
– Quyết định điều phối xảy ra khi:
• Tiến trình chuyển từ tthái Running sang Blocked
• Tiến trình chuyền từ Running sang Ready
• Tiến trình chuyền từ Blocked sang Ready
• Tiến trình kết thúc
• Tiến trình có độ ưu tiên cao hơn xuất hiện

01/2016 Chương 3. Điều phối tiến trình 25


3/5
Ví dụ

01/2016 Chương 3. Điều phối tiến trình 26


4/5
Interval timer/ interrupting clock
• HĐH sử dụng một bộ đếm thời gian / đồng hồ
ngắt giờ
• Khoảng thời gian t thích hợp ứng với 1 lượt
cấp phát CPU cho 1 tiến trình.
• Sau khoảng thời gian t xảy ra ngắt báo hiệu
hết thời gian xử lý của tiến trình hiện hành.
Khi đó, HĐH được kích hoạt, và bộ điều phối
sẽ quyết định tiến trình nào sẽ được cấp phát
CPU trong lượt kế tiếp.

01/2016 Chương 3. Điều phối tiến trình 27


5/5
Độ ưu tiên của tiến trình
• Được gán bởi hệ thống hay gán tường minh
bởi user.
• Độ ưu tiên tĩnh: không thay đổi bất kể sự
biến động của môi trường.
• Độ ưu tiên động: thay đổi theo thời gian và
môi trường xử lý

01/2016 Chương 3. Điều phối tiến trình 28


Nội dung
• Thảo luận
• Các đặc điểm của tiến trình
• Điều phối tiến trình
• Các cơ chế điều phối
• Các chiến lược điều phối
• Ví dụ điều phối của các hệ điều hành

01/2016 Chương 3. Điều phối tiến trình 29


Các chiến lược điều phối
• Chiến lược FIFO (FCFS)
• Chiến lược phân phối xoay vòng (round
robin)
• Chiến lược điều phối theo độ ưu tiên
• Chiến lược theo công việc ngắn nhất
(shortest-Job-First-SJF)
• Chiến lược điều phối theo nhiều mức độ ưu
tiên

01/2016 Chương 3. Điều phối tiến trình 30


1/4
Chiến lược FIFO
Ready List

C B A CPU
• Tiến trình vào RQ lâu
Ready List nhất được chọn trước.
C B CPU • Theo thứ tự vào RQ.
Ready List
• Điều phối độc quyền.
C CPU

01/2016 Chương 3. Điều phối tiến trình 31


2/4
Chiến lược FIFO
P TarriveRQ CPU burst P TT WT

P1 0 24 P1 24 0
P2 1 3 P2 27-1 24-1
P3 2 3 P3 30-2 27-2

AvgWT = (23+25)/3 = 16
P1 P2 P3
0 24 27 Time(ms)
0: P1 vào RQ 24: P1 kết thúc
P1 dùng CPU P2 dùng CPU
1: P2 vào RQ 27: P2 kết thúc
2: P3 vào RQ P3 dùng CPU

01/2016 Chương 3. Điều phối tiến trình 32


3/4
Chiến lược FIFO
• Thảo luận:
Có xảy ra khả
năng 1 tiến trình
Thời gian chờ
nào đó không
có tối ưu? (đạt
được cấp CPU?
cực tiểu)

Có phù hợp cho hệ


thống phân chia thời
gian?

01/2016 Chương 3. Điều phối tiến trình 33


4/4
Chiến lược FIFO
 Đơn giản
 Chịu đựng hiện tượng tích lũy thời gian chờ
 Tiến trình có thời gian xử lý ngắn đợi tiến trình có
thời gian xử lý dài
 Ưu tiên tiến trình cpu-bounded
 Có thể xảy ra tình trạng độc chiếm CPU

01/2016 Chương 3. Điều phối tiến trình 34


1/8
Chiến lược round robin (RR)
• Bộ điều phối lần lượt cấp phát cho từng tiến
trình trong ready queue 1 khoảng thời gian sử
dụng CPU là quantum (10-100 ms).
• Hết thời gian quantum mà tiến trình chưa
hoàn tất, tiến trình đưa trở lại vào cuối ready
queue. Ready queue

01/2016 Chương 3. Điều phối tiến trình 35


2/8
Chiến lược round robin (RR)

Quantum/
Time slice
Ready List

C B A CPU A chỉ chiếm CPU trong q ms

Ready List
B được giao quyền sử dụng CPU
A C B CPU trong q ms kế tiếp

Ready List
C được giao quyền sử dụng CPU
B A C CPU trong q ms kế tiếp

01/2016 Chương 3. Điều phối tiến trình 36


3/8
Chiến lược round robin (RR)
Quantum = 4ms P TT WT

P TarriveRQ CPU burst P1 30 0+(10-4)


P1 0 24 P2 7-1 4-1
P2 1 3 P3 10-2 7-2
P3 2 3
AvgWT = (6+3+5)/3 = 4.66

P1 P2 P3 P1 P1 P1 P1 P1
0 4 7 10 14 18 22 26 30 Time(ms)
0:00 P1 vào, P1 dùng CPU 0:07 P2 dừng, P3 dùng CPU
0:01 P2 vào (đợi) 0:10 P3 dừng, P1 dùng CPU
0:02 P3 vào (đợi) 0:14 P1 vẫn chiếm CPU

0:04 P1 hết lượt, P2 dùng CPU
01/2016 Chương 3. Điều phối tiến trình 37
4/8
Chiến lược round robin (RR)
Quantum=4ms  Tranh chấp vị trí trong RQ
1. P : running -> ready
P TarriveRQ CPU burst 2. P : blocked -> ready
P1 0 24 3. P: new ->ready
 Không phải luôn luôn có thứ
P2 4 3 tự điều phối P1 P2 P3 P4 P1
P3 12 3 P2 P3 P4...

P1 P1 P2 P1 P3 P1 P1 P1
0 4 8 11 15 18 22 26 30
RQ 0:04 P2 P1
0:8 P2 P1
0:00 P1
0:04 ? 0:11 P1
0:15 P3 P1
0:04 P1 P2 0:18 P1
01/2016 Chương 3. Điều phối tiến trình 38
5/8
Chiến lược round robin (RR)
Ví dụ: RR có thời gian Quantum = 20
Tarrive RQ Process Burst Time(xử lý)
0 P1 53
1 P2 17
2 P3 68
3 P4 24
• Gantt chart :

P1 P2 P3 P4 P1 P3 P4 P1 P3 P3

0 20 37 57 77 97 117 121 134 154 162

01/2016 Chương 3. Điều phối tiến trình 39


6/8
Chiến lược round robin (RR)
• Thời gian quantum và chuyển ngữ cảnh

01/2016 Chương 3. Điều phối tiến trình 40


7/8
Chiến lược round robin (RR)
• Thời gian quay vòng trung bình biến thiên theo thời gian
quantum

Thời gian quay


vòng trung bình
không chắc sẽ
được cải thiện khi
quantum lớn!

01/2016 Chương 3. Điều phối tiến trình 41


8/8
Chiến lược round robin (RR)
• Sử dụng cơ chế không độc quyền
Bao lâu?
• Mỗi tiến trình không phải đợi quá lâu
• Loại bỏ hiện tượng độc chiếm CPU
• Hiệu quả ?
– Phụ thuộc vào việc chọn lựa quantum q
– q quá lớn ???
Giảm tính tương tác
– q quá nhỏ ???

Tăng chi phí chuyển ngữ


cảnh

• Trường hợp xấu nhất của RR ?

01/2016 Chương 3. Điều phối tiến trình 42


1/5
Điều phối theo độ ưu tiên
Phân biệt tiến trình quan trọng >< tiến trình bình thường?

WMP
độ ưu tiên: cao (3)
WinWord
Độ ưu tiên

độ ưu tiên: trung bình (0)

Outlook
độ ưu tiên: thấp (-3)

 Tiến trình có độ ưu tiên cao nhất được chọn cấp


CPU trước

01/2016 Chương 3. Điều phối tiến trình 43


2/5
Điều phối theo độ ưu tiên
• Gán độ ưu tiên cho mỗi tiến trình
• Tiến trình có độ ưu tiên cao nhất sẽ được chọn để
xử lý
• Tiêu chí xác định độ ưu tiên
– Định nghĩa nội tại (e.g. giới hạn thời gian, nhu cầu bộ
nhớ,…)
– Nhờ yếu tố bên ngoài ( e.g. tầm quan trọng của tiến trình,
loại user sở hữu tiến trình)
• Có thể hoạt động theo 2 nguyên tắc: độc quyền và
không độc quyền.

01/2016 Chương 3. Điều phối tiến trình 44


3/5
Điều phối theo độ ưu tiên
• Khi tiến trình được đưa vào ready queue
– Trong chế độ không độc quyền: so sánh độ ưu tiên với
tiến trình đang được xử lý hiện hành nếu độ ưu tiên cao
hơn -> cấp phát CPU cho tiến trình mới.
– Trong chế độ độc quyền: chèn tiến trình mới vào ready
queue.
Tiến trình Độ ưu tiên Thời gian xử lý
P1 3 24
P2 1 3
P3 2 3

P1 P3 P2 Giải thuật độc quyền

0 24 27 30
01/2016 Chương 3. Điều phối tiến trình 45
4/5
Điều phối theo độ ưu tiên
• Ví dụ: Giả sử độ ưu Tiến Thời điểm Độ ưu Thời
tiên được đánh số theo trình vào RQ tiên gian xử

thứ tự giảm dần (ie: số
P1 0 1 24
lớn nhất có độ ưu tiên
cao nhất) P2 1 3 3
P3 2 2 3

Sử dụng thuật giải độ ưu tiên độc quyền


P1 P2 P3
0 24 27 30
Sử dụng thuật giải độ ưu tiên không độc quyền
P1 P2 P3 P1
0 1 4 7 30

01/2016 Chương 3. Điều phối tiến trình 46


5/5
Điều phối theo độ ưu tiên
• Thảo luận:
– Trình trạng đói CPU (starvation): tiến trình có độ
ưu tiên thấp chờ đợi vô thời hạn.
• Khắc phục giảm độ ưu tiên của các tiến trình có độ ưu
tiên cao sau mỗi ngắt đồng hồ
• Độ ưu tiên của tiến trình giảm xuống thấp hơn tiến
trình có độ ưu tiên cao thứ nhì -> chuyển đổi quyền sử
dụng CPU “lão hoá” (aging) tiến trình.

01/2016 Chương 3. Điều phối tiến trình 47


1/8
shortest-Job-First (SJF)
• Chiến lược theo công việc ngắn nhất
• Giải thuật đặc biệt của giải thuật điều phối theo
độ ưu tiên
• Độ ưu tiên p =1/t; (t: thời gian xử lý yêu cầu)
• Giải thuật này có thể độc quyền hay không độc
quyền.
– Không độc quyền:
• Dừng tiến trình hiện hành, khi có 1 tiến trình mới có độ ưu
tiên cao hơn vào ready queue
• Còn được gọi là Shortest-Remaining-Time-First (SRTF)
– Độc quyền:
• Tiến trình hiện hành tiếp tục xử lý.

01/2016 Chương 3. Điều phối tiến trình 48


2/8
SJF độc quyền
Tiến trình Thời điểm vào RQ T/g xử lý
P1 0.0 7
P2 2.0 4
P3 4.0 1
P4 5.0 4

P1 P3 P2 P4

0 3 7 8 12 16

• Average waiting time = (0 + 6 + 3 + 7)/4 = 4

01/2016 Chương 3. Điều phối tiến trình 49


3/8
SJF không độc quyền
Tiến trình Thời điểm vào RQ T/g xử lý
P1 0.0 7
P2 2.0 4
P3 4.0 1
P4 5.0 4

P1 P2 P3 P2 P4 P1

0 2 4 5 7 11 16

• Average waiting time = (9 + 1 + 0 +2)/4 = 3

01/2016 Chương 3. Điều phối tiến trình 50


4/8
shortest-Job-First (SJF)
• Thảo luận
– Thời gian chờ trung bình đạt cực tiểu
– Khó khăn thực sự của giải thuật SJF là thường
không thể biết được thời gian yêu cầu xử lý
còn lại của tiến trình

01/2016 Chương 3. Điều phối tiến trình 51


5/8
shortest-Job-First (SJF)
• Dự đoán thời gian sử dụng CPU
– (Thời gian sử dụng CPU chính là độ dài của CPU
burst)
– Có thể tính bằng trung bình có trọng số các CPU
burst đo được trong quá khứ
– Giả thiết: những CPU burst càng mới càng phản
ánh gần hành vi của process trong tương lai

01/2016 Chương 3. Điều phối tiến trình 52


6/8
shortest-Job-First (SJF)
• Dự đoán thời gian sử dụng CPU
– Phương pháp trung bình hàm mũ (exponential
averaging)
n+1 = tn + (1  )n , 01
• t là trị đo được,  là trị dự đoán
– Suy ra:
n+1 = tn + (1  )tn1 +…+ (1  )jtnj +…+ (1  )n+10
• 0 : là hằng số hoặc lấy giá trị trung bình của hệ thống
– Ví dụ: Nếu chọn  = ½ thì có nghĩa là trị đo được tn
và trị đã dự đoán n được xem quan trọng như nhau

01/2016 Chương 3. Điều phối tiến trình 53


7/8
shortest-Job-First (SJF)
• Dự đoán thời gian sử dụng CPU
Độ dài CPU burst đo được

Độ dài CPU burst dự đoán,


với  = ½ và 0 = 10

01/2016 Chương 3. Điều phối tiến trình 54


8/8
shortest-Job-First (SJF)
• Nhận xét
– SJF sử dụng ưu tiên ngầm định: công việc ngắn nhất
được ưu tiên trước
• Những công việc thuộc loại I/O bound thường có CPU burst
ngắn
– Process có thời gian thực thi dài có thể bị trì hoãn vô
hạn định nếu các process có thời gian thực thi ngắn
liên tục vào
– Không thích hợp cho môi trường time-sharing khi
điều phối độc quyền
• Các CPU-bound process có “độ ưu tiên” thấp, nhưng một
process không thực hiện I/O có thể độc chiếm CPU nếu nó
là process đầu tiên vào hệ thống

01/2016 Chương 3. Điều phối tiến trình 55


1/6
Multilevel Feedback
• Điều phối theo nhiều mức độ ưu tiên
• Phân lớp các tiến trình tuỳ theo độ ưu tiên của
chúng
– Cách thức điều phối thích hợp cho từng nhóm. Ví dụ:
interactive và batch
• Ready queue được phân thành các queue riêng
biệt theo cấp độ ưu tiên
• Tiến trình trong queue ở cấp độ ưu tiên i chỉ
được cấp phát CPU khi các queue ở cấp ưu tiên
lớn hơn i đã trống.

01/2016 Chương 3. Điều phối tiến trình 56


2/6
Multilevel Feedback
• Vậy nếu một tiến trình gán vĩnh viễn cho 1 queue ở cấp
ưu tiên? Tiến trình không chuyển giữa các queues?
=> Giảm chi điều phối nhưng thiếu linh động và có thể dẫn đến
tình trạng “đói CPU”
• Xây dựng giải thuật điều phối nhiều cấp ưu tiên và xoay
vòng, ví dụ như:
– Nếu một process sử dụng CPU quá lâu, nó sẽ bị di
chuyển sang một hàng đợi có độ ưu tiên thấp hơn;
– Nếu một process chờ qua lâu trong một hàng đợi có
độ ưu tiên thấp, nó sẽ được di chuyển lên hàng đợi
có độ ưu tiên cao hơn (aging, giúp tránh starvation)

01/2016 Chương 3. Điều phối tiến trình 57


3/6
Multilevel Feedback
• Vấn đề cần quan tâm
– Số lượng các cấp ưu tiên
– Giải thuật điều phối cho từng danh sách ứng với
một cấp ưu tiên.
– Phương pháp xác điều phối điểm di chuyển một
tiến trình lên danh sách có độ ưu tiên cao hơn và
phương pháp xác điều phối điểm di chuyển một
tiến trình xuống danh sách có độ ưu tiên thấp
hơn.
– Phương pháp xác định một tiến trình mới được
đưa vào hệ thống sẽ thuộc danh sách có độ tiên
nào.

01/2016 Chương 3. Điều phối tiến trình 58


4/6
Multilevel Feedback
Độ ưu tiên
cao nhất
Tiến trình hệ thống

Tiến trình tương tác

Tiến trình không tương tác

Tác vụ xử lý theo lô

Tiến trình thực tập


Độ ưu tiên
thấp nhất
01/2016 Chương 3. Điều phối tiến trình 59
5/6
Multilevel Feedback
• Ví dụ về Multilevel Feedback Queue
– Cho 3 hàng đợi:
• Q0 – RR có thời gian quantum 8 ms
• Q1 – RR có thời gian quantum 16 ms
• Q2 – FIFO
– Điều phối
• Một tiến trình mới vào Q0 được phục vụ theo RR. Khi
nó dành được CPU, nó sẽ nhận 8ms. Nếu không hoàn
thành trong 8ms thì tiến trình sẽ được chuyển đến Q1.
• Tại Q1, tiến trình lại được phục vụ theo RR và nhận
thêm 16ms. Nếu nó không hoàn thành thì nó sẽ
chuyển qua Q2 được phục vụ theo FIFO

01/2016 Chương 3. Điều phối tiến trình 60


6/6
Multilevel Feedback
• Ví dụ về Multilevel Feedback Queue (tt)

01/2016 Chương 3. Điều phối tiến trình 61


1/1
Lottery (điều phối xổ số)
• Thuật giải theo xác suất
• Các tiến trình được gán một số vé số
• Khi đến thời điểm ra quyết định điều phối, sẽ
chọn 1 vé “trúng giải” (ngẫu nhiên), tiến trình
nào sở hữu vé này sẽ được nhận CPU
• Là giải thuật độc quyền
• Nhận xét:
– Giải thuật Lottery đơn giản chi phí thấp, bảo đảm
tính công bằng cho các tiến trình

01/2016 Chương 3. Điều phối tiến trình 62


Nội dung
• Thảo luận
• Các đặc điểm của tiến trình
• Điều phối tiến trình
• Các cơ chế điều phối
• Các chiến lược điều phối
• Ví dụ điều phối của các hệ điều hành

01/2016 Chương 3. Điều phối tiến trình 63


Ví dụ điều phối của các HĐH

• Điều phối trong Solaris scheduling


• Điều phối trong Windows NT
• Điều phối trong Linux

01/2016 Chương 3. Điều phối tiến trình 64


1/2
Solaris 2

01/2016 Chương 3. Điều phối tiến trình 65


2/2
Solaris 2
• Bảng Solaris Dispatch

01/2016 Chương 3. Điều phối tiến trình 66


1/2
Độ ưu tiên của HĐH Win NT
• WinNT gán cho mỗi tiến trình độ ưu tiên có giá trị giữa 0 &
31
– 0 (độ ưu tiên nhỏ nhất): dành riêng cho trạng thái system
idle
• Độ ưu tiên được phân theo nhóm:
– Realtime : (16 - 31)
• Thích hợp cho các tiến trình thời gian thực
• Dành riêng cho các tiến trình của người quản trị hệ thống
– Dynamic : (0 - 15)
• Thích hợp cho các tiến trình của người dùng thường
• Chia thành 3 mức :
– high (11 - 15)
– normal (6 - 10)
– idle (2 - 6)

01/2016 Chương 3. Điều phối tiến trình 67


2/2
Biểu đồ phân bố độ ưu tiên của Win NT
realtime time-critical 31

realtime highest (+2)


realtime above normal (+1)
levels 16-31
24 normal (0)
below normal (-1)
lowest (-2)

realtime idle 16 high


dynamic time-critical 15
13
normal

dynamic 8 idle
levels 1-15
4

dynamic idle 1
system idle 0

01/2016 Chương 3. Điều phối tiến trình 68


1/3
Điều phối trong Linux
• Hai thuật toán: time-sharing and real-time
• Time-sharing
– Ưu tiên hóa dựa trên credit – tiến trình có credit nhất
được chọn kế tiếp
– Credit bị trừ khi timer xảy ra
– Khi credit = 0, thì tiến trình khác được chọn
– Khi tất cả các tiến trình có credit = 0, cấp lại credit
• Dựa trên các yếu tố: độ ưu tiên và lịch sử
• Real-time
– Soft real-time
– Posix.1b– 2 lớp
• FIFO và RR
• Độ ưu tiên cao nhất luôn luôn được chạy trước

01/2016 Chương 3. Điều phối tiến trình 69


2/3
Điều phối trong Linux
• Quan hệ giữa độ ưu tiên và thời gian
quantum

01/2016 Chương 3. Điều phối tiến trình 70


3/3
Điều phối trong Linux
• Danh sách các tiến trình được lập chỉ mục
theo các độ ưu tiên

01/2016 Chương 3. Điều phối tiến trình 71


Bài tập 1

01/2016 Chương 3. Điều phối tiến trình 72


Bài tập 1
• a) Cho biết kết quả điều phối hoạt động của các tiến
trình trên theo thuật toán FIFO; SJF; điều phối theo độ
ưu tiên độc quyền (độ ưu tiên 1 > 2 > ...); và RR
(quantum= 3).
• b) Cho biết thời gian lưu lại trong hệ thống
(turnaround time) của từng tiến trình trong từng thuật
toán điều phối ở câu a.
• c) Cho biết thời gian chờ trong hệ thống (waiting time)
của từng tiến trình trong từng thuật toán điều phối ở
câu a.
• d)Thuật toán điều phối nào trong các thuật toán ở câu
a cho thời gian chờ trung bình là cực tiểu ?
01/2016 Chương 3. Điều phối tiến trình 73
Bài tập 2
Process Time arrive RQ Burst Time
P1 0 10
P2 0 29
P3 0 3
P4 0 7
P5 0 12
• Xét các giải thuật FCFS, SFJ, và RR với
quantum time = 10
• Giải thuật nào cho
– Thời gian đợi trung bình nhỏ nhất?
– Thông năng cao nhất?
– Thời gian quay vòng trung bình của process nhỏ
nhất?
01/2016 Chương 3. Điều phối tiến trình 74
Bài tập 3
• FCFS: thời gian đợi trung bình là 28 ms, hãy
tính các thông số khác

• Điều phối lại bằng RR (q=10ms), SJF


• Nhận xét gải thuật nào cho
 Thời gian đợi trung bình nhỏ nhất?
 Thông năng cao nhất?
 Thời gian quay vòng trung bình của process
nhỏ nhất?
01/2016 Chương 3. Điều phối tiến trình 75
Bài tập 4
• SJF (non-preemptive): thời gian đợi trung
bình là 13 ms, hãy tính các thông số khác

• Điều phối lại bằng RR (q=10ms), SJF preemptive)


• Nhận xét gải thuật nào cho
 Thời gian đợi trung bình nhỏ nhất?
 Thông năng cao nhất?
 Thời gian quay vòng trung bình của process
nhỏ nhất?
01/2016 Chương 3. Điều phối tiến trình 76
Bài tập 5
• RR: thời gian đợi trung bình là 23 ms, hãy
tính các thông số khác

• Điều phối lại bằng FIFO, SJF


• Nhận xét gải thuật nào cho
 Thời gian đợi trung bình nhỏ nhất?
 Thông năng cao nhất?
 Thời gian quay vòng trung bình của process
nhỏ nhất?

01/2016 Chương 3. Điều phối tiến trình 77


Bài tập 6
Process Time arrive RQ RQi Burst Time
P1 0 Q0 10
P2 1 Q1 29
P3 2 Q2 3
P4 3 Q1 7
P5 4 Q0 12
– Cho 3 hàng đợi:
• Q0 – RR có thời gian quantum 8 ms
• Q1 – RR có thời gian quantum 16 ms
• Q2 – FIFO
– Điều phối bằng giải thuật Multilevel feedback

01/2016 Chương 3. Điều phối tiến trình 78


Bài tập 7: Hãy điều phối
CPU: SJF không độc quyền. R1,R2: FIFO

Tiến Thời gian I/O lần 1 I/O lần 2


trình vào Ready CPU1 CPU2
queue Thời Thiết Thời Thiết
gian bị gian bị

P1 0 8 5 R1 1 0 Null

P2 2 1 8 R2 2 5 R1

P3 10 6 5 R1 2 3 R2

P4 11 3 20 R2 0 0 Null

01/2016 Chương 3. Điều phối tiến trình 79

You might also like