Tôi googled vé này về cùng một nghi ngờ về lát thời gian của SCHED_RR trong Linux. Nhưng tôi không thể nhận được câu trả lời rõ ràng cả từ đây và mã nguồn hạt nhân. Sau khi kiểm tra kỹ hơn, tôi đã tìm thấy điểm chính là "RR_TIMESLICE" là lát thời gian mặc định trong jiffies, không phải là mili giây! Vì vậy, lát thời gian mặc định của SCHED_RR luôn là 100ms, bất kể bạn đã cấu hình HZ như thế nào.
Tương tự như giá trị của "/ proc/sys/kernel/sched_rr_timeslice_ms", trong đó giá trị đầu vào trong millisecond, nhưng nó lưu trữ và đầu ra trong jiffies! Vì vậy, khi CONFIG_HZ = 100, bạn sẽ thấy rằng:
# echo 100 > /proc/sys/kernel/sched_rr_timeslice_ms
# cat /proc/sys/kernel/sched_rr_timeslice_ms
10
Hơi bối rối một chút. Hy vọng điều này có thể giúp bạn hiểu điều đó!
Tuy nhiên có vẻ như 'rt.h' xuất hiện với hạt nhân Linux 3.9. – backlash
Trước ** hạt nhân Linux v3.9 **, định nghĩa của 'RR_TIMESLICE' được đặt trong [include/linux/sched.h] (http://lxr.free-electrons.com/source/include/linux/sched .h? v = 3.8 # L1227). Trước ** Linux kernel v3.4 **, định nghĩa được đặt tên là 'DEF_TIMESLICE' và được đặt trong [kernel/sched/sched.h] (http://lxr.free-electrons.com/source/kernel/sched/ sched.h? v = 3.3 # L43). –
Lưu ý rằng câu trả lời này chỉ liên quan đến các chủ đề được lên lịch với ưu tiên thời gian thực RR –