Функция ввода / вывода делегирует свою работу ядру ОС.Как правило, эти операции являются асинхронными: ОС инструктирует периферийное устройство выполнить операцию и в конечном итоге получает от устройства прерывание, указывающее на успех или сбой.В то же время ОС выполняет много других функций, в том числе позволяет запускать пользовательские программы.
Когда операция ввода-вывода блокируется для пользователя, это означает, что ОС не будет планировать время ЦП для этого пользователя.процесс, пока он не получил прерывание завершения от оборудования.Затем выглядит так, как будто функция вернулась только после завершения.На самом деле он готов вернуться немедленно.Только ОС поддерживает пользовательский процесс в состоянии ожидания до тех пор, пока не будет завершен базовый аппаратный запрос.
Когда операция ввода-вывода не блокируется для пользователя, ОС позволяет немедленно продолжить процесс пользователя.после того, как он инициировал соответствующую аппаратную операцию.Затем необходимо установить механизм уведомления для пользовательского процесса, чтобы получать уведомления, когда операция завершается.Подробная информация о том, как это делается, варьируется от операционной системы к операционной системе.
Приложение:
В Posix неблокирование означает, что если запрос не может быть выполнен немедленно (например, выхотите что-то прочитать, но данные еще не получены), тогда вы получите статус ошибки.Затем вы можете повторно выполнить запрос позже.