![](/user_photo/_userpic.png)
книги из ГПНТБ / Левковиц, Д. Структуры информационных массивов оперативных систем
.pdfОн т а к ж е содержит идентификатор |
запроса |
ID, |
дей |
||||||||
ствие, условие, функции обработки, выходное |
устрой |
||||||||||
ство и выходной формат. Мультиобрабатывающая |
|
Ис |
|||||||||
полнительная |
Программа |
присваивает |
к а ж д о м у |
запросу |
|||||||
Область |
Управления |
Запросом |
в реальном |
масштабе |
|||||||
времени. В пределах этой области |
р а з м е щ а ю т с я |
пара |
|||||||||
метры запроса |
и списковые адреса. |
|
|
|
|
|
|||||
В |
оперативных |
системах |
часто |
желательно |
|
иметь |
|||||
хотя |
бы |
минимальную |
возможность |
вести диалог, |
в х о |
||||||
де которого Исполнительная |
Программа |
передает |
через |
||||||||
программы ввода-вывода Т е р м и н а л у |
|
пользователя от |
|||||||||
Декодирующего |
Справочника |
допоисковую |
статистику. |
||||||||
К а к |
выше указывалось, |
некоторые |
формы |
организации |
файла приспособлены лучше других для получения ка
чественной |
допоисковой |
статистики. |
Следовательно, |
если система |
может вести |
такой диалог, |
некоторые ви |
ды структуры (организации) файлов могут быть исклю чены из рассмотрения. В . таком случае пользователь у терминального устройства решает на основе этой ста
тистики, продолжать ли |
поиск в файле, модифицировать |
|||
ли запрос |
или закончить |
его. По |
получении ответа |
Ис |
полнительная |
Программа |
Поиска |
может принять |
соот |
ветствующее решение. В первом случае она вводит но вую процедуру в исполнительную схему и в соответствии
со |
стратегией просмотра ф а й л а |
выполняет с |
З У П Д |
операцию произвольного чтения (или занесение) |
записи, |
||
после чего передает управление |
системе поиска |
файла |
|
со |
специфической привязкой к |
соответствующей |
QEA. |
Стратегия поиска является функцией как организации списковой структуры файла, так и функциональных тре бований системы. В общем случае, однако, по обраще нию из запроса полный поиск по всем спискам не будет произведен. Поиск будет перемешай со списковыми по исками других запросов в соответствии с заложенной в системе стратегией сканирования . Использование при оритетов может динамически нарушить запрограммиро ванную в системе стратегию сканирования . Отклики из
системы |
поиска файла |
от |
соответствующей |
Области |
|
Управления |
Запросом |
QEA |
в о з в р а щ а ю т с я |
через |
Испол |
нительную |
Программу |
Поиска к программе |
вывода, где |
||
они временно помещаются |
в З У П Д с высокой скоростью |
считывания для последующей передачи дальнему тер минальному устройству. Если в запросе участвует меж записная обработка, Исполнительная Программа Поис-
90
ка вместо программы вывода передает ответ в промежу
точный |
файл |
(Fe на рис. 1-3). |
Программы |
|
Помимо |
Оперативной |
Исполнительной |
||
(блок |
1.2 на |
рис. 1-3) |
система состоит из пяти |
основных |
субисполнительных программных компонентов. Ими
являются |
(1) |
Интерпретатор Запроса, |
(2) |
Исполнитель |
||||||
ная |
Программа |
Поиска, |
(3) |
Декодирующий |
|
Справоч |
||||
ник |
Ключей, |
(4) |
Подсистема |
Поиска |
файла |
и (5) |
||||
Программа |
В-В. В |
оставшейся |
части |
книги |
рассматри |
|||||
ваются в |
основном |
Декодирующий |
Справочник |
|
Ключей |
|||||
и Подсистема |
Поиска |
Файла |
как |
имеющие |
|
непосред |
||||
ственное |
отношение |
к |
методам |
организации |
файла . |
Различные структуры файла влияют иа схему работы Исполнительной П р о г р а м м ы Поиска в режиме мульти-
работ |
(Multitask), |
поэтому |
ее |
работа т а к ж е |
будет |
|
вкратце рассмотрена. |
|
|
|
|
||
В целом оперативный поиск файла можно |
рассмат |
|||||
ривать как двухступенчатый процесс. Первый |
ш а г |
сос |
||||
тоит |
в трансляции |
ключей |
с |
помощью |
Справочника |
с естественного языка или языка кодов в логическом выражении в списковые адреса. Вторая ступень состоит из поиска с произвольным доступом по списковым адресам
файла. Н а рис. 5-2 представлена |
классификационная |
диаг |
|
рамма |
существующих методов |
д л я выполнения |
этих |
двух |
функций. В левой части |
д и а г р а м м ы изображено |
дерево с обозначениями различных методов организации
Декодирующего |
Справочника |
Ключей. Методы |
эти |
раз |
|||
биваются на два класса, одни из них |
относятся к |
т а к |
|||||
называемым методам |
рандомизированного, |
или |
смешан |
||||
ного, кодирования, другие выполняют |
декодирование |
||||||
согласно |
дереву |
или |
справочной |
таблице. |
Рандомизиро |
||
ванный |
метод |
имеет |
несколько вариантов, |
которые |
в дальнейшем будут рассмотрены, однако все они функ ционально образуют единую группу. В противополож ность им методы декодирования согласно дереву имеют
функциональные |
отличия. Первое из них заключается |
|||
в декодировании |
Ключей |
Постоянной |
и |
Переменной |
длины. Н а естественном |
языке полный |
ключ |
обычно |
имеет переменную длину. Если ключ подвергается пре образованию, о б р а щ а ю щ е м у его в ключ фиксированной длины, при декодировании может возникнуть некоторая неоднозначность или избыточность. В этом случае, бази руясь на функциональных требованиях системы, проек тировщик должен решить вопрос о допустимости такой
91
неоднозначности. Ключи Фиксированной Длины обычно допустимы, и тогда этот подход, вообще говоря, пред почтительней, потому что при этом программы декоди рования легче пишутся и быстрее в выполнении. К а к указано на рис. 5-2, существуют два общих метода при ведения полной длины ключа к фиксированной длине.
Первый из |
них |
состоит |
ь выборке |
из |
ключа |
фиксирован- |
||||||||||
|
|
Декодирование |
|
|
|
|
|
Поиск сайла |
|
|
||||||
|
|
|
|
|
|
|
|
Управление |
|
|
||||||
ключей по справочнику |
|
|
|
|
|
|
|
|||||||||
|
|
|
|
|
|
|
|
|
|
|
— длиной |
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
списка |
|
|
||
Рандомизированный] Декодирование |
|
|
|
Частичная |
|
|||||||||||
процесс |
|
|
согласно |
|
|
|
|
инверсия |
|
|
||||||
декодирования |
дереву |
|
|
|
|
|
|
Инвертированны |
||||||||
|
|
|
|
|
|
|
|
Мультисписок |
|
|||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
список |
|
|
|
|
|
|
|
|
|
|
^/У/і |
Разбцени.8 |
|
||||
|
|
|
|
|
|
|
|
|
|
•'//,{ по сектора-м |
|
|||||
|
КЛЮЧ |
|
|
|
|
Ключ |
|
|
|
|
|
|
|
|
||
{риксированнои |
|
переменной |
|
|
|
|
|
|
|
|
||||||
|
длины |
|
|
|
|
длины |
|
|
|
|
|
|
|
|
||
Представ |
Рандомизи |
Полное |
Однозначная |
|
|
|
|
|||||||||
ленный |
|
значение |
выборка |
|
|
|
|
|||||||||
выборкой |
рованный |
ключа |
|
|
|
|
|
|||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|||||
|
|
|
Рис. 5-2. Двухступенчатый процесс выборки. |
|
|
|||||||||||
ыого набора символов или битов. Частным случаем та |
||||||||||||||||
кого |
преобразования, |
используемого |
во |
многих |
систе |
|||||||||||
мах, |
является |
простое |
усечение |
ключа |
до |
заданного |
||||||||||
числа символов. При втором способе |
ключ |
подвергается |
||||||||||||||
некоторой |
|
рандомизированной |
|
обработке, |
|
переводящей |
||||||||||
его |
в |
область, |
представляемую |
фиксированным |
числом |
|||||||||||
битов. |
При |
использовании |
ключей , переменной |
длины |
||||||||||||
т а к ж е |
существуют д в а |
подхода. |
При |
первом |
из них |
|||||||||||
используется полное |
значение |
ключа. |
Другой |
|
состоит |
|||||||||||
у в том, |
чтобы |
найти |
для |
каждого |
ключа |
|
однозначную |
^ выборку (или преобразование), сохраняющую от ключе
вого |
слова ту минимальную |
часть, которая |
необходима |
||
д л я |
того, |
чтобы отличить его от всех |
других |
ключей си |
|
стемы. В |
терминах объема |
памяти |
последний способ |
92
Может окаааться фактически таким |
же |
экономичным, |
||||
как метод |
ключей |
фиксированной |
длины, |
обеспечивая |
||
в то ж е время совершенно однозначное |
декодирование. |
|||||
Однако, как мы увидим ниже, метод |
этот |
достаточно |
||||
сложен как дл я построения декодирующего |
дерева, так |
|||||
и для его |
обновления и, |
возможно, |
обладает какими- |
|||
либо другими нежелательными свойствами. |
|
|||||
Цель создания |
методов |
классификации состоит в том, |
||||
чтобы на |
к а ж д о м |
уровне |
предоставить |
проектировщику |
возможность выбора, основанного на четком знании раз
личий в |
свойствах декодеров. |
Эти свойства будут рас |
смотрены |
в гл. 6. Здесь ж е в |
связи с описанием дерева |
классификации, изображенного на рис. 5-2, можно сде лать следующий вывод: на первом уровне проводится различие между рандомизированным подходом и деко дированием согласно дереву. Вообще говоря, рандоми
зированный подход предъявляет |
меньшие |
требования |
||
к З У П Д |
(иногда вовсе никаких), чем дерево. С другой |
|||
стороны, |
дерево |
обладает сканирующим |
свойством |
|
в области |
ключа, |
необходимым |
при выполнении опера |
торов арифметических отношений типа «больше чем», «меньше чем», и т. д., которым рандомизированный ме тод не обладает . Скорости декодирования обоими мето
дами в большинстве случаев сопоставимы. |
|
На втором уровне |
метод дерева ветвится на вариан-' |
ты работы с ключами |
фиксированной и переменной дли |
ны; издержки следует |
отнести исключительно за счет |
неоднозначности декодирования . Первым из них может
вызвать при декодировании неоднозначность, |
требую |
|||
щую последующего просмотра полного значения |
ключа |
|||
либо с помощью |
другого субсправочника |
(что сводится |
||
к расходованию |
дополнительной |
п а м я т и ) , |
либо |
за счет |
времени поиска |
в файле записей |
(что снижает |
эффек |
|
тивность) . |
|
|
|
|
Метод переменных ключей гарантирует от неодно значности декодирования, но это приводит к усложне
нию программирования |
и выдвигает дополнительные |
|||||
требования к |
памяти |
З У П Д . |
Б о л ь ш а я |
часть |
про |
|
ектировщиков |
предпочитает схему |
с |
ключами фиксиро |
|||
ванной длины |
из-за ее |
простоты |
и |
еще |
потому, |
что |
издержки в виде дополнительной памяти и потери эф
фективности |
не |
существенны. |
|
|
|
Н а третьем |
уровне |
принятия решения |
в |
варианте |
|
с ключами |
переменной |
длины возникает |
з а д а ч а |
выбора |
93
м е ж ду экономией в памяти и сложностью программиро вания, поскольку однозначная выборка экономичней по
памяти, но |
сложней |
дл я |
программирования . |
Кроме |
того, если |
необходим |
поиск |
в окрестности |
значения |
ключа, нужно либо запомнить ключ полностью, либо обратиться к выборке, производящей усечение. Третий уровень ветвления для ключей фиксированной длины основывается главным образом на возможностях поиска в окрестности значения ключа. Техника выборки с по
мощью |
усечения |
такую возможность |
предоставляет, |
||||||
в то в р е м я как любые |
другие |
методы |
выборки |
или |
|||||
рандомизация ключа ее не содержат . |
|
|
|
|
|||||
Второй ша г оперативного процесса |
поиска, |
как это |
|||||||
указано в правой части рис. 5-2, состоит |
в поиске |
файла. |
|||||||
В а ж н е й ш е й характеристикой организации файла для |
|||||||||
оперативного |
поиска |
является |
процесс, |
описанный |
|||||
в гл. 1 и 3 |
как |
логическое разбиение. |
Пусть |
каждая |
|||||
запись |
ф а й л а |
записана |
в З У П Д |
один |
раз, и |
при |
этом |
требуется получить доступ к этой записи с помощью лю
бого |
из ее ключей. Одновременно мы хотели |
бы |
полу |
чить |
доступ ко всем другим записям, с о д е р ж |
а щ и м |
этот |
ключ. Каковы требования к логике организации файла, предъявляемые программе хранения, поиска и обновле ния этих записей, местоположению записей в З У П Д и
кструктуре данных внутри записей?
Вконце 50-х и начале 60-х годов дл я внутренних операций с магазинными списками (в оперативной па мяти) были созданы методы программирования, наз
ванные |
списковыми |
структурами |
[Л. 7]. Эти методы опи |
||||
саны |
в |
литературе |
как |
последовательные списки |
|||
(threaded |
list [Л. 8]), узловые |
списки [Л. 9] и |
последова |
||||
тельные |
мультисписки |
(Multilist [Л. 10]). С |
появлением |
||||
З У П Д |
дл я выполнения |
загрузки |
и поиска |
списковых |
структур были приняты некоторые варианты этих мето
дов. Н а и б о л е е |
общей среди этих структур является по |
|
следовательный |
мультисписок |
или мультисписковая сис |
тема Prywes и Gray; эти методы |
мы будем в дальнейшем |
называть или последовательными списками, или мульти списками без каких-либо то ни было дальнейших ссы
лок. |
Последовательный список характеризует |
каждый |
||
ключ |
единственным |
адресом З У П Д , |
полученным |
на вы |
ходе |
Декодирующего |
Справочника |
Ключей; этим адре |
сом служит адрес первой записи файла, содержащий рассматриваемый ключ. К а ж д а я последовательная за-
94
пись файла, |
|
с о д е р ж а щ а я |
этот |
ключ, |
определяется |
|||||
с помощью |
адреса |
связи, |
помещенного |
внутри |
записи |
|||||
и связанного, |
с |
соответствующим ключом так, как это |
||||||||
показано |
на |
рис. 3-5. Т а к и м образом, |
если |
ключ |
появ |
|||||
ляется в 100 записях, то Справочник |
содержит |
един |
||||||||
ственный |
адрес, |
указывающий на |
первую |
запись, |
а, кро |
|||||
ме того, |
внутри |
к а ж д о й записи, содержащей ключ, запи |
||||||||
сан адрес, у к а з ы в а ю щ и й на следующую |
из |
99 записей, |
||||||||
расположенных |
в З У П Д . |
Система |
последовательного |
|||||||
мультисписка |
или |
просто |
мультисписок * |
допускает |
внутри записи произвольное число ключей, и, следова тельно, список может содержать столько последователь ных цепочек адресов, проходящих через данную запись,
сколько |
в записи |
ключей. |
|
|
|
|
|
|
|
|
||
Другой подход к организации списков |
в |
З У П Д вы |
||||||||||
текает |
из |
более |
традиционных методов |
обращения |
||||||||
к ф а й л а м . |
Так, один |
из |
них — метод |
инвертированного |
||||||||
списка — состоит |
в изъятии |
всех |
адресов |
связи |
из |
запи |
||||||
сей файла |
и помещении |
их |
на |
выходе |
Справочника |
|||||||
в порядке |
возрастания |
адресов, |
т. е. все |
записи, |
содер |
|||||||
жащие заданный ключ X, представлены |
списком — мо |
|||||||||||
нотонной |
последовательностью |
адресов, |
о б р а з у ю щ и х |
|||||||||
запись переменной длины, адрес которой для ключа X |
||||||||||||
указывается в Справочнике |
|
Ключей. |
|
|
|
|
|
|||||
Указанные два метода представляют различные ва |
||||||||||||
рианты |
структуры |
файла, |
реализация |
которых |
приведет |
|||||||
к различным типам программирования, тем |
не |
менее |
||||||||||
оба списка |
могут |
представлять |
одну |
и ту |
ж е |
|
структуру |
информации, будь то иерархическая или ассоциативная.
Они сходны в том смысле, что используют одни |
и те ж е |
||||
средства |
определения логики |
разбиения, а именно адре |
|||
са связи; |
в обоих случаях |
д л я |
получения разбиения |
||
данного |
файла необходимо указывать одно и то |
ж е ко |
|||
личество |
адресов связи; |
единственное различие |
состоит |
||
в местоположении этих адресов. |
|
|
|||
Метод инвертированного списка исключает разбро |
|||||
санные мультисписковой |
системой |
адреса связи из файла |
записей и собирает их в собственный файл, промежуточ
ный между |
Справочником |
и рассматриваемым |
файлом . |
|||
Однако |
эта |
модификация |
влечет |
за |
собой существенное |
|
отличие |
свойств обеих структур |
во |
времени отклика на |
|||
* Этот тип списковой структуры |
сначала назывался |
узловым |
||||
списком (см. [Л. 9]), |
|
|
|
|
95
поиск и обновление, степени трудности 'программирова ния, качестве допоисковон статистики, объеме памяти и схеме процессора запроса и рабочих программ. Поэтому, хотя они функционально идентичны, труктурно и опера-
ционно |
они различны и, как показано в |
правой части |
рис. 5-2, |
совершенно полярны. П р и этом |
оказывается, |
что д л я больших файлов мультисписковая система со держит некоторые операционные дефекты, которые ме
тодом инвертированного списка корректируются, |
но в то |
|||||
ж е |
время |
мультисписковая |
система |
д а е т |
некоторую |
|
экономию |
в объеме памяти файла и упрощает |
|
програм |
|||
мирование. |
Поэтому естественно рассмотреть комбина |
|||||
цию |
обоих |
подходов, конструируя |
спектр |
различных |
||
частично |
инвертированных |
мультисписковых |
систем. |
Более того, как будет показано в гл. 7, этот спектр вве
дением |
некоторого |
программного |
параметра |
можно |
сде |
||||||||
л а т ь непрерывным. |
З а время |
формирования |
ф а й л а |
па |
|||||||||
раметру |
можно |
присвоить |
значение, |
устанавливающее |
|||||||||
д л я |
структуры |
ф а й л а |
заранее |
|
определенную |
степень |
|||||||
инверсности, |
которая |
от одной |
схемы формирования |
фай |
|||||||||
л а |
к другой |
может |
произвольно |
изменяться. |
|
|
|
||||||
|
Эта модификация основной концепции мультисписка |
||||||||||||
называется |
мультисписком |
с управляемой |
длиной |
спис |
|||||||||
ка. |
Т а к а я структура |
позволяет |
проектировать |
образова |
|||||||||
ние |
списков |
произвольной |
максимальной длины, начи |
||||||||||
ная |
от |
единицы |
и |
кончая |
фактической |
длиной |
списка. |
Если длина к а ж д о г о списка ограничена единицей, полу чаем систему с инвертированным списком. Следователь
но, ранг |
мультисписковой системы, представленной на |
рис. 5-2, |
непрерывно расширяется от чисто мультисписко |
вой с управляемой неограниченной длиной списка до ин
вертированного списка с |
управляемой |
длиной |
списка, |
равной единице. Поскольку |
при переписи |
ф а й л а |
степень |
инверсии введением длины |
списка как |
параметра про |
г р а м м ы может изменяться, оператор системы может пе
риодически |
менять параметры |
системы в |
соответствии |
с текущей |
статистикой файла |
и запроса. |
Это позволит |
ему динамически адаптироваться, улучшая характерис
тики |
системы. |
|
|
|
|
|
|
|
О д н а к о списковая |
структура — не |
единственное |
||||||
средство разбиения файла . Д р у г и м |
средством |
может |
||||||
быть физическое |
разбиение |
З У П Д на секторы, |
имеющие |
|||||
целью |
направить |
.поиск |
тіо |
ключу |
на отобранные |
сек |
||
торы |
вместо просмотра |
индивидуальных |
записей. |
При |
96
этом внутри сектора в о з м о ж н а списковая структура с произвольным доступом к записям или последователь ным просмотром сектора. Наличие списковой структуры
внутри |
сектора |
зависит от таких |
факторов, как |
размер |
|
сектора |
(как в |
числе записей, |
т а к |
и в количестве |
симво |
лов), |
ж е л а е м о й сложности |
программирования, тип |
|||
З У П Д |
и требование оперативного обновления и |
харак |
теристик отклика системы. После описания этого метода
покажем, что |
приписывание |
записей |
сектором |
имеет |
|||
свои преимущества. |
Т а к а я структура |
уменьшает число |
|||||
обращений |
к |
секторам, |
причем группировка |
записей |
|||
внутри сектора |
о т р а ж а е т |
их взаимное |
р а с п о л о ж е н и е от |
||||
носительно |
запроса . |
|
|
|
|
|
|
Н а рис. |
5-2 |
схема |
метода |
разбиения на |
секторы |
представлена как обобщение схемы с частично инвер тированной списковой структурой, поскольку фактичес ки она представляет собой списковую структуру спектров вместо записей, в которой степень инверсии записи яв
ляется |
функцией р а з м е р а сектора. Схема с м а л ы м и секто |
|||||||||
рами приближается к схеме с полной инверсией |
записи |
|||||||||
(одна запись в секторе) . Схемы с крупными |
секторами |
|||||||||
расположены ближе либо |
к мультисписковой |
|
системе, |
|||||||
если сектор внутри имеет |
мультисписковую |
структуру, |
||||||||
либо к |
последовательному |
файлу, |
если |
он |
не |
имеет |
||||
внутренней |
списковой |
структуры. |
С другой |
стороны, |
||||||
если |
сектор |
имеет |
внутреннюю |
списковую |
|
структу |
||||
ру, по |
схеме |
инверсированного |
списка, весь |
файл не |
||||||
зависимо |
от |
размера |
сектора |
т а к ж е |
окажется |
инвер |
тированным, причем в состоянии многоступенчатой иерархии.
Итак, процесс оперативного поиска состоит из двух
существенно различных этапов: |
|
|
|
|
|||
справочного декодирования |
и |
поиска |
разбиения |
||||
файла . |
|
|
|
|
|
|
|
, Техника программирования, |
р е а л и з у ю щ а я |
структуру |
|||||
файла |
на |
к а ж д о м этапе, |
рассматривается |
и |
оценивает |
||
ся в |
двух |
последующих |
главах . |
В |
гл. 6 |
предлагаются |
методы справочного декодирования, глава 7 содержит способы организации поиска файла . В последней главе книги описываются и оцениваются методы генерирова ния файлов, их оперативного обновления и управления хранением.
7—88 |
97 |
ГЛАВА ШЕСТАЯ
М Е Т О ДЫ Д Е К О Д И Р О В А Н И Я СПРАВОЧНИКОВ
В этой главе рассматривается ряд методов декодирова ния: метод дерева усеченных ключевых слов постоянной длины; метод дерева однозначно усеченных ключевых слов переменной длины; метод дерева полных ключевых слов переменной длины и метод рандомизации . Назовем эти методы соответственно методом постоянного дерева, ме тодом усеченного переменного дерева, методом перемен ного дерева и методом рандомизации .
Н и ж е эти методы будут описаны и дополнены при мерами; для к а ж д о г о метода будут получены выражения для времени поиска и объема требуемой памяти. Затем будет проведен сравнительный анализ этих, методов по
сложности |
программирования, скорости |
декодирования и |
з а т р а т а м |
памяти. |
|
Вначале рассмотрим декодирующие |
деревья, которые |
могут быть упорядоченными и неупорядоченными. Отли
чие упорядоченного |
дерева |
от неупорядоченного |
состоит |
в следующем: если |
дерево |
имеет N уровней, то |
все клю |
чи можно декодировать (с помощью упорядоченного де рева) либо на N—1-м уровне, либо на N-ы. Преимуще ством упорядоченного дерева является почти постоянное
время декодирования любого ключа, |
недостатком — бо |
лее сложное программирование . В то |
ж е время неупоря |
доченное дерево иногда обеспечивает более высокую ско
рость декодирования . |
|
|
|
|
|
||
Н а |
практике, |
однако, |
требуемая |
словарем |
ключей |
||
глубина дерева в большинстве случаев |
не |
превышает |
|||||
двух или трех уровней (в |
зависимости |
от типа |
исполь |
||||
зуемого |
З У П Д ) . |
Поэтому |
использование |
неупорядочен |
|||
ных деревьев не |
приведет |
к существенному |
сокращению |
времени декодирования . П о этой причине здесь рассма триваются лишь упорядоченные деревья .
Начнем с дерева ключевых слов постоянной длины, получаемых при усечении ключей полной длины. Деко дирование ключей с помощью этого дерева выполняете:"- путем просмотра таблиц .
98
6-1. ДЕРЕВО УСЕЧЕННЫХ КЛЮЧЕВЫХ СЛОВ ПОСТОЯННОЙ д л и н ы
На рис. 6-1 схематично показана часть такого дерева. Последовательности имен представлены в алфавитном
порядке в табл . 6-1. Дерево, изображенное |
на |
рис. 6-1, |
|||||||
уровень, хранимый |
|
|
|
|
|
|
|
||
В оперативной |
памяти |
|
|
|
|
|
|
|
|
Уровни, |
|
|
|
|
|
|
|
|
|
хранимые \ |
|
|
|
|
|
|
|
|
|
6 памяти |
|
|
|
|
|
|
|
|
|
на дисках |
ВЙВЩ вмщ\ BELLI BELM/BLRCI CRRd/CRRTI cm/ |
BUHLIOYSOIЕШІ |
|||||||
|
|||||||||
|
|
|
« А |
R1JL1 |
|
|
|
Ulfa |
|
Рис. 6-1. Дерево с усечением ключевых слов постоянной длины. |
|||||||||
декодирует имена из таблицы, причем |
к а ж д о е |
имя со |
|||||||
кращается |
до первых |
четырех букв. Д л я простоты пред |
|||||||
полагается, |
что уровни, хранимые в |
памяти на |
дисках, |
||||||
|
|
|
|
|
|
|
|
Т а б л и ц а 6-1 |
|
|
|
Пример однозначного усечения |
имени |
|
|||||
|
|
|
Однозначно |
|
|
|
|
Однозначно |
|
|
|
Однозначно |
закодиро |
|
|
Одн 13ЮЧНО |
закодиро |
||
Полное имя |
закодиро |
|
ванные |
Полнее им я |
закодиро |
ванные |
|||
ванный |
фрагменты |
ванный |
фрагменты |
||||||
|
|
фрагмент |
для много |
|
|
фрагмент |
для много |
||
|
|
|
уровневого |
|
|
|
|
уровневого |
|
|
|
|
|
дерева |
|
|
|
|
д е р е Е а |
ВАВВЕТ |
|
В |
|
В |
BLACK |
|
BL |
|
. В |
BABSON |
|
BABS |
|
ВA BS |
BLACKWELL |
BLACKW |
BLACW |
||
BAILEY |
|
BAI |
|
BAI |
CARDER |
|
С |
С |
|
BAKER |
|
.ВАК |
|
В |
CARTON |
|
CART |
CART |
|
BELL |
|
BE |
|
BE |
CROZIER |
|
CR |
С |
|
BELLSON |
|
BELLS |
B E L L S DUNLAP |
|
D |
D |
|||
BELMAN |
|
B E I M |
BELM |
DYSON |
|
DY |
DY |
||
|
|
|
|
|
EYERS |
j |
E |
Е |
99