Реализация функций include/sched.h

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

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

2 ответа

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

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

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

Другие вопросы по тегам