- •Глава 11
- •Глава 12. Управление файлами
- •Глава 11 Управление вводом-выводом и дисковое планирование
- •11.1. Устройства ввода-вывода
- •11.2. Организация функций
- •11.3. Вопросы проектирования операционных систем
- •11.4 Буферизация операций ввода-вывода
- •11.5. Дисковое планирование
- •Выбор в соответствии с источником запроса
- •Выбор в соответствии с содержимым запроса
- •11.6. Raid
- •Буфер кэша
- •Очередь символов
- •Небуферизированный ввод-вывод
- •11.9. Ввод-вывод в windows 2000
- •Асинхронный и синхронный ввод-вывод
- •11.10. Резюме, ключевые термины и контрольные вопросы
- •Ключевые термины
- •Рекумендуемая литература
- •11.12. Задачи
- •Приложение. Дисковые устройства Магнитный диск
- •Оптическая память
Небуферизированный ввод-вывод
Небуферизированный ввод-вывод, представляющий собой простой DMA-обмен между устройством и областью памяти процесса, всегда оказывается самым быстрым методом выполнения ввода-вывода. Процесс, выполняющий Небуферизированный ввод-вывод, блокируется в основной памяти и не может быть выгруженным. Тем самым снижается возможность выполнения выгрузки процесса на диск и, как следствие, уменьшается общая производительность системы. Кроме того, устройство ввода-вывода оказывается связанным с процессом на все время выполнения данных, при этом оно недоступно для других процессов.
Устройства UNIX
UNIX распознает 5 типов устройств.
Дисководы.
Лентопротяжные устройства.
Терминалы.
Линии связи.
Принтеры.
В табл. 11.5 показаны типы ввода-вывода, соответствующие каждому виду устройств. Широко используемые UNIX дисководы являются блочно-ориентированными устройствами и обладают высокой пропускной способностью. Соответственно, ввод-вывод для этих устройств обычно либо Небуферизированный, либо осуществляется через буфер кэша. Лентопротяжные устройства функционально подобны дисководам и используют похожие схемы ввода-вывода.
Таблица 11.5. Устройства ввоття-вывопя UNIX
Небуферизированный ввод-вывод Буфер кэша Очередь символов Дисковод х х
Лентопротяжноех х
устройство
Терминалых
Линии связих
Принтеры. х х
Поскольку обмен информацией у терминалов относительно медленный, они обычно используют очередь символов. Линии связи также требуют последовательной передачи байтов данных и лучше всего обрабатываются с использованием очередей символов. И, наконец, тип ввода-вывода для принтера, вообще говоря, будет зависеть от его скорости. Медленнодействующие принтеры обычно используют очередь символов, в то время как быстродействующий принтер может воспользоваться небуферизированным вводом-выводом. Для скоростных принтеров в принципе возможно использование кэша. Однако в силу того что данные, поступающие на принтер, никогда не используются повторно, в использовании кэша нет никакого смысла.
11.9. Ввод-вывод в windows 2000
На рис. 11.16 показан диспетчер ввода-вывода операционной системы Windows 2000 (W2K). Диспетчер отвечает за весь ввод и вывод операционной системы и обеспечивает однородный интерфейс, который может быть вызван драйвером любого типа.
Рис. 11.16. Диспетчер ввода-вывода Windows 2000
Основные модули ввода-вывода
Диспетчер ввода-вывода состоит из 4 модулей.
• Диспетчер кэша. Управляет кэшированием всей подсистемы ввода-вывода. Диспетчер кэша обеспечивает кэширование в основной памяти для всех файловых систем и сетевых компонентов. Он способен динамически увеличивать и уменьшать размер кэша, связанного с определенной деятельностью, в соответствии с изменением объема доступной физической памяти. Для повышения общей производительности диспетчер кэша включает следующее.
Отложенная запись. Системные записи обновляются только в кэше, но не на диске. Позже, когда загрузка процессора станет меньшей, диспетчер кэша произведет запись внесенных изменений на диск. Если за это время будут выполнены дополнительные обновления, то на диск будет записана последняя версия.
Отложенное подтверждение. Похожая на отложенную запись функция для обработки транзакций. Вместо немедленной пометки транзакции как успешно завершенной, система кэширует информацию и выполняет ее фоновую запись позже.
Драйверы файловой системы. Диспетчер ввода-вывода рассматривает драйвер как обычный драйвер устройства и направляет сообщения для томов соответствующему программному драйверу адаптера этого устройства.
Драйверы сети. W2K включает интегрированные сетевые возможности и поддержку распределенных приложений.
Драйверы аппаратных устройств. Эти драйверы обращаются к регистрам периферийных устройств через точки входа в динамически компонуемых библиотеках исполнительной системы W2K. Множество этих программ разработано для каждой поддерживаемой W2K платформы. Поскольку имена программ одинаковы для всех платформ, то исходные тексты драйверов устройств W2K переносимы на различные типы процессоров.