2012-01-11 2 views
1

Теперь я ищу фрагмент исходного кода, в котором говорится об использовании ядра во FreeBSD.preemption in FreeBSD

В ядре Linux есть c-исходный файл с именем «sched.c», в котором используется макрос set_current_state(), чтобы установить состояние процесса (TASK_RUNNING, TASK_INTERRUPTIBLE или что-то еще). Эти макросы определены в «sched.h». Не могли бы вы рассказать мне соответствующий исходный файл (ы) (который имеет определение этих макросов, если они существуют в FreeBSD) в исходном дереве ядра FreeBSD?

ответ

3

Релевантные файлы: src/sys/kern/sched_4bsd.c (планировщик 4BSD) и src/sys/kern/sched_ule.c (планировщик ULE). Но нет макроса TASK_ * или set_current_state(), поскольку FreeBSD и Linux используют разные планировщики.

Вам может понадобиться прочитать один из них (я рекомендую 4BSD, так как это проще), чтобы найти то, что вы заинтересованы в.

Кстати, там был проект BFS планировщиком порта Linux», код есть http://rudot.blog.com/. Вы можете найти это полезным.

+0

Привет, благодарю вас за информацию и извините за поздний ответ. Проект BFS также очень интересен для меня. – akry

+0

Патч поддерживается на [github] (https://github.com/olevole/fbfs) и отлично работает для меня с использованием 10.1-rc/amd64. С уважением – jitter