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

книги из ГПНТБ / Левковиц, Д. Структуры информационных массивов оперативных систем

.pdf
Скачиваний:
3
Добавлен:
21.10.2023
Размер:
8.9 Mб
Скачать

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

на барабане . Таким об­ к З У П Д не учитывает общем случае среднее

 

 

Т3

+ ЗЖ

 

 

(6-11)

где

Р — среднее время установления

головок;

R—-вре­

мя

оборота диска.

 

 

 

 

 

 

 

 

Эту формулу можно обобщить дл я /г-уровневого де­

рева при хранении первого уровня 'в

оперативной

па­

мяти:

 

 

 

 

 

 

 

 

Tn = P + l,5R + 2(n—2)R

= P+(2n—2,5/?)

при

/ г > 1 .

 

 

 

 

 

 

 

(6-12)

 

Предполагается,

что

после

достижения цилиндра,

содержащег о вершины второго уровня,

головки

не

бу­

дут передвигаться. В других случаях эта формула

при­

мет

следующий вид.

 

 

 

 

 

 

 

Д л я /г-уровневого

дерева, у

которого

первый

уровень

хранится в оперативной памяти

и З У П Д

с неподвижны­

ми

головками:

 

 

 

 

 

 

 

 

Tn=(2n—2,5)R

при / і > 1 .

 

(6-12а)

Д л я /г-уровневого дерева, у которого первый уровень хранится в З У П Д и З У П Д с подвижными головками, непосредственно связанные уровни хранятся на одном цилиндре:

Тп

= Р+

(2/г + 0,5)/? при и > 0 .

(6-126)

Д л я /г-уровневого

дерева, для которого

первый уро­

вень хранится

в З У П Д и З У П Д с подвижными головка­

ми, непосредственно связанные уровни хранятся на раз­

ных цилиндрах:

 

 

 

 

 

 

Tn = n(P+l,5R)

при п > 0 .

 

(6-12в)

В табл . 6-7 представлена

последовательность

собы­

тий дл я рандомизатора, изображенного

на рис. 6-4, ко­

торому

соответствует

формула (6-12)

дл я

п = 3

или

(6-126)

дл я п = 2, а в

табл .

6-8 — последовательность

событий

дл я рандомизатора,

изображенного

на рис. 6-5.

Его можно сравнить с одноуровневым деревом по фор­

муле (6-126) дл я

м = 1 или

с

двухуровневым деревом

(первый

уровень

хранится

в

оперативной памяти) по

формуле

(6-12) для /г = 2.

 

 

130

 

 

 

 

 

 

Т а б л и ц а

6-7

Время

декодирования

для рандомизатора,

изображенного

 

 

.

на рис. 6-4

 

 

 

 

 

 

 

Уровень

Время (симво­

Номинальное

Компоненты

 

лическое)

значение

(сред-

 

 

 

 

 

 

'нее), млсек

Раидомизировать ключ

Рандомизатор

0

 

0

 

Подвод головок

 

 

Р

 

85

 

Задержка при повороте

 

 

4.R

 

12,5

Считывание с дорожки

 

 

R

 

25

 

Обработка

записи

 

Косвенная

0

 

0

 

 

 

 

адресация

 

 

 

 

Потерянный

оборот

 

 

R

 

25

 

Считывание с дорожки

 

 

R

 

25

 

Обработка

записи

 

Выходной

0

 

0

 

 

 

 

уровень

 

 

 

 

Сумма

 

 

 

 

 

172,5

К этим формулам мы вернемся в конце гл. 8, где бу­

дет вычислено общее время поиска

и обновления файла .

Замети м также ,

что

если в З У П Д не

предусмотрена

аппаратная проверка в виде немедленного чтения после

записи,

то к общему

времени

доступа

к

З У П Д добав -

 

 

 

 

 

 

Т а б л и ц а

6-8

Время

декодирования

для рандомизатора,

изображенного

 

 

на рис. 6-5

 

 

 

 

Компоненты

 

Время

(симво­

Номинальное

Уровень

лическое)

значение

(сред­

 

 

 

 

 

 

нее), млсек

Раидомизировать ключ

Рандомизатор

0

 

0

 

Подвод головок

 

Р

 

85

 

Задержка при повороте

 

 

 

 

12,5

Считывание с дорожки

 

R .

 

25

 

Обработка

записи

Косвенная

0

 

0

 

 

 

адресация

 

 

 

 

Сумма

 

 

Р +

1,5Я

122,5

9*

 

 

 

 

 

ІЗІ

 

ля е тся

время R,

затраченное па

один

полный

оборот

диска

( б а р а б а н а ) .

В приложении

3 для

каждого

из опи­

санных аппаратных средств указывается наличие этого (аппаратного) свойства. Те устройства, которые его не имеют (например, пакет дисков I B M 2311), необходимо модифицировать, вводя запрограммированное чтение за­

писанных данных, выполняемое

на следующем

обороте.

Таким образом,

с учетом возможности обновления

дере­

ва в формулы

(6-11) — (6-12в)

добавляется

R

(для

устройств без аппаратной проверки) .

ГЛАВА СЕДЬМАЯ

МЕ Т О ДЫ О Р Г А Н И З А Ц И И ПОИСКА ФАЙЛА

Вгл. 6 описан двухступенчатый процесс, включающий

декодирование и поиск файла, и указано, что обе состав­

л я ю щ и е процесса поиска

относительно независимы.

В качестве доказательства

этой независимости в гл. 6

представлено детальное описание декодеров. Описание декодера содержит лишь минимальные ссылки на орга­ низацию данных файла . В случае рандомизированного алгоритма (см. рис. 6-5) возникло ограничение на схему структуры файла . Таким образом, опираясь на крите­ рии, выделенные в гл. 7, проектировщик располагает от­ носительно полной свободой в выборе декодера .

Всвою очередь выбор структуры данных файла ие зависит от декодера.

Внастоящей главе противопоставляются методы ор­ ганизации файла по способу последовательного списка

(мультисписка) и инвертированного списка. Д а л е е опи­ сывается способ, представляющий собой некоторый про­

межуточный вариант, названный мультисписком

с управ­

ляемой длиной списка. Н а рис. 5-2 представлены

три пе­

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

списковых

структур, названный

секторной

структурой

файла . Все структуры

иллюстрируются

серией диаграмм

(рис. 7-1—7-5). Развитие от структуры

последовательно­

го

списка

к структуре

инвертированного списка, а

так­

ж е

взаимоотношения

с секторной

системой

можно

про­

следить

на одном и том ж е

примере списка из четырех

ключей.

Н и ж е

описываются

процедуры,

генерирующие

эти структуры,

и приводятся

временные

оценки.

132

7-1. МУЛЬТИСПИСКОВАЯ ОРГАНИЗАЦИЯ ФАЙЛА

На рис. 7-1 запись фиксированной длины, представляю­ щая собой выход справочника ключей, содержит тройку

Ключ

( ф р а г м е н т ) / Н а ч а л ь н ы й адрес

списка/Длина

спис­

ка. В зависимости от того, разрешена ли

неоднознач­

ность

в записи данных или

при декодировании, на выходе

справочника используется

полное

значение

ключа

или

его фрагмент. Начальный адрес списка представлен на

Ключ/Начальныйільный адрес списка/Длина списка^

Справочник

ключей

(выходной

уровень)

 

 

Файл

 

 

списковой

 

 

I структуры

 

 

в памяти с

 

 

произвольным

 

 

доступом

СектарЗ

 

 

Рис. 7-1. Мультисшісковая организация файла.

диаграммах символически

как А п , где

п есть адрес

внешней памяти. Записи в

поле файла

представлены

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

образом, список

W начинается

по

адресу

Л 6 и

содержит

семь записей. К а к указано

на диаграмме,

вторая

запись

списка

W т а к ж е

содержит

ключ

X

(пересечение

клю­

чей). Эта запись

не имеет в д и а г р а м м е помеченного

адре­

са, поскольку она не стоит во

главе

списка

(заголовок

списка А' находится по адресу

А3). Однако

запись

по

адресу

А а содержит

адрес

связи

на

указанную

запись,

содержащую ключ W, как это показано в формате запи­

си

на

рис. 3-5.

 

 

 

 

 

 

 

 

 

 

 

 

Адрес связи,

у к а з ы в а ю щ и й

на

вторую

запись

списка

W

т а к ж е списка

ключа

X),

записан т а к ж е

по

А 3 , по­

скольку запись содержит ключ X. Таким образом, если

запрос

содержит

конъюнкцию

WY

по этому

файлу,

то

133

д е к о д и р у ю щ ий

справочник ключей декодирует как W, так

и Y и

отметит

на

выходе справочника

соответствующие

длины

списков. Поскольку список У короче

(четыре за­

писи),

чем список W (семь записей), то поиск в файле

велся бы по списку Y и потребовал

бы

в области

файла

четыре

обращения

с произвольным

доступом.

Каждая

переданная в

оперативную память

запись

проверялась

бы на условие конъюнкции с W, которое согласно нашей схеме выполняется только для записи по адресу Ад.

Если запись содержит д л я к а ж д о г о ключа два

адреса

связи: один

у к а з ы в а ю щ и й па

последующую

запись

в списке,

а другой — на предыдущую, соответствующая

списковая

структура называется

двунаправленной

(коль­

цевой) . Т а к а я

структура позволяет осуществить

общую

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

нет необходимости вводить списки кольцевой

структуры.

А поскольку

списковые

издержки

памяти

при этом

удваиваются, в

тех случаях, когда хотят использовать

преимущества

кольцевой

структуры,

предпочтительней

организация инвертированного списка, имеющая те же издержки памяти, что и система с последовательным списком.

Самый

существенный

недостаток

последовательного

мультисписка

состоит в

 

необходимости

выборки

из

З У П Д и

переноса в оперативную память

всех записей

кратчайшего

в конъюнкции

запроса

списка. Д а л е е

все

считанные

записи д о л ж н ы

 

быть просмотрены

процессо­

ром. Однако часть списка,

удовлетворяющая

запросу

(в нашем

примере WY),

может оказаться

намного

ко­

роче. В приведенном выше примере отношение объема

системных

поисков к

объему

выборки

из З У П Д

равно

1/4. Практически,

если длины

списков

достигают не­

скольких

сотен

(или

т ы с я ч ) ,

а конъюнкции

содержат

много ключей,

отношение это

может оказаться

порядка

нескольких сотьіх

или

д а ж е тысячных,

что крайне

неэф-

134 ~

фективно. Эта неэффективность находит свое отражение в низких характеристиках допоисковой статистики вы­

борки. Д л я

априорной оценки

в

качестве

б л и ж а й ш е й

верхней

грани

числа

выборок,

выполняемых

мульти-

списковой системой, принимается

для конъюнкции

за­

проса длина самого короткого списка, а для

логической

суммы

произведений — сумма

таких длин. Д р у г и е

опи­

сываемые структуры

позволяют

получить

значительно

более благоприятную допоисковую статистику.

 

 

Основными преимуществами мультисписковой орга­

низации

файла

являются

программная простота

его

реализации

и гибкость при обновлении.

 

 

 

 

7-2. ОРГАНИЗАЦИЯ ФАЙЛА ПО МЕТОДУ

 

 

 

 

ИНВЕРТИРОВАННОГО

СПИСКА

 

 

 

На рис.

7-2

иллюстрируется

схема организации

файла

с помощью инвертированного списка. Согласно этой схе­

ме все виды связей исключаются из поля

ф а й л а и вклю-

Rs

W

X

 

У

 

z

 

Дід

Яз

ят

Яз

Я,!

%

 

Й7

%

л7

яго

«и

Яі7

Л}7

 

%

я»

 

%

Ягг

 

 

йа

 

 

hi

%

 

 

Сенторо

 

 

 

 

 

 

 

Сектор1

 

 

 

Л '

•>

 

 

 

 

 

 

 

hs

 

 

 

 

 

 

 

Секторг

 

hi

»hz

 

 

ho'

 

 

 

•%

 

h

о

 

 

 

 

 

 

 

 

 

 

 

 

3

СектарЗ

 

• hl

 

 

Я35а

 

 

 

 

 

Рис. 7-2. Организация файла с инвертиро­ ванным списком.

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

135

записей. Фактически, если имена ключей или кодов вну­ три записи адресуются не индивидуально, система с ин­ вертированным списком может оказаться экономней по объему памяти, чем мультисппсковая система. Если на выходе системы ключи не печатаются, это условие выпол­

няется.

Тогда любое логическое в ы р а ж е н и е

из ключей

может

быть непосредственно декодировано справочником

ключей.

 

Инвертированные списки представляют собой записи

переменной длины, которые в целях удобства

логических

обращений д о л ж н ы быть упорядочены в монотонную по­

следовательность. Переменная

длина списков записей,

которая может быть различной,

а т а к ж е необходимость

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

Вследствие того, что результирующие адреса логиче­ ского поиска по инвертированному списку представляют собой выборку, определяемую логикой ключей во виутризаписной обработке, отношение числа системных по-- исков к числу обращений к З У П Д выше, чем при мультисписковой организации . Если логические условия запроса не содержат классификаторов, это отношение рав­ но единице. П о этой причине система инвертированного списка дает значительно лучшую допоисковую статисти­ ку, чем мультисппсковая или л ю б а я другая, включая

описываемую

ниже частично

инвертированную систему.

Н а рис. 7-2

по

запросу

WY

находится

пересечение ин­

вертированных

списков

по

адресу Ад.

Следовательно,

допоисковая статистика, которую пользователь может

получить

до начала выборки из

файла, равна единице

и число

произвольных обращений

к файлу т а к ж е

равно

единице.

 

 

 

 

Н а рис. 7-3

иллюстрируется эффективный способ

про­

граммирования

логической обработки инвертированного

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

чей переменной длины

А,

В и С. Эти

инвертированные

списки записаны

в З У П Д

и состоят из

последовательно­

сти адресов всех

записей

файла, с о д е р ж а щ и х

ключи А,

В и С соответственно. К а ж д ы й список можно

рассматри­

вать как логическую запись, по длине

превосходящую

несколько физических

записей.

 

 

136

Ц е н т р а л ь н ый процессор имеет шесть областей памяти

(буферов) : две входные — пары

Вх. 1, Вх.

2 и Вх. 3, Вх.4

и выходную пару Вых. 1, Вых.

2.

 

На рис. 7-6 процессор изображен в виде прямоуголь­

ника, очерченного сплошной

линией.

Все переключе-

Рис. 7-3. Система с буферной памятью и логиче­ ская обработка инвертированных списков.

ния выполняются программно в процессоре, ломаные

линии символизируют передачу данных из

диска

в опе­

ративную память

или в обратном направлении.

Физи­

ческие записи от

двух

входных файлов

дублируются

во

входные буфера и

последовательно обрабатывают ­

ся

процедурами

логической обработки,

после

чего

137

р е з у л ь т и р у ю щ ие адреса,

продублированные

в

буфере,

передаются в один из двух

выходных

файлов

(FL

F2)

на

диске.

Последовательность

обработки

запроса

f(A,

В,

С)

показана

на

рисунке треугольниками . В н а ч а л е буфе­

ра

Вх. J

и

Вх.2 з а г р у ж а ю т с я

двумя записями

из

списка

А,

а Вх.

3

и

Вх.4

— из В (1).

Во время

загрузки

Вх.2

и

Вх.

4, Вх.

1

и Вх. 3

обрабатываются,

а

результаты пере­

даются

 

в

выходной

буфер

Вых.

1

и,

 

если необходимо,

в Вых.

2.

Н а п р и м е р ,

если

А

и

В

пересекаются,

то

для

Вх. 1 и Вх. 3 достаточно иметь буферную память

Вых. 1,

но

если

 

А

и

В

сливаются,

то

может

потребоваться

бу­

ф е р н а я

 

память Вых.

2. П р о г р а м м а

последовательно счи­

тывает записи из списков А и В и ведет перепись из вы­

ходных буферов Вых. 1 и Вых. 2 в файл

З У П Д

F (1).

После

того

как

А и

(или)

В

полностью

обработаны,

файл Fi переключается и становится входом для

буферов

Вх.

1,

Вх.

2

(2).

Список С

становится

вторым

входом

в Вх.

3,

Вх.4

(2),

а выходные

буфера Вых.

1,

Вых.

2

пере­

ключаются

на

файл

Fz(2).

Эта

процедура

может

быть

повторена д л я произвольного числа ключей любой про­

извольной длины . Главное

преимущество

инвертирован­

ного списка - по сравнению

с мультнсписковой

организа­

цией состоит в значительно

более эффективном

выполне­

нии процедур пересечения

или слияния

списков. При

выборке

списка

записей

произвольное

обращение для

к а ж д о й записи,

входящей

в список,

заменяется

опера­

цией над

компактным,

упорядоченным

списком.

 

Таким

образом, из

справочника

передается в

точно­

сти столько адресов файла, сколько соответствует полно­

му булеву в ы р а ж е н и ю д л я ключей;

но при этом

д л я про­

верки условий

на

классификаторы

необходим произволь­

ный доступ

к

к а ж д о й записи. Более того, число

адресов,

полученных

при

обработке инвертированного

списка,

представляет собой более точную статистику поиска, чем

та,

которая может быть

сообщена дальнему

терминалу

до

н а ч а л а фактического

поиска в файле . Н а

основе этой

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

138

7-3. МУЛЬТИСПИСКОВАЯ ОРГАНИЗАЦИЯ С УПРАВЛЯЕМОЙ ДЛИНОЙ СПИСКА

Одним из недостатков системы последовательных спи­ сков является низкая скорость отклика в тех ситуациях, когда пересечения в списках редки, а поиск по списку

продолжителен.

Н а п р и м е р ,

при

поиске

по

списку,

из

2 000

записей

с

1%-ным пересечением общее

время

по­

иска

д л я

20

записей составляет

200 сек

(при среднем

времени

обращения к З У П Д

1О0 млсек),

в то

время

как

время доступа к 20 записям в системе с инвертирован­

ным списком составит за вычетом времени на

пересече­

ние

списков

2 сек.

Насколько критична разница м е ж д у

200

сек

и

2

сек

(плюс пересечения списков)

зависит от

выходных

устройств

и случайного распределения

пересе­

чений в списке. П и ш у щ а я

машинка со скоростью

печати

10—15

символов

в

секунду

при необходимости

печатать

к а ж д у ю

запись

из

более чем 150 символов

с

приблизи­

тельно равномерным распределением записей по списку печатала бы непрерывно. Если записи собраны в конце

списка, при

печати возникнет н а ч а л ь н а я

з а д е р ж к а при­

близительно

в 3 мин. Операции с Э Л Т

могут оказаться

неустойчивыми, поскольку интересующая нас запись мо­

жет

высвечиваться

приблизительно

0,5

мин, в

течение

которых поиск по списку продолжается . Однако

другие

выбранные

записи,

сбрасываемые

через

несколько се­

кунд

н а ж а т и е м

кнопки,

могут не иметь

достаточно

боль­

ших

перекрывающихся

интервалов

времени

на

 

поиск.

Это

выразится

в отсутствии отклика

на

н а ж а т и е

кнопки,

причем время

о ж и д а н и я может варьироваться

от

нуля

до десятых

долей

секунд. Т а к а я характеристика

отклика

процессора

могла

бы вызвать з а д е р ж к и

в

работе

А Ц П У

(скорость печати 100—1 200 строк

в минуту), если записи

не длинные. Отсюда следует, что

периферийные

устрой­

ства

и условия эксплуатации системы могут свести на

нет

преимущества, представляемые организацией

файла

или

З У П Д . В таком случае проектировщику следует ру­

ководствоваться скорее экономическими критериями, чем функциональными.

Мультисписковую организацию можно довольно лег­ ко модифицировать, используя преимущества модульной структуры З У П Д . Н а схеме рис. 7-4 длина списка мультисписковой системы ограничивается з а р а н е е фиксиро­ ванным числом, которое в рассматриваемом случае рав­ но четырем. Когда длина списка превосходит четыре,

139

Соседние файлы в папке книги из ГПНТБ