Tôi đã được học một số khái niệm lập kế hoạch. Hiện tại sự hiểu biết của tôi cho đến nay là như dưới đây.
- Có quy trình thời gian thực và quy trình không thời gian thực.
- Các quy trình không theo thời gian thực có thể có
nice
các giá trị cho mức độ ưu tiên của chúng trong phạm vi từ -20 đến +20 . Giá trị dương cao hơn cho thấy rằng quá trình có mức độ ưu tiên thấp hơn. - Các quy trình thời gian thực sẽ có một giá trị độc đáo được liệt kê
-
như được giải thích trong câu trả lời này ở đây . Điều này chủ yếu là do các quy trình thời gian thực có mức độ ưu tiên cao hơn các quy trình không theo thời gian thực và giá trị độc đáo không áp dụng cho chúng. - Bây giờ, tôi có thể sử dụng
chrt
để xem các thuộc tính thời gian thực của một quy trình.
Đối với quy trình thời gian thực, chrt
đầu ra cho là,
chrt -p 5
pid 5's current scheduling policy: SCHED_FIFO
pid 5's current scheduling priority: 99
Như chúng ta có thể thấy cho quy trình 5 , mức độ ưu tiên là 99 là mức cao nhất. Ngoài ra, chính sách lập kế hoạch làSCHED_FIFO
Bây giờ, đối với quy trình không theo thời gian thực, chrt
đầu ra cho là,
chrt -p 22383
pid 22383's current scheduling policy: SCHED_OTHER
pid 22383's current scheduling priority: 0
Như chúng ta có thể thấy cho quy trình 22383 , mức độ ưu tiên là 0 và chính sách lập lịch là SCHED_OTHER
.
Câu hỏi
- Tôi có thể thực hiện bất kỳ quy trình nào như quy trình thời gian thực không?
- Tôi có thể đặt một số thuật toán lập lịch khác ngoài
SCHED_OTHER
quy trình không theo thời gian thực không? Từ đây , tôi cũng thấy rằng tôi có thể sửa đổi thuộc tính cho một quy trình đang chạy như,
chrt -p prio pid
Ngoài ra, tôi thấy
chrt -m
cung cấp cho tôi danh sách các thuật toán lập lịch. Lệnh cho tôi đầu ra là,SCHED_OTHER min/max priority : 0/0 SCHED_FIFO min/max priority : 1/99 SCHED_RR min/max priority : 1/99 SCHED_BATCH min/max priority : 0/0 SCHED_IDLE min/max priority : 0/0
Bây giờ, như đã đề xuất ở trên, nếu tôi đặt
chrt -p 55 22383
thuật toán nào sẽ được sử dụng?