Раздел 6. Управление внешней памятью 6.1. Общие принципы управления внешней памятью

advertisement
Раздел 6. Управление внешней памятью
6.1. Общие принципы управления внешней памятью
6.1.1. Причины необходимости управления внешней памятью
Управление внешней памятью, под которой понимаются дисковые устройства, относится к шестому
уровню иерархической модели операционной среды, следующему за уровнем управления процессами.
Такое соотношение уровней имеет место потому, что управление дисковыми устройствами
осуществляется элементарными процессами, выполняющимися и взаимодействующими между собой в полном
соответствие с принципами уровня 5.
Мы не будем подробно останавливаться на управлении дисковыми устройствами, полагая, что этот
материал больше относится к специалистам по вычислительной техники.
Кратко же остановимся на нем по двум причинам.
1. Чтобы не игнорировать уровень модели операционной среды и сохранить системность ее описания;
2. Чтобы дать общее представление о проблемах, возникающих при управлении дисковыми
устройствами, и методах их решения.
Отметим также, что в многозадачных системах, где достаточно вероятны одновременные запросы
нескольких процессов к одному дисковому устройству, выбор рациональных алгоритмов управления
дисковыми устройствами может благоприятно повлиять на эффективность функционирования всей системы.
1.
2.
Мы проведем обзор двух классов дисковых устройств:
диски с фиксированными головками чтения/записи;
диски с подвижными головками чтения/записи.
Вопрос 392, 393(
Качество устройств первого класса выше, но и стоимость их также выше.
)Вопрос 392, 393
Далее мы рассмотрим особенности организации каждого из устройств.
6.1.2. Диски с фиксированными головками чтения/записи
Диск всегда организован в виде дорожек и секторов.
В диске с фиксированными головками на каждую дорожку приходится одна головка чтения/записи.
Вопрос 394(
В таком диске отсутствует радиальное перемещение головок, что хорошо, поскольку радиальное
перемещение является наиболее технологически трудоемким видом перемещения.
)Вопрос 394
Работой диска управляет программа, называемая драйвером диска.
Прикладные процессы обмениваются данными с диском, делая запросы к драйверу.
Вопрос 395(
Запрос к драйверу включает в себя:
1. направление передачи;
2. адрес на диске;
3. адрес в оперативной памяти.
)Вопрос 395
Раздел 6
1
В многозадачной системе запросов может быть много, поэтому они устанавливаются в очереди
запросов.
Вопрос 396(
Существует два способа формирования очередей запросов к диску.
1. Одна очередь, когда все запросы обрабатываются в порядке их поступления.
2. Своя очередь для каждого сектора диска. Запросы переупорядочиваются и обслуживаются с учетом
текущего состояния диска.
)Вопрос 396
При этом возможно уменьшение среднего времени обслуживания запросов.
Вопрос 397(
Диск, использующий второй способ формирования очереди, называется страничным диском, потому что
широко используется для управления страничной памятью.
)Вопрос 397
Если обозначить:
N - количество секторов на дорожке;
R - время одного оборота диска; (R/N – время прохождения сектора над головкой)
 - интенсивность поступления запросов;
W - среднее время обслуживания запроса,
то для двух указанных алгоритмов управления запросами приводятся следующие зависимости W от :
Раздел 6
2
W
2/R
N/R

Вопрос 398(
Т.е. для страничного диска резкое ухудшение качества обслуживания с ростом интенсивности запросов
наступает существенно позднее, чем для диска с одной очередью.
)Вопрос 398
Коэффициент N/2 является мерой выигрыша при переходе от одной очереди к организации очередей по
секторам.
6.1.2. Диски с подвижными головками чтения/записи
В дисках с подвижными головками существует дополнительное к вращательному движению радиальное
перемещение для поиска нужной дорожки.
Вопрос 399(
Т.е. время поиска складывается из времени поиска сектора и времени поиска дорожки.
)Вопрос 399
Радиальное перемещение трудоемко и требует значительных затрат времени по сравнению с
вращательным движением.
Поиск сектора выполняется по алгоритмам, похожим на алгоритм страничного диска, т.е. запросы к
секторам переупорядочиваются и обслуживаются по мере прохождения секторов над головками.
Для поиска дорожки (или цилиндра - множества дорожек, доступных без перемещения головок)
существует целый ряд методов, которые рассмотрены ниже.
Эти методы стремятся минимизировать время поиска дорожки при определенных условиях.
Вопрос 400, 401, 402, 403, 404(
1.
Первый пришел - первый обслужен. FCFS – First Come – First Served.
Справедливый метод, но очень неэффективен с ростом нагрузки.
2.
Первым обслуживается запрос с наименьшим расстоянием от текущего положения головки. SSTF Shortest Seek Time First.
Метод не справедлив к запросам, которые далеки от текущего положения головки. Возможно
бесконечное откладывание таких запросов.
3.
Метод сканирования. SCAN. Для обслуживания выбирается запрос, ближайший в данном
направлении. Направление меняется, если головка достигла граничной дорожки или нет запросов в
данном направлении.
Это базовый метод работы с дисковыми устройствами.
Раздел 6
3
4.
Циклическое сканирование. CSCAN – Circular scan. Головки движутся от наружного цилиндра к
внутреннему и по ходу движения обслуживают запросы. После завершения движения головки скачком
возвращаются к наружному цилиндру и снова повторяют свое движение.
Это самая эффективная стратегия.
5.
Развитие метода сканирования. N-step scan. В процессе движения головки в данном направлении
обслуживаются только те запросы, которые появились к моменту начала движения в данном
направлении. Запросы, которые появились после начала движения в данном направлении,
группируются и обслуживаются на следующем проходе.
)Вопрос 400, 401, 402, 403, 404
Исследования показали, что при малых интенсивностях запросов эффективной является стратегия
сканирования, а при большой интенсивности - стратегия циклического сканирования в сочетании с
распределением запросов по секторам.
Выводы:
1. Нагрузки на диск растут с увеличением степени многозадачности. В этом случае становится
целесообразными использование рациональных стратегий поиска.
Вопрос 405(
2. Увеличение числа дисковых устройств не всегда может решить проблему из-за свойства локализации
запросов, т.е. большого числа запросов к малому числу дисков.
)Вопрос 405
3. Неравномерность запросов снижает эффективность перечисленных выше стратегий, т.к. они
оптимизированы при допущении равномерности запросов.
4. Сложность файловой системы может служить причиной низкой эффективности поиска данных на
дисковых устройствах.
Раздел 6
4
6.2. Системное ПО для управления внешней памятью
Назовем вводом-выводом всякую передачу информации между диском и совокупностью (процессор,
память).
Вопрос 406(
Схема организации ввода-вывода представлена на рисунке.
ЦП
П
КН
КН
ПУ
ПУ
)Вопрос 406
ЦП – центральный процессор; П – память; КН – контроллер; ПУ – периферийное устройство.
Контроллер представляет собой устройство управления периферийными устройствами определенного
типа.
Контроллер предлагает интерфейс взаимодействия с ним, которым пользуется программа управления
периферийным устройством, называемая драйвером.
Базовой операцией всегда является передача между участком памяти и периферийным устройством:
ПРОЧИТАТЬ(АДР_ПАМ, АДР_УСТР);
ЗАПИСАТЬ(АДР_ПАМ, АДР_УСТР);
Кроме того, обязательной является операция:
ТЕСТ(АДР_УСТР);
результатом которой в самом минимальном случае являются следующие значения:
ГОТОВ –
КОНЕЦ –
ОШИБКА –
устройство готово к работе;
операция завершена;
во время операции произошла ошибка.
Кроме того, операции обмена могут быть организованы как синхронные или как асинхронные.
Вопрос 407(
В синхронной операции выполняется следующий цикл:
ЦИКЛ: ТЕСТ(УСТР);
if КОНЕЦ then begin
goto ЦИКЛ;
end;
)Вопрос 407
Раздел 6
5
Вопрос 408(
В асинхронной операции используется система прерываний. Сигнал прерывания оповещает об
окончании операции. Прерывания позволяют выполнять параллельную обработку.
)Вопрос 408
С этих позиций и будем рассматривать операции управления диском.
Поскольку диск делится на дорожки и секторы, при этом, сектор определяет передаваемую единицу
информации, то адрес на диске имеет вид: (№ дисковода, № дорожки, № сектора).
Интерфейс драйвера состоит из трех функций:
ВЫБРАТЬ_ДИСКОВОД(№ ДИСКОВОДА) – выделяет текущий дисковод, с которым происходит весь
последующий обмен информацией.
ПРОЧИТАТЬ_СЕКТОР(№ ДОРОЖКИ, № СЕКТОРА, КУДА) – передает информацию из сектора диска в
память, «куда» - адрес памяти.
ЗАПИСАТЬ_СЕКТОР(№ ДОРОЖКИ № СЕКТОРА, ОТКУДА) – передает информацию из памяти
(«откуда») на диск.
Пусть, например, диск содержит Д дорожек по С секторов и в каждом секторе хранится по Б байтов.
При обменах с диском используется буферизация, что важно для часто встречающихся
последовательных обращений.
В частности, удобно читать содержимое всей дорожки сразу, т.к. в этом случае для всех секторов
дорожки возникает лишь одна задержка, связанная с поиском нужной дорожки.
Таким образом, можно зарезервировать N буферов объема одной дорожки - С*Б байтов. Число N
может меняться и определяется при генерации системы.
Чтение. Допустим, необходимо прочитать сектор НСЕКТ на дорожке НД.
Если один из буферов содержит дорожку НД, то чтение происходит без обращения к диску с
использованием соответствующего участка из буфера.
Иначе, следует предварительно загрузить содержимое дорожки НД из диска в буфер.
Запись. Для уменьшения числа обращений к диску, буфер копируется на диск как можно позже.
Допустим, надо произвести запись в НСЕКТ сектор дорожки НД.
Если дорожка НД есть в буфере, то соответствующий сектор изменяется и на этом операция
заканчивается, если только это не «непосредственная запись».
Если же дорожка НД не представлена, то она должна быть предварительно скопирована в буфер, после
чего операция сводится к предыдущей операции.
Вопрос 409(
За исключением «непосредственной записи», буфер копируется на диск в одном из двух случаев:
1. когда он переназначается для загрузки новой дорожки в память в соответствии с алгоритмом
переназначения;
2. когда происходит очистка буфера, вызванная закрытием файла.
)Вопрос 409
Алгоритм переназначения буферов основан на свойстве локальности ссылок. Вероятность обращения к
некоторой информации тем больше, чем ближе по времени ее предыдущее использование.
Таким образом, буферы хронологически упорядочиваются по времени последних обращений к ним.
Вопрос 410(
Если нужен новый буфер, то он выбирается по следующему порядку с убывающим предпочтением:
1. свободный буфер;
2. занятый буфер, но не изменявшийся со времени заполнения;
Раздел 6
6
3. буфер среди оставшихся буферов, который имеет самую позднюю ссылку на обращение к нему.
)Вопрос 410
В случаях 1 и два выбранный буфер может быть сразу использован, а в случае 3 его содержимое должно
быть предварительно скопировано на соответствующую дорожку.
6.3. Управление внешней памятью в современных ОС
1.
2.
3.
4.
5.
Диск – физическое устройство внешней памяти (жесткий диск, дискета, компакт-диск).
Диск делится на секторы, блоки фиксированного размера.
Раздел – набор непрерывных секторов на диске. Адрес начального сектора раздела, размер, хранятся в
таблице разделов.
Простой том – объект, представляющий секторы одного раздела, которым драйверы управляют как
единым целым.
Составной том – объект, представляющий секторы нескольких разделов, которыми драйверы
управляют как единым целым.
Типы составных томов
Существуют следующие типы составных томов:
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
перекрытые (spanned)
чередующиеся (striped) RAID-0
зеркальные (mirrored) RAID-1
RAID-2 не используется (n дисков с данными, n-1 дисков контроль ошибок)
RAID-3 похож на RAID-2, но 1 диск для контроля
RAID-4 похож на RAID-3, но блоки имеют размер, больший, чем байт.
RAID-5 – самый распространенный
RAID-6 похож на RAID-5, но имеет два диска для контроля
RAID-7 сложный.
Комбинации, например, RAID 1+0, 3+0, 5+0, 5+1.
Вопрос 411(
Наиболее распространенными считаются типы
1.
перекрытые (spanned)
2.
чередующиеся (striped) RAID-0
3.
зеркальные (mirrored) RAID-1
4.
RAID-5 – самый распространенный
)Вопрос 411
Управление составными томами существенно сложнее, т.к. их разделы могут быть несмежными и
даже находиться на разных дисках.
Перекрытые тома
Перекрытый том – это единый логический том, состоящий из нескольких свободных разделов на
одном или нескольких дисках.
Вопрос 412(
Раздел 6
C:
D:
D:
E:
7
Перекрытый том D:
)Вопрос 412
Вопрос 413
Перекрытый том удобен для объединения небольших областей свободного дискового пространства в
единый том большего объема.
)Вопрос 413
Если том отформатирован для NTFS, его можно расширять.
Диспетчер томов скрывает физическую конфигурацию дисков от файловой системы.
Чередующиеся тома
Чередующийся том – это группа разделов, каждый из которых размещается на отдельном диске и
объединяется в один логический том. Другое название – RAID-0.
Файловой системе этот чередующийся том кажется обычным томом, но диспетчер томов
оптимизирует хранение и выборку данных, распределяя их между физическими дисками.
Вопрос 414
Данные равномерно распределяются между дисками, а поскольку к данным на разных дисках можно
обращаться одновременно, быстродействие ввода-вывода часто возрастает.
)Вопрос 414
Задача повышения надежности хранения данных не ставится.
Вопрос 415
012345678
9 10 11 12 13 14
15 16 17 18 19
20 21 22 23 24
Логическая нумерация секторов в чередующемся томе
)Вопрос 415
Зеркальные тома
Вопрос 416(
В зеркальном томе содержимое раздела на одном диске дублируется в разделе равного размера на
другом диске, что обеспечивает повышенную надежность. Другое название RAID-1.
)Вопрос 416
Вопрос 417(
С:
С: зеркало
Зеркальный том
)Вопрос 417
Когда программа что-то пишет на диск С:, диспетчер томов пишет те же данные в идентичный участок
зеркального раздела.
Раздел 6
8
Если первый диск окажется поврежденным, то диспетчер автоматически обратится за данными к
зеркальному разделу.
Быстродействие операций чтения возрастает, т.к. диспетчер распределяет их между томами.
Хотя запись приходится вести на два диска, но из-за асинхронности операций записи быстродействие
записи почти не снижается.
Тома RAID-5
Вопрос 418(
Том RAID-5 – это отказоустойчивый вариант обычного чередующегося тома. Том также называют
чередующимся томом с записью четности (striped volumes with parity).
)Вопрос 418
Информация о четности для чередующейся области 1 хранится на диске 1. Она представляет собой
побайтовую логическую сумму (XOR) чередующихся областей 1 дисков 2 и 3.
Информация о четности для чередующейся области 2 хранится на диске 2.
Информация о четности для чередующейся области 3 хранится на диске 3.
Чередование областей четности между дисками оптимизирует операции ввода-вывода.
Когда данные записываются на какой-нибудь из дисков, байты четности должны быть пересчитаны и
перезаписаны.
Если бы информация о четности хранилась на одном диске, то к нему все время шли бы обращения.
При сбое диска 1 содержимое его областей 2 и 5 вычисляется побайтовым логическим сложением
соответствующих чередующихся областей на диске 3 с областями четности на диске 2.
Содержимое чередующихся областей 3 и 6 определяется побайтовым сложением соответствующих
областей на диске 2 с областями четности на диске 3.
Вопрос 419(
Для организации чередующегося тома требуется, по крайней мере, три диска.
)Вопрос 419
Вопрос 420(
1
1
1
2
2
2
3
3
3
4
4
4
5
5
5
6
6
6
7
7
7
Том RAID-5
)Вопрос 420
Раздел 6
9
"серое" – информация о
четности
6.3.5. Ввод-вывод на томах
Вопрос 421(
Драйверы устройств внешней памяти соответствуют архитектуре "класс-порт-минипорт".
)Вопрос 421
Вопрос 422(
Согласно этой архитектуре драйвер класса внешней памяти реализует общую функциональность для
всех устройств внешней памяти.
)Вопрос 422
Вопрос 423(
Порт-драйвер реализует функциональность, общую для конкретной шины, например, SCSI или IDE.
)Вопрос 423
Вопрос 424(
Минипорт-драйвер реализует интерфейс с конкретным устройством.
)Вопрос 424
Пример класс-драйвера диска – драйвер Disk.sys (каталог winnt\system32\drivers\).
Пример порт-драйвера диска – драйвер Pciidex.sys, для IDE диска.
Иногда порт-драйвер и минипорт-драйвер представлены одним объектом, например, Atapi.sys.
Управление базовыми дисками осуществляет драйвер FtDisk.sys.
Управление динамическими дисками осуществляет драйвер Dmio.sys.
Драйверу файловой системы требуется поддержка диспетчера томов для взаимодействия с драйвером
устройства.
Обращение драйвера файловой системы к диску, которому администратор назначил, например, букву
D:, перехватывается диспетчером томов, который по своим таблицам корректирует параметры запроса перед
тем, как передать его драйверу устройства.
Запрос корректируется так, чтобы он ссылался на нужное смещение относительно начала физической
области, соответствующей логической области.
Если запрос затрагивает два раздела, то генерируется дополнительный запрос к другому диску.
Этапы выполнения ввода-вывода:
1.
2.
3.
4.
5.
Драйвер файловой системы инициирует ввод-вывод на уровне секторов
Диспетчер ввода-вывода перенаправляет запрос диспетчеру томов
Диспетчер томов определяет, какому разделу чередующегося тома адресован запрос и создает новый
запрос к диску, на котором расположен нужный раздел
Диспетчер ввода-вывода направляет запрос драйверу устройства
Драйвер устройства выполняет аппаратное обращение к диску.
Раздел 6
10
Приложение
Пользовательский режим
1. WriteFile ( fh, buf );
Режим ядра
Системные сервисы
Диспетчер
ввода-вывода
2. Записать данные по указанному байтовому смещению в файле
Драйвер файловой
системы
3. Транслировать смещение от начала файла в смещение на диске
и вызвать следующий драйвер
4. Вызвать следующий драйвер для записи данных по байтовому
смещению на диске
Драйвер
диспетчера томов
5. Транслировать байтовое смещение на диске в номер диска и
смещение, а затем вызвать следующий драйвер (через диспетчер
ввода-вывода)
Драйвер диска
6. Вызвать следующий драйвер для записи на определенный диск
по определенному байтовому смещению от его начала
Диск 1
Диск 2
Диск 3
Схема ввода-вывода
Раздел 6
11
7. Транслировать
смещение от начала
диска в физический
адрес на диске и
перенести данные
Download