Файл: Левковиц, Д. Структуры информационных массивов оперативных систем.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