Планирование на самом деле не проблема.Если процесс или поток ожидает на select()
или recvmsg()
, он должен быть мгновенно разбужен входящей дейтаграммой.(Отправитель отказывается от своего процессорного среза, когда он вызывает sendmsg()
, ядро заставляет его передать сообщение через обратную петлю, тогда получатель будет выше, чем отправитель в планировщике.)
Задержка черезИнтерфейс обратной связи будет меньше миллисекунды при условии, что получатель готов к приему.
Большая часть вашей задержки будет зависеть от того, что делает каждый получатель между чтением пакетов из сокета.Например, если получателю требуется 0,5 миллисекунды обработки процессорного времени между квитанциями, то ваша задержка составит около 0,5 миллисекунды.Но если вы используете 3 таких приемника на ядро процессора, то ваша задержка не может быть меньше 1,5 миллисекунд.