Что такое «медленное» устройство в контексте вызова ввода-вывода?Linux

Ответить
Anonymous
 Что такое «медленное» устройство в контексте вызова ввода-вывода?

Сообщение Anonymous »

В сигнале man 7 описаны определенные ограничения относительно момента вступления в силу флага SA_RESTART.

read(2), readv(2), write( 2), writev(2) и ioctl(2) вызываются на «медленных» устройствах. «Медленным» устройством является устройство, в котором вызов ввода-вывода может блокироваться на неопределенное время, например терминал, канал или сокет. Если вызов ввода-вывода на медленном устройстве уже передал некоторые данные к тому моменту, когда он был прерван обработчиком сигнала, то вызов вернет статус успеха (обычно количество переданных байтов). Обратите внимание, что (локальный) диск не является медленным устройством согласно этому определению; Операции ввода-вывода на дисковых устройствах не прерываются сигналами.

Мои вопросы
  • Согласно руководству терминальное устройство, канал и сокет являются медленными устройствами, а диск — нет. А как насчет сетевого устройства (eth, wlan и т. д.), графического процессора или ускорителя ASIC? Мне сложно судить по свойству "неопределенное время".
  • В каком файле ядра или функции это делается (т.е. различает ли ядро ​​медленный и немедленный режим) Как ядро ​​перезапускает операцию, когда она прерывается сигналом и т. д.) под капотом? Возможно, я смогу зайти туда и узнать подробности.
Спасибо.

Подробнее здесь: https://stackoverflow.com/questions/790 ... f-i-o-call
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Linux»