Lập kế hoạch dự phòng và không dự phòng trước: Những điểm khác biệt chính

Mục lục:

Anonim

Lập lịch trước là gì?

Lập kế hoạch trước 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.

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

Trong hướng dẫn về Hệ điều hành này, bạn sẽ học:

  • Lập lịch trước là gì?
  • Lập kế hoạch không trả trước là gì?
  • Sự khác biệt giữa lập kế hoạch dự phòng và không dự phòng trước trong hệ điều hành
  • Ưu điểm của Lập kế hoạch Dự phòng
  • Ưu điểm của việc lập lịch trình không ưu tiên
  • Nhược điểm của Lập kế hoạch Dự phòng
  • Nhược điểm của việc lập lịch trình không ưu tiên
  • Ví dụ về lập lịch trình không dự phòng trước
  • Ví dụ về Lập lịch trước

Lập kế hoạch không trả trước là gì?

Trong loại phương pháp lập lịch này, CPU đã được cấp phát cho một quá 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 đổi 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ộ đếm thời gian) như Lập lịch trước.

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

Sự khác biệt giữa lập kế hoạch dự phòng và không dự phòng trước trong hệ điều hành

Đây, là Lập lịch trước và Không ưu tiên trong Hệ điều hành

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

Ưu điểm của Lập kế hoạch Dự phòng

Dưới đây là những ưu điểm / lợi ích của phương pháp Lập lịch trước:

  • Phương pháp lập lịch trước mạnh mẽ hơn, cách tiếp cận để một quá trình không thể độc quyền CPU
  • Lựa chọn tác 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 ra sự gián đoạn của 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ả quá 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 lịch trình này cũng ứng biến thời gian phản hồi trung bình.
  • Lập lịch trước có lợi khi chúng ta sử dụng nó cho môi trường đa lập trình.

Ưu điểm của việc lập lịch trình không ưu tiên

Dưới đây là những ưu điểm / lợi ích của phương pháp Lập lịch trình không phủ đầu:

  • Cung cấp chi phí lập lịch trình thấp
  • Có xu hướng cung cấp thông lượng cao
  • Nó là một phương pháp rất đơn giản về mặt khái niệm
  • Cần ít tài nguyên tính toán hơn cho việc Lập lịch biểu

Nhược điểm của Lập kế hoạch Dự phòng

Dưới đây là nhược điểm / nhược điểm của phương pháp Lập lịch trước:

  • Cần tài nguyên tính toán hạn chế để lập lịch trình
  • Bộ lập lịch dành thời gian cao hơn để tạm dừng tác vụ đang chạy, chuyển đổi 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 đợi một thời gian dài hơn nếu một số quá trình có mức độ ưu tiên cao đến liên tục.

Nhược điểm của việc lập lịch trình không ưu tiên

Dưới đây là nhược điểm / nhược điểm của phương pháp Lập lịch trình Không Preemptive:

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

Ví dụ về lập lịch trình không dự phòng trước

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

Hãy xem xét năm quy trình sau, mỗi quy trình có thời gian bùng nổ và thời gian đến duy nhất của riêng nó.

Hàng đợi xử lý Thời gian bùng nổ Thời gian đến
P1 6 2
P2 2 5
P3 số 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 hiện.

Bước 1) Tại thời điểm = 1, Quy 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.

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

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

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

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

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

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

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

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

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

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

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

Ví dụ về Lập lịch trước

Hãy xem xét ba quy trình sau đây trong Round-robin

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

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

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

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

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

Bước 5) Tại thời điểm = 8, P1 có thời gian bùng nổ là 4. Nó đã hoàn tất quá trình thực thi. P2 bắt đầu thực hiện

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

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

Wait timeP1= 0+ 4= 4P2= 2+4= 6P3= 4+3= 7

SỰ KHÁC BIỆT CHÍNH

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