2014-08-29 21 views
6

Một luồng (hoặc tác vụ) sẽ mất ưu tiên động bằng cách sử dụng rất nhiều CPU và được ưu tiên bằng cách sử dụng ít CPU hơn. Làm thế nào chính xác là những ưu tiên tính cho n đề (sử dụng chính sách lập lịch bình thường SCHED_OTHER)?Ưu tiên động của các chuỗi được tính toán trong Linux 2.6.x như thế nào?

+4

Trình lập lịch biểu hoàn toàn hợp lý (CFS), còn được gọi là SCHED_NORMAL hoặc SCHED_OTHER, được ghi lại [ở đây] (https://github.com/torvalds/linux/blob/master/Documentation/ scheduler/sched-design-CFS.txt) và được triển khai [ở đây] (https://github.com/torvalds/linux/blob/master/kernel/sched/fair.c). – indiv

Trả lời

1

Trích dẫn từ this

Linux 2.6.8.1 scheduler thưởng tôi nhiệm vụ/O-bound và trừng phạt nhiệm vụ CPU-bound bằng cách thêm hoặc trừ từ ưu tiên tĩnh một nhiệm vụ. Mức độ ưu tiên được điều chỉnh được gọi là ưu tiên động của công việc, và có thể truy cập được thông qua biến số prio của công việc (ví dụ: p-> prio, nơi p là một tác vụ). Nếu tác vụ tương tác (thuật ngữ của người lập lịch cho I/O bị ràng buộc), mức độ ưu tiên của nó được tăng lên. Nếu nó là một con heo CPU, nó sẽ nhận được một hình phạt . Trong bộ lập lịch 2.6.8.1 của Linux, tiền thưởng ưu tiên tối đa là 5 và hình phạt ưu tiên tối đa là 5. Vì bộ lập lịch sử dụng tiền thưởng và tiền phạt , điều chỉnh ưu tiên tĩnh của công việc là được tôn trọng. Một hog CPU nhẹ với giá trị tốt đẹp là -2 có thể có mức ưu tiên động là của 0, giống như một tác vụ không phải là CPU hay I/O .

Tôi cảm thấy đây là giải thích hợp lý. Mức độ ưu tiên được tính dựa trên việc đó là một chuỗi bị ràng buộc CPU hoặc một I/O bị ràng buộc. Và về những gì bạn đã đề cập trong câu hỏi, rằng gain priority by using less of CPU là ưu tiên được ưu tiên bằng cách tương tác (I/O bị ràng buộc). Tôi hy vọng đoạn trích này sẽ trả lời câu hỏi của bạn ...

Các vấn đề liên quan