JavaScript is required

Bảng dưới thể hiện danh sách các tiến trình trong hàng đợi. Hãy cho biết “thời gian chờ” của tiến trình P3 theo giải thuật điều phối SJF (Shortest Job First):

A.

A. 0

B.

B. 7

C.

C. 11

D.

D. 12

Trả lời:

Đáp án đúng: B


Giải thuật SJF (Shortest Job First) là giải thuật ưu tiên tiến trình nào có thời gian thực thi ngắn nhất. Thời gian chờ của một tiến trình là khoảng thời gian mà tiến trình đó phải đợi trong hàng đợi trước khi được thực thi. Dưới đây là cách tính thời gian chờ của tiến trình P3 trong trường hợp này: 1. **Sắp xếp theo thời gian thực thi:** Các tiến trình được sắp xếp theo thời gian thực thi từ ngắn đến dài. Trong bảng, ta thấy thứ tự thực thi sẽ là: P4 (1), P1 (4), P3 (7), P2 (9). 2. **Tính thời gian chờ:** * P4 đến tại 0 và chạy ngay, thời gian chờ của P4 là 0. * P1 đến tại 2, P4 chạy xong tại 1, nên P1 phải đợi từ 1 đến 2, cộng thêm thời gian P4 chạy (1), do đó thời gian chờ của P1 là (1-2) + 1 = 0. * P3 đến tại 4, P4 và P1 đã chạy, với tổng thời gian là 1+4 = 5. Vậy P3 phải đợi từ 5 đến 4. Do đó thời gian chờ của P3 là 5 - 4 = 1. Tuy nhiên, P1 có Arrival time lớn hơn P4 nên P4 phải chờ đến 2, P1 phải chờ từ 2, P3 có Burst time = 7, nên tổng thời gian chờ là 4+1 = 5. Lúc này ta sắp xếp đến P2, với Burst time = 9. *P4 = 1 *P1 = 4 *P3 = 7 *P2 = 9 3. Tuy nhiên ta có một lỗi ở đây. Cần phải xem xét tại thời điểm 4, P3 đã tới, ta cần tính thời gian chờ, và sắp xếp lại. Ta lại có P4, P1. Thời gian để P4 và P1 chạy xong lần lượt là 1, 4. Tổng là 5. Vậy P3 phải đợi là 5-4 = 1. Đáp án này không có trong câu hỏi. Xét đáp án C. 11. Ta phải có P1 và P4 chạy trước P3. Vậy tổng thời gian P1 và P4 chạy là 1+4 = 5. Thời gian P3 phải đợi là 11, burst time=7, arrival = 4. Vậy câu này là sai Vì không có đáp án nào đúng, ta xem đáp án nào gần đúng nhất. *Đáp án gần đúng nhất: B. 7*

Câu hỏi liên quan