Chúng ta hãy thảo luận về sự khác biệt giữa Lập kế hoạch Ưu tiên và Không Ưu tiên một cách ngắn gọn với sự trợ giúp của biểu đồ so sánh được hiển thị bên dưới.
Biểu đồ so sánh
Cơ sở để so sánh | Lập kế hoạch ưu tiên | Lập kế hoạch không ưu tiên |
---|---|---|
Căn bản | Các tài nguyên được phân bổ cho một quá trình trong một thời gian giới hạn. | Khi tài nguyên được phân bổ cho một quy trình, quy trình sẽ giữ nó cho đến khi hoàn thành thời gian bùng nổ hoặc chuyển sang trạng thái chờ. |
Làm gián đoạn | Quá trình có thể bị gián đoạn ở giữa. | Quá trình không thể bị gián đoạn cho đến khi nó chấm dứt hoặc chuyển sang trạng thái chờ. |
Đói | Nếu một quy trình ưu tiên cao thường xuyên đến trong hàng đợi sẵn sàng, quy trình ưu tiên thấp có thể bị chết đói. | Nếu một quá trình có thời gian nổ dài đang chạy CPU, thì một quá trình khác với thời gian nổ CPU ít hơn có thể bị chết đói. |
Trên không | Lập lịch trình ưu tiên có chi phí cao trong việc lập lịch trình các quy trình. | Lập kế hoạch không ưu tiên không có chi phí chung. |
Mềm dẻo | Lập lịch trình ưu tiên là linh hoạt. | Lập kế hoạch không phòng ngừa là cứng nhắc. |
Giá cả | Lập kế hoạch ưu tiên là chi phí liên quan. | Lập kế hoạch không ưu tiên không phải là chi phí liên kết. |
Định nghĩa về lập kế hoạch ưu tiên
Lập lịch ưu tiên là một kế hoạch có thể được thực hiện trong các trường hợp khi một quá trình chuyển từ trạng thái chạy sang trạng thái sẵn sàng hoặc từ trạng thái chờ sang trạng thái sẵn sàng . Ở đây, các tài nguyên (chu kỳ CPU) được phân bổ cho quy trình trong khoảng thời gian giới hạn và sau đó bị lấy đi và quá trình được đặt lại vào hàng đợi sẵn sàng nếu nó vẫn còn thời gian bùng nổ CPU. Quá trình ở trong hàng đợi sẵn sàng cho đến khi nó có cơ hội thực hiện tiếp theo.
Nếu một quy trình có mức độ ưu tiên cao đến trong hàng đợi sẵn sàng, thì không phải đợi quá trình hiện tại hoàn thành thời gian bùng nổ. Thay vào đó, quy trình hiện tại bị gián đoạn ở giữa thực thi và được đặt trong hàng đợi sẵn sàng cho đến khi quy trình có mức độ ưu tiên cao là sử dụng các chu kỳ CPU. Theo cách này, mỗi quá trình trong hàng đợi sẵn sàng sẽ có thời gian để chạy CPU. Nó làm cho lịch trình ưu tiên linh hoạt nhưng, làm tăng chi phí chuyển đổi quá trình từ trạng thái chạy sang trạng thái sẵn sàng và vise-verse.
Các thuật toán hoạt động theo lịch trình ưu tiên là Round Robin. Lập kế hoạch công việc ngắn nhất (SJF) và lập lịch ưu tiên có thể hoặc không thể theo lịch trình ưu tiên.
Hãy để chúng tôi lấy một ví dụ về Lập kế hoạch ưu tiên, xem trong hình dưới đây. Chúng tôi có bốn quy trình P0, P1, P2, P3. Trong số đó, P2 đến vào thời điểm 0. Vì vậy, CPU được phân bổ cho quy trình P2 vì không có quá trình nào khác trong hàng đợi. Trong khi đó, P2 đang thực thi, P3 đến vào thời điểm 1, bây giờ là thời gian còn lại cho quá trình P2 (5 mili giây) lớn hơn thời gian mà P3 yêu cầu (4 milli-giây). Vì vậy, CPU được phân bổ cho bộ xử lý P3.
Định nghĩa về lập kế hoạch không ưu tiên
Lập lịch không ưu tiên là một trong những trường hợp có thể được áp dụng trong trường hợp khi một quá trình kết thúc hoặc một quá trình chuyển từ trạng thái chờ sang trạng thái chờ . Trong Lập lịch không ưu tiên, một khi tài nguyên (CPU) được phân bổ cho một quy trình, quy trình sẽ giữ CPU cho đến khi nó bị chấm dứt hoặc nó đạt đến trạng thái chờ.
Không giống như lập lịch ưu tiên, lập lịch không ưu tiên không làm gián đoạn quá trình chạy CPU ở giữa quá trình thực thi. Thay vào đó, nó chờ quá trình hoàn thành thời gian bùng nổ CPU và sau đó nó có thể phân bổ CPU cho một quy trình khác.
Trong lập lịch không ưu tiên, nếu một quy trình có thời gian bùng nổ CPU dài được thực thi thì quy trình khác sẽ phải chờ trong một thời gian dài làm tăng thời gian chờ trung bình của các quy trình trong hàng đợi sẵn sàng. Tuy nhiên, lập lịch không ưu tiên không có bất kỳ chi phí nào trong việc chuyển đổi các quy trình từ hàng đợi sẵn sàng sang CPU nhưng nó làm cho việc lập lịch trình trở nên cứng nhắc vì quy trình trong thực thi thậm chí không được ưu tiên cho một quy trình có mức độ ưu tiên cao hơn.
Sự khác biệt chính giữa Lập kế hoạch ưu tiên và không ưu tiên
- Sự khác biệt cơ bản giữa lập lịch ưu tiên và không ưu tiên là trong lập lịch ưu tiên, CPU được phân bổ cho các quy trình trong thời gian giới hạn . Mặc dù trong lập lịch không ưu tiên, CPU được phân bổ cho quá trình cho đến khi nó kết thúc hoặc chuyển sang trạng thái chờ .
- Quá trình thực thi trong lập lịch ưu tiên bị gián đoạn ở giữa thực thi trong khi đó, quá trình thực thi trong lập lịch không ưu tiên không bị gián đoạn ở giữa thực thi.
- Lập lịch ưu tiên có chi phí chuyển đổi quy trình từ trạng thái sẵn sàng sang trạng thái chạy, vise-verse và duy trì hàng đợi sẵn sàng. Mặt khác, lập lịch không ưu tiên không có chi phí chuyển đổi quá trình từ trạng thái chạy sang trạng thái sẵn sàng.
- Trong lập lịch ưu tiên, nếu một quy trình có mức độ ưu tiên cao thường xuyên xuất hiện trong hàng đợi sẵn sàng thì quy trình có mức độ ưu tiên thấp phải chờ rất lâu và nó có thể phải chết đói. Mặt khác, trong lập lịch không ưu tiên, nếu CPU được phân bổ cho quy trình với thời gian nổ lớn hơn thì các quy trình có thời gian nổ nhỏ có thể phải chết đói.
- Lập lịch ưu tiên khá linh hoạt vì các quy trình quan trọng được phép truy cập CPU khi chúng đến hàng đợi sẵn sàng, bất kể quy trình nào đang được thực hiện. Lập lịch không ưu tiên là cứng nhắc vì ngay cả khi một quy trình quan trọng đi vào hàng đợi sẵn sàng, quá trình CPU đang chạy không bị xáo trộn.
- Lập lịch ưu tiên là liên kết chi phí vì nó phải duy trì tính toàn vẹn của dữ liệu được chia sẻ, đây không phải là trường hợp với Lập kế hoạch không ưu tiên.
Phần kết luận:
Nó không phải là lập lịch ưu tiên là tốt hơn so với lập kế hoạch không ưu tiên hoặc vise-verse. Tất cả phụ thuộc vào cách lập lịch trình giảm thiểu thời gian chờ trung bình của các quy trình và tối đa hóa việc sử dụng CPU.