Это не совсем ответ на ваш вопрос, но, надеюсь, он объясняет, как работает этот процесс. Поскольку вы не указали, какое оборудование вы используете для преобразования AD, возможно, это самое лучшее, что можно сделать:
С аудиооборудованием, которое сталкивается с той же проблемой, решение исходит от аппаратного обеспечения и драйверов, работающих вместе : всякий раз, когда аппаратное обеспечение заполняет достаточно буфера, оно сигнализирует драйверу (через прерывание или какой-то аналогичный механизм). В некоторых случаях также возможно, что драйвер опробовал аппаратное обеспечение или что-то в этом роде, но это менее эффективное решение, и я не уверен, что кто-то делает это таким образом (возможно, на более дешевом оборудовании?). Оттуда процесс драйвера может вызывать право в процессе конечного пользователя или он может просто отметить соответствующий процесс конечного пользователя как «runnable». В любом случае, управление должно быть передано процессу конечного пользователя.
Для этого процесс конечного пользователя должен работать с более высоким приоритетом, чем что-либо еще, занимающее центральные процессоры в этот момент. Чтобы гарантировать, что ваш процесс всегда будет первым в очереди, вы можете запустить его с высоким приоритетом, с соответствующими разрешениями, вы можете даже выполнить очень высокие приоритеты.
Время, затрачиваемое на то, что процесс верхнего приоритета переходит от запуска к запуску, иногда называют «задержкой» ОС, хотя я уверен, что существует более конкретный технический термин. Задержка Linux составляет порядка 1 мс, но поскольку она не является «жесткой» оперативной ОС, это не гарантия. Если это слишком долго, чтобы обрабатывать ваши куски данных, вам может понадобиться загрузить некоторые из них в ваш драйвер.