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 SJF. Khi tiến trình P3 đã xử lý được một nửa thời gian thì tiến trình ngắt P5 có thời gian thực hiện là 5 được đưa vào xử lý ngay. 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: B
Để giải bài này, ta cần xác định thứ tự thực hiện các tiến trình theo thuật toán SJF (Shortest Job First) có ngắt.
1. **Ban đầu**: Các tiến trình P1(6), P2(8), P3(3), P4(2) sẵn sàng. Theo SJF, P4(2) được thực hiện trước.
2. **Sau khi P4 hoàn thành**: Thời gian hiện tại là 2. Các tiến trình còn lại là P1(6), P2(8), P3(3).
3. **Tiếp theo**: P3(3) có thời gian ngắn nhất nên được thực hiện. Sau khi P3 chạy được một nửa thời gian (1.5 đơn vị), thời gian hiện tại là 2 + 1.5 = 3.5.
4. **Ngắt P5**: Tiến trình P5(5) được đưa vào. So sánh thời gian còn lại của P3 (3 - 1.5 = 1.5) và P5(5), P3 vẫn ngắn hơn nên tiếp tục chạy. Tuy nhiên, đề bài nói P5 được đưa vào *xử lý ngay*, điều này mâu thuẫn với việc tiếp tục P3, nên ta hiểu là SJF có *ưu tiên ngắt* tiến trình đang chạy nếu có tiến trình mới đến có thời gian xử lý ngắn hơn. Vậy, P5 sẽ chờ cho P3 hoàn thành nửa thời gian còn lại (1.5), khi đó P3 hoàn thành (tổng thời gian là 3), thời gian hiện tại là 3.5.
5. **Sau khi P3 hoàn thành**: Các tiến trình còn lại là P1(6), P2(8), P5(5). Bây giờ, P5(5) có thời gian ngắn nhất nên được thực hiện. Khi P5 hoàn thành, thời gian hiện tại là 3.5 + 5 = 8.5.
6. **Tiếp theo**: P1(6) và P2(8). P1(6) ngắn hơn nên được thực hiện. Khi P1 hoàn thành, thời gian hiện tại là 8.5 + 6 = 14.5.
7. **Cuối cùng**: P2(8) được thực hiện. Khi P2 hoàn thành, thời gian hiện tại là 14.5 + 8 = 22.5.
Bây giờ, ta tính thời gian chờ của từng tiến trình:
* P1: 8.5 (thời điểm bắt đầu) - 0 (thời điểm đến) = 8.5
* P2: 14.5 (thời điểm bắt đầu) - 0 (thời điểm đến) = 14.5
* P3: 0 (thời điểm bắt đầu) - 0 (thời điểm đến) = 0 (chú ý P3 chạy trước khi P5 đến, thời gian chờ =0)
* P4: 0 (thời điểm bắt đầu) - 0 (thời điểm đến) = 0
* P5: 3.5 (thời điểm bắt đầu) - 0 (thời điểm đến) = 3.5
Thời gian chờ trung bình = (8.5 + 14.5 + 0 + 0 + 3.5) / 5 = 26.5 / 5 = 5.3
Tuy nhiên, không có đáp án nào trùng với kết quả tính toán. Có thể có một số cách hiểu khác về việc ngắt tiến trình P5, hoặc có thể có sai sót trong đề bài hoặc các đáp án. Nếu theo đúng thuật toán SJF có ngắt như trên, đáp án phải là 5.3. Vì không có đáp án đúng nên cần phải xem xét lại đề bài.
**Nhận xét:** Vì không có đáp án nào phù hợp với kết quả tính toán (5.3), nên có thể câu hỏi hoặc các phương án trả lời có sai sót. Dựa trên phân tích ở trên, không có đáp án đúng trong các lựa chọn đã cho.
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
