Tải bản đầy đủ (.pdf) (44 trang)

Bài giảng lập trình hệ điều hành chương 4 định thời CPU

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (2.77 MB, 44 trang )

Khoa Công Nghệ Thông Tin & Truyền Thông
Đại học Cần Thơ
Giảng viên: Hà Duy An

9/19/2013

1

Chương 4: Định thời CPU


1.
2.
3.
4.

Các khái niệm
Các giải thuật định thời
Định thời trong hệ thống có nhiều bộ xử lý
Đánh giá giải thuật

9/19/2013

2

Chương 4: Định thời CPU



• Kỹ thuật đa chương giúp việc sử dụng
CPU đạt hiệu quả cao nhất.


• Chu kỳ CPU-I/O
o Sự thực thi của tiến trình bao gồm
nhiều chu kỳ CPU-I/O
o Một chu kỳ CPU-I/O bao gồm chu kỳ
thực thi CPU (CPU burst) và theo sau
bởi chu kỳ chờ đợi vào/ra (I/O burst).

=> Việc phân phối chu kỳ CPU-I/O là một
đặt điểm quan trọng để chọn lựa giải thuật
định thời phù hợp

9/19/2013

4

Chương 4: Định thời CPU


9/19/2013

5

Chương 4: Định thời CPU


• Bộ định thời CPU hay bộ định thời ngắn kỳ (Short-term
scheduler) chọn một trong các tiến trình trong hàng đợi sẵn sàng và
cấp phát CPU cho nó thực thi
o Hàng đợi có thể được sắp xếp theo nhiều cách


• Quyết định định thời xảy ra khi một tiến trình:
1.
2.
3.
4.

Chuyển từ trạng thái đang chạy sang trạng thái chờ đợi
Chuyển từ trạng thái đang chạy sang trạng thái sẵn sàng
Chuyển từ trạng thái chờ đợi sang sẵn sàng
Kết thúc

• Định thời không trưng dụng (nonpreemptive): tiến trình sẽ giữ
CPU và chỉ giải phóng CPU khi nó cần (trường hợp 1 và 4)
• Định thời trưng dụng (preempty): các trường hợp 2 và 3; Vấn đề:
o Tiến trình đang cập nhật dữ liệu chia sẽ chung?
o Tiến trình đang xử lý trong chế độ nhân (kernel mode)?
o Không thể bỏ qua tất cả các ngắt?

9/19/2013

6

Chương 4: Định thời CPU


• Bộ điều phối (Dispatcher): Có nhiệm vụ trao quyền điều
khiển CPU cho tiến trình được chọn bởi bộ định thời CPU,
công việc này bao gồm:
o Chuyển ngữ cảnh
o Chuyển sang chế độ người dùng

o Nhảy tới vị trí thích hợp trong chương trình người dùng để khởi
động lại chương trình đó

• Bộ điều phối cần nhanh nhất có thể.
• Độ trễ điều phối (Dispatch Latency): thời gian Dispatcher cần
để ngưng một tiến trình và khởi động một tiến trình khác

9/19/2013

7

Chương 4: Định thời CPU


1. Hiệu suất sử dụng CPU: giữ CPU luôn bận nhiều nhất có thể.
2. Thông lượng (Throughput): số lượng tiến trình hoàn thành trên
một đơn vị thời gian.
3. Thời gian xoay vòng (Turnaround time): là khoảng thời gian từ
khi một tiến trình được khởi tạo đến khi nó hoàn thành. Nó là tổng
các khoảng thời gian chờ đợi để đưa vào bộ nhớ, chờ trong hàng
đợi sẵn sàng, thời gian thực thi trên CPU và thực hiện các xử lý
I/O.
4. Thời gian chờ đợi (Waiting time): tổng thời gian trong trong hàng
đợi sẵn sàng (ready queue).
5. Thời gian đáp ứng (Response time): lượng thời gian từ lúc một
yêu cầu được đệ trình cho đến khi tín hiệu trả lời đầu tiên xuất hiện
(dùng cho môi trường chia thời gian).
9/19/2013

8


Chương 4: Định thời CPU


• Việc đánh giá giải thuật định thời được kiểm tra thông qua khả
năng tối ưu hóa các tiêu chí đinh thời của nó:
o
o
o
o
o

9/19/2013

Hiệu suất sử dụng CPU tối đa
Thông lượng tối đa
Thời gian xoay vòng tối thiểu
Thời gian chờ đợi tối thiểu
Thời gian đáp ứng tối thiểu

9

Chương 4: Định thời CPU



1.
2.
3.
4.

5.
6.

First-Come, First-Served
Shortest-Job-First
Priority
Round-Robin
Hàng đợi đa cấp
Hàng đợi phản hồi đa cấp

9/19/2013

11

Chương 4: Định thời CPU


Tiến Trình
TG sử dụng CPU
P1
24
3
P2
P3
3
• Giả sử các tiến trình xuất hiện theo thứ tự P1, P2, P3. Biểu đồ
Gantt cho lịch biểu là:
P1

P2


0

24

P3
27

30

• Thời gian chờ đợi: P1 = 0; P2 = 24; P3 = 27
• Thời gian chờ đợi trung bình: (0 + 24 + 27)/3 = 17
9/19/2013

12

Chương 4: Định thời CPU


• Giả sử các tiến trình xuất hiện theo thứ tự P2, P3, P1. Biểu đồ
Gantt cho lịch biểu là:
P2
0








P3
3

P1
6

30

Thời gian chờ đợi: P1= 6; P2 = 0; P3 = 3
Thời gian chờ đợi trung bình: (6 + 0 + 3)/3 = 3
Tốt hơn nhiều so với trường hợp trước.
Tác động nối đuôi: tiến trình ngắn nằm sau tiến trình dài.
FCFS là giải thuật định thời không trưng dụng, không thích
hợp cho hệ thống chia thời gian.

9/19/2013

13

Chương 4: Định thời CPU


• Kết hợp với mỗi tiến trình độ dài thời gian mà nó sẽ sử dụng
CPU lần kế tiếp. Khi CPU rãnh, nó sẽ được cấp cho tiến trình
có thời gian sử dụng CPU lần kế tiếp ngắn nhất.
• Có hai cách thức thực hiện giải thuật:
o Không trưng dụng: một khi CPU được giao cho một tiến trình,
nó không thể bị trưng dụng để giao cho tiến trình khác có thời
gian ngắn hơn cho đến khi tiến trình này sử dụng CPU xong.
o Trưng dụng: nếu một tiến trình mới đến có thời gian sử dụng

CPU ngắn hơn thời gian thực thi còn lại của tiến trình đang chạy,
thì ưu tiên giao CPU cho tiến trình mới đến. Cách thức này được
gọi là Shortest-Remaining-Time-First (SRTF).

• SJF là tối ưu – nó tạo ra thời gian chờ đợi trung bình ngắn
nhất.

9/19/2013

14

Chương 4: Định thời CPU


Tiến trình
TG đến
P1
0.0
P2
2.0
4.0
P3
P4
5.0
• SJF (không trưng dụng)
P1
0

3


TG sử dụng CPU
7
4
1
4

P3
7

P2
8

P4
12

16

• Thời gian chờ đợi trung bình = (0 + 6 + 3 + 7)/4 = 4

9/19/2013

15

Chương 4: Định thời CPU


Tiến trình
P1
P2
P3

P4
• SJF (trưng dụng)
P1
0

P2
2

TG đến
0.0
2.0
4.0
5.0

P3
4

TG sử dụng CPU
7
4
1
4

P2
5

P1

P4
11


7

16

• Thời gian chờ đợi trung bình = (9 + 1 + 0 +2)/4 = 3
• Bài Tập
9/19/2013

16

Chương 4: Định thời CPU


• Chỉ có thể ước lượng độ dài – có thể tương tự như lần sử dụng
trước đó.
• Độ dài ước lượng được tính tốn dựa trên chiều dài thời gian
sử dụng CPU lần trước đó, sử dụng cơng thức trung bình mũ:
1. t n  thời gian sử dụng CPU thực tế lần thứ n
2.  n 1  ước lượng thời gian sử dụng CPU lần thứ n  1
3.  , 0    1
4. Đònh nghóa :  n 1   t n  (1   ) n

• Thơng thường α = ½

9/19/2013

17

Chương 4: Định thời CPU



9/19/2013

18

Chương 4: Định thời CPU


• α =0
o τn+1 = τn
o Không tính đến thời gian sử dụng CPU gần nhất

• α =1
o τn+1 = tn
o Chỉ tính đến thời gian sử dụng CPU thực gần nhất

• α =1/2, lịch sử quá khứ và gần đây có trọng số tương đương.
• Nếu mở rộng công thức, ta có:
τn+1 = α tn+(1 - α) α tn-1 + … +(1 - α )j+1 α tn-j + … +(1 - α )n+1τ0

• Vì α và (1- α) nhỏ hơn hay bằng 1, mỗi số hạng tiếp theo có
trọng số nhỏ hơn số hạng trước đó.
9/19/2013

19

Chương 4: Định thời CPU



• Một chỉ số ưu tiên được gán cho mỗi tiến trình
• CPU sẽ được cấp cho tiến trình có độ ưu tiên cao nhất, nghĩa
là chỉ số ưu tiên nhỏ nhất (smallest integer ≡ highest priority).
• Có thể trưng dụng hoặc không trưng dụng
• SJF là một trường hợp của định thời ưu tiên, trong đó độ ưu
tiên là thời gian ước tính sử dụng CPU lần kế tiếp.
• Vấn đề đói CPU (starvation): các tiến trình có độ ưu tiên thấp
có khả năng không bao giờ được thực thi.
• Giải pháp: đặt thời hạn (aging) – khi thời gian trôi đi, độ ưu
tiên của tiến trình càng tăng theo.

9/19/2013

20

Chương 4: Định thời CPU


ProcessA arri Burst TimeT
P1
10
P2
1
P3
2
P4
1
P5
5


Priority
3
1
4
5
2

• Priority scheduling Gantt Chart

0

P1

P5

P2
1

6

P3
16

P4
18

19

• Average waiting time = 8.2 msec
9/19/2013


21

Chương 4: Định thời CPU


• Mỗi tiến trình được CPU phục vụ trong một đơn vị thời gian nhỏ,
gọi là định mức thời gian (time quantum), thường là 10-100
milliseconds.
• Sau khoảng thời gian này, CPU bị trưng dụng và giao cho tiến trình
khác, tiến trình bị ngưng và chuyển vào hàng đợi sẵn sàng.
• Nếu có n tiến trình đang nằm trong hàng đợi sẵn sàng và định mức
thời gian là q, thì mỗi tiến trình sẽ nhận được 1/n tổng thời gian của
CPU, thời gian phục vụ của CPU cho nó tối đa là q. Sẽ không có
tiến trình nào phải chờ đợi quá lượng thời gian là (n-1)q.
• Bộ điếm thời gian (Timer) sẽ phát ra các ngắt (interrupt) sau mỗi
định mức thời gian để định thời cho tiến trình tiếp theo
• Hiệu năng:
o q lớn ⇒ FCFS (FIFO)
o q nhỏ⇒ q phải đủ lớn do ta phải quan tâm đến việc chuyển đổi ngữ
cảnh, nếu không, thời gian lãng phí sẽ rất cao.
o q thường 10-100 ms, context switch < 10 μsec
9/19/2013

22

Chương 4: Định thời CPU


9/19/2013


23

Chương 4: Định thời CPU


80% of CPU bursts should
be shorter than q

9/19/2013

24

Chương 4: Định thời CPU


Process TG sử dụng CPU
P1
53
17
P2
P3
68
P4
24
• Biểu đồ Gantt:
P1
0

P2

20

P3
37

P4
57

P1
77

P3
97

117

P4

P1
121 134

P3

P3
154 162

• Thông thường, RR có thời gian chờ đợi trung bình lớn hơn
SJF, nhưng đảm bảo thời gian đáp ứng tốt hơn.
9/19/2013


25

Chương 4: Định thời CPU


×