You are on page 1of 35

CÁC VẤN ĐỀ THỰC HÀNH DỰA TRÊN LỊCH FCFS

Vấn đề-01:

Hãy xem xét tập hợp 5 quy trình có thời gian đến và thời gian bùng nổ được đưa ra dưới
đây-

Xử lý ID Thời gian đến Thời gian bùng nổ

P1 3 4

P2 5 3

P3 0 2

P4 5 1

P5 4 3

Nếu chính sách lập lịch CPU là FCFS, hãy tính thời gian chờ trung bình và thời gian quay
vòng trung bình.
Giải pháp-
Bây giờ chúng ta biết-
 Thời gian quay vòng = Thời gian xuất cảnh – Thời gian đến
 Thời gian chờ = Thời gian quay vòng – Thời gian bùng nổ

Xử lý ID Thời gian thoát Thời gian quay vòng Thời gian chờ
P1 7 7–3=4 4–4=0

P2 13 13 – 5 = 8 8–3=5

P3 2 2–0=2 2–2=0

P4 14 14 – 5 = 9 9–1=8

P5 10 10 – 4 = 6 6–3=3

Hiện nay,
 Thời gian quay vòng trung bình = (4 + 8 + 2 + 9 + 6) / 5 = 29/5 = 5,8 đơn vị
 Thời gian chờ trung bình = (0 + 5 + 0 + 8 + 3) / 5 = 16/5 = 3,2 đơn vị

Vấn đề-02:

Hãy xem xét tập hợp 3 quy trình có thời gian đến và thời gian bùng nổ được đưa ra dưới
đây-

Xử lý ID Thời gian đến Thời gian bùng nổ

P1 0 2

P2 3 1

P3 5 6
Nếu chính sách lập lịch CPU là FCFS, hãy tính thời gian chờ trung bình và thời gian quay
vòng trung bình.
 Thời gian quay vòng = Thời gian xuất cảnh – Thời gian đến
 Thời gian chờ = Thời gian quay vòng – Thời gian bùng nổ

Xử lý ID Thời gian thoát Thời gian quay vòng Thời gian chờ

P1 2 2–0=2 2–2=0

P2 4 4–3=1 1–1=0

P3 11 11- 5 = 6 6–6=0

Hiện nay,
 Thời gian quay vòng trung bình = (2 + 1 + 6) / 3 = 9/3 = 3 đơn vị
 Thời gian chờ trung bình = (0 + 0 + 0) / 3 = 0 / 3 = 0 đơn vị

Vấn đề-03:

Hãy xem xét tập hợp 6 quy trình có thời gian đến và thời gian bùng nổ được đưa ra dưới đây-

Xử lý ID Thời gian đến Thời gian bùng nổ

P1 0 3

P2 1 2

P3 2 1
P4 3 4

P5 4 5

P6 5 2

Nếu chính sách lập lịch của CPU là FCFS và có 1 đơn vị chi phí trong việc lập lịch cho các
tiến trình, hãy tìm hiệu quả của thuật toán.

Giải pháp-

 Thời gian vô ích/ Thời gian lãng phí = 6 x δ = 6 x 1 = 6 đơn vị


 Tổng thời gian = 23 đơn vị
 Thời gian hữu ích = 23 đơn vị – 6 đơn vị = 17 đơn vị

Hiệu quả (η)


= Thời gian hữu ích / Tổng Tổng
= 17 đơn vị / 23 đơn vị
= 0,7391
= 73,91%
CÁC VẤN ĐỀ THỰC HÀNH DỰA TRÊN LỊCH SJF-

Vấn đề-01:
Hãy xem xét tập hợp 5 quy trình có thời gian đến và thời gian bùng nổ được đưa ra dưới
đây-

Xử lý ID Thời gian đến Thời gian bùng nổ


P1 3 1

P2 1 4

P3 4 2

P4 0 6

P5 2 3

Nếu chính sách lập lịch CPU là SJF không ưu tiên, hãy tính thời gian chờ trung bình và thời
gian quay vòng trung bình.

 Thời gian quay vòng = Thời gian xuất cảnh – Thời gian đến
 Thời gian chờ = Thời gian quay vòng – Thời gian bùng nổ

Xử lý ID Thời gian thoát Thời gian quay vòng Thời gian chờ

P1 7 7–3=4 4–1=3

P2 16 16 – 1 = 15 15 – 4 = 11

P3 9 9–4=5 5–2=3

P4 6 6–0=6 6–6=0

P5 12 12 – 2 = 10 10 – 3 = 7

 Thời gian quay vòng trung bình = (4 + 15 + 5 + 6 + 10) / 5 = 40/5 = 8 đơn vị


 Thời gian chờ trung bình = (3 + 11 + 3 + 0 + 7) / 5 = 24/5 = 4,8 đơn vị

Vấn đề-02:

Hãy xem xét tập hợp 5 quy trình có thời gian đến và thời gian bùng nổ được đưa ra dưới đây-

Xử lý ID Thời gian đến Thời gian bùng nổ

P1 3 1

P2 1 4

P3 4 2

P4 0 6

P5 2 3

Nếu chính sách lập lịch CPU là ưu tiên SJF, hãy tính thời gian chờ trung bình và thời gian
quay vòng trung bình.
 Thời gian quay vòng = Thời gian xuất cảnh – Thời gian đến
 Thời gian chờ = Thời gian quay vòng – Thời gian bùng nổ

Xử lý ID Thời gian thoát Thời gian quay vòng Thời gian chờ

P1 4 4–3=1 1–1=0

P2 6 6–1=5 5–4=1

P3 số 8 8–4=4 4–2=2
P4 16 16 – 0 = 16 16 – 6 = 10

P5 11 11 – 2 = 9 9–3=6

Hiện nay,
 Thời gian quay vòng trung bình = (1 + 5 + 4 + 16 + 9) / 5 = 35/5 = 7 đơn vị
 Thời gian chờ trung bình = (0 + 1 + 2 + 10 + 6) / 5 = 19/5 = 3,8 đơn vị

Vấn đề-03:

Hãy xem xét tập hợp 6 quy trình có thời gian đến và thời gian bùng nổ được đưa ra dưới đây-

Xử lý ID Thời gian đến Thời gian bùng nổ

P1 0 7

P2 1 5

P3 2 3

P4 3 1

P5 4 2

P6 5 1
Nếu chính sách lập lịch CPU là thời gian còn lại ngắn nhất trước tiên, hãy tính thời gian chờ
trung bình và thời gian quay vòng trung bình.

 Thời gian quay vòng = Thời gian xuất cảnh – Thời gian đến
 Thời gian chờ = Thời gian quay vòng – Thời gian bùng nổ

Xử lý ID Thời gian thoát Thời gian quay vòng Thời gian chờ

P1 19 19 – 0 = 19 19 – 7 = 12

P2 13 13 – 1 = 12 12 – 5 = 7

P3 6 6–2=4 4–3=1

P4 4 4–3=1 1–1=0

P5 9 9–4=5 5–2=3

P6 7 7–5=2 2–1=1

Hiện nay,
 Thời gian quay vòng trung bình = (19 + 12 + 4 + 1 + 5 + 2) / 6 = 43/6 = 7,17 đơn vị
 Thời gian chờ trung bình = (12 + 7 + 1 + 0 + 3 + 1) / 6 = 24/6 = 4 đơn vị

Vấn đề-04:

Hãy xem xét tập hợp 3 quy trình có thời gian đến và thời gian bùng nổ được đưa ra dưới đây-
Thời gian bùng
Xử lý ID Thời gian đến
nổ

P1 0 9

P2 1 4

P3 2 9

Nếu chính sách lập lịch CPU là SRTF, hãy tính thời gian chờ trung bình và thời gian quay
vòng trung bình.
Bây giờ chúng ta biết-
 Thời gian quay vòng = Thời gian xuất cảnh – Thời gian đến
 Thời gian chờ = Thời gian quay vòng – Thời gian bùng nổ

Xử lý ID Thời gian thoát Thời gian quay vòng Thời gian chờ

P1 13 13 – 0 = 13 13 – 9 = 4

P2 5 5–1=4 4–4=0

P3 22 22- 2 = 20 20 – 9 = 11

Hiện nay,
 Thời gian quay vòng trung bình = (13 + 4 + 20) / 3 = 37/3 = 12,33 đơn vị
 Thời gian chờ trung bình = (4 + 0 + 11) / 3 = 15 / 3 = 5 đơn vị

Vấn đề-05:
Hãy xem xét tập hợp 4 quy trình có thời gian đến và thời gian bùng nổ được đưa ra dưới đây-

Xử lý ID Thời gian đến Thời gian bùng nổ

P1 0 20

P2 15 25

P3 30 10

P4 45 15

Nếu chính sách lập lịch CPU là SRTF, hãy tính thời gian chờ của tiến trình P2.
Bây giờ chúng ta biết-
 Thời gian quay vòng = Thời gian xuất cảnh – Thời gian đến
 Thời gian chờ = Thời gian quay vòng – Thời gian bùng nổ
 Thời gian quay vòng của quá trình P2 = 55 – 15 = 40 đơn vị
 Thời gian chờ của tiến trình P2 = 40 – 25 = 15 đơn vị

Thực hiện thuật toán-

 Về mặt thực tế, thuật toán không thể thực hiện được nhưng về mặt lý thuyết thì có thể
thực hiện được.
 Trong số tất cả các quy trình có sẵn, quy trình có thời gian bùng nổ nhỏ nhất phải
được chọn.
 Min heap là cấu trúc dữ liệu phù hợp trong đó phần tử gốc chứa tiến trình có thời gian
bùng nổ ít nhất.
 Trong min heap, mỗi tiến trình sẽ được thêm và xóa đúng một lần.
 Việc thêm một phần tử sẽ mất thời gian log(n) và xóa một phần tử sẽ mất thời gian
log(n).
 Do đó, đối với n tiến trình, độ phức tạp về thời gian = nx 2log(n) = nlog(n)

Vấn đề-

Tính toán thời gian bùng nổ dự đoán bằng cách sử dụng tính trung bình theo cấp số nhân cho
quy trình thứ năm nếu thời gian bùng nổ dự đoán cho quy trình đầu tiên là 10 đơn vị và thời
gian bùng nổ thực tế của bốn quy trình đầu tiên lần lượt là 4, 8, 6 và 7 đơn vị. Cho α = 0,5.

Giải pháp-

Được cho-
 Thời gian bùng nổ dự đoán cho quy trình đầu tiên = 10 đơn vị
 Thời gian bùng nổ thực tế của bốn quy trình đầu tiên = 4, 8, 6, 7
 α = 0,5

Thời gian bùng nổ dự đoán cho quy trình thứ 2-

Thời gian bùng nổ được dự đoán cho quy trình thứ 2


= α x Thời gian bùng nổ thực tế của quy trình thứ 1 + (1-α) x Thời gian bùng nổ dự đoán
cho quy trình thứ 1
= 0,5 x 4 + 0,5 x 10
=2+5
= 7 đơn vị
Thời gian bùng nổ dự đoán cho quy trình thứ 3-

Thời gian bùng nổ được dự đoán cho quy trình thứ 3


= α x Thời gian bùng nổ thực tế của quy trình thứ 2 + (1-α) x Thời gian bùng nổ dự đoán
cho quy trình thứ 2
= 0,5 x 8 + 0,5 x 7
= 4 + 3,5
= 7,5 đơn vị

Thời gian bùng nổ dự đoán cho quy trình thứ 4-

Thời gian bùng nổ được dự đoán cho quy trình thứ 4


= α x Thời gian bùng nổ thực tế của quy trình thứ 3 + (1-α) x Thời gian bùng nổ dự đoán
cho quy trình thứ 3
= 0,5 x 6 + 0,5 x 7,5
= 3 + 3,75
= 6,75 đơn vị

Thời gian bùng nổ dự đoán cho quy trình thứ 5-

Thời gian bùng nổ được dự đoán cho quy trình thứ 5


= α x Thời gian bùng nổ thực tế của quy trình thứ 4 + (1-α) x Thời gian bùng nổ dự đoán
cho quy trình thứ 4
= 0,5 x 7 + 0,5 x 6,75
= 3,5 + 3,375
= 6,875 đơn vị
CÁC VẤN ĐỀ THỰC HÀNH DỰA TRÊN LỊCH LJF-

Vấn đề-01:

Hãy xem xét tập hợp 5 quy trình có thời gian đến và thời gian bùng nổ được đưa ra dưới đây-

Xử lý ID Thời gian đến Thời gian bùng nổ

P1 0 3
P2 1 2

P3 2 4

P4 3 5

P5 4 6

Nếu chính sách lập lịch CPU là LJF không ưu tiên, hãy tính thời gian chờ trung bình và thời
gian quay vòng trung bình.
 Thời gian quay vòng = Thời gian xuất cảnh – Thời gian đến
 Thời gian chờ = Thời gian quay vòng – Thời gian bùng nổ

Thời gian
Xử lý ID Thời gian quay vòng Thời gian chờ
thoát

P1 3 3–0=3 3–3=0

P2 20 20 – 1 = 19 19 – 2 = 17

P3 18 18 – 2 = 16 16 – 4 = 12

P4 số 8 8–3=5 5–5=0

P5 14 14 – 4 = 10 10 – 6 = 4
Hiện nay,
 Thời gian quay vòng trung bình = (3 + 19 + 16 + 5 + 10) / 5 = 53/5 = 10,6 đơn vị
 Thời gian chờ trung bình = (0 + 17 + 12 + 0 + 4) / 5 = 33/5 = 6,6 đơn vị
Vấn đề-02:

Hãy xem xét tập hợp 4 quy trình có thời gian đến và thời gian bùng nổ được đưa ra dưới đây-

Xử lý ID Thời gian đến Thời gian bùng nổ

P1 1 2

P2 2 4

P3 3 6

P4 4 số 8

Nếu chính sách lập lịch CPU là ưu tiên LJF, hãy tính thời gian chờ trung bình và thời gian
quay vòng trung bình.

 Thời gian quay vòng = Thời gian xuất cảnh – Thời gian đến
 Thời gian chờ = Thời gian quay vòng – Thời gian bùng nổ
Thời gian
Xử lý ID Thời gian quay vòng Thời gian chờ
thoát

P1 18 18 – 1 = 17 17 – 2 = 15

P2 19 19 – 2 = 17 17 – 4 = 13

P3 20 20 – 3 = 17 17 – 6 = 11

P4 21 21 – 4 = 17 17 – 8 = 9

Hiện nay,
 Thời gian quay vòng trung bình = (17 + 17 + 17 + 17) / 4 = 68/4 = 17 đơn vị
 Thời gian chờ trung bình = (15 + 13 + 11 + 9)/4 = 48/4 = 12 đơn vị

Vấn đề-03:

Hãy xem xét ba quy trình (id quy trình lần lượt là 0, 1, 2) với các đợt thời gian tính toán 2, 4
và 8 đơn vị thời gian. Tất cả các quá trình đều đến thời điểm 0. Hãy xem xét thuật toán lập
lịch thời gian còn lại đầu tiên (LRTF) dài nhất. Trong LRTF, các ràng buộc bị phá vỡ bằng
cách ưu tiên cho quy trình có id quy trình thấp nhất. Thời gian quay vòng trung bình là-
1. 13 đơn vị
2. 14 đơn vị
3. 15 đơn vị
4. 16 đơn vị

Giải pháp-

Chúng tôi có bộ 3 quy trình có thời gian đến và thời gian bùng nổ được đưa ra dưới đây-
Xử lý ID Thời gian đến Thời gian bùng nổ

P1 0 2

P2 0 4

P3 0 số 8

Biểu đồ Gantt-

Thời gian quay vòng = Thời gian xuất cảnh – Thời gian đến

Xử lý ID Thời gian thoát Thời gian quay vòng

P1 12 12 – 0 = 12

P2 13 13 – 0 = 13

P3 24 14 – 0 = 14

Hiện nay,
Thời gian quay vòng trung bình = (12 + 13 + 14) / 3 = 39/3 = 13 đơn vị
Như vậy phương án (A) đúng.
Tính tỷ lệ phản hồi-

Tỷ lệ đáp ứng (RR) cho bất kỳ quy trình nào được tính bằng cách sử dụng công thức-
 W = Thời gian chờ đợi của quá trình cho đến nay
 B = Thời gian bùng nổ hoặc Thời gian dịch vụ của quy trình

Vấn đề-

Hãy xem xét tập hợp 5 quy trình có thời gian đến và thời gian bùng nổ được đưa ra dưới đây-

Xử lý ID Thời gian đến Thời gian bùng nổ

P0 0 3

P1 2 6

P2 4 4

P3 6 5

P4 số 8 2

Nếu chính sách lập lịch CPU là Tỷ lệ phản hồi cao nhất Tiếp theo, hãy tính thời gian chờ
trung bình và thời gian quay vòng trung bình.

Giải pháp-

Bước-01:

 Tại thời điểm t = 0, chỉ có quá trình P0 có sẵn trong hàng đợi sẵn sàng.
 Vì vậy, quá trình P0 thực thi cho đến khi hoàn thành.
Bước-02:

 Tại thời điểm t = 3, chỉ có tiến trình P1 có sẵn trong hàng đợi sẵn sàng.
 Vì vậy, quá trình P1 thực hiện cho đến khi hoàn thành.
Bước-03:

 Tại thời điểm t = 9, các tiến trình P2, P3 và P4 có sẵn trong hàng đợi sẵn sàng.
 Quá trình có tỷ lệ phản hồi cao nhất sẽ được thực hiện tiếp theo.

Tỷ lệ phản hồi là-


 Tỷ lệ đáp ứng cho quá trình P2 = [(9-4) + 4] / 4 = 9 / 4 = 2,25
 Tỷ lệ đáp ứng cho quá trình P3 = [(9-6) + 5] / 5 = 8 / 5 = 1,6
 Tỷ lệ đáp ứng cho quá trình P4 = [(9-8) + 2] / 2 = 3 / 2 = 1,5

Vì quá trình P2 có tỷ lệ phản hồi cao nhất nên quá trình P2 sẽ thực thi cho đến khi hoàn
thành.
Bước-04:

 Tại thời điểm t = 13, các tiến trình P3 và P4 có sẵn trong hàng đợi sẵn sàng.
 Quá trình có tỷ lệ phản hồi cao nhất sẽ được thực hiện tiếp theo.

Tỷ lệ phản hồi được tính như-


 Tỷ lệ đáp ứng cho quá trình P3 = [(13-6) + 5] / 5 = 12 / 5 = 2,4
 Tỷ lệ đáp ứng cho quá trình P4 = [(13-8) + 2] / 2 = 7 / 2 = 3,5

Vì quá trình P4 có tỷ lệ phản hồi cao nhất nên quá trình P4 sẽ thực thi cho đến khi hoàn
thành.
Bước-05:
 Tại thời điểm t = 15, chỉ có tiến trình P3 có sẵn trong hàng đợi sẵn sàng.
 Vì vậy, quá trình P3 thực hiện cho đến khi hoàn thành.
Bây giờ chúng ta biết
 Thời gian quay vòng = Thời gian xuất cảnh – Thời gian đến
 Thời gian chờ = Thời gian quay vòng – Thời gian bùng nổ

Thời gian
Xử lý ID Thời gian quay vòng Thời gian chờ
thoát

P0 3 3–0=3 3–3=0

P1 9 9–2=7 7–6=1

P2 13 13 – 4 = 9 9–4=5

P3 20 20 – 6 = 14 14 – 5 = 9

P4 15 15 – 8 = 7 7–2=5

Hiện nay,
 Thời gian quay vòng trung bình = (3 + 7 + 9 + 14 + 7) / 5 = 40/5 = 8 đơn vị
 Thời gian chờ trung bình = (0 + 1 + 5 + 9 + 5)/5 = 20/5 = 4 đơn vị
Lập kế hoạch Round Robin-
Ghi chú quan trọng-
Lưu ý-01:

Với giá trị giảm dần của lượng tử thời gian,


 Số lần chuyển ngữ cảnh tăng lên
 Thời gian đáp ứng giảm
 Khả năng chết đói giảm

Vì vậy, giá trị lượng tử thời gian nhỏ hơn sẽ tốt hơn về mặt thời gian đáp ứng.
Lưu ý-02:

Với giá trị ngày càng tăng của lượng tử thời gian,
 Số lần chuyển ngữ cảnh giảm
 Thời gian đáp ứng tăng
 Khả năng chết đói tăng lên

Vì vậy, giá trị lượng tử thời gian càng cao thì số lượng chuyển đổi ngữ cảnh càng tốt.

Lưu ý-03:

 Với giá trị ngày càng tăng của lượng tử thời gian, Lập kế hoạch Round Robin có xu
hướng trở thành Lập kế hoạch FCFS.
 Khi lượng tử thời gian có xu hướng vô cùng, Lập kế hoạch Round Robin trở thành
Lập kế hoạch FCFS.
Lưu ý-04:
 Hiệu suất của việc lập kế hoạch Round Robin phụ thuộc rất nhiều vào giá trị của
lượng tử thời gian.
 Giá trị của lượng tử thời gian phải sao cho không quá lớn cũng không quá nhỏ.
CÁC VẤN ĐỀ THỰC HÀNH DỰA TRÊN LỊCH TRÌNH ROUND ROBIN-

Vấn đề-01:

Hãy xem xét tập hợp 5 quy trình có thời gian đến và thời gian bùng nổ được đưa ra dưới đây-

Xử lý ID Thời gian đến Thời gian bùng nổ

P1 0 5

P2 1 3

P3 2 1

P4 3 2

P5 4 3

Nếu chính sách lập lịch CPU là Round Robin với lượng tử thời gian = 2 đơn vị, hãy tính thời
gian chờ trung bình và thời gian quay vòng trung bình.
P5, P1, P2, P5, P4, P1, P3, P2, P1

Thời gian quay vòng = Thời gian xuất cảnh – Thời gian đến
 Thời gian chờ = Thời gian quay vòng – Thời gian bùng nổ
Xử lý ID Thời gian thoát Thời gian quay vòng Thời gian chờ

P1 13 13 – 0 = 13 13 – 5 = 8

P2 12 12 – 1 = 11 11 – 3 = 8

P3 5 5–2=3 3–1=2

P4 9 9–3=6 6–2=4

P5 14 14 – 4 = 10 10 – 3 = 7

Hiện nay,
 Thời gian quay vòng trung bình = (13 + 11 + 3 + 6 + 10) / 5 = 43/5 = 8,6 đơn vị
 Thời gian chờ trung bình = (8 + 8 + 2 + 4 + 7) / 5 = 29/5 = 5,8 đơn vị

Vấn đề-02:

Hãy xem xét tập hợp 6 quy trình có thời gian đến và thời gian bùng nổ được đưa ra dưới đây-

Xử lý ID Thời gian đến Thời gian bùng nổ

P1 0 4

P2 1 5

P3 2 2

P4 3 1
P5 4 6

P6 6 3

P5, P6, P2, P5, P6, P2, P5, P4, P1, P3, P2, P1

 Thời gian quay vòng = Thời gian xuất cảnh – Thời gian đến
 Thời gian chờ = Thời gian quay vòng – Thời gian bùng nổ

Xử lý ID Thời gian thoát Thời gian quay vòng Thời gian chờ

P1 số 8 8–0=8 8–4=4

P2 18 18 – 1 = 17 17 – 5 = 12

P3 6 6–2=4 4–2=2

P4 9 9–3=6 6–1=5
P5 21 21 – 4 = 17 17 – 6 = 11

P6 19 19 – 6 = 13 13 – 3 = 10

Hiện nay,
 Thời gian quay vòng trung bình = (8 + 17 + 4 + 6 + 17 + 13) / 6 = 65/6 = 10,84 đơn vị
 Thời gian chờ trung bình = (4 + 12 + 2 + 5 + 11 + 10) / 6 = 44/6 = 7,33 đơn vị

Vấn đề-03:

Hãy xem xét tập hợp 6 quy trình có thời gian đến và thời gian bùng nổ được đưa ra dưới đây-

Xử lý ID Thời gian đến Thời gian bùng nổ

P1 5 5

P2 4 6

P3 3 7

P4 1 9

P5 2 2

P6 6 3

Nếu chính sách lập lịch CPU là Round Robin với định mức thời gian = 3, hãy tính thời gian
chờ trung bình và thời gian quay vòng trung bình.
P3, P1, P4, P2, P3, P6, P1, P4, P2, P3, P5, P4
 Thời gian quay vòng = Thời gian xuất cảnh – Thời gian đến
 Thời gian chờ = Thời gian quay vòng – Thời gian bùng nổ

Xử lý ID Thời gian thoát Thời gian quay vòng Thời gian chờ

P1 32 32 – 5 = 27 27 – 5 = 22

P2 27 27 – 4 = 23 23 – 6 = 17

P3 33 33 – 3 = 30 30 – 7 = 23

P4 30 30 – 1 = 29 29 – 9 = 20

P5 6 6–2=4 4–2=2

P6 21 21 – 6 = 15 15 – 3 = 12

Hiện nay,
 Thời gian quay vòng trung bình = (27 + 23 + 30 + 29 + 4 + 15) / 6 = 128/6 = 21,33
đơn vị
 Thời gian chờ trung bình = (22 + 17 + 23 + 20 + 2 + 12) / 6 = 96/6 = 16 đơn vị
Vấn đề-04:

Bốn công việc được thực thi trên một hệ thống bộ xử lý duy nhất đến thời điểm 0 theo thứ tự
A, B, C, D. Yêu cầu về thời gian CPU bùng nổ của chúng lần lượt là 4, 1, 8, 1 đơn vị thời
gian. Thời gian hoàn thành của A theo lịch trình quay vòng với lát thời gian của một đơn vị
thời gian là-
1. 10
2. 4
3. số 8
4. 9

Giải pháp-

Xử lý ID Thời gian đến Thời gian bùng nổ

MỘT 0 4

B 0 1

C 0 số 8

D 0 1

C, A, C, A, C, A, D, C, B, A

Rõ ràng, thời gian hoàn thành quá trình A = 9 đơn vị.


Như vậy phương án (D) đúng.
Priority Scheduling-
Ghi chú quan trọng-

Lưu ý-01:

 Thời gian chờ đợi cho tiến trình có mức ưu tiên cao nhất sẽ luôn bằng 0 ở chế độ ưu
tiên.
 Thời gian chờ đợi cho tiến trình có mức ưu tiên cao nhất có thể không bằng 0 trong
chế độ không ưu tiên.

Lưu ý-02:

Lập lịch ưu tiên ở chế độ ưu tiên và không ưu tiên hoạt động giống hệt nhau trong các điều
kiện sau-
 Thời gian đến của tất cả các quá trình là như nhau
 Tất cả các quy trình đều có sẵn

CÁC VẤN ĐỀ THỰC HÀNH DỰA TRÊN LỊCH ƯU TIÊN-

Vấn đề-01:

Hãy xem xét tập hợp 5 quy trình có thời gian đến và thời gian bùng nổ được đưa ra dưới đây-

Xử lý ID Thời gian đến Thời gian bùng nổ Sự ưu tiên

P1 0 4 2

P2 1 3 3
P3 2 1 4

P4 3 5 5

P5 4 2 5

Nếu chính sách lập lịch CPU là ưu tiên không được ưu tiên, hãy tính thời gian chờ trung bình
và thời gian quay vòng trung bình. (Số cao hơn thể hiện mức độ ưu tiên cao hơn)

 Thời gian quay vòng = Thời gian xuất cảnh – Thời gian đến
 Thời gian chờ = Thời gian quay vòng – Thời gian bùng nổ

Xử lý ID Thời gian thoát Thời gian quay vòng Thời gian chờ

P1 4 4–0=4 4–4=0

P2 15 15 – 1 = 14 14 – 3 = 11

P3 12 12 – 2 = 10 10 – 1 = 9

P4 9 9–3=6 6–5=1

P5 11 11 – 4 = 7 7–2=5
Hiện nay,
 Thời gian quay vòng trung bình = (4 + 14 + 10 + 6 + 7) / 5 = 41/5 = 8,2 đơn vị
 Thời gian chờ trung bình = (0 + 11 + 9 + 1 + 5) / 5 = 26/5 = 5,2 đơn vị

Vấn đề-02:

Hãy xem xét tập hợp 5 quy trình có thời gian đến và thời gian bùng nổ được đưa ra dưới đây-

Xử lý ID Thời gian đến Thời gian bùng nổ Sự ưu tiên

P1 0 4 2

P2 1 3 3

P3 2 1 4

P4 3 5 5

P5 4 2 5

Nếu chính sách lập lịch CPU là ưu tiên ưu tiên, hãy tính thời gian chờ trung bình và thời gian
quay vòng trung bình. (Số cao hơn thể hiện mức độ ưu tiên cao hơn)
 Thời gian quay vòng = Thời gian xuất cảnh – Thời gian đến
 Thời gian chờ = Thời gian quay vòng – Thời gian bùng nổ

Xử lý ID Thời gian thoát Thời gian quay vòng Thời gian chờ

P1 15 15 – 0 = 15 15 – 4 = 11

P2 12 12 – 1 = 11 11 – 3 = 8

P3 3 3–2=1 1–1=0

P4 số 8 8–3=5 5–5=0

P5 10 10 – 4 = 6 6–2=4

Hiện nay,
 Thời gian quay vòng trung bình = (15 + 11 + 1 + 5 + 6) / 5 = 38/5 = 7,6 đơn vị
 Thời gian chờ trung bình = (11 + 8 + 0 + 0 + 4) / 5 = 23/5 = 4,6 đơn vị

PRACTICE PROBLEMS BASED ON CPU SCHEDULING ALGORITHMS-


Vấn đề-01:
Hãy xem xét ba quy trình, tất cả đều đến thời điểm 0, với tổng thời gian thực hiện lần lượt là
10, 20 và 30 đơn vị. Mỗi quy trình dành 20% thời gian thực hiện đầu tiên để thực hiện I/O,
70% thời gian tiếp theo để thực hiện tính toán và 10% thời gian cuối cùng để thực hiện lại
I/O. Hệ điều hành sử dụng thuật toán lập lịch đầu tiên với thời gian tính toán còn lại ngắn
nhất và lên lịch cho một quy trình mới khi quy trình đang chạy bị chặn trên I/O hoặc khi quy
trình đang chạy kết thúc đợt tính toán của nó. Giả sử rằng tất cả các thao tác I/O có thể được
chồng chéo nhiều nhất có thể. CPU không hoạt động trong bao nhiêu phần trăm?
1. 0%
2. 10,6%
3. 30,0%
4. 89,4%

Giải pháp-

Theo câu hỏi, chúng tôi có-

Tổng thời gian bùng


I/O bùng nổ CPU bùng nổ I/O bùng nổ
nổ

Quy trình P1 10 2 7 1

Quy trình P2 20 4 14 2

Quy trình P3 30 6 21 3

Thuật toán lập lịch được sử dụng là Thời gian còn lại ngắn nhất trước tiên.

Biểu đồ Gantt-

Phần trăm thời gian CPU không hoạt động


= (5/47) x 100
= 10,638%
Vấn đề-02:

Hãy xem xét tập hợp 4 quy trình có thời gian đến và thời gian bùng nổ được đưa ra dưới đây-

Thời gian bùng nổ


Số quy trình Thời gian đến
CPU bùng nổ I/O bùng nổ CPU bùng nổ

P1 0 3 2 2

P2 0 2 4 1

P3 2 1 3 2

P4 5 2 2 1

Nếu chính sách lập lịch CPU là Thời gian còn lại ngắn nhất trước tiên, hãy tính thời gian chờ
trung bình và thời gian quay vòng trung bình.
 Thời gian quay vòng = Thời gian xuất cảnh – Thời gian đến
 Thời gian chờ = Thời gian quay vòng – Thời gian bùng nổ

Xử lý ID Thời gian thoát Thời gian quay vòng Thời gian chờ

P1 11 11 – 0 = 11 11 – (3+2) = 6

P2 7 7–0=7 7 – (2+1) = 4

P3 9 9–2=7 7 – (1+2) = 4

P4 16 16 – 5 = 11 11 – (2+1) = 8

Hiện nay,
 Thời gian quay vòng trung bình = (11 + 7 + 7 + 11) / 4 = 36/4 = 9 đơn vị
 Thời gian chờ trung bình = (6 + 4 + 4 + 8)/4 = 22/5 = 4,4 đơn vị
Vấn đề-03:

Hãy xem xét tập hợp 4 quy trình có thời gian đến và thời gian bùng nổ được đưa ra dưới đây-

Thời Thời gian bùng nổ


Sự ưu
Số quy trình gian
tiên
đến CPU bùng nổ I/O bùng nổ CPU bùng nổ

P1 0 2 1 5 3

P2 2 3 3 3 1

P3 3 1 2 3 1

Nếu chính sách lập lịch CPU là Lập lịch ưu tiên, hãy tính thời gian chờ trung bình và thời
gian quay vòng trung bình. (Số thấp hơn có nghĩa là mức độ ưu tiên cao hơn)

Giải pháp-

 Thời gian quay vòng = Thời gian xuất cảnh – Thời gian đến
 Thời gian chờ = Thời gian quay vòng – Thời gian bùng nổ

Xử lý ID Thời gian thoát Thời gian quay vòng Thời gian chờ

P1 10 10 – 0 = 10 10 – (1+3) = 6

P2 15 15 – 2 = 13 13 – (3+1) = 9

P3 9 9–3=6 6 – (2+1) = 3

Hiện nay,
 Thời gian quay vòng trung bình = (10 + 13 + 6) / 3 = 29/3 = 9,67 đơn vị
 Thời gian chờ trung bình = (6 + 9 + 3) / 3 = 18 / 3 = 6 đơn vị

You might also like