начал испытывать некоторые потоки реального времени. Я просто послал свою нить спать, позвонив по телефону (ВРЕМЯ). Это гарантирует, что нить будет спать, по крайней мере, ВРЕМЯ. Я теперь измерял с TIME = 10ms и получил гауссовую функцию с ожидаемым значением μ = 10,1ms Второе измерение с TIME = 1us: я получаю большой пик при 4us.usleep busy waiting
Так почему же второе измерение не гауссово? Моя первая идея заключалась в том, что поток действительно не спит, но вместо этого он оживает. Как указано here (old beahavior), ожидание не занято. Как объяснить две кривые?
Из интереса, на какой ОС вы работаете, чтобы получить такое разрешение на системных таймерах? Лучшее, что я видел, это 4ms, а не 4us ... :) –
Какая базовая система вы используете для потоков в реальном времени? Вы видели [RTAI] (https://www.rtai.org/)? – Shahbaz
это xilinx fpga (PPC440) с ядром linux 3.0 – user1264182