Cho dãy tiến trình P1, P2, P3 và P4 với thời gian thực hiện tương ứng là 6, 8, 3, 2. Hệ thống sử dụng phương pháp lập lịch MLFQ. Trong đó P1 và P2 ở hàng đợi 1 sử dụng thuật toán RR (q=3), P3 và P4 ở hàng đợi 2 sử dụng thuật toán SJF. Hãy cho biết trong các phương án sau, phương án nào là thời gian chờ trung bình của các tiến trình?
Trả lời:
Đáp án đúng: D
Để giải bài toán này, ta cần xét thứ tự thực hiện các tiến trình theo thuật toán MLFQ (Multi-Level Feedback Queue) với các hàng đợi và thuật toán con như sau:
* **Hàng đợi 1:** P1 và P2 sử dụng RR (Round Robin) với quantum q=3.
* **Hàng đợi 2:** P3 và P4 sử dụng SJF (Shortest Job First).
Giả sử hàng đợi 1 được ưu tiên thực hiện trước. Ta có bảng thời gian thực hiện như sau:
| Tiến trình | Thời gian thực hiện | Thời gian đến (giả sử đều đến 0) | Hàng đợi |
| :-------- | :----------------- | :------------------------------- | :------ |
| P1 | 6 | 0 | 1 |
| P2 | 8 | 0 | 1 |
| P3 | 3 | Sau khi hàng đợi 1 kết thúc | 2 |
| P4 | 2 | Sau khi hàng đợi 1 kết thúc | 2 |
**Hàng đợi 1 (RR, q=3):**
* P1 chạy 3 đơn vị thời gian, còn lại 3 đơn vị. P2 chạy 3 đơn vị thời gian, còn lại 5 đơn vị.
* P1 chạy tiếp 3 đơn vị thời gian (hoàn thành). Thời gian hoàn thành của P1 là 3 + 3 = 6.
* P2 chạy tiếp 3 đơn vị thời gian, còn lại 2 đơn vị. Thời gian hoàn thành của P2 đến nay là 3 + 3 + 3 = 9.
* P2 chạy 2 đơn vị thời gian cuối (hoàn thành). Thời gian hoàn thành của P2 là 9 + 2 = 11.
Thời gian hàng đợi 1 kết thúc là 11.
**Hàng đợi 2 (SJF):**
Vì P3 và P4 chỉ được thực hiện sau khi hàng đợi 1 kết thúc, ta áp dụng SJF tại thời điểm 11.
* P4 (thời gian 2) được thực hiện trước. Thời gian hoàn thành của P4 là 11 + 2 = 13.
* P3 (thời gian 3) được thực hiện sau. Thời gian hoàn thành của P3 là 13 + 3 = 16.
**Tính thời gian chờ:**
* Thời gian chờ của P1: 0
* Thời gian chờ của P2: 6 -0 =6
* Thời gian chờ của P3: 13-11= 2
* Thời gian chờ của P4: 11-11=0
Thời gian chờ trung bình = (0 + 6 + 13-11 + 11-11) / 4 = (0+6+2+0)/4 = 8/4 = 2+ (3+2)/4 = 2 +5/4=2+1.25 = 2
Vậy, theo cách tính trên có lẽ không có đáp án nào đúng cả. Cần xem xét lại việc tính toán hoặc giả định về thời điểm đến của các tiến trình.
Tuy nhiên, nếu chúng ta tính thời gian chờ từ 0, có thể tính lại như sau:
P1: 0
P2: 3
P3: 11
P4: 11
Thời gian chờ trung bình = (0+3+11+11)/4 = 25/4 = 6.25. Vậy cũng không có đáp án đúng.
Để có một đáp án gần đúng, chúng ta cần phải xem xét lại đề bài và các giả định, đặc biệt là thời điểm đến của tiến trình và cách hàng đợi được xử lý khi chuyển giao. Trong trường hợp này, không có đáp án nào khớp với kết quả tính toán.
Nếu đề bài yêu cầu tính thời gian chờ trung bình sau khi tất cả các tiến trình hoàn thành (tức là từ thời điểm 0 đến khi tất cả hoàn thành), ta có thể làm như sau:
P1 hoàn thành tại 6, thời gian chờ = 0
P2 hoàn thành tại 11, thời gian chờ = 3
P4 hoàn thành tại 13, thời gian chờ = 11
P3 hoàn thành tại 16, thời gian chờ = 13
Tổng thời gian chờ = 0+3+11+13 = 27
Thời gian chờ trung bình = 27/4 = 6.75
Như vậy, đáp án đúng nhất trong các đáp án đã cho là không có đáp án nào đúng.
50 câu hỏi 60 phút
Câu hỏi liên quan

FORM.08: Bộ 130+ Biểu Mẫu Thống Kê Trong Doanh Nghiệp

FORM.07: Bộ 125+ Biểu Mẫu Báo Cáo Trong Doanh Nghiệp

FORM.06: Bộ 320+ Biểu Mẫu Hành Chính Thông Dụng

FORM.05: Bộ 330+ Biểu Mẫu Thuế - Kê Khai Thuế Mới Nhất

FORM.04: Bộ 240+ Biểu Mẫu Chứng Từ Kế Toán Thông Dụng
