Lập kế hoạch ưu tiên và không ưu tiên

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

  • Trong Lập lịch ưu tiên, CPU được phân bổ cho các tiến trình trong một khoảng thời gian cụ thể và CPU lập lịch không ưu tiên được phân bổ cho tiến trình cho đến khi nó kết thúc.
  • Trong Lập kế hoạch ưu tiên, các nhiệm vụ được chuyển đổi dựa trên mức độ ưu tiên, trong khi trong Lập kế hoạch không ưu tiên, không có chuyển đổi nào diễn ra.
  • Thuật toán ư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 đang chạy, trong khi Lập kế hoạch không ưu tiên không có chi phí chuyển đổi như vậy.
  • Lập kế hoạch ưu tiên là linh hoạt, trong khi Lập kế hoạch không ưu tiên là cứng nhắc.
Lập lịch ưu tiên so với không ưu tiên
Lập lịch ưu tiên so với không ưu tiên

Lập kế hoạch ưu tiên là gì?

Lập kế hoạch ưu tiên là một phương pháp lập kế hoạch trong đó các nhiệm vụ chủ yếu được giao với mức độ ưu tiên của chúng. Đôi khi điều quan trọng là phải chạy một tác vụ có mức độ ưu tiên cao hơn trước một tác vụ có mức độ ưu tiên thấp hơn khác, ngay cả khi tác vụ có mức độ ưu tiên thấp hơn vẫn đang chạy.

Vào thời điểm đó, tác vụ có mức ưu tiên thấp hơn sẽ được giữ lại trong một thời gian và tiếp tục lại khi tác vụ có mức ưu tiên cao hơn hoàn thành việc thực thi.

Lập kế hoạch không ưu tiên là gì?

Trong loại phương pháp lập lịch này, CPU đã được phân bổ cho một quy trình cụ thể. Quá trình giữ cho CPU bận rộn sẽ giải phóng CPU bằng cách chuyển ngữ cảnh hoặc kết thúc.

Đây là phương pháp duy nhất có thể được sử dụng cho các nền tảng phần cứng khác nhau. Đó là bởi vì nó không cần phần cứng chuyên dụng (ví dụ: bộ hẹn giờ) như Lập kế hoạch ưu tiên.

Lập kế hoạch không ưu tiên xảy ra khi một quá trình tự nguyện chuyển sang trạng thái chờ hoặc kết thúc.

Lập kế hoạch ưu tiên và không ưu tiên: Bảng so sánh

Dưới đây là sự so sánh trực tiếp giữa Lập kế hoạch ưu tiên và Không ưu tiên. Sự khác biệt chính giữa Lập kế hoạch ưu tiên và Không ưu tiên trong HĐH như sau:

Lập lịch trước Lập lịch không ưu tiên
Một bộ xử lý có thể được ưu tiên thực thi các quy trình khác nhau ở giữa bất kỳ quá trình thực thi quy trình hiện tại nào. Khi bộ xử lý bắt đầu thực thi, nó phải hoàn thành việc này trước khi thực hiện bộ xử lý khác. Không thể tạm dừng giữa chừng.
Việc sử dụng CPU hiệu quả hơn so với Lập kế hoạch không ưu tiên. Việc sử dụng CPU kém hiệu quả hơn so với Lập kế hoạch ưu tiên.
Thời gian chờ đợi và phản hồi của Lập kế hoạch ưu tiên ít hơn. Thời gian chờ đợi và phản hồi của phương pháp Lập kế hoạch không ưu tiên cao hơn.
Lập kế hoạch ưu tiên được ưu tiên. Quy trình có mức độ ưu tiên cao nhất là quy trình hiện đang được sử dụng. Khi bất kỳ tiến trình nào chuyển sang trạng thái đang chạy, trạng thái của tiến trình đó sẽ không bao giờ bị xóa khỏi bộ lập lịch cho đến khi nó hoàn thành công việc của mình.
Lập kế hoạch ưu tiên rất linh hoạt. Lập kế hoạch không ưu tiên là cứng nhắc.
Ví dụ: – Thời gian còn lại ngắn nhất Đầu tiên, Vòng tròn, v.v. Ví dụ: Đến trước thì phục vụ trước, Công việc ngắn nhất trước tiên, Lập kế hoạch ưu tiên, v.v.
Thuật toán lập kế hoạch ưu tiên có thể được làm trống trước, tức là quá trình có thể được lên lịch Trong quá trình lập kế hoạch không ưu tiên không thể được lên lịch
Trong quy trình này, CPU được phân bổ cho các quy trình trong một khoảng thời gian cụ thể. Trong quy trình này, CPU được phân bổ cho quy trình cho đến khi nó kết thúc hoặc chuyển sang trạng thái chờ.
Thuật toán ư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 đang chạy và ngược lại. Lập kế hoạ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.

Ưu điểm của việc lập kế hoạch ưu tiên

Dưới đây là những ưu/lợi ích của phương pháp Lập kế hoạch ưu tiên:

  • Phương pháp lập lịch ưu tiên mạnh mẽ hơn, cách tiếp cận sao cho một tiến trình không thể độc chiếm CPU
  • Lựa chọn nhiệm vụ đang chạy được xem xét lại sau mỗi lần gián đoạn.
  • Mỗi sự kiện gây gián đoạn các tác vụ đang chạy
  • Hệ điều hành đảm bảo rằng việc sử dụng CPU là như nhau trong tất cả các tiến trình đang chạy.
  • Trong đó, việc sử dụng CPU là như nhau, tức là tất cả các tiến trình đang chạy sẽ sử dụng CPU như nhau.
  • Phương pháp lập kế hoạch này cũng ứng biến được thời gian phản hồi trung bình.
  • Lập kế hoạch ưu tiên có lợi khi chúng ta sử dụng nó cho môi trường đa chương trình.

Ưu điểm của việc lập kế hoạch không ưu tiên

Dưới đây là những ưu/lợi ích của phương pháp Lập kế hoạch không ưu tiên:

  • Cung cấp chi phí lập kế hoạch thấp
  • Có xu hướng cung cấp thông lượng cao
  • Về mặt khái niệm, đây là phương pháp rất đơn giản
  • Less nhu cầu tài nguyên tính toán cho việc lập kế hoạch

Nhược điểm của việc lập kế hoạch ưu tiên

Sau đây là những nhược điểm của việc lập lịch trình trước:

  • Cần nguồn lực tính toán hạn chế để lập kế hoạch
  • Bộ lập lịch mất nhiều thời gian hơn để tạm dừng tác vụ đang chạy, chuyển ngữ cảnh và gửi tác vụ mới đến.
  • Quá trình có mức độ ưu tiên thấp cần phải chờ lâu hơn nếu một số quy trình có mức độ ưu tiên cao liên tục đến.

Nhược điểm của việc lập kế hoạch không ưu tiên

Dưới đây là những nhược điểm/nhược điểm của phương pháp Lập kế hoạch không ưu tiên:

  • Nó có thể dẫn đến tình trạng đói khát, đặc biệt đối với những nhiệm vụ thời gian thực đó
  • Lỗi có thể khiến máy bị treo
  • Nó có thể thực hiện thời gian thực và lập kế hoạch ưu tiên khó khăn
  • Thời gian phản hồi kém cho các quy trình

Ví dụ về lập kế hoạch không ưu tiên

Trong lập lịch SJF không ưu tiên, khi chu trình CPU được phân bổ cho tiến trình, tiến trình sẽ giữ nó cho đến khi đạt đến trạng thái chờ hoặc kết thúc.

Hãy xem xét năm tiến trình sau, mỗi tiến trình có thời gian bùng phát và thời gian đến riêng.

Hàng đợi xử lý Thời gian bùng nổ Thời gian đến
P1 6 2
P2 2 5
P3 8 1
P4 3 0
P5 4 4

Bước 0) Tại thời điểm = 0, P4 đến và bắt đầu thực thi.

Ví dụ về lập kế hoạch không ưu tiên

Bước 1) Tại thời điểm = 1, Quá trình P3 đến. Tuy nhiên, P4 vẫn cần 2 đơn vị thực thi để hoàn thành. Nó sẽ tiếp tục thực hiện.

Ví dụ về lập kế hoạch không ưu tiên

Bước 2) Tại thời điểm =2, tiến trình P1 đến và được thêm vào hàng đợi. P4 sẽ tiếp tục thực hiện.

Ví dụ về lập kế hoạch không ưu tiên

Bước 3) Tại thời điểm = 3, tiến trình P4 sẽ kết thúc quá trình thực thi của nó. Thời gian nổ của P3 và P1 được so sánh. Quá trình P1 được thực thi vì thời gian bùng nổ của nó ít hơn so với P3.

Ví dụ về lập kế hoạch không ưu tiên

Bước 4) Tại thời điểm = 4, tiến trình P5 đến và được thêm vào hàng đợi. P1 sẽ tiếp tục thực hiện.

Ví dụ về lập kế hoạch không ưu tiên

Bước 5) Tại thời điểm = 5, tiến trình P2 đến và được thêm vào hàng đợi. P1 sẽ tiếp tục thực hiện.

Ví dụ về lập kế hoạch không ưu tiên

Bước 6) Tại thời điểm = 9, tiến trình P1 sẽ kết thúc quá trình thực thi của nó. Thời gian bùng nổ của P3, P5 và P2 được so sánh. Quá trình P2 được thực thi vì thời gian bùng nổ của nó là thấp nhất.

Ví dụ về lập kế hoạch không ưu tiên

Bước 7) Tại thời điểm = 10, P2 đang thực thi và P3 và P5 đang ở hàng đợi.

Ví dụ về lập kế hoạch không ưu tiên

Bước 8) Tại thời điểm = 11, tiến trình P2 sẽ kết thúc quá trình thực thi của nó. Thời gian nổ của P3 và P5 được so sánh. Quá trình P5 được thực thi vì thời gian bùng nổ của nó thấp hơn.

Ví dụ về lập kế hoạch không ưu tiên

Bước 9) Tại thời điểm = 15, tiến trình P5 sẽ kết thúc quá trình thực thi của nó.

Ví dụ về lập kế hoạch không ưu tiên

Bước 10) Tại thời điểm = 23, tiến trình P3 sẽ kết thúc quá trình thực thi của nó.

Ví dụ về lập kế hoạch không ưu tiên

Bước 11) Hãy tính thời gian chờ trung bình cho ví dụ trên.

Wait time 
P4= 0-0=0
P1=  3-2=1
P2= 9-5=4
P5= 11-4=7
P3= 15-1=14
Average Waiting Time= 0+1+4+7+14/5 = 26/5 = 5.2

Ví dụ về lập kế hoạch ưu tiên

Hãy xem xét ba quá trình sau đây thi đấu vòng tròn

Hàng đợi xử lý Thời gian bùng nổ
P1 4
P2 3
P3 5

Ví dụ về lập kế hoạch ưu tiên

Bước 1) Quá trình thực thi bắt đầu với quy trình P1, có thời gian bùng nổ là 4. Ở đây, mọi quy trình thực thi trong 2 giây. P2 và P3 vẫn đang trong hàng đợi.

Ví dụ về lập kế hoạch ưu tiên

Bước 2) Tại thời điểm =2, P1 được thêm vào cuối Hàng đợi và P2 bắt đầu thực thi

Ví dụ về lập kế hoạch ưu tiên

Bước 3) Tại time=4 , P2 được ưu tiên và thêm vào cuối hàng đợi. P3 bắt đầu thực thi.

Ví dụ về lập kế hoạch ưu tiên

Bước 4) Tại time=6 , P3 được ưu tiên và thêm vào cuối hàng đợi. P1 bắt đầu thực thi.

Ví dụ về lập kế hoạch ưu tiên

Bước 5) Tại time=8 , P1 có thời gian bùng nổ là 4. Nó đã hoàn thành việc thực thi. P2 bắt đầu thực thi

Ví dụ về lập kế hoạch ưu tiên

Bước 6) P2 có thời gian bùng nổ là 3. Nó đã thực thi được 2 khoảng thời gian. Tại thời điểm = 9, P2 hoàn thành việc thực thi. Sau đó, P3 bắt đầu thực thi cho đến khi hoàn thành.

Ví dụ về lập kế hoạch ưu tiên

Bước 7) Hãy tính thời gian chờ trung bình cho ví dụ trên.

Wait time 
P1= 0+ 4= 4
P2= 2+4= 6
P3= 4+3= 7