Файл: Левковиц, Д. Структуры информационных массивов оперативных систем.pdf
ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 19.10.2024
Просмотров: 75
Скачиваний: 0
рисунке справочник д л я наглядности изображен в виде дерева. При декодировании ключ X дает адрес А2, но которому содержится полное значение ключа. Если де кодер неоднозначного типа, например такой, как .«фик
сированное |
дерево» или рандомизированный, и если |
|
ключ X по |
адресу А2 не соответствует ключу |
X запроса, |
то в дополнение к полному значению ключа, |
нотребовал- |
Справочник
(Выход
справочника)
Инверти
рованные )• списки
переменной
длины
Рис. 7-9. Дерево справочника и инвертированные списки.
ся бы адрес продолжения . Связь по цепочке в этом слу
чае у к а з ы в а л а бы на |
другой |
список |
адресов, т а к ж е со |
д е р ж а щ и й в качестве |
первого |
слова |
полный ключ. Если |
и этот ключ в свою очередь не сравнится с запросом, он связывается со следующим списком и т. д. Если справоч ник содержит однозначные ключи, то упоминание ключа и адреса продолжения в инвертированном списке пере менной длины не нужно. Д л я списков переменной длины желательно запомнить длину списка. Эта информация может быть полезна декодеру логических выражений . Если происходит конъюнкция сверхдлинного и сверхко роткого списка, декодер может не производить пересече ние списков, а непосредственно перейти к поиску по ко
роткому списку. В конце списка |
адресов |
д о л ж |
н а быть |
оставлена резервная зона таким |
образом, |
чтобы |
при до- |
155
бавлении записей |
к данному списку можно было без пе |
|||||
реполнения вставить |
в последовательность соответствую |
|||||
щий адрес. Если |
резервное |
поле исчерпано, |
как |
показа |
||
но на рис. 7-9 |
д л я |
ключа Y, то последний элемент |
в запи |
|||
си содержит |
адрес |
связи |
к другой записи |
переменной |
длины, где список продолжается . Когда файл восстанав
ливается, |
ключевые списки |
снова собираются вместе |
в единые |
записи переменной |
длины. |
Процедура получения таких инвертированных спи сков в соответствии с логикой запроса была описана вы
ше. Списки А , В и |
С на рис. 7-6 соответствуют инверти |
|
рованным |
спискам |
на рис. 7-9. |
|
7-7. ВРЕМЯ ВЫБОРКИ ИЗ ФАЙЛА |
|
Время обработки |
запроса в файле есть функция спо |
|
соба его |
организации, характеристик З У П Д и количе |
ства записей, выбираемых из файла . Поэтому для под
счета общего времени требуется определить |
некоторые |
|||||||
параметры, |
связанные |
с файлом, |
запросом и З У П Д . Не |
|||||
которые |
из |
этих |
параметров, |
например, |
|
параметры |
||
З У П Д , могут быть |
взяты из характеристик |
машины. Па |
||||||
раметры |
организаций |
файла определяются |
статистикой |
|||||
его |
генерирования. Д л я других |
параметров |
можно ука |
|||||
зать |
лишь |
первое |
приближение, |
которое |
по |
желанию |
можно уточнять с помощью операционной системы, на пример автомонитора, предложенного в гл. 1.
В табл . 7-3 содержится список этих параметров и их
определение. П а р а м е т р ы , относящиеся к файлу, |
следую |
||||||||
щие: общее число различных ключей (т. е. пары |
|
имя/зна |
|||||||
чение), обозначаемое через V, количество записей в си |
|||||||||
стеме Nr, среднее |
количество ключей на запись Ni,; сред |
||||||||
няя длина списка тогда приближенно вычисляется |
как |
||||||||
N^Nh/V; |
среднее количество символов на запись |
|
Cf, сред |
||||||
нее количество записей на сектор в посекторно |
расчле |
||||||||
ненных |
системах |
і ? 0 и среднее |
количество |
секторов |
на |
||||
ключ Ck- |
|
|
|
|
|
|
|
|
|
Все |
п а р а м е т р ы |
запроса |
относятся к запросу, |
состоя |
|||||
щему из одночлена. Если |
запрос состоит из суммы про |
||||||||
изведений, время |
д о л ж н о |
быть |
умножено на количество |
||||||
слагаемых . Среднее число термов (отрицаемых |
и неотри- |
||||||||
цаемых |
ключей) |
в |
слагаемом |
запроса — Ni, |
а |
количест |
|||
во неотрицаемых |
термов — Np. |
Д л и н а самого |
короткого |
||||||
списка |
ключей, |
из |
числа |
составляющих |
запрос, — |
L s , |
15&
|
|
Т а б л и ц а 7-3 |
|
Параметры обработки |
файла |
Об ізначение |
Определение |
Тип параметра |
V
Nr Nu
L
Cf
Rc
c f c
Nt
Np
L s
P a
A
Tr
Rt
R
Количество |
различимых ключеіі Относятся к файлу |
|
в словаре |
записей |
в системе |
Количество |
||
Количество |
ключей |
на запись |
(среднее) |
|
|
Средняя длина списка |
(NrNh)/V |
Количество символов на запись
влогическом файле (среднее) Количество записей на сектор
(среднее)
Количество секторов на ключ
Количество |
термов |
в |
слагае |
Относятся |
к |
за |
||||
мом запросе |
(среднее) |
|
|
просу |
|
|
||||
Количество |
неотрицаемых тер |
|
|
|
||||||
мов в слагаемом |
запроса |
(сред |
|
|
|
|||||
нее) |
самого |
короткого списка |
|
|
|
|||||
Длина |
|
|
|
|||||||
в запросе |
(средняя) |
|
|
|
|
|
|
|||
Отношение |
числа запросов к L s |
|
|
|
||||||
(среднее) |
|
|
|
|
|
|
|
|
|
|
Отношение |
числа |
запрашивае |
|
|
|
|||||
мых секторов |
к С\ |
(среднее) |
|
|
|
|||||
Количество |
адресов |
записей |
Относятся |
к |
уст |
|||||
файла на физическую |
запись |
ройству |
|
|
||||||
Время |
произвольного |
обраще |
|
|
|
|||||
ния ЗУПД |
(среднее) |
|
|
|
|
|
|
|||
Скорость |
передачи |
данных из |
|
|
|
|||||
ЗУПД (байт, |
сек) |
|
|
(сек) |
|
|
|
|||
Время оборота |
ЗУПД |
|
|
|
среднеее отношение числа к L s — р, а среднее отношение числа секторов, где расположен запрос, к среднему чис лу секторов на ключ (Си)—а.
З У П Д характеризуется следующими параметрами : количество адресов, которое можно запоминать в фи
зической |
записи ЗУПД |
А. Среднее |
время |
произвольного |
||
доступа, |
исключая |
задержк и |
и |
время |
считывания |
|
с ЗУПД |
ТТ, скорость |
передачи |
данных |
из ЗУПД |
RT |
|
(байт/сек) |
и врем я оборота З У П Д |
R. |
|
|
Времена поиска дл я структур мультисписковых фай лов, инвертированных файлов и файлов с последователь ным расположением секторов представлены в табл . 7-4.
157
|
|
|
Время поиска |
списка |
Т а б л и ц а 7-4 |
||||
|
|
|
|
|
|
||||
Процедуры |
Мультисписок |
Инвертированный |
Секторно-последова- |
||||||
список |
|
тельный |
список |
||||||
|
|
|
|
|
|||||
Декодирова |
|
|
NrTn |
|
|
|
|
||
ние по спра |
|
|
|
|
|
|
|
|
|
вочнику |
|
|
|
|
|
|
|
|
|
Пересечение |
|
— |
г і |
1 |
|
|
|
|
|
|
|
|
|
|
|
|
|||
списка |
(сек |
|
|
|
|
|
|
|
|
тора) |
|
|
XNt(Tr+ |
|
1,5/?) |
XNV(T,. |
+ \,SR) |
||
Поиск |
и пе |
L,(Tr+ |
1.5Я) |
PL5(Tr |
+ |
\,5R) |
|
|
|
ренос |
записи |
|
|
|
|
|
|
|
|
списка |
(сек |
|
|
|
|
|
|
|
|
тора) |
|
|
|
|
|
|
|
|
|
Д е й с т в и т е л ь н ое время |
доступа |
к записи |
складыва |
||||||
ется |
из времени |
установки подвижной |
головки |
З У П Д |
|||||
(Г,.), |
времени ожидания |
(R/2) |
и |
времени |
считывания |
дорожки (R) в предположении, что физическая запись занимает одну дорожку . Если физическая запись любой другой длины, то величина R интерпретируется как вре мя считывания записи и соответственно изменяется. Дл я З У П Д с фиксированной головкой 7Ѵ=0. Мультисписковый файл декодирует, например, с помощью /г-уровнево- го дерева все неотрицаемые ключи в терме запроса . Ин вертированный список декодирует все термы, а при структуре последовательных секторов декодируются только неотрицаемые термы. В мультисписковых систе мах пересечение списков до начала поиска файла не рас-
матривается . |
В |
инвертированных |
списковых |
системах |
|||||||
нужно |
просмотреть |
LI А физических записей |
(см. рис. 7-6) |
||||||||
для |
к а ж д о г о |
из Nt |
ключей. Аналогично при |
системе |
по |
||||||
следовательных |
секторов д о л ж н ы |
просматриваться |
на |
||||||||
пересечение |
CiJA |
|
физических |
записей |
для |
к а ж д о г о |
из |
||||
Np |
неотрицаемых |
ключей. МуЛьтипоисковая система дол |
|||||||||
ж н а |
просматривать к а ж д у ю |
запись |
самого |
короткого |
|||||||
списка |
Ls в файле, в то время |
как инвертированная спи |
сковая система просматривает только те записи pLs, ко торые удовлетворяют ключевой логике. Секторно-после- довательная система просматривает все пересекающиеся секторы аСі„ где сектор содержит RsCf байтов.
158
Т а к им образом, время поиска файла (исключая спра вочное декодирование) равно:
TML=Ls(Tr+\,5R); |
|
|
(7-1) |
||
TIL=(Nt[L/A} |
+ pLs) |
(7Ѵ+1.5Я); |
(7-2) |
||
Tes = Np [Си/А] |
(Tr |
+ 1,5R) + |
aCk |
(TT + M i - ) . |
(7-3) |
П о д с т а в л я я (7-1) |
в |
(7-2), получаем |
соотношение |
вре |
мени поиска между мультисписковыми и инвертирован
ными |
системами |
|
|
|
|
|
|
|
|
|
|
|
|
|
(7-4) |
Поэтому поиск в |
инвертированном |
списке быстрее, |
|||||
чем в |
мультисписке, |
если |
|
|
|
|
|
|
|
/ 1 |
Nt |
Г 1 |
1 |
|
(7-5) |
|
Р < 1 |
- 7 7 |
Т |
• |
|||
|
|
||||||
Это |
неравенство |
показывает, |
что |
чем |
больше число |
списков, подвергающихся пересечению Nu тем больше
физических записей приходится |
на средний список |
|
(LIA), |
|||||
и чем меньше самый короткий |
список |
(Ls), |
тем |
вероят |
||||
ней, что время выборки дл я |
мультисписка |
окажется |
||||||
меньше, чем это время для инвертированного |
|
списка. |
||||||
Обычно неравенство (7-5) выполняется, |
т а к как |
у ж е |
при |
|||||
/Ѵ/>2 |
р очень мало. Например, |
если Nt |
= 3, |
Л ='500, |
L = |
|||
= 300 |
и L ä = 2 0 , то правая |
часть |
неравенства (7-5) равна |
|||||
0,85. |
Иначе говоря, чтобы |
поиск |
пересечений |
инвертиро |
ванных списков заменить на просмотр самого короткого списка, плотность совпадений для последнего при конъ юнкции трех термов д о л ж н а превысить 85%. Можн о ожидать, что для трех термо-р будет в диапазоне 0,1— 0,25.
Следует предупредить читателя об осторожности при интерпретации и использовании этих формул. В некото
рых системах могут быть использованы два |
(или более) |
|||||
типов |
З У П Д . Например , дл я хранения |
справочника |
мо |
|||
жет использоваться дисковая память, а ЗУ |
на |
магнит |
||||
ных |
полосках — для |
хранения файлов, |
а |
возможно |
и |
|
инвертированных списков. В таких случаях |
параметры |
|||||
З У П Д , используемые |
в формулах, д о л ж н ы быть |
соответ |
||||
ственно изменены. |
|
|
|
|
|
159