Цитата(Caxec @ Oct 1 2012, 11:27)

В общем, при записи буфера время выполнения функции write около 5 мс., но периодически, примерно раз в секунду, функция write висит в течении 300мс, соответственно пропускается куча буферов. Я так понял, что зависон происходит в момент слива кэша файловой системы на диск. Да, файловая система - fat32. Почему сливает так долго, можно ли как-то ускорить процесс?
1. Здесь не лучшее место спрашивать конкретные вопросы по QNX. Спрашивайте на qnx.org.ru, например. Здесь никто в QNX толком не понимает...
2. Кстати, и QNX какой: 4 или 6?
3. В QNX не особенно эффективный драйвер IDE. Кроме того, он сильно зависит от режима, как они называют: DMA / без DMA. Смотрите внимательно.
Вы хотите достаточно высокую скорость: 600Кб. * 30 - 18Mb/sec. - это не так мало.
За 120*10**3/18=6000 sec. < 2 час. - вы зальёте весь свой HDD полностью. И что дальше с ним будете делать?
P.S. могу предположить, что здесь имеет место плохо продуманная архитектура задачи.
4. Для QNX fat32 совершенно чужеродная система. Используйте родные qnx4/qnx6 файловую систему.
5. Попробуйте взять под свой контроль сброс буферов на диск: сопровожайте каждый write операцией sync.
6. Вынесите всё, что касается write в отдельный процесс/поток с пониженным приоритетом ... и не будет у вас "пропускается куча буферов"(с).