книги из ГПНТБ / Левковиц, Д. Структуры информационных массивов оперативных систем
.pdfс неподвижными головками или разом, общее время обращения время установления головок. В время декодирования равно:
на барабане . Таким об к З У П Д не учитывает общем случае среднее
|
|
Т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