2012-05-09 5 views
0

Мне было интересно, существует ли, по крайней мере, Linux, системный вызов, который следит за набором дескрипторов файлов и сначала «обслуживает» первый дескриптор файла, который был готов для операция.Политика в мультиплексировании дескриптора файла Linux (select et al.)

Я работаю с select, и я не ожидаю, что select применяет политику FirstComeFirstServed для дескрипторов, которые смотрят, поскольку ее реализация должна быть небольшим изменением в опросе.

Возможно, я прошу обработчика событий, но я ничего не знаю о epoll за его простое существование.

Благодаря

+0

Зачем вам это поведение FCFS? –

+0

Пакет sniffing на нескольких интерфейсах. – ziu

+0

'select (2)' et alia уже показывают, какие FD требуют внимания. Как это отличается от того, что вам нужно? –

ответ

1

Все демультиплексоры событий (select/poll/epoll) сигнализируют все FDS, которые требуют внимания в данный момент (на основе часов наборы вы предоставили), нет никакой разницы, за исключением того, что epoll также могут быть использованы по-краевому.

В любой момент результирующий набор может содержать несколько FD (без какого-либо дополнительного заказа), поскольку вы работаете в многозадачной ОС, поэтому к моменту, когда ваш процесс будет назначен, может произойти несколько событий. Примечание: запуск ядра RT (Real-Time) с вашим процессом, установленным на высокий или приоритет в реальном времени, может помочь ...

+0

Когда у меня есть несколько FD-дисков, заказ «обслуживания» тогда зависит от порядка FD в наборе часов. Я прав ? – ziu

+0

В наборе часов заказа нет. Это ** набор **, в математическом смысле слова. В результате есть ** нет ** порядок либо ... вы решаете, какие FD для обслуживания в первую очередь. –

+0

Таким образом, я предполагаю, что FCFS не применяется, когда несколько дескрипторов оказываются готовыми (из-за планирования и т. Д.). – ziu