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

Асинхронный и синхронный ввод-вывод

W2K предоставляет два режима выполнения ввода-вывода — асинхронный и синхронный. Асинхронный ввод-вывод используется там, где можно оптими­зировать производительность приложения. При асинхронном вводе-выводе при­ложение инициирует операцию ввода-вывода, а затем может продолжить свою работу (во время выполнения этого запроса). При синхронном вводе-выводе при­ложение блокируется до завершения выполнения операции ввода-вывода.

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

  • Сигнал объекту устройства ядра. При завершении операции ввода-вывода устанавливается индикатор, связанный с объектом устройства. Поток, вы­звавший операцию ввода-вывода, может продолжить свое выполнение до тех пор, пока не достигнет точки, в которой он должен дождаться завер­шения выполнения операции ввода-вывода. В этой точке поток может находиться в состоянии ожидания до завершения операции ввода-вывода, после чего продолжить свою работу. Эта технология проста и легка в ис­пользовании, но не подходит для обработки множественных запросов вво­да-вывода. Например, если потоку необходимо выполнить множество одновременных операций над одним файлом (таких,' как чтение одной и за­пись другой части в файл), то при описанной методике поток будет не в состоянии отличить завершение операции чтения от завершения операции записи. Он будет просто знать о том, что завершена некоторая операция ввода-вывода для этого файла.

  • Сигнал объекту события ядра. Эта методика допускает одновременные за­просы ввода-вывода к единственному устройству или файлу. Для каждого запроса поток создает событие; позже поток может ожидать завершения од­ного из этих запросов (или завершения серии запросов).

  • Оповещение о вводе-выводе. При этом методе используется очередь, связанная с потоком и известная как очередь вызовов асинхронных процедур (asynchronous procedure call — АРС). Поток создает запросы ввода-вывода, а диспетчер ввода-вывода размещает результаты этих запросов в очереди АРС вызывающего потока.

  • Порты завершения ввода-вывода. Эта технология используется в W2K Server для оптимизации использования потоков. По сути, для использования доступен пул потоков, так что нет необходимости в создании нового по­тока для обработки нового запроса.

Программное обеспечение RAID

W2K поддерживает две разновидности конфигураций RAID, определенные в [MS96] следующим образом.

  • Аппаратный RAID. Раздельные физические диски скомбинированы кон­троллером в один или несколько логических дисков.

  • Программный RAID. Дисковое пространство, состоящее из несмежных уча­стков, скомбинировано в один или несколько логических разделов посредством отказоустойчивого программного драйвера диска (fault-tolerance disk driver — FTDISK).

В аппаратном RAID созданием и восстановлением резервной информации руководит интерфейс контроллера. Программный RAID, доступный в W2K Server, реализует функциональность RAID как часть операционной системы и может использоваться с любым множеством дисков. Программный RAID реали­зует уровни RAID 1 и RAID 5. При RAID 1 (зеркальное дублирование дисков) два диска, содержащие первичный и зеркальный разделы, могут располагаться как на одном, так и на разных контроллерах дисков (последний случай известен как дуплексирование диска).