Đề XuấT, 2024

Editor Choice

Sự khác biệt giữa lập kế hoạch ưu tiên và không ưu tiên trong hệ điều hành

Trách nhiệm của bộ lập lịch CPU là phân bổ một quá trình cho CPU bất cứ khi nào CPU ở trạng thái không hoạt động. Bộ lập lịch CPU chọn một quy trình từ hàng đợi sẵn sàng và phân bổ quy trình cho CPU. Việc lập lịch biểu diễn ra 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 được gọi là Lập lịch ưu tiên . Trên tay, việc lập lịch trình diễn ra khi một quá trình chấm dứt hoặc chuyển từ chạy sang chờ trạng thái loại lập lịch CPU này được gọi là Lập lịch không ưu tiên . Sự khác biệt cơ bản giữa lập kế hoạch phủ đầu và không phủ đầu nằm ở chính tên của chúng. Đó là một lịch trình ưu tiên có thể được ưu tiên; các quy trình có thể được lên lịch. Trong lập lịch không ưu tiên, các quy trình không thể được lên lịch.

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ánhLập kế hoạch ưu tiênLập kế hoạch không ưu tiên
Căn bảnCá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ạnQuá 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ờ.
ĐóiNế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ôngLậ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ẻoLậ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.

Trong khi đó, P3 đang thực thi, quá trình P1 đến vào thời điểm 2. Bây giờ thời gian còn lại cho P3 (3 mili giây) ít hơn thời gian yêu cầu của các quy trình P1 (4 mili giây) và P2 (5 mili giây). Vì vậy, P3 được phép tiếp tục. Trong khi P3 đang tiếp tục quá trình P0 đến vào thời điểm 3, thì bây giờ thời gian còn lại cho P3 (2 mili giây) bằng với thời gian mà P0 yêu cầu (2 mili giây). Vì vậy, P3 tiếp tục và sau khi P3 chấm dứt, CPU được phân bổ cho P0 vì nó có thời gian nổ ít hơn các lần khác. Sau khi P0 kết thúc, CPU được phân bổ cho P1 và sau đó đến P2.

Đị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.

Hãy để chúng tôi giải quyết các ví dụ lập lịch trình ở trên trong thời trang không phòng ngừa. Vì ban đầu, tiến trình P2 đến thời điểm 0, do đó CPU được phân bổ cho tiến trình P2, phải mất 6 mili giây để thực thi. Ở giữa tất cả các quy trình, ví dụ P0, P1, P3 đến hàng đợi sẵn sàng. Nhưng tất cả chờ đợi cho đến khi quá trình P2 hoàn thành thời gian bùng nổ CPU của nó. Sau đó, quá trình đến sau P2 tức là P3 được phân bổ CPU cho đến khi hoàn thành thời gian nổ. Tương tự, sau đó P1 thực thi và CPU sau đó được đưa ra để xử lý P0.

Sự khác biệt chính giữa Lập kế hoạch ưu tiên và không ưu tiên

  1. 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ờ .
  2. 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.
  3. 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.
  4. 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.
  5. 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.
  6. 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.

Top