Lập lịch quy trình trong hệ điều hành: Lập lịch dài hạn, trung bình, ngắn hạn

⚡ Tóm tắt thông minh

Lập lịch tiến trình là một tác vụ của hệ điều hành quản lý các tiến trình ở các trạng thái sẵn sàng, chờ và đang chạy. Nó phân bổ thời gian CPU cho mỗi tiến trình, giữ cho CPU luôn hoạt động và giảm thời gian phản hồi bằng cách sử dụng các bộ lập lịch dài hạn, trung hạn và ngắn hạn.

  • 🗓️ Định nghĩa: Lập lịch tiến trình quản lý các tiến trình ở trạng thái sẵn sàng, chờ và đang chạy để giữ cho CPU luôn hoạt động.
  • 📥 Hàng đợi: Hàng đợi công việc, hàng đợi sẵn sàng và hàng đợi thiết bị sắp xếp các tiến trình theo trạng thái thực thi của chúng.
  • 🔀 Mô hình hai trạng thái: Ở mức độ đơn giản nhất, một tiến trình hoặc đang chạy hoặc không chạy.
  • 🧑💼 Ba người lập lịch: Các bộ lập lịch dài hạn, trung hạn và ngắn hạn kiểm soát các tiến trình nào chạy và khi nào.
  • Thời gian ngắn: Bộ lập lịch CPU là bộ lập lịch nhanh nhất, chọn một tiến trình sẵn sàng để thực thi ngay lập tức.
  • 🔁 Chuyển đổi ngữ cảnh: Việc lưu và khôi phục trạng thái CPU trên bo mạch chủ cho phép thực hiện đa nhiệm.

Lập lịch tiến trình trong hệ điều hành

Lập kế hoạch quy trình là gì?

Lập lịch trình quy trình Đây là một tác vụ của hệ điều hành có nhiệm vụ lên lịch cho các tiến trình ở các trạng thái khác nhau như sẵn sàng, chờ và đang chạy.

Lập lịch tiến trình cho phép hệ điều hành phân bổ khoảng thời gian thực thi CPU cho mỗi tiến trình. Một lý do quan trọng khác để sử dụng hệ thống lập lịch tiến trình là nó giữ cho CPU luôn hoạt động. Điều này cho phép bạn đạt được thời gian phản hồi tối thiểu cho các chương trình.

Xử lý hàng đợi lập lịch

Hàng đợi lập lịch tiến trình giúp bạn duy trì một hàng đợi riêng biệt cho mỗi trạng thái tiến trình và PCB (Process Plan Code). Tất cả các tiến trình có cùng trạng thái thực thi được đặt trong cùng một hàng đợi. Do đó, bất cứ khi nào trạng thái của một tiến trình được thay đổi, PCB của nó cần được tách khỏi hàng đợi hiện tại và chuyển trở lại hàng đợi trạng thái mới.

Ba loại hàng đợi của hệ điều hành là:

  1. Hàng đợi công việc – Nó giúp bạn lưu trữ tất cả các tiến trình trong hệ thống.
  2. Hàng đợi sẵn sàng – Loại hàng đợi này giúp bạn thiết lập mọi tiến trình nằm trong bộ nhớ chính, sẵn sàng và chờ thực thi.
  3. Hàng đợi thiết bị – Đó là một quá trình bị chặn do thiếu thiết bị I/O.
Xử lý hàng đợi lập lịch
Xử lý hàng đợi lập lịch

Trong sơ đồ trên:

  • Hình chữ nhật biểu thị một hàng đợi.
  • Hình tròn biểu thị nguồn tài nguyên.
  • Mũi tên chỉ hướng diễn tiến của quy trình.
  1. Mỗi tiến trình mới đều được đưa vào hàng đợi Sẵn sàng trước tiên. Nó sẽ chờ trong hàng đợi này cho đến khi được xử lý để thực thi. Tại đây, tiến trình mới được đưa vào hàng đợi sẵn sàng và chờ cho đến khi được chọn để thực thi, hay nói cách khác là được điều phối.
  2. Một trong các tiến trình đã được cấp phát CPU và đang thực thi.
  3. Quá trình này cần đưa ra yêu cầu nhập/xuất dữ liệu.
  4. Sau đó, nó sẽ được đưa vào hàng đợi I/O.
  5. Quy trình này sẽ tạo ra một quy trình con mới.
  6. Quá trình này sẽ chờ kết thúc.
  7. Nó cần được loại bỏ khỏi CPU một cách cưỡng chế thông qua một ngắt. Sau khi quá trình ngắt hoàn tất, nó cần được gửi trở lại hàng đợi sẵn sàng.

Mô hình quy trình hai trạng thái

Các mô hình quy trình hai trạng thái là:

  • Trạng thái đang chạy
  • Trạng thái không chạy

Chạy

Trong tạp chí Operahệ thống ting, bất cứ khi nào một quy trình mới được xây dựng, nó sẽ được nhập vào hệ thống và hệ thống sẽ chạy.

Không chạy

Các tiến trình không đang chạy được giữ trong một hàng đợi, chờ đến lượt thực thi. Mỗi mục trong hàng đợi là một con trỏ đến một tiến trình cụ thể.

Mục tiêu lập kế hoạch

Dưới đây là những mục tiêu quan trọng của việc lập kế hoạch quy trình:

  • Tối đa hóa số lượng người dùng tương tác trong thời gian phản hồi có thể chấp nhận được.
  • Đạt được sự cân bằng giữa phản ứng và sử dụng.
  • Tránh trì hoãn vô thời hạn và thực thi các ưu tiên.
  • Nó cũng nên cung cấp tham chiếu đến các quy trình nắm giữ các tài nguyên quan trọng.

Loại bộ lập lịch quy trình

Bộ lập lịch là một loại phần mềm hệ thống cho phép bạn xử lý việc lập lịch trình.

Chủ yếu có ba loại Bộ lập lịch quy trình:

  1. Người lập kế hoạch dài hạn
  2. Người lập kế hoạch ngắn hạn
  3. Người lập kế hoạch trung hạn

Người lập kế hoạch dài hạn

Bộ lập lịch dài hạn còn được gọi là người lập kế hoạch công việcBộ lập lịch này điều chỉnh chương trình, chọn các tiến trình từ hàng đợi và tải chúng vào bộ nhớ để thực thi. Nó cũng điều chỉnh mức độ đa chương trình.

Tuy nhiên, mục tiêu chính của loại bộ lập lịch này là cung cấp sự cân bằng giữa các loại công việc, chẳng hạn như công việc xử lý và công việc I/O, cho phép quản lý đa chương trình.

Người lập kế hoạch trung hạn

Lập kế hoạch trung hạn là một phần quan trọng của trao đổipingNó cho phép bạn xử lý các tiến trình bị hoán đổi. Trong bộ lập lịch này, một tiến trình đang chạy có thể bị tạm dừng, điều này dẫn đến yêu cầu I/O.

Một tiến trình đang chạy có thể bị tạm dừng nếu nó thực hiện yêu cầu I/O. Một tiến trình bị tạm dừng không thể tiếp tục hoàn thành. Để loại bỏ tiến trình khỏi bộ nhớ và tạo không gian cho các tiến trình khác, tiến trình bị tạm dừng cần được chuyển sang bộ nhớ phụ.

Người lập kế hoạch ngắn hạn

Lập kế hoạch ngắn hạn còn được gọi là Bộ lập lịch CPUMục tiêu chính của bộ lập lịch này là tăng hiệu suất hệ thống theo các tiêu chí đã đặt ra. Nó giúp bạn chọn ra từ một nhóm các tiến trình sẵn sàng thực thi và phân bổ CPU cho một trong số chúng. Bộ điều phối sẽ trao quyền điều khiển CPU cho tiến trình được bộ lập lịch ngắn hạn lựa chọn.

Sự khác biệt giữa các Trình lập lịch biểu

Dài hạn so với ngắn hạn so với trung hạn:

Dài hạn Thời gian ngắn Trung hạn
Chế độ dài hạn còn được gọi là trình lập lịch công việc. Ngắn hạn còn được gọi là bộ lập lịch CPU. Trung hạn còn được gọi là hoán đổiping Người lập kế hoạch.
Nó vắng mặt hoặc ở mức tối thiểu trong hệ thống chia sẻ thời gian. Nó không đáng kể trong thứ tự chia sẻ thời gian. Bộ lập lịch này là một phần tử của hệ thống chia sẻ thời gian.
Tốc độ ít hơn so với bộ lập lịch ngắn hạn. Tốc độ nhanh nhất so với các bộ lập lịch ngắn hạn và trung hạn. Nó cung cấp tốc độ trung bình.
Cho phép bạn chọn các tiến trình từ nhóm tải và đưa chúng trở lại bộ nhớ. Nó chỉ chọn những tiến trình đang ở trạng thái sẵn sàng thực thi. Nó giúp bạn đưa quy trình trở lại bộ nhớ.
Cung cấp khả năng điều khiển hoàn toàn. Cung cấp khả năng điều khiển hạn chế hơn. Giảm thiểu tình trạng đa nhiệm.

Chuyển đổi bối cảnh là gì?

Đây là một phương pháp lưu trữ/khôi phục trạng thái của CPU trong PCB, để quá trình thực thi có thể được tiếp tục từ cùng một điểm vào thời điểm sau đó. Phương pháp chuyển đổi ngữ cảnh rất quan trọng đối với một hệ điều hành đa nhiệm.

Câu Hỏi Thường Gặp

Bộ lập lịch quyết định tiến trình nào sẽ chạy tiếp theo dựa trên một chính sách. Bộ điều phối là mô-đun thực sự cấp quyền điều khiển CPU cho tiến trình được chọn, thực hiện chuyển đổi ngữ cảnh và nhảy.ping đến đúng vị trí trong chương trình.

Mức độ đa chương trình là số lượng tiến trình được giữ trong bộ nhớ chính cùng một lúc. Bộ lập lịch dài hạn kiểm soát điều này bằng cách quyết định số lượng tiến trình được phép vào, cân bằng việc sử dụng CPU và I/O để đạt hiệu suất hệ thống hiệu quả.

Khối điều khiển tiến trình (Process Control Block - PBC) là một cấu trúc dữ liệu mà hệ điều hành sử dụng để lưu trữ tất cả thông tin về một tiến trình, chẳng hạn như trạng thái, bộ đếm chương trình, thanh ghi và giới hạn bộ nhớ. Nó rất cần thiết để lưu và khôi phục các tiến trình trong quá trình chuyển đổi ngữ cảnh.

Trí tuệ nhân tạo (AI) có thể học các mô hình khối lượng công việc để quyết định quy trình nào cần chạy và cách phân bổ thời gian CPU. Thay vì các quy tắc cố định, nó điều chỉnh việc lập lịch theo thời gian thực, cải thiện thông lượng, thời gian phản hồi và hiệu quả năng lượng, đặc biệt là trong các hệ thống đám mây và đa lõi.

Đúng vậy. Bằng cách phân tích các lần sử dụng CPU đột ngột và các mẫu I/O trong quá khứ, các mô hình AI có thể ước tính thời gian một tiến trình sẽ chạy và liệu nó bị giới hạn bởi CPU hay I/O. Những dự đoán này giúp bộ lập lịch ưu tiên các tiến trình và giảm thời gian chờ đợi.

Tóm tắt bài viết này với: