LINUX.ORG.RU

Как исключить переключение потоков?


0

1

Как написать программу, которая выполняется монопольно? Это нужно для тестирования быстродействия.

Ну, например, memtest очень похож на то что надо, но мне не ясно, в каком режиме он работает.

В идеале я себе это представляю как некий бинарник, загружаемый grub'ом, потом, видимо, переходящий в защищенный режим (потому что ни bios ни grub этого не делают AFAIR).

Можно ли собрать ядро, чтобы оно запускало init таким образом? Что для этого надо сделать?

Как создавать такой init (какие тулзы, какие ключи, может где есть статья)

А включить тестируемый код в модуль ядра и запретить прерывания на время тестирования не пойдет ?

ilovewindows ★★★★★
()

Сначала разберитесь насколько вам действительно нужна абсолютная монопольность. Обычно достаточно загрузиться в single user mode, выключить swap и сеть и убедиться что ничто не общается с диском.

slovazap ★★★★★
()

Ну если включить одну из риалтаймовых политик шедулирования то процессор у тебя будет отбиратся только на обработку IRQ. А если это сделать из модуля и запретить прерывания то процессор у тебя сможет забрать только jtag. Надеюсь ты знаешь что такое jtag ...

cvv ★★★★★
()
Ответ на: комментарий от aragorb

Нет, полноценная часть ядра. Есть инструкция процессора (rdtsc) возвращает количество тактов со времени последнего сброса, запретить прерывания, вызвать rdtsc в начале и конце кода. Но вопрос тоже , а надо ?

ilovewindows ★★★★★
()
Ответ на: комментарий от ilovewindows

А где написано как пишут шедулеры для Linux?

Идея такая - пусть шедулер запускает по процессу на ядро и не переключает.

Идея в том, чтобы использовать код ядра для управления страницами, свопом.

Пусть даже будут прерывания (если чисто время работы процессов можно учитывать средствами ядра)

aragorb
() автор топика
Ответ на: комментарий от ilovewindows

Есть инструкция процессора (rdtsc) возвращает количество тактов

встречный вопрос - сколько занимает такт ? Сколько инструкций и каких делается за «такт»..что есть такт процессора и при чем тут бы быстродействие ??

MKuznetsov ★★★★★
()

memtest очень похож на то что надо, но мне не ясно, в каком режиме он работает.

посмотри исходники, чо.

Идея в том, чтобы использовать код ядра для управления страницами, свопом.

зачем тебе ядро вообще? ты в начале правильно думал, загружаешь грубом какую-нибудь самописную фигню, которая отключает прерывания и рулит страницами сама без всяких линуксов. ну разве что как пример…

nanoolinux ★★★★
()
Ответ на: комментарий от MKuznetsov

Во-первых, без разницы сколько занимает такт,если программа стала выполняться быстрее в тактах,то она стала быстрее и в секундах. Во-вторых,в любом справочнике по ассемблеру приведены данные сколько в тактах выполняется команда.

ilovewindows ★★★★★
()
Ответ на: комментарий от aragorb

Наверное надо разделить опыты над свопом ОС,который скажем мягко непредсказуемо работает, и тестирование быстродействия своих участков кода. Смысл сваливания всего в кучу?

ilovewindows ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.