 
        
        книги из ГПНТБ / Левковиц, Д. Структуры информационных массивов оперативных систем
.pdfхи обозначают резервное пространство дорожки . Из при
| веденных формул • на | рис. 6-6 | ясно, | что Nt3 | есть целая | 
| часть отношения 22/4, | р а в н а я | 5; Ntz | равно | отношению | 
22/42 =22/16, которое равно 2 (берется целая часть плюс единица), a Nu — отношению 22/4 3 = 22/64, равному еди нице (берется целая часть плюс единица) . Следуя про цедуре создания дерева, показанного на рис. 6-1, необ ходимо полностью заполнить пять д о р о ж е к по четыре ключа е а д о р о ж к у (для ключей от 1-го д о 20-по). Объем памяти, требуемый для хранения второго уровня, равен
| одной | полной д о р о ж к е | (рис. 6-6). Д л я того чтобы мож | ||||
| но | было о б р а щ а т ь с я к | пятой | д о р о ж к е | третьего | уровня, | |
| т. | е. к | дорожке, с о д е р ж а щ е й | ключи | от 17-го до | 20-го, | |
необходимо хранение одной записи на второй дорожке второго уровня. Остальные дв а ключа, 21-й и 22-й, по мещаются в две из оставшихся трех записей второй до р о ж к и второго уровня. Резервное пространство этой до рожки равно, таким образом, н а ч а л ь н о м у резервному пространству плюс одна неиспользованная запись. Дл я того чтобы обеспечить две дорожки второго уровня, тре
| буется только одна | д о р о ж к а | 
 | первого уровня. | Следова | ||||||||||||
| тельно, словарь с 22 ключами требует | одну д о р о ж к у для | |||||||||||||||
| хранения | первого | уровня | дерева, | две — дл я | второго и | |||||||||||
| пять — д л я | третьего | уровня | 
 | (на | к а ж д о й | д о р о ж к е | хра | |||||||||
| нится по четыре | к л ю ч а ) . | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | |||
| Если хранить | первой уровень | в оперативной | памяти, | |||||||||||||
| то требуется только две логические записи | типа | фраг | ||||||||||||||
| мент ключа/двойной | адрес | [т. е. | 
 | 
 | Mc—2(Cf+Ca)]. | 
 | ||||||||||
| Рассмотрим наиболее | распространенные | случаи. | ||||||||||||||
| 1. Трехуровневое | дерево: | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | |||||
| 
 | 
 | 
 | 
 | iWft = 20000; | 
 | 
 | 
 | 
 | 
 | 
 | ||||||
| 
 | 
 | 
 | 
 | m = | 100; | 
 | 
 | 
 | 
 | 
 | 
 | 
 | ||||
| 
 | 
 | yVt3 | = | I N T . ? ^ | = | 200; | 
 | 
 | 
 | 
 | ||||||
| 
 | 
 | Л ^ = | Ш Т + | 2 | 0 | ÎOO2 | ' «- ' | 
 | 
 | 
 | 
 | |||||
| 
 | 
 | 
 | 
 | 
 | 
 | 0 | 0 | 0 | 
 | 
 | 
 | 
 | 
 | 
 | ||
| 
 | 
 | д. | 
 | 
 | 
 | 20 000 | , | 
 | 
 | 
 | 
 | 
 | ||||
| 
 | 
 | 
 | 
 | Wt = 203. | 
 | 
 | 
 | 
 | 
 | 
 | ||||||
| З а м е т и м , что так как m значительно | больше | 10, то | ||||||||||||||
| приближение Ni^Nt3=200 | 
 | является | весьма | точным. | ||||||||||||
120
| 2. | Двухуровневое | дерево: | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | |||||
| 
 | 
 | 
 | 
 | 
 | Wh = 20 ООО; | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | ||||
| 
 | 
 | 
 | 
 | 
 | 
 | m | =100; | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | |
| 
 | 
 | 
 | 
 | Nu = | \ЫТ_ | 20 ООО | = | 200; | 
 | 
 | 
 | 
 | |||||
| 
 | 
 | 
 | 
 | 
 | 
 | 
 | 100 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | |
| 
 | 
 | 
 | 
 | л , | т | м ^ | 20 000 | - = | 0 | 2. | 
 | 
 | 
 | 
 | 
 | ||
| 
 | 
 | 
 | 
 | tft1 = | 
 | I N T + | - r o 5 ï | 
 | 
 | 
 | 
 | 
 | 
 | ||||
| 
 | 
 | 6-5-2. | Формулы дл я р а н д о м и з а т о р а | 
 | 
 | 
 | |||||||||||
| Требуемый дл я декодера с рандомизацией объем | 
 | памя  | |||||||||||||||
| ти зависит от вида данного рандомизатора, | однако дл я | ||||||||||||||||
| обобщенных рандомизаторов, показанных | на | рис. 6-4 и | |||||||||||||||
| 6-5, применимы следующие | формулы . | 
 | 
 | 
 | 
 | 
 | |||||||||||
| Д л я рис. 6-4: | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | ||||
| 
 | 
 | 
 | Md= - ^ 5 - + Nk | [ c f c + C , + 1 + | 
 | 
 | 
 | ||||||||||
| 
 | + ( ^ r ) c | « + c « ] = | 
 | ( c " + c < + 2 C « + | ! > - | 
 | (6-9) | ||||||||||
| 
 | 
 | 
 | 
 | ||||||||||||||
| Для рис. | 6-5 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | ||
| 
 | Md | = N*Ca | 
 | 
 | 
 | 
 | 
 | a— 1 | {Ca + | Cf) | 
 | 
 | |||||
| 
 | 
 | 
 | 
 | Cffl | 
 | 
 | l | - f d | + | Ca + | 2 | 
 | 
 | (6-10) | |||
| 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | |||||||||
| При расчете по формуле (6-9) | дл я хранения | уровня | |||||||||||||||
| косвенной | адресации | требуется | Nul о, | областей, | к а ж д а я | ||||||||||||
| из которых | содержит | адрес | записи, | хранимой в | З У П Д . | ||||||||||||
| При | словаре ключей | объемом 20 000 | слов и | выделении | |||||||||||||
| (при | рандомизации) | из к а ж д о г о | ключа 10 бит создает | ||||||||||||||
| ся 1024 | кода, причем | среднее | количество | избыточных | |||||||||||||
| декодирований | (т. е. | средняя | длина | цепи | а) | 
 | равно: | ||||||||||
| 20000/1024 ~20 . Таким | образом, | объем памяти (в сим | |||||||||||||||
| волах), требуемый дл я хранения | уровня косвенной | адре | |||||||||||||||
| сации, равен NkCJu. | Д л я к а ж д о г о | 
 | из Nu | ключей, | полу | ||||||||||||
чаемых с помощью декодера, требуется следующее коли
| чество символов: | дл я | полного | ключа — 6\; | дл я | длины | |
| списка — Са; | дл я | цепного адреса — Са (если | есть | цепь), | ||
| и для адреса | ссылки | на выход | декодера — Са. | 
 | ||
| М о ж н о сэкономить | один параметр, д о б а в л я я в выход | |||||
| ную запись | символ, | у к а з ы в а ю щ и й существование цеп- | ||||
121
ного адреса. Следовательно, добавим в расчет еще один
| символ и положим, что требуется | только а—1 | цепных | |||
| адресов (если | длина | цепи равна | а ) . Если | в | формуле | 
| (6-9) раскрыть | скобки | и привести | подобные | члены, то а | |
уничтожится. Читателю предлагается определить, поче
| му так | получилось. | 
 | 
 | 
| Из | формулы (6-10) видно, что | для хранения уровня | |
| косвенной адресации снова требуется N^CJa | символов. | ||
| Однако | хранение полного ключа | не требуется | (так как | 
используется ключ, имеющийся в записи) . Количество требуемых символов равно для длины списка С/, для
| звездочки (сигнального символа | ц е п и ) — е д и н и ц е , для | |
| а—1 | цепных адресов — Са (если | длина цепи равна а) и | 
| для | фрагмента ключа — С/. При | раскрытии скобок и | 
приведении подобных членов а не исчезает, поэтому
| результат, полученный по формуле (6-10), | меньше | ре | ||||||
| зультата, | полученного | по формуле (6-9), | на | Nn[Ck— | ||||
| — С / ( 1 — 1/а)+С„ — 1 ] | символов. | 
 | 
 | 
 | 
 | 
 | ||
| Если | разместить уровень косвенной | адресации в | опе | |||||
| ративной | памяти, то | формулы | примут | следующий | вид: | |||
| д л я рис. | 6-4 | 
 | 
 | 
 | 
 | 
 | 
 | |
| 
 | 
 | 
 | 
 | 
 | 
 | 
 | (6-9а) | |
| 
 | М , = = Л ^ [ С , ; + С г + С а ( 2 - 1 / а ) + 1 ] ; | 
 | 
 | |||||
| для рис. | 6-5 | 
 | 
 | 
 | 
 | 
 | 
 | |
| 
 | 
 | 
 | 
 | 
 | 
 | 
 | (6-10а) | |
| 
 | Ма | = N* [С, + | (Сj + Cd) | (1 - i/o.) + | 2]. | 
 | 
 | |
| Необходимо, однако, заметить, что | обе | эти | формулы | |||||
справедливы в предположении, что декодирование одно
| значно, | в то время | как формулы | д л я | деревьев (6-6) и | 
| (6-7) не | учитывают | этого предположения . Следователь | ||
| но, если | удалить из | формул (6-9) | и | (6-10) часть, свя | 
занную с неоднозначностью декодирования [для прове
| дения прямого сравнения | с формулами | (6-6) | и (6-7)], то | |||
| они примут | следующий | вид: | 
 | 
 | 
 | |
| д л я рис. | 6-4 | 
 | 
 | 
 | 
 | 
 | 
| 
 | Md = Nk[Cj | + | Ci+Ca(l | + l/a)]. | (6-96) | |
| Д о б а в к а , | связанная | с | неоднозначностью, | равна: | ||
| 
 | Ск - Сj + | 1 + ( I - | 4-) | Са] ; | (6-9в) | |
122
| для рис. 6-5 | 
 | 
 | 
 | 
 | 
| M | ^ / | V ^ + ^ | + l ) . | (6-106) | 
| Добавка, связанная | с неоднозначностью, | равна: | ||
| 
 | 
 | 
 | 
 | (6-10в) | 
| Обычно величину а стараются делать близкой к еди | ||||
| нице (выделением из ключа logzNk | бит), чтобы создать | |||
| столько областей | д л я | уровня | косвенной | адресации, | 
сколько имеется ключей. Тогда, чем ближе а к единице,
| тем | лучше | рандомизатор . Обычно хороший рандомиза- | 
| тор | имеет | а около 1,1. Д л я ускорения декодирования | 
требуется уменьшить а (это видно при обсуждении вре
| мен | о б | р а щ е н и я ) . Так | как Md | не | зависит от а, то потерь | 
| памяти | нет (если косвенный уровень не хранится в опе | ||||
| ративной п а м я т и ) . Поэтому | при | ограниченной памяти а | |||
| надо | увеличивать. | 
 | 
 | 
 | |
| 
 | 6-5-3. Сравнение | требований | к объему памяти | ||
В табл.'6-4 производится сравнение требований к объему памяти для трех основных методов декодирования: упо рядоченного дерева с ключевыми словами постоянной длины, дерева с ключевыми словами постоянной длины, дерева с ключевыми словами переменной длины и двух методов рандомизации . Д л я к а ж д о г о из этих методов рассмотрены два случая. В первом случае среднее коли чество символов (или усечение постоянной длины) на фрагмент ключа равно 4, что близко к минимальному значению этого параметра, а во втором среднее количе
| ство символов | равно 8, | что более | типично для | длины | 
| фрагмента. Значения этих параметров у к а з а н ы | в столб | |||
| це для Cf. Д л я | к а ж д о г о | значения | С/ создается | дерево | 
| с т р е м я | различными значениями Nu | (ключей | в системе); | ||||||||||
| как указано в третьем столбце таблицы, | эти значения Nh | ||||||||||||
| равны | соответственно | 1 ООО, 10 ООО и 30 | ООО. | 
 | |||||||||
| 
 | П а р а м е т р а м и | длины | ключа | для | рандомизатора, | изо | |||||||
| браженного на рис. 6-4, | являются | С,- | и | Ch | [формулы | ||||||||
| (6-9в) | и | (6-9с)], | а для | рандомизатора, | изображенного | ||||||||
| на | рис. | 6-5, — Cf. | Д л я | С,- | выбрано | значение | 2, так | как | |||||
| при | этом | выделяется | 16 | бит | или | 2 1 8 | ячеек | косвенной | |||||
| адресации, что соответствует заданному | количеству | клю- | |||||||||||
123
| 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | Т а б л и ц а | 6-4 | |
| Сравнение требований к памяти | для различных методов декодирования | справочников | 
 | ||||||||||
| 
 | 
 | 
 | 
 | 
 | 
 | 
 | іИ£ , символов | М^, символов (ООО) | 
 | Сумма (000) | |||
| 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | ||
| 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | Добавка для | двухуровневое | |
| Метод декодирования | спра | 
 | с. | 
 | m | двухуров | треху ров- | двухуров | трехуров | однозначности | деревэ+добав - | ||
| 
 | 
 | декодирования | ка д л я одноз | ||||||||||
| вочников | 
 | 
 | 
 | (ООО) | 
 | невое | невсе | невое | невое | ||||
| 
 | 
 | 
 | 
 | 
 | 
 | символов (000) | начного | деко | |||||
| 
 | 
 | 
 | 
 | 
 | 
 | 
 | дерево | дерево | дерево | дерево | 
 | дирования | |
| Дерево с ключевыми | слова | 4 | - | 1 | 270 | 32 | 8 | 12 | 12 | 12*** | 24 | ||
| ми постоянной длины | 
 | 
 | 
 | 10 | 
 | 340 | 8 | 114 | 114 | 120 | 234 | ||
| 
 | 
 | 
 | 
 | 
 | 30 | 
 | 896 | 8 | 336 | 336 | 360 | 696 | |
| 
 | 
 | 
 | 8 | — | 1 | 192 | 72 | 12 | 18 | 18 | 12 | 30 | |
| 
 | 
 | 
 | 
 | 
 | 10 | 
 | 632 | 12 | 159 | 159 | 120 | 279 | |
| 
 | 
 | 
 | 
 | 
 | 30 | 
 | 1884 | 12 | 471 | 471 | 360 | 831 | |
| Дерево с ключевыми | слова | 4 | — | 1 | 150 | 56 | 8 | 21 | 21 | Ü | 21 | ||
| ми переменной | длины | 
 | 
 | 
 | 10 | 
 | 536 | 8 | 201 | 201 | 0 | 201 | |
| 
 | 
 | 
 | 
 | 
 | 30 | 
 | 1600 | 16 | 600 | 60S | 0 | 600 | |
| 
 | 
 | 
 | 8 | 
 | I | 122 | 108 | 12 | 27 | 27 | 0 | 27 | |
| 
 | 
 | 
 | 
 | 
 | 10 | 
 | 984 | 12 | 246 | 246 | 0 | 2Й6 | |
| 
 | 
 | 
 | 
 | 
 | 30 | 
 | 2952 | 36 | 738 | 744 | 0 | 738 | |
| Рандомизатор | (рис. 6-4) | 2 | 12 | 1 | — | — | — | 4.4* | 
 | 11,4**** | 15,8 | ||
| 
 | 
 | 
 | 
 | 
 | 10 | 
 | 
 | 
 | 44,0 | 
 | 114,0 | 158,0 | |
| 
 | 
 | 
 | 
 | 
 | 30 | 
 | 
 | 
 | 1320 | 
 | 342,0 | 474,0 | |
| Рандомпзатор (рис. 6-5) | 2 | — | 1 | — | — | — | 3,4** | 
 | 1,6***** | 5,0 | |||
| 
 | 
 | 
 | 
 | 
 | 10 | 
 | 
 | 
 | 34 | 
 | 16,0 | 50,0 | |
| 
 | 
 | 
 | 
 | 
 | 30 | 
 | 
 | 
 | 102 | 
 | 43,0 | 150,0 | |
| Ct =3000; С г = 3 0 0 ; | С,=2 ; С а = 4 ; | С Л = 2 ; | Wd =4; а = І , І . | 
 | 
 | 
 | 
 | 
 | 
 | 
 | |||
*Формула (6-96).
**Формула (6-106)
***Любое, исключая поиски или просмотр полного ключа .
****формула (6-9в).
**••* Формула (6-10в).
| чей Nk- | Д л я | средней длины | ключа Cf t выбрано значение | |||
| 12 (этот | п а р а м е т р | имеет смысл только д л я первого ран | ||||
| домизатора) . В четвертом | столбце | (для т) | приведено | |||
| количество | ключей | дерева, | которое | можно | разместить | |
на одной д о р о ж к е . Значения параметров получены из
| формул (6-1) и (6-2). В | нижней части таблицы приво | ||||||
| дятся типичные значения | постоянных | параметров . Объем | |||||
| дорожки | берется | равным 3000, | что | является | близким | ||
| к объему | д о р о ж к и | диска | I B M , | 1301, | равному | 2800 сим | |
| волов. Н а | к а ж д о й д о р о ж к е резервируется | 10% | простран | ||||
| ства, соответствующего | 300 символам . | Д л я | указания | ||||
длины списка Ci достаточно двух символов*, или 16 бит. Предполагается, что адресная ссылка Са занимает четыре
| символа | (32 | бит) . Д л я | заголовка | Сл. в дереве | ключевых | ||||||||||
| слов | переменной | длины | достаточно | двух | символов, | ||||||||||
| а среднее количество однозначно закодированных | фраг | ||||||||||||||
| ментов различной | длины | в дереве ключевых слов пе | |||||||||||||
| ременной | длины | полагается | равным | 4. | Д л и н а | цепи | а, | ||||||||
| используемой в | методе | рандомизации, | равна 1,1, что | 
 | сов | ||||||||||
| местимо со значениями Cf | и Nk. | Требования | к | объему | |||||||||||
| оперативной | памяти д л я двух- и трехуровневого | дерева | |||||||||||||
| даются (в символах) соответственно в столбцах | 5 | 
 | и 6 | ||||||||||||
| табл. 6-4. Требования к объему памяти | д л я двух- и | трех | |||||||||||||
| уровневого | дерева | даются | (в тысячах | символов) | 
 | соот | |||||||||
| ветственно | в | столбцах | 7 и 8. П р е д п о л а г а е т с я т а к ж е , | что | |||||||||||
| как | уровень | косвенной | адресации, | т а к | и выходной | уро | |||||||||
вень рандомизаторов хранятся на диске. Следовательно, требований к оперативной памяти нет, и имеет смысл
| приводить | сведения | д л я | рандомизаторов по | 
 | объему | |||||||||||||
| З У П Д | только в | случае | двухуровневого дерева . | Т а к | как | |||||||||||||
| в формулу | (6-7), | по | которой | рассчитываются | 
 | деревья, | ||||||||||||
| не включено предположение о неоднозначности | д л я | по | ||||||||||||||||
| стоянного дерева [в отличие от формул | (8-9) | 
 | и | (6-10) | ||||||||||||||
| для | рандомизаторов], | то | данные | д л я | дисков | были | раз  | |||||||||||
| биты | на | две | части. Одна — д л я | декодера | без | предполо | ||||||||||||
| ж е н и я | о | 
 | неоднозначности декодирования | (табл . | 6-4 и | |||||||||||||
| 6-5), другая указывает добавку, связанную с | неодно | |||||||||||||||||
| значностью | (столбец | 9). Д л я | постоянного | дерева | можно | |||||||||||||
| либо ввести избыточность, проверяя записи файла | по | |||||||||||||||||
| полному | ключу | (что | увеличивает количество | поисков | ||||||||||||||
| в ф а й л е ) , | либо | хранить | 
 | полный | ключ | из | 12 | 
 | символов | |||||||||
| в дополнение к фрагменту. В | случае.переменного | дерева | ||||||||||||||||
| * | Здесь | 
 | считается, | что | символ | соответствует | одному | байту. | ||||||||||
| {Прим. | пер.) | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | ||
125
этой добавки нет, так как оно является однозначным декодером. Д л я раидомнзаторов в формулах (6-9) н (6-10) добавки, соответствующие неоднозначности, мож но выделить. В этом случае для них применяются фор мулы (6-96) и (6-9в), (6-106) и (6-10в). Последние две формулы используются для расчета раидомнзаторов (см. сноску к Табл. 6-4).
Перед анализом этой таблицы следует учесть, что обобщение приведенных в ней данных об относительных достоинствах рассмотренных методов может привести к неверным выводам, так как эти цифры основаны на данном наборе параметров . Другой набор параметров может привести к другим величинам. Следовательно, при проведении подобного анализа разработчик должен со ставить аналогичную таблицу, используя параметры, от
| вечающие области применения . его разработки, а | затем | ||
| у ж е сравнить полученные | результаты. | 
 | |
| Из проведенного анализа можно сделать несколько | |||
| выводов. Во-первых | (как | и предполагалось), поскольку | |
| m значительно больше 10, то требуемые объемы | памяти | ||
| на дисках для двух- | и трехуровневых деревьев | почти | |
совпадают. Незначительное отличие имеет место только при больших объемах словарей .
Во-вторых, объем оперативной памяти, требуемый для двух- и трехуровневых деревьев, существенно раз личен. Степень этого различия проявляется в соотноше  нии объема памяти и времени доступа. При декодиро вании с помощью двухуровневого дерева требуется одно
| обращение | к З У П Д , | но | больший | объем | оперативной | 
| памяти, в то время как при использовании | трехуровнево | ||||
| го дерева | требуется | два | обращения | к З У П Д , но мень | |
ший объем оперативной памяти. Конечно, по-видимому, более в а ж н ы абсолютные, чем относительные, значения. Д л я случая іУѴ;4= 1000, очевидно, предпочтительнее двух уровневое дерево, так как отличие между 32 и 8 симво лами несущественно. С другой стороны, объем оператив ной памяти (896, 1884, 1600 или 2952 символов), тре буемый словарем в 30 000 ключей, может оказаться зна чительным, особенно если эти ключи д о л ж н ы постоянно храниться в оперативной памяти.
В-третьих, достижение однозначности декодирования в постоянном дереве обходится весьма дорого, так как требуется лишнее обращение к З У П Д . Однако общий объем памяти (с учетом достижения однозначности), не-
126
| обходимый для постоянного дерева, не намного | больше, | ||||
| чем для | переменного дерева . В то ж е время | однозначное | |||
| дерево проще программировать . Поэтому, если | разработ | ||||
| чик предпочитает | декодировать | однозначно | (жертвуя | ||
| объемом | п а м я т и ) , | то ему следует выбрать | постоянное | ||
| дерево. | 
 | 
 | 
 | 
 | 
 | 
| В-четвертых, рандомизатор, | изображенный | на рис. | |||
6-5, предпочтительнее рандомизатора, изображенного на рис. 6-4, по фактору 3, которым оценивается гибкость декодера. Так, рандомизатор, изображенный на рис. 6-5, специально приспособлен для организации файла в виде связного списка или мультисписка, в то время как ран домизатор, изображенный на рис. 6-4, полностью уни версален.
В-пятых, можно провести еще одно сравнение между деревьями и рапдомизаторами . Если учесть дополнитель ные требования к объему З У П Д , необходимые (при организации постоянного дерева) для однозначного де кодирования, то общий объем памяти на дисках опреде
| ляется значением | параметра | Мй (табл. | 6-4). | Д л я рандо- | 
| мнзаторов общий | требуемый | объем памяти | на дисках | |
| указывается в последнем столбце табл . | 6-4. | М о ж н о от | ||
метить близкие значения этого параметра для дерева и рандомизатора, изображенного на рис. 6-4, но сущест венно разные значения для дерева и рандомизатора, изо браженного на рис. 33. С другой стороны, если выходной уровень постоянного дерева содержит изображение пол ного ключа, то отличие в требуемом объеме З У П Д меж ду деревом и рандомизатором, изображенном на рис. 6-4, также незначительное, в то время как между деревом и рандомизатором, изображенном на рис. 6-5, весьма су щественное.
Резюмируя, следует отметить, что при выборе вида
| декодера справочников следует | учитывать | следующие | ||
| количественные | характеристики: | скорость | декодирова | |
| ния, | требования | к объемам оперативной и внешней па | ||
| мяти, | сложность | программирования, а т а к ж е | качествен | |
ные факторы: возможность поиска по диапазону и слу чайность, присутствующая при организации файла ме тодом связного списка.
В табл . 6-5 представлены основные результаты по сравнению методов декодирования, полученные при ана лизе приведенных в табл . 6-4 количественных и качест венных факторов . В таблицу включены как двухуров-
127
| 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | Т а б л и ц а 6-5 | |
| Сравнение | декодеров справочников, рассмотренных в табл. 6-4 | ||||||||
| 
 | 
 | 
 | Требуемые объемы | 
 | 
 | 
 | |||
| 
 | 
 | 
 | оперативной памтпі | 
 | 
 | 
 | |||
| 
 | 
 | 
 | 
 | (ЗУПД) | 
 | 
 | "^Возмож | 
 | |
| Методы декодирова | 
 | 
 | 
 | 
 | Скорость | Легкость | |||
| 
 | 
 | 
 | 
 | ность | |||||
| ния справочников | 
 | без | учета | с учетом | декодчоо- | поиска по | программи | ||
| 
 | 
 | 
 | неодно-Т | г неодно-'' | Гвэішя | диапазону | рован'»! | ||
| 
 | 
 | 
 | значности | значности | 
 | 
 | 
 | ||
| 
 | 
 | 
 | декодера | декодера | 
 | 
 | 
 | ||
| Двухуровневое | 
 | 4 | (2*) | НП | (4) | 1 | Да | 1 | |
| постоянное дере | 
 | 
 | 
 | 
 | 
 | 
 | 
 | ||
| во (СѴ=4) | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
| Трехуровневое | по | 2 | (2) | НП | (4) | 3 | Да | 2 | |
| стоянное | дерево | 
 | 
 | 
 | 
 | 
 | 
 | 
 | |
| (С,=4) | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
| Двухуровневое | пе | 5 | (4) | НП | (3) | 1 | Нет | 3 | |
| ременное | дерево | 
 | 
 | 
 | 
 | 
 | 
 | 
 | |
| ( Q = 4 ) | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
| Трехуровневое | пе | 3 | (4) | НП | (3) | 3 | я | 1 | |
| ременное 'дерево | 
 | 
 | 
 | 
 | 
 | 
 | 
 | ||
| (С,=4) | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
| Рандомизатор | 
 | 1 | (3) | НП | (2) | 4 | 
 | 1 | |
| (рис. 6-4) | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
| Рандомизатор | 
 | 1 | (1) | НП | (I) | 2 | 
 | 2 | |
| (рис. 6-5) | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
| * Упорядочивание: меньшие | номера соответствуют более оптимальным значениям | |||||
| параметров. НП означает неприменимо. | 
 | 
 | 
 | 
 | ||
| невые, так и трехуровневые деревья | (но только | д л я | С/= | |||
| = 4, т а к к а к | это наиболее | удобное значение дл я сравне | ||||
| ния с Ct=2 | дл я р а н д о м и з а т о р а ) . | 
 | 
 | 
 | ||
| К а ж д ы й | параметр | или | фактор | (исключая | возмож | |
| ность поиска по диапазону) | с н а б ж е н | номером. Чем | опти | |||
мальнее параметр, тем меньше номер. Так, например, по скорости декодирования лучшими оказываются двух
| уровневые | деревья, нежели | рандомизатор, | изображен | ||
| ный на рис. 6-4. | 
 | 
 | 
 | ||
| Е щ е раз | заметим, | что читатель долже н | осторожно | ||
| подходить | к | категорическим | обобщениям | результатов | |
| проведенного | анализа, | так как оценки полностью осно- | |||
| 128 | 
 | 
 | 
 | 
 | 
 | 
| ваны на | данных, приведенных в табл . 6-4. Эти | данные | ||
| в свою | очередь | основаны | на выбранных рабочих | пара | 
| метрах. | 
 | 
 | 
 | 
 | 
| 
 | 6-6. | СКОРОСТЬ | ДЕКОДИРОВАНИЯ | 
 | 
Скорость декодирования определяется сравнительно про
| сто. Д л я | этого надо вычислить время перемещения го | |
| ловок (в случае З У П Д с подвижными | головками), время | |
| задержки | при повороте дорожки, | время считывания | 
с дорожки, время обращения к оперативной памяти и учесть количество оборотов диска, потерянных при об
| работке в оперативной | памяти. | Последовательность | |||
| рассмотренных событий | для | трехуровневого | дерева | ||
| с первым уровнем, | хранимым | в | оперативной | памяти, | |
| представлена в табл . | 6-6. В этом | примере предполагает | |||
ся, что декодер выполнен с использованием пакета дис ков I B M 2311. Кроме того, предполагается, что к а ж д ы й набор вершин третьего уровня, связанный с данной вер шиной второго уровня, хранится на том ж е цилиндре, что и вершина второго уровня. Поэтому нет необходимо сти перемещать головки между вторым и третьим уров
| нями. Это | справедливо | при | хранении | дерева | на | диске | |||||
| 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | Т а б л и ц а | 6-6 | ||
| Время декодирования | для | трехуровневого дерева | 
 | 
 | |||||||
| 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | Номинальное значе | |||
| Компоненты | Уровень дерева | Время | (симво | ние | (среднее) | для | |||||
| лическое) | пакета | дисков | |||||||||
| 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | I BM 2311, млсек | |||
| Обработка записей в опе | 
 | 1 | 
 | 0 | 
 | 
 | 
 | 0 | 
 | ||
| ративной | памяти | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | |
| Подвод головок | 
 | 
 | 
 | Р | 
 | 85 | 
 | ||||
| Задержка при | повороте | 
 | 
 | 
 | 
 | 
 | 
 | 12,5 | 
 | ||
| Считывание с | дорожки | 
 | 
 | 
 | R | 
 | 
 | 25 | 
 | ||
| Обработка | записи | 
 | 2 | 
 | 
 | 0 | 
 | 
 | 0 | 
 | |
| Потерянный | оборот | 
 | 
 | 
 | R | 
 | 
 | 25 | 
 | ||
| Считывание | с | дорожки | 
 | 
 | 
 | R | 
 | 
 | 25 | 
 | |
| Обработка | записи | 
 | 3 | 
 | 
 | 0 | 
 | 
 | 0 | 
 | |
| Сумма | 
 | 
 | 
 | 
 | 
 | P + | 3.5Я | 
 | 172.5 | 
 | |
| 9-88 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 129 | 
