Файл: Левковиц, Д. Структуры информационных массивов оперативных систем.pdf
ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 19.10.2024
Просмотров: 88
Скачиваний: 0
ного адреса. Следовательно, добавим в расчет еще один
символ и положим, что требуется |
только а—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