Дисковый файл Linux AIO

Согласно в этом руководстве асинхронный дисковый файл io может быть легко реализован с помощью AIO в Linux, по крайней мере, из точки программирования / api - зрения.Но до и после этого урока я прочитал много сообщений и статей о том, что это либо невозможно, либо вам следует использовать libevent с патчем и многими другими проблемами. Еще одна вещь - цикл, в котором я должен был дождаться сигнала, но на основе этого руководства я могу использовать механизм обратного вызова, который, очевидно, значительно упрощает использование AIO.

Итак, я не являюсь Linux-программистом, хотя и далеко не всегда. Я просто хотел найти простой способ поддержки асинхронного дискового файла io в Linux, изучить его и добавить в библиотеку async disk io, которая мне нужна для личного пользования. проект. В настоящее время я использую перекрывающиеся io для Windows и рабочие потоки io на платформах, отличных от Windows. Поскольку многопоточное решение может быть сложным, я хотел заменить его в Linux на AIO.

Итак, что не так с AIO, как описано в этом руководстве? Это производительность? Есть ли ограничение на операции, которые можно выполнять с помощью AIO?

p.s. Меня не волнует, не будет ли код переносимым на другие POSIX-совместимые платформы, если он работает в основных дистрибутивах Linux. И все, что меня волнует, это обычный дисковый файл io.

Спасибо.

9
задан p00ya00 15 December 2011 в 00:30
поделиться