Câu hỏi
Nguồn: https://www.fe-siken.com/bunya.php?m=5&s=1&no=11
Lời giải
Đầu tiên chúng ta cần chú ý đến các dữ kiện sau:
- Các tác vụ CPU và I/O là độc lập với nhau.
- Các công việc có thể thực hiện đồng thời tuy nhiên cần theo thứ tự ưu tiên từ cao đến thấp.
- Chúng ta chỉ có duy nhất 1 CPU.
Chúng ta sẽ đặt các công việc là:
T1: CPU(3) -> I/O(5) -> CPU(2)
T2: CPU(2) -> I/O(6) -> CPU(2)
T3: CPU(1) -> I/O(5) -> CPU(1)
Chính vì các công việc có thể thực hiện đồng thời và theo thứ tự ưu tiên với chỉ 1 CPU nên chúng ta có thứ tự thực hiện của CPU như sau:
T1 - CPU(3) -> T2 - CPU(2) -> T3 - CPU(1)
Sau khi T1 - CPU(3) thực thi xong thì sẽ đến T1 - I/O(5).
Sau khi T2 - CPU(2) thực thi xong thì sẽ đến T2 - I/O(6).
Sau. khi T3 - CPU(1) thực thi xong thì sẽ đến T3 - I/O(5).
Khi T3 - CPU(1) thực hiện xong, tổng hết 3 + 2 + 1 = mili giây thì trong lúc đó T1 - I/O(5) có độ ưu tiên cao đang thực thi được 3 giây và còn phải thực thi 2 mili giây nữa nên lúc này CPU được nghỉ 2 mili giây,
Khi khi T1 - I/O(5) thực hiện xong thì T1 - CPU(2) bắt đầu chạy. Khi nó chạy xong thì lúc này T2 - I/O(6) có độ ưu tiên trung bình mới chạy được 5 mili giây và còn phải thực thi 1 mili giây giữa nên lúc này CPU được nghỉ 1 mili giây.
Sau khi T2 - I/O(6) thực thi xong thì lúc này T2 - CPU (2) thực thi và T3 - CPU (1) thực thi do T3 - I/O (5) đã kết thúc trước đó rồi.
Chúng ta có thể vẽ bảng minh hoạ timeline thế này:
3 ô màu tím là thời gian mà CPU được nghỉ tương ứng với 3 mili giây.
Tổng kếtTổng kết
Như vậy chúng ta đã cùng nhau giải một câu tương đối hóc búa liên quan đến lập lịch xử lý trong hệ điều hành.
Cám ơn bạn đã quan tâm đến bài viết|video này. Để nhận được thêm các kiến thức bổ ích bạn có thể:
- Đọc các bài viết của TechMaster trên facebook: https://www.facebook.com/techmastervn
- Xem các video của TechMaster qua Youtube: https://www.youtube.com/@TechMasterVietnam nếu bạn thấy video/bài viết hay bạn có thể theo dõi kênh của TechMaster để nhận được thông báo về các video mới nhất nhé.
- Chat với techmaster qua Discord: https://discord.gg/yQjRTFXb7a
Bình luận