6.2. Модели ввода-вывода

We use cookies. Read the Privacy and Cookie Policy

6.2. Модели ввода-вывода

Прежде чем начать описание функций select и poll, мы должны вернуться назад и уяснить основные различия между пятью моделями ввода-вывода, доступными нам в Unix:

? блокируемый ввод-вывод;

? неблокируемый ввод-вывод;

? мультиплексирование ввода-вывода (функции select и poll);

? ввод-вывод, управляемый сигналом (сигнал SIGIO);

? асинхронный ввод-вывод (функции POSIX aio_).

Возможно, вы захотите пропустить этот раздел при первом прочтении, а затем вернуться к нему по мере знакомства с различными моделями ввода-вывода, подробно рассматриваемыми в дальнейших главах.

Как вы увидите в примерах этого раздела, обычно различаются две фазы операции ввода:

1. Ожидание готовности данных.

2. Копирование данных от ядра процессу.

Первый шаг операции ввода на сокете обычно включает ожидание прихода данных по сети. Когда пакет приходит, он копируется в буфер внутри ядра. Второй шаг — копирование этих данных из буфера ядра в буфер приложения.

Данный текст является ознакомительным фрагментом.