Лекция: Независимое от устройств программное обеспечение ввода-вывода

Функции независимого от устройств программного обеспечения ввода-вывода:

  • Единообразный интерфейс для драйверов устройств,
  • Буферизация
  • Сообщения об ошибках
  • Захват и освобождение выделенных устройств(блокирование)
  • Размер блока, не зависящий от устройств

Единообразный интерфейс для драйверов устройств

Кроме интерфейса, в него также входят проблемы,

  • именование устройств
  • защита устройств

Буферизация

Рассмотрим несколько примеров буферизации.

 

 

a) Не буферизованный ввод — после ввода каждого символа происходит прерывание

b) Буферизация в пространстве пользователя — приходится держать загруженными необходимые страницы памяти в физической памяти.

c) Буферизация в ядре с копированием в пространство пользователя — страница загружается только когда буфер ядра полный, данные из буфера ядра в буфер пользователя копируется за одну операцию. Проблема может возникнуть, когда буфер ядра полный, а страница буфера пользователя еще не загружена.

d) Двойная буферизация в ядре — если один буфер заполнен, и пока он выгружается, символы пишутся во второй буфер.

 

Сообщения об ошибках

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

 

Захват и освобождение выделенных устройств

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

 

Независимый от устройств размер блока

Размер блока должен быть одинаковый для верхних уровней, и не зависеть от устройств (размеров секторов на диске).

 

 

еще рефераты
Еще работы по информатике