Thuật tốn cơng việc ngắn nhất (Shortest-job-first SJF)

Một phần của tài liệu Giáo trình tổng quan về DHD (Trang 60)

- Đọc/Ghi ngày, tháng, năm

d/ Thuật tốn cơng việc ngắn nhất (Shortest-job-first SJF)

Đây là một trường hợp đặc biệt của giải thuật điều phối với độưu tiên. Trong giải thuật này, độ ưu tiên p được gán cho mỗi tiến trình là nghịch đảo của thời gian xử lý t mà tiến trình cịn yêu cầu (p = 1/t), với qui ước p lớn thì độưu tiên lớn. Khi CPU rỗi, nĩ sẽđược cấp phát cho tiến trình yêu cầu thời gian xử lý cịn lại ít nhất để kết thúc- tiến trình ngắn nhất. Giải thuật này cũng cĩ thể độc quyền hay khơng độc quyền. Sựđiều phối xảy ra khi cĩ một tiến trình mới được đưa vào danh sách sẵn sàng trong khi một tiến trình khác đang xử lý. Tiến trình hiện cĩ trong RL cĩ thể yêu cầu thời gian sử dụng CPU (CPU-burst) ngắn hơn thời gian cịn lại mà tiến trình hiện hành cần xử lý. Khi đĩ giải thuật SJF khơng độc quyền sẽ dừng hoạt động của tiến trình hiện hành, trong khi giải thuật độc quyền sẽ cho phép tiến trình hiện hành tiếp tục xử lý.

Ví dụ : Tiến trình Thời điểm vào RL Thời gian xử lý P1 0 6 P2 1 8 P3 2 4 P4 3 2

Sử dụng thuật giải SJF độc quyền, thứ tự cấp phát CPU như sau:

P1 P4 P3 P2 0 6 8 12 20 0 6 8 12 20

Nếu sử dụng thuật giải SJF khơng độc quyền, thứ tự cấp phát CPU như sau:

P1 P4 P1 P3 P2 0 3 5 8 12 20 0 3 5 8 12 20

Thời gian chờđợi trung bình sẽ là (2+11+6+0)/3 = 6.33 milisecondes. Nhận xét:

Giải thuật này cho phép đạt được thời gian chờ trung bình cực tiểu. Khĩ khăn thực sự của giải thuật SJF là thường khơng thể biết được thời gian yêu cầu xử lý cịn lại của tiến trình.

Một phần của tài liệu Giáo trình tổng quan về DHD (Trang 60)