Scheduler Linux là một dựa trên lịch ưu tiên mà lịch trình công việc dựa trên các ưu tiên tĩnh và năng động của họ. Khi những ưu tiên này được kết hợp chúng tạo sự tốt lành của công việc. Mỗi lần lên lịch và Linux chạy, mỗi nhiệm vụ trên hàng đợi chạy được kiểm tra và giá trị tốt đẹp của nó được tính toán. Các nhiệm vụ với highestgoodness được chọn để chạy tiếp.
Bây giờ chúng ta sẽ xem xét các thuật toán lập lịch trình Linux. Để bắt đầu, chủ đề Linux là đề hạt nhân, do lịch trình được dựa trên chủ đề, không phải quy trình. Linux phân biệt ba loại chủ đề cho các mục đích lập kế hoạch:
1. Real-time FIFO.
2. Real-time round robin.
3. Chia sẻ thời gian.
• SCHED_FIFO - A đầu tiên trong, quá trình thời gian thực First-Out. Khi lên lịch giao cho CPU để xử lý, nó rời khỏi mô tả quá trình ở vị trí hiện tại của nó trong danh sách runqueue. Nếu không có quá trình thời gian thực có mức ưu tiên cao hơn khác là Runnable, quá trình sẽ tiếp tục sử dụng các CPU miễn là nó muốn, thậm chí nếu quá trình thời gian thực khác có cùng độ ưu tiên là Runnable • SCHED_RR - Một Round Robin quá trình thời gian thực. Khi lên lịch giao cho CPU để xử lý, nó đặt các mô tả quá trình vào cuối danh sách runqueue. Chính sách này đảm bảo một phân hợp lý của CPU thời gian để tất cả các quá trình thời gian thực SCHED_RR có cùng ưu tiên • SCHED_OTHER - A, thời gian quá trình chia sẻ thông thường. Các lĩnh vực chính sách cũng mã hóa một lá cờ nhị phân SCHED_YIELD. Cờ này được thiết lập khi quá trình này gọi là năng suất sched_ () gọi hệ thống (một cách tự nguyện từ bỏ bộ xử lý mà không cần phải bắt đầu một I / O hoạt động hoặc đi ngủ. Các kế hoạch đặt các mô tả quá trình ở dưới cùng của runqueue danh sách. The Run Queue 140 hàng đợi riêng biệt, một cho mỗi cấp độ ưu tiên ■ Trên thực tế, con số này có thể thay đổi một vị trí nhất định ■ Trên thực tế, hai bộ, năng động và hết hạn ■ ưu tiên 0-99 cho thời gian thực quá trình ■ ưu tiên 100-139 cho quá trình bình thường, giá trị thiết lập thông qua tốt đẹp () gọi hệ thống
đang được dịch, vui lòng đợi..
