
- •Обслуживание ввода – вывода
- •Организация ввода-вывода
- •Структура контроллера устройства
- •Понятие драйвера пу
- •Синхронный ввод-вывод
- •Асинхронный ввод-вывод
- •Буферный ввод-вывод
- •3. Последовательность операций, выполняемых каналом ввода - вывода Опрос устройств и прерывания. Исключительные ситуации и системные вызовы
- •4. Канальная программа
- •7. Очередь запросов на ввод - ывывод Блокирующиеся, неблокирующиеся и асинхронные системные вызовы
- •8. Алгоритм обработки прерываний по вводу- выводу
- •9. Примеры управления вводом - выводом Алгоритмы планирования запросов к жесткому диску
- •Строение жесткого диска и параметры планирования
- •Алгоритм First Come First Served (fcfs)
- •Алгоритм Short Seek Time First (sstf)
- •Алгоритмы сканирования (scan, c-scan, look, c-look)
Синхронный ввод-вывод
При синхронном вводе-выводе отсутствует параллелизм между обработкой и передачей информации. Процессор занят в течение всего времени передачи. Хорошим примером может быть печать документов на принтере под управлением ОС с синхронным вводом-выводом. После отправки документа на печать пользователь вынужден ждать окончания обработки своего задания – заниматься во время печати полезной работой он не может.
Синхронный ввод-вывод был стандартным для большинства ОС (например, для MS-DOS), которые работали на компьютерах с низкой производительностью процессора, для которых актуальность параллельной обработки была невелика. Увеличить производительность системы с такой организацией можно достаточно простым способом – снабдить ПУ собственным буфером памяти, в котором могут размещаться данные для вывода или ввода. Например, принтер HP LJ4P оснащен собственной памятью в объеме 2 МБ. Передав необходимые для печати данные в эту память, пользовательская программа может продолжать свою работу.
Асинхронный ввод-вывод
Современные процессоры являются невероятно быстрыми по сравнению с теми, которые использовались в прошлом. Они гораздо быстрее большинства ПУ. Пока устройство обрабатывает один запрос, процессор может выполнить тысячи строк кода. В идеале у приложения должна быть возможность использовать процессор, пока устройство пересылает или принимает данные. Такой способ, при котором обработка и передача информации ведутся параллельно называют асинхронным вводом-выводом.
Асинхронный ввод-вывод имеет важное преимущество перед синхронным – возможность повышения скорости работы приложений. Пока устройство занято пересылкой данных, приложение продолжает выполнять другую работу. Кто не выполнял так называемую фоновую печать документов в Word из под Windows? Но в обмен на достоинства асинхронный ввод-вывод требует большего объема программирования, а следовательно кода и занимаемой ОС памяти.
Буферный ввод-вывод
Т.к. скорости работы процессора и ПУ сильно различаются, то для повышения производительности вычислительной системы применяют буферизацию ввода-вывода. Для этого выделяют специальную зону в памяти – буфер для улучшения взаимодействия ПУ с программами пользователей. Отделяя работу процессора от работы периферии, надеются уменьшить время его пребывания в неактивном состоянии. Программы пользователей и ПУ передают информацию в буфер или из него. Чем больше размер буфера, тем эффективнее отделение процессора от периферии. Стремление не занимать слишком много под памяти привело к размещению буферов либо на диске (спулинг или свопинг), либо в виртуальной памяти.
Общие принципы обслуживания буферного ввода-вывода описываются следующими спецификациями:
– при обмене с ПУ используются записи фиксированного размера;
– размер буфера фиксирован и может вместить целое количество записей;
– для программы пользователя обмен с буфером имитируется ОС как обмен с ПУ, следовательно, должен сохраняться порядок передачи информации на хранение и изъятие между буфером и ПУ и ни одна запись не должна потеряться;
– бесполезное ожидание для процессора и ПУ сведено к минимуму за счет того, что устройство ввода-вывода постоянно готовы к работе.