Lập kế hoạch trong hệ thống Linux dựa trên lập lịch trình các lớp học. Mỗi lớp làchỉ định một ưu tiên cụ thể. Bằng cách sử dụng hạt nhân khác nhau lập lịch trình các lớp học, có thểphù hợp với các thuật toán lập lịch trình khác nhau dựa trên nhu cầu của hệ thốngvà quá trình của nó. Các tiêu chí lập kế hoạch cho một máy chủ Linux, ví dụ, có thểthể khác nhau từ những người cho điện thoại di động chạy Linux. Để quyết địnhnhiệm vụ để chạy tiếp theo, chọn trình lập lịch biểu tác vụ ưu tiên cao nhất thuộclớp lập kế hoạch ưu tiên cao nhất. Hạt nhân Linux tiêu chuẩn thực hiện hailập lịch trình các lớp học: (1) một mặc định lập lịch trình lớp học bằng cách sử dụng CFS lập kế hoạchthuật toán và (2) một thời gian thực lịch trình lớp học. Chúng tôi thảo luận về mỗi người trong số các lớp họcỞ đây. Mới lập lịch trình các lớp học có thể, tất nhiên, được thêm vào.Thay vì sử dụng quy tắc nghiêm ngặt kết hợp một giá trị ưu tiên tương đối vớichiều dài của một lượng tử thời gian, trình lập lịch biểu CFS chỉ định một tỷ lệ CPUthời gian xử lý để mỗi tác vụ. Tỷ lệ này được tính toán dựa trên những điều tốt đẹpgiá trị được gán cho mỗi công việc. Giá trị tốt đẹp phạm vi nhiệt độ-20-+ 19, nơi mộtgiá trị tốt đẹp numerically thấp hơn chỉ ra ưu tiên tương đối cao hơn. Nhiệm vụ vớigiá trị tốt đẹp thấp hơn nhận được một tỷ lệ cao của thời gian xử lý CPU hơnnhiệm vụ với giá trị cao hơn tốt đẹp. Giá trị tốt đẹp mặc định là 0. (Thuật ngữ tốt đẹp đếntừ ý tưởng rằng nếu một nhiệm vụ làm tăng giá trị tốt đẹp của nó, nói, 0 + 10, nó đangrất vui được các nhiệm vụ khác trong hệ thống bằng cách hạ thấp ưu tiên tương đối của nó.) CFS khôngsử dụng các giá trị rời rạc của thời gian lát và thay vào đó xác định một độ trễ được nhắm mục tiêu,đó là một khoảng thời gian của thời gian trong đó mỗi nhiệm vụ runnable nên chạy lúcít nhất một lần. Tỷ lệ thời gian CPU được cấp phát từ giá trị nhắm mục tiêuđộ trễ. Ngoài việc có giá trị mặc định tối thiểu, được nhắm mục tiêu độ trễcó thể tăng nếu số lượng các nhiệm vụ hoạt động trong hệ thống phát triển vượt ra ngoài một sốngưỡng.Trình lập lịch biểu CFS trực tiếp không gán ưu tiên. Thay vào đó, nó ghi lại như thế nàolâu mỗi tác vụ đã chạy bằng cách duy trì ảo thời gian chạy của mỗi nhiệm vụ bằng cách sử dụngvruntime biến mỗi nhiệm vụ. Thời gian chạy ảo được kết hợp với một phân rãyếu tố dựa trên ưu tiên của một nhiệm vụ: nhiệm vụ ưu tiên thấp hơn có tỷ lệ cao hơnphân rã hơn nhiệm vụ ưu tiên cao hơn. Cho các nhiệm vụ ở mức ưu tiên bình thường (giá trị tốt đẹp0), thời gian chạy ảo là giống hệt nhau thực tế vật lý thời gian chạy. Vì vậy, nếu một nhiệm vụvới mặc định ưu tiên chạy cho 200 mili giây, vruntime của nó cũng sẽ có 200mili giây. Tuy nhiên, nếu một nhiệm vụ ưu tiên thấp hơn chạy cho 200 mili giây, của nóvruntime sẽ cao hơn 200 mili giây. Tương tự, nếu một ưu tiên cao hơntác vụ chạy cho 200 mili giây, vruntime của nó sẽ là ít hơn 200 mili giây.Để quyết định công việc để chạy tiếp theo, trình lập lịch biểu chỉ đơn giản là chọn tác vụ đãgiá trị vruntime nhỏ nhất. Ngoài ra, một nhiệm vụ ưu tiên cao hơn mà trở thànhcó sẵn để chạy có thể quyền mua trước một nhiệm vụ ưu tiên thấp hơn.
đang được dịch, vui lòng đợi..
