Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
У. Столлингс ГЛАВА 11 Операции в-в и файлы.doc
Скачиваний:
53
Добавлен:
11.05.2015
Размер:
549.89 Кб
Скачать

Небуферизированный ввод-вывод

Небуферизированный ввод-вывод, представляющий собой простой DMA-обмен между устройством и областью памяти процесса, всегда оказывается са­мым быстрым методом выполнения ввода-вывода. Процесс, выполняющий Небу­феризированный ввод-вывод, блокируется в основной памяти и не может быть выгруженным. Тем самым снижается возможность выполнения выгрузки про­цесса на диск и, как следствие, уменьшается общая производительность систе­мы. Кроме того, устройство ввода-вывода оказывается связанным с процессом на все время выполнения данных, при этом оно недоступно для других процессов.

Устройства UNIX

UNIX распознает 5 типов устройств.

  • Дисководы.

  • Лентопротяжные устройства.

  • Терминалы.

  • Линии связи.

  • Принтеры.

В табл. 11.5 показаны типы ввода-вывода, соответствующие каждому виду устройств. Широко используемые UNIX дисководы являются блочно-ориентированными устройствами и обладают высокой пропускной способностью. Соответственно, ввод-вывод для этих устройств обычно либо Небуферизирован­ный, либо осуществляется через буфер кэша. Лентопротяжные устройства функционально подобны дисководам и используют похожие схемы ввода-вывода.

Таблица 11.5. Устройства ввоття-вывопя UNIX

Небуферизированный ввод-вывод Буфер кэша Очередь символов Дисковод х х

Лентопротяжноех х

устройство

Терминалых

Линии связих

Принтеры. х х

Поскольку обмен информацией у терминалов относительно медленный, они обычно используют очередь символов. Линии связи также требуют последова­тельной передачи байтов данных и лучше всего обрабатываются с использованием очередей символов. И, наконец, тип ввода-вывода для принтера, вообще гово­ря, будет зависеть от его скорости. Медленнодействующие принтеры обычно используют очередь символов, в то время как быстродействующий принтер может воспользоваться небуферизированным вводом-выводом. Для скоростных принте­ров в принципе возможно использование кэша. Однако в силу того что данные, поступающие на принтер, никогда не используются повторно, в использовании кэша нет никакого смысла.

11.9. Ввод-вывод в windows 2000

На рис. 11.16 показан диспетчер ввода-вывода операционной системы Win­dows 2000 (W2K). Диспетчер отвечает за весь ввод и вывод операционной систе­мы и обеспечивает однородный интерфейс, который может быть вызван драйве­ром любого типа.

Рис. 11.16. Диспетчер ввода-вывода Windows 2000

Основные модули ввода-вывода

Диспетчер ввода-вывода состоит из 4 модулей.

• Диспетчер кэша. Управляет кэшированием всей подсистемы ввода-вывода. Диспетчер кэша обеспечивает кэширование в основной памяти для всех файло­вых систем и сетевых компонентов. Он способен динамически увеличивать и уменьшать размер кэша, связанного с определенной деятельностью, в соответ­ствии с изменением объема доступной физической памяти. Для повышения об­щей производительности диспетчер кэша включает следующее.

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

  • Отложенное подтверждение. Похожая на отложенную запись функция для обработки транзакций. Вместо немедленной пометки транзакции как успешно завершенной, система кэширует информацию и выполняет ее фоновую запись позже.

  • Драйверы файловой системы. Диспетчер ввода-вывода рассматривает драй­вер как обычный драйвер устройства и направляет сообщения для томов со­ответствующему программному драйверу адаптера этого устройства.

  • Драйверы сети. W2K включает интегрированные сетевые возможности и поддержку распределенных приложений.

  • Драйверы аппаратных устройств. Эти драйверы обращаются к регистрам периферийных устройств через точки входа в динамически компонуемых библиотеках исполнительной системы W2K. Множество этих программ раз­работано для каждой поддерживаемой W2K платформы. Поскольку имена программ одинаковы для всех платформ, то исходные тексты драйверов устройств W2K переносимы на различные типы процессоров.