Rate this post

Trong Priority Scheduling, tại thời điểm xuất hiện một quá trình trong hàng đợi sẵn sàng, Mức độ ưu tiên của nó được so sánh với mức độ ưu tiên của các quá trình khác có trong hàng đợi sẵn sàng cũng như với một quá trình đang được CPU thực thi tại thời điểm đó của thời gian. Cái có mức độ ưu tiên cao nhất trong số tất cả các quy trình có sẵn sẽ được cấp cho CPU tiếp theo.

Các bài viết liên quan:

Sự khác biệt giữa lập kế hoạch ưu tiên trước và lập lịch ưu tiên không ưu tiên là, trong Priority Scheduling, công việc đang được thực hiện có thể bị dừng lại khi có công việc có mức độ ưu tiên cao hơn.

Khi tất cả các công việc có sẵn trong hàng đợi sẵn sàng, thuật toán sẽ hoạt động như lập lịch ưu tiên không ưu tiên, có nghĩa là công việc được lên lịch sẽ chạy cho đến khi hoàn thành và không có ưu tiên nào được thực hiện.

Thí dụ

Có 7 quy trình P1, P2, P3, P4, P5, P6 và P7 được đưa ra. Các ưu tiên tương ứng của họ, Arrival Time và Thời gian Burst được đưa ra trong bảng dưới đây.

Process IDPriorityArrival TimeBurst Time
12 (L)01
2617
3323
4536
5445
610 (H)515
7915số 8

Biểu đồ GANTT Chuẩn bị

Tại thời điểm 0, P1 đến với Burst Time là 1 đơn vị và mức độ ưu tiên 2. Vì không có quy trình nào khác nên quá trình này sẽ được lên lịch cho đến khi công việc tiếp theo đến hoặc hoàn thành nó (tùy theo điều kiện nào nhỏ hơn).

Tại thời điểm 1, P2 đến. P1 đã hoàn thành quá trình thực thi và không có quy trình nào khác khả dụng tại thời điểm này, do đó Hệ điều hành phải lên lịch cho nó bất kể mức độ ưu tiên được gán cho nó là gì.

Quá trình Tiếp theo P3 đến đơn vị thời gian 2, mức độ ưu tiên của P3 cao hơn thành P2. Do đó, việc thực thi P2 sẽ bị dừng và P3 sẽ được lên lịch trên CPU.

Trong quá trình thực thi P3, ba quy trình khác P4, P5 và P6 sẽ khả dụng. Vì cả ba thứ này đều có mức độ ưu tiên thấp hơn đối với quá trình đang thực thi nên PS không thể chặn trước quá trình. P3 sẽ hoàn thành quá trình thực thi của nó và sau đó P5 sẽ được lên lịch với mức ưu tiên cao nhất trong số các quy trình có sẵn.

Trong khi thực thi P5, tất cả các quy trình đều có sẵn trong hàng đợi sẵn sàng. Tại thời điểm này, thuật toán sẽ bắt đầu hoạt động dưới dạng Lập lịch ưu tiên không tính trước. Do đó, bây giờ, khi tất cả các quy trình có sẵn trong hàng đợi sẵn sàng, hệ điều hành chỉ thực hiện quy trình với mức độ ưu tiên cao nhất và thực hiện quy trình đó cho đến khi hoàn thành. Trong trường hợp này, P4 sẽ được lên lịch và sẽ được thực hiện cho đến khi hoàn thành.

Vì P4 đã hoàn thành, quá trình khác có mức ưu tiên cao nhất có sẵn trong hàng đợi sẵn sàng là P2. Do đó P2 sẽ được lên lịch tiếp theo.

P2 được cấp cho CPU cho đến khi hoàn thành. Vì Burst Time còn lại của nó là 6 chiếc nên P7 sẽ được lên lịch sau thời gian này.

Quá trình duy nhất còn lại là P6 với mức độ ưu tiên ít nhất, Hệ điều hành không có lựa chọn nào khác trừ khi thực hiện nó. Điều này sẽ được thực hiện cuối cùng.

Completion Time của mỗi quá trình được xác định với sự trợ giúp của biểu đồ GANTT. Turnaround TimeWaiting Time có thể được tính theo công thức sau.

  1. Turnaround Time   =  Completion Time  – Arrival Time 
  2. Waiting Time  =  Turnaround Time – Thời gian liên tục   
Process IDPriorityArrival TimeBurst TimeCompletion TimeTurnaround TimeWaiting Time
1201110
2617222114
3323530
453616137
54451061
610515454025
796số 8302416

Thời gian chờ trung bình = (0 + 14 + 0 + 7 + 1 + 25 + 16) / 7 = 63/7 = 9 đơn vị

Để lại một bình luận

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

Contact Me on Zalo
Call now