Что находится в простых словах, блокирующих IO и неблокирующих IO?

Другая вещь, которую необходимо рассмотреть, состоит в том, представляет ли стрелка текущее направление вида или направление вида, которое будет применено, если Вы нажимаете на стрелку. (Не всегда очевидный из содержания таблицы как могут быть стрелки на каждом столбце)

Извините для добавления к беспорядку, но необходимо рассмотреть это.

Разъяснение по поводу этой передней стороны может быть частично достигнуто путем добавления соответственно сформулированной подсказки к стрелке.

9
задан mjv 26 September 2009 в 08:11
поделиться

3 ответа

Блокировка ввода-вывода означает, что выполнение программы приостанавливается на время выполнения ввода-вывода. Таким образом, программа ожидает завершения ввода-вывода, а затем продолжает выполнение. При неблокирующем вводе-выводе программа может продолжаться во время операций ввода-вывода.

9
ответ дан 4 December 2019 в 15:22
поделиться

просто сказал ... неблокирующий ввод-вывод (асинхронный) позволяет выполнять другие операции, пока он делает свое дело, а блокирующий ввод-вывод блокирует другие операции

0
ответ дан 4 December 2019 в 15:22
поделиться

Это проблема параллелизма. В обычном случае, после того как ядро ​​ОС получает операцию ввода-вывода от пользовательской программы, эта программа не запускается снова, пока операция ввода-вывода не завершится. Тем временем обычно планируются другие программы.

Это решает множество мелких проблем. Например, как программа узнает, сколько байтов было прочитано, если ввод-вывод не завершен, когда возвращается read (2) ? Как он узнает, может ли он повторно использовать буфер write (2) , если операция все еще выполняется, когда write (2) возвращается? Очевидно, что для истинно асинхронного ввода-вывода необходим более сложный интерфейс.

В конечном итоге все сводится к:

  1. Ввод-вывод происходит синхронно по отношению к программе, путем блокировки программы до завершения ввода-вывода
  2. ] Ввод / вывод просто запланирован системным вызовом, и существует некоторый механизм уведомления для сообщения реального результата
  3. . Существует компромисс, когда операции ввода-вывода просто терпят неудачу, если они не могут быть выполнены немедленно. Это наиболее распространенное использование «неблокирующего» ввода-вывода на практике.

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

4
ответ дан 4 December 2019 в 15:22
поделиться
Другие вопросы по тегам:

Похожие вопросы: