Главная Случайная страница


Полезное:

Как сделать разговор полезным и приятным Как сделать объемную звезду своими руками Как сделать то, что делать не хочется? Как сделать погремушку Как сделать так чтобы женщины сами знакомились с вами Как сделать идею коммерческой Как сделать хорошую растяжку ног? Как сделать наш разум здоровым? Как сделать, чтобы люди обманывали меньше Вопрос 4. Как сделать так, чтобы вас уважали и ценили? Как сделать лучше себе и другим людям Как сделать свидание интересным?


Категории:

АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника






Задачи программного обеспечения ввода/вывода





Ключевая концепция разработки программного обеспечения ввода/вывода известна как независимость от устройств. Эта концепция означает возможность написания программ, способных получать доступ к любому устройству ввода/вывода без предварительного указания конкретного устройства. Соответственно, программа, читающая данные из входного файла, должна с одинаковым успехом работать с файлом на дискете, жестком диске или компакт-диске. Причем без каких-либо изменений в программе.

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

Другим важным аспектом программного обеспечения ввода/вывода является обработка ошибок. Ошибки должны обрабатываться как можно ближе к аппаратуре. Если контроллер обнаружил ошибку чтения, он должен попытаться по возможности исправить эту ошибку сам.

Еще один ключевой вопрос – способ переноса данных: синхронный (блокирующий) против асинхронного (управляемого прерываниями). Большинство операций ввода/вывода на физическом уровне являются асинхронными – центральный процессор запускает передачу данных и забывает о ней, пока не сгенерируется прерывание.

Говоря о программном обеспечении ввода/вывода, нельзя обойти вниманием буферизацию. Часто данные, поступающие с устройства, не могут быть сохранены сразу там, куда они в конечном итоге направляются. Буферизация подразумевает копирование данных в значительных количествах, что часто является основным фактором снижения производительности операции ввода/вывода.

И последнее – это понятие выделенных устройств и устройств коллективного использования. С некоторыми устройствами ввода/вывода, такими как диски, может одновременно работать большое количество пользователей. При этом не должно возникать проблем, когда несколько пользователей одновременно откроют файлы на одном и том же диске. Другие устройства, такие как накопители на магнитной ленте, должны предоставляться в монопольное владение одному пользователю, пока он не завершит свою работу с этим устройством. Если два или более пользователей одновременно станут писать вперемешку блоки на одну ленту, ничего хорошего не получится. Введение понятия выделенных (монопольно используемых) устройств также привносит спектр проблем, таких как взаимоблокировки. Тем не мене операционная система обязана управлять как устройствами общего доступа, так и выделенными устройствами и преодолевать различные потенциальные проблемы самостоятельно.

Эти задачи решаются путем разбиения программного обеспечения ввода/вывода на четыре уровня.

  1. Обработчики прерываний (нижний уровень).
  2. Драйверы устройств.
  3. Независимый от аппаратуры код операционной системы.
  4. Пользовательские программы (верхний уровень).

 







Date: 2016-05-25; view: 590; Нарушение авторских прав



mydocx.ru - 2015-2024 year. (0.005 sec.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав - Пожаловаться на публикацию