реализация функций include / sched.h - PullRequest
0 голосов
/ 14 декабря 2010

Я хотел изучить, как вручную назначать потоки конкретным ядрам на многоядерном компьютере.Я обнаружил, что include / sched.h определяет некоторые макросы и функции (sched_setaffinity и т. Д.), Которые могут помочь в этом.Тем не менее, функции extern'ed, и я не могу найти их определения.Эти функции реализованы где-нибудь?Если да, где и возможно ли переопределить реализацию по умолчанию?Если нет, как я могу их реализовать?

И будет ли добавление новой реализации означать, что мне придется перекомпилировать ядро ​​Linux?

Ответы [ 2 ]

0 голосов
/ 14 декабря 2010

Код для sched_setaffinity находится в ядре. Заголовочный файл просто предоставляет прототип для вызова, а библиотека, которая его удовлетворяет, просто перенаправляет вызов в систему.

0 голосов
/ 14 декабря 2010

Проверьте код для BFS , который должен показать вам, как реализовать свой собственный планировщик ЦП.

// edit yes Добавление нового планировщика подразумевает, что вам придется перекомпилировать ядро, однаковы всегда можете просто протестировать его с помощью qemu -kernel /path/to/new/kerenl -initrd something, чтобы убедиться, что ваш код не падает сразу же, прежде чем тестировать его на реальной машине.

...