В. Столлингс - Операционные системы (1114679), страница 111
Текст из файла (страница 111)
Управление вводом-вынодом и дисковое плаыирование 57 Новый раздел Старый Раздел МН0 а1 БЕС Средний раздел Старий раздел ° 4 ° 15 20 б~ Использование трек разделов Рис. 11.11. Замещение, основанное на насвтотне обращений Внесение еще одного улучшения в алгоритм позволяет решить зту проблему. Разобьем стек на три раздела — новый, средний и старый (рис. 11.11,б). Как и прежде, счетчик обращений у блоков нового раздела не увеличивается. Для замещения, как и ранее, выбираются только блоки из старого раздела.
Если средний раздел имеет достаточно большой размер, то зто позволяет блокам с относительно частыми обращениями успеть увеличить значение счетчика до того, как они могут оказаться замещены. При имитационном моделировании авторы обнаружили, что такая усовершенствованная стратегия работает значительно лучше, чем простой алгоритм БИЛ или 1 ГУ. Независимо от конкретной стратегии замещение может выполняться цо требованию или предварительно. В первом случае сектор замещается только тогда, когда требуется свободный слот; при втором подходе одновременно освобождается несколько слотов. Обоснование такого подхода заключается в необходимости записи секторов из кэша на диск. Если сектор, загруженный в кэш, использовался только для чтения, то нет необходимости в его записи на диск; однако если содержимое сектора было изменено, то перед замещением сектор необходимо записать на диск.
В этом случае имеет смысл кластеризация для достижения минимального времени поиска. Анализ проектирования В данном случае применимы все рассуждения из приложения А к главе 1, '"Обзор компьютерных систем". Проблема производительности каша сводится к вопросу о том, можно ли достичь заданной результативности поиска.
Ответ на этот вопрос зависит от локализации дисковых обращений, алгоритма замещения и других факторов проектирования. В первую очередь результативность поиска, ,:.,»,; .. Чаоь. Ь„рцарециж,вводавицйвода и Файща конечно, зависит от размера дискового кэша. На рис. 11.12 приведены итоги ря да исследований с использованием ЫШ (одно для операционной системы Ц~щ~ Ф работающей на платформе Ъ'АХ ~011БТЩ, а два других — для операционных систем мэйнфреймов 1ВМ ~БМ1Т851). На рис.
11.13 показаны результаты имита ционного моделирования алгоритма замещения на основе частоты обращений. Сравнение этих двух графиков указывает на одну из опасностей такой оценки эффективности. Из графиков следует, что 1 Е11 выигрывает у алгоритма замеще ния на основе частоты обращений. Однако при сравнении идентичных последо вательностей обращений с использованием одной и той же структуры каша выясняется, что алгоритм замещения с учетом частоты обращений оказывается лучшим. Следовательно, влияние на достигаемую производительность, кроме прочего, оказывает конкретная последовательность обращений.
Размер каша 1Мбайт) Рис. 11.12. Производительностнь дискового каига при использовании 1ЯУ Глава 11. Упрввнение'вводомгвыводом и дисковое планирование 661 'кэ$э-$абпица списка ул рсрс$аа Бу$рер каша ! ! ! $ ! ! $ $ ! ! $крсйлас!$, Блока Устройства БМ1Х БХ1Х распознает 5 типов устройств. а Дисководы.
в Лентопротяжные устройства. ° Терминалы. ! ! $ $ $ $ ! $ Линии связи. Рис. 11.15. Оргаиизаиия буфера каша а 111$$1Х дисковод Лентопротяжное устройство Терминалы Линки связи Принтеры 1$ер в цепочке. Указатель, связанный с каждым буфером, указывает на следуюгй буфер в цепочке.
Следовательно, для всех обращений вида (устройскпво4Ф, э!си), соответствующих одной записи хэш-таблицы, искомый блок окажется в це$ке этой записи поля хэш-таблицы, если, конечно, данный блок имеется в кэше. ким образом, при использовании хэш-таблицы длиной Ю длительность поиска в ше снижается в М раз. Для замещения блоков используется алгоритм 1.В1.'. После того как диско- ' вому блоку выделяется буфер, он не может быть использован для другого блока; до тех пор, пока все остальные буфера не окажутся занятыми, причем позднее Рассматриваемого. Список свободных слотов сохраняет этот порядок. Очередь символов Кэш способен эффективно обслуживать такие блочно-ориентированные Уст-' Ройства, как диск и магнитная лента.
Для символьно-ориентированных уст":: ройств, таких, как терминалы и принтеры, требуется иная форма буферизации.' Информация либо записывается в очередь символов устройством ввода-вывод» ие считывается процессом, либо записывается процессом и считывается устрой Часть 5. Операции ввода-вывода и ф вом. В обоих случаях используется модель производителя'потребителя / я, изучавшаяся нами в главе 5, "Параллельные вычисления: взаимоисключения я и многозадачность'". Следовательно, символы из очереди могут быть считаны ы только один раз: прочитанный из очереди символ уничтожается.
В этом и состо ит отличие от буфера каша, где процедура чтения может выполняться неоднократно и следовательно, применима модель читателей/писателей (которая также р е рассматривалась в главе 5). Небуферизированный ввод-вывод Небуферизированный ввод-вывод, представляющий собой простой 1И$1А- обмен между устройством и областью памяти процесса, всегда оказывается са мым быстрым методом выполнения ввода-вывода. Процесс, выполняющий небуФеризированный ввод-вывод, блокируется в основной памяти и не может быть выгруженным. Тем самым снижается возможность выполнения выгрузки процесса на диск и, как следствие, уменьшается общая производительность систе мы. Кроме того, устройство ввода-вывода оказывается связанным с процессом на все время выполнения данных, при этом оно недоступно для других процессов.
° Принтеры. В табл. 11.5 показаны типы ввода-вывода, соответствующие каждому виду устройств. Широко используемые 11Ы1Х дисководы являются блочноориентированными устройствами и обладают высокой пропускной способностью. Соответственно, ввод-вывод для этих устройств обычно либо небуферизированный, либо осуществляется через буфер каша. Лентопротяжные устройства Функционально подобны дисководам и используют похожие схемы ввода-вывода. Таблица 11.5.
Устройства ввода-вывода 1)Х1Х 1$ебуферизированный ввод-вывод Буфер кзша Очередь символов Поскольку обмен информацией у терминалов относительно медленный, они обычн чно используют очередь символов. Линии связи также требуют последовательной передачи байтов данных и лучше всего обрабатываются с использовани- Глава 11. Управление вводом-выводом и дисковое планирование 585 а очередей символов. И, наконец, тип ввода-вывода для принтера, вообще гово- а, будет зависеть от его скорости. Медленнодействующие принтеры обычно исользуют очередь символов, в то время как быстродействующий принтер может эспользоваться небуферизированным вводом-выводом. Для скоростных принтеов в принципе возможно использование кэша.
Однако в силу того что данные, оступающие на принтер, никогда не используются повторно, в использовании эша нет никакого смысла. и 9 ввод-вывод в ж1хво%8 2000 ' ' На рис. 11.1б показан диспетчер ввода-вывода операционной системы ЪЧ .оччэ 2ООО (%'2К). Диспетчер отвечает за весь ввод и вывод операционной си 1ы и обеспечивает однородный интерфейс, который может быть вызван драй юм любого типа. Рис. 11 16.
Диспетчер ввода вывода И'~пе(оиа 2000 Основные модули ввода-вывода Диспетчер ввода-вывода состоит из 4 модулей. Диспетчер кэша. Управляет кэшированием всей подсистемы ввода-вы Диспетчер каша обеспечивает кэширование в основной памяти для всех Файл вых систем и сетевых компонентов. Он способен динамически увеличива уменьшать размер каша, связанного с определенной деятельностью, в соо ствии с изменением объема доступной физической памяти.
Для повышения щей производительности диспетчер кэша включает следующее. ° Отложенная запись. Системные записи обновляются только в кэше, на диске. Позже, когда загрузка процессора станет меньшей, дисп кэша произведет запись внесенных изменений на диск. Если за это в будут выполнены дополнительные обновления, то на диск будет запи последняя версия. ~ Отложенное подтверждение.
Похожая на отложенную запись фун для обработки транзакций. Вместо немедленной пометки транзакции успешно завершенной, система кэширует информацию и выпо полняет е фоновую запись позже. е Драйверы файловой системы. Диспетчер ввода-вывода рассматрива вает драй вер как обычный драйвер устройства и направляет сообщения для томов со ответствующему программному драйверу адаптера этого устройства.
е Драйверы сети. Ж2К включает интегрированные сетевые возможн ж ности поддержку распределенных приложений. е Драйверы аппаратных устройств. Эти драйверы обращаются к регистраь периферийных устройств через точки входа в динамически компонуемьп библиотеках исполнительной системы 'К2К. Множество этих программ амм раз работано для каждой поддерживаемой чЧ2К платформы. Поскольку имещ программ одинаковы для всех платформ, то исходные тексты драйверо~ устройств Ж2К переносимы на различные типы процессоров. Асинхронный и синхронный ввод-вывод Ъч'2К предоставляет два режима выполнения ввода-вывода — асинхронными и синхронный.
Асинхронный ввод-вывод используется там, где можно оптими зировать производительность приложения. При асинхронном вводе-выводе при ложение инициирует операцию ввода-вывода, а затем может продолжить свок работу (во время выполнения этого запроса). При синхронном вводе-выводе при ложение блокируется до завершения выполнения операции ввода-вывода, С точки зрения вызывающего потока асинхронный ввод-вывод более эффек тизен, поскольку позволяет продолжать выполнение, в то время как операци~ ввода-вывода ставится диспетчером ввода-вывода в очередь и впоследствии вы полняется.
Однако приложение, использующее асинхронный ввод-вывод, требуе механизма определения завершенности этой операции. Ж2К предоставляет че тыре различных способа извещения о завершении ввода-вывода. ° Сигнал объекту устройства ядра. При завершении операции ввода-вывод~ устанавливается индикатор, связанный с объектом устройства.