Асинхронный ввод-вывод: различия между версиями

[непроверенная версия][непроверенная версия]
Содержимое удалено Содержимое добавлено
запрос источника, категория, викификация
Строка 41:
Доступны в [[BSD]] и [[POSIX]] Unix. Ввод/вывод используется асинхронно, и когда он будет завершен генерируется [[Сигналы_(UNIX)| сигнал]] ([[Прерывание]]). Как и в программировании ядра низкого уровня, для безопасного использования в пределах обработчика сигнала, имеющиеся возможности ограничены, и основной поток процесса можно было бы прервать почти в любой точке, в результате чего, в распоряжении обработчика сигнала имеются несогласованные структуры данных. Обработчик сигнала, как правило, не в состоянии инициировать дополнительные асинхронный ввод/вывод сам по себе.
 
Подход с ''СигналfvbСигналами'', хотя и относительно прост в реализации в ОС, приводит в прикладной программе к нежелательному грузу по разработке, связанному с прерываниями ядра операционной системы. Его худшей характеристикой является то, что ''каждый'' блокирующий (синхронный) системный вызов потенциально прерываем; программист должен обычно задействовать повторяющийся код при каждом вызове. {{citation needed|date=November 2013}}
 
=== Функции обратного вызова ===