Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
23
Добавлен:
02.05.2014
Размер:
203.26 Кб
Скачать

4.1.2. Диски с подвижными головками чтения/записи

В дисках с подвижными головками существует дополнительное к вращательному радиальное перемещение для поиска нужной дорожки.

Т.е. время поиска складывается из времени поиска сектора и времени поиска дорожки.

Радиальное перемещение трудоемко и требует значительных затрат времени по сравнению с вращательным движением.

Поиск сектора выполняется по алгоритмам, похожим на алгоритм страничного диска, т.е. запросы к секторам переупорядочиваются и обслуживаются по мере прохождения секторов над головками.

Для поиска дорожки (или цилиндра - множества дорожек, доступных без перемещения головок) существует целый ряд методов, которые рассмотрены ниже.

Эти методы стремятся минимизировать время поиска дорожки при определенных условиях.

  1. Первый пришел - первый обслужен. FCFS – First Come – First Served.

Справедливый метод, но очень неэффективен с ростом нагрузки.

  1. Первым обслуживается запрос с наименьшим расстоянием от текущего положения головки. SSTF - Shortest Seek Time First.

Метод несправедлив к запросам, которые далеки от текущего положения головки. Возможно бесконечное откладывание таких запросов.

  1. Метод сканирования. SCAN. Для обслуживания выбирается запрос, ближайший в данном направлении. Направление меняется, если головка достигла граничной дорожки или нет запросов в данном направлении.

Это базовый метод работы с дисковыми устройствами.

  1. Циклическое сканирование. CSCANCircular scan. Головки движутся от наружного цилиндра к внутреннему и по ходу движения обслуживают запросы. После завершения движения головки скачком возвращаются к наружному цилиндру и снова повторяют свое движение.

Это самая эффективная стратегия.

  1. Развитие метода сканирования. N-step scan. В процессе движения головки в данном направлении обслуживаются только те запросы, которые появились к моменту начала движения в данном направлении. Запросы, которые появились после начала движения в данном направлении, группируются и обслуживаются на обратном проходе.

Исследования показали, что при малых интенсивностях запросов эффективной является стратегия сканирования, а при большой интенсивности - стратегия циклического сканирования в сочетании с распределением запросов по секторам.

Выводы:

  1. Нагрузки на диск растут с увеличением степени многозадачности. В этом случае становится целесообразными использование рациональных стратегий поиска.

  2. Увеличение числа дисковых устройств не всегда может решить проблему из-за свойства локализации запросов, т.е. большого числа запросов к малому числу дисков.

  3. Неравномерность запросов снижает эффективность перечисленных выше стратегий, т.к. они оптимизированы при допущении равномерности запросов.

  4. Сложность файловой системы может служить причиной низкой эффективности поиска данных на дисковых устройствах.

4.2. Системное по для управления внешней памятью

4.2.1. Правила ввода-вывода на диски

Назовем вводом-выводом всякую передачу информации от или по направлению к совокупности (процессор, память).

Схема организации ввода-вывода представлена на рисунке.

ЦП – центральный процессор; П – память; КН – контроллер; ПУ – периферийное устройство.

Контроллер представляет собой устройство управления периферийными устройствами определенного типа.

Контроллер предлагает интерфейс взаимодействия с ним, которым пользуется программа управления периферийным устройством, называемая драйвером.

Базовой операцией всегда является передача между участком памяти и периферийным устройством:

ПРОЧИТАТЬ(АДР_ПАМ, АДР_УСТР);

ЗАПИСАТЬ(АДР_ПАМ, АДР_УСТР);

Кроме того, обязательной является операция:

ТЕСТ(АДР_УСТР);

результатом которой в самом минимальном случае являются следующие значения:

ГОТОВ – устройство готово к работе;

КОНЕЦ – операция завершена;

ОШИБКА – во время операции произошла ошибка.

Кроме того, операции обмена могут быть организованы как синхронные или как асинхронные.

В синхронной операции выполняется следующий цикл:

ЦИКЛ: ТЕСТ(УСТР);

if КОНЕЦ then begin

goto ЦИКЛ;

end;

В асинхронной операции используется система прерываний. Сигнал прерывания оповещает об окончании операции. Прерывания позволяют выполнять параллельную обработку.

С этих позиций и будем рассматривать операции управления диском.

Поскольку диск делится на дорожки и секторы, при этом, сектор определяет передаваемую единицу информации, то адрес на диске имеет вид: (№ дисковода, № дорожки, № сектора).

Интерфейс драйвера состоит из трех функций:

ВЫБРАТЬ_ДИСКОВОД(№ ДИСКОВОДА) – выделяет текущий дисковод, с которым происходит весь последующий обмен информацией.

ПРОЧИТАТЬ_СЕКТОР(№ ДОРОЖКИ, № СЕКТОРА, КУДА) – передает информацию из сектора диска в память, «куда» - адрес памяти.

ЗАПИСАТЬ_СЕКТОР(№ ДОРОЖКИ № СЕКТОРА, ОТКУДА) – передает информацию из памяти («откуда») на диск.

Пусть, например, диск содержит Д дорожек по С секторов и в каждом секторе хранится по Б байтов.

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

В частности, удобно читать содержимое всей дорожки сразу, т.к. в этом случае для всех секторов дорожки возникает лишь одна задержка, связанная с поиском нужной дорожки.

Таким образом, можно зарезервировать N буферов объема одной дорожки С*Б. Число N может меняться и определяется при генерации системы.

Чтение. Допустим необходимо прочитать сектор НС на дорожке НД.

Если один из буферов содержит дорожку НД, то чтение происходит без обращения к диску с использованием соответствующего участка из буфера.

Иначе, следует предварительно загрузить содержимое дорожки НД из диска в буфер.

Запись. Для уменьшения числа обращений к диску, буфер копируется на диск как можно позже.

Допустим, надо произвести запись в НС сектор дорожки НД.

Если дорожка НД есть в буфере, то соответствующий сектор изменяется и на этом операция заканчивается, если только это не «непосредственная запись».

Если же дорожка НД не представлена, то она должна быть предварительно скопирована в буфер, после чего операция сводится к предыдущей операции.

За исключением «непосредственной записи», буфер копируется на диск в одном из двух случаев:

  1. когда он переназначается для загрузки новой дорожки в память в соответствии с алгоритмом переназначения;

  2. когда происходит очистка буфера, вызванная закрытием файла.

Алгоритм переназначения буферов основан на свойстве локальности ссылок. Вероятность обращения к некоторой информации тем больше, чем ближе по времени ее предыдущее использование.

Таким образом, буферы хронологически упорядочиваются по времени последних обращений к ним.

Если нужен новый буфер, то он выбирается по следующему порядку с убывающим предпочтением:

  1. свободный буфер;

  2. занятый буфер, но не изменявшийся со времени заполнения;

  3. буфер среди оставшихся, который имеет самую позднюю ссылку на обращение к нему.

В случаях 1 и два выбранный буфер может быть сразу использован, а в случае 3 его содержимое должно быть предварительно скопировано на соответствующую дорожку.

Соседние файлы в папке Шпоры по СПО