Файл: Левковиц, Д. Структуры информационных массивов оперативных систем.pdf

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 19.10.2024

Просмотров: 71

Скачиваний: 0

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

д о л ж н а быть изменена и обновление заканчивается пер­ вым этапом. Если это число рассматривается как логи­ ческая длина списка, т. е. как количество выбираемых записей, которые могут ответить на запрос, то длина списка к а ж д о г о ключа в записи уменьшается на едини­ цу. Второе определение более приемлемо д л я использо­ вания длины списка в качестве длины просмотра логиче­ ского запроса, в то время как первое более приемлемо

/ Занести бит уничтожения записи 2 Декодировать каждый ключ в записи и уменьшить

длину списка на единицу

Справочник

С

Рис. 8-3. Уничтожение полной записи.

д л я подсчета различных допоисковых статистик. Систе­ му можно организовать так, чтобы анализировать пока­ затели о количестве битов удаления и периодически в со­ ответствии с количеством таких битов файл преобразо­ вывался бы и удаленные записи исключались бы из си­ стемы.

Н а рис. 8-4 иллюстрируется удаление отдельных клю­

чей внутри записи. Это

т а к ж е

одноили

двухэтапный

процесс.

С н а ч а л а

запись

обнаруживается

и

заносится

в оперативную память . В бит

удаления данного

ключа

должна быть записана

единица. Н а рисунке показан спи­

сок, который вначале с о д е р ж а л

четыре записи

с

ключом

X. Третья

запись

была

удалена

при занесении

единицы

в бит удаления ключа.

Поисковой системе

будет

доступ­

на к а ж д а я запись по очереди кроме третьей, в которой будет проанализирован бит удаления ключа, запись про­

пущена и после этого будут

произведены

выборка

и об­

работка четвертой записи.

 

Д л и н а списка

может

быть

уменьшена или сохранена

в

зависимости

от

использова-

165


ния ее как у к а з а т е л я физической или логической

длины

списка.

 

 

 

 

 

В табл . 8-2

описаны добавление

(удаление)

и

моди­

ф и к а ц и я

неключевых данных. Н а первом этапе

требуется

считать

запись

из З У П Д в память

и изменить

ее. Если

/ Занести Sum уничтожения

ключа

 

Z Декодировать

ключ по

справочнику

и

соответственные

длины

списков на

1

КлючХ/200/3

уменьшить

Справочник

~R5

Х/85]

 

 

/85

 

оШоШі

Рис. 8-4. Уничтожение ключей.

измененная запись стала короче, то вся д о р о ж к а (или

физическая запись) может быть переформирована и за­

писана снова в З У П Д . В этом случае будет

увеличена

резервная область в конце дорожки . Если ж е

запись

уве-

Т а б л и ц а

8-2

Добавление/уничтожение/модификация неключевых данных

1.Считывание записи из ЗУПД в память. Изменение записи

2.Если запись укоротилась, то переформировать дорожку и запи­ сать ее в ЗУПД

3.Если запись удлинилась и

а)

переформированная

дорожка

не переполняется,

то занести

 

ее

в ЗУПД

 

 

 

 

б)

переформированная

дорожка

переполняется,

то,

уничтожив

 

полную запись, добавить новую в соответствии с правилами

 

добавления

 

 

 

 

личивается в размерах, то

н у ж н о различать

два воз­

можных

случая.

 

 

 

 

1. Если переформированная д о р о ж к а ,

включающая

большую

запись, не

переполняется, она

записывается

в З У П Д .

 

 

 

 

166

 

 

 

 

 

 


2. Если переформированная д о р о ж к а превышает ее физическую длину, то полная запись уничтожается со­ гласно процедуре - удаления, описанной на рис. 8-3, а пол­ ная измененная запись добавляется к файлу в соответст­ вии с процедурой, описанной в табл . 8-1. Это означает, что запись будет появляться в файле д в а ж д ы — один раз в своей немодифицированной форме и другой раз в изме­ ненной форме, но в первом случае бит удаления записи

Случай(А)

 

 

 

 

 

 

Резерв

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ДорожкаХ—>

Kl

яг

 

/?.з

\

К</

W/M

Д о

1

 

I \модшрикациу\

 

 

 

 

I Г

Лрсле.

]

ДорожкаX—*•

К

 

0

КЗ/модифи­

 

 

 

цированная)

 

m

I [модификации}

Случай (В)

 

 

 

 

 

 

 

 

 

 

ДорожкаХ—»•

КІ

Я2

0

КЗ

I «

 

 

До

1

ш

ш

I [модификации]

 

Дорожка/—*

m

KZ

11

КЗ

 

 

 

 

 

 

 

 

 

/

КѴ^Шмодифи\-

 

 

 

 

После

 

 

 

 

 

 

нодиірикации

 

Дорожка Y-

 

 

 

 

 

 

 

 

цироВанная)

 

 

 

 

 

 

Рис.

8-5.

Модификация

неключевых

данных.

 

будет равен единице, так что поисковая программа будет пропускать эту запись при любом просмотре списка. К а к указывалось выше, те записи, для которых бит удаления

записи равен

единице, у д а л я ю т с я из

ф а й л а во время пе­

риодического

преобразования

файлов .

 

 

На рис. 8-5 иллюстрируется изменение неключевых

данных. В к а ж д о м

из двух случаев показано, что

дорож ­

ка

содержит

по

четыре записи, обозначенных

Ri—Ri-

В первом случае запись R3 увеличивается в размерах, но

не

переполняет

начальную

длину

дорожки,

поэтому

единственное различие м е ж д у состояниями дорожки до и после изменения состоит в том, что запись R3 стала боль­

ше,

а

резервная

область — меньше. Во

втором случае

предполагается,

что запись R3 изменена таким

образом,

что

переформированная д о р о ж к а превысит

ее

физиче­

скую длину, поэтому бит удаления записи R3

становится

равным

единице

на начальной д о р о ж к е

X,

а запись Rz

167


вновь добавляется к а к

совершенно

новая запись на дру­

гую д о р о ж к у У в конце

файла . Здесь предполагается, что

она

становится

второй

логической

записью

на дорож ­

ке

У.

 

 

 

 

 

Этот метод

может

быть легко

з а п р о г р а м м и р о в а н и

I хорош тем, что

оставляет записи

физически

нетронуты­

ми. При этом увеличивается эффективность поиска, хотя

остаются области неиспользуемых

пространств в памяти .

В этой главе т а к ж е будет описана

методика

использова­

ния этих пространств. Имеется,

однако, и другой способ

размещения полной записи при

подобных

обновлениях.

Он состоит в формировании дополнительной записи, ко­ торая логически продолжает увеличиваемую запись по произвольным адресам, обычно в резервной области.

Т а б л и ц а 8-3

Добавление ключей

1.Считывание записи из ЗУПД по адресу ДА в память и добав­ ление ключей

2.Декодирование ключа /' по справочнику

3.Передача начального адреса списка ключа і из справочника в поле адреса связи ключа в модифицированной записи

4.Адрес ДА становится новым начальным адресом ключа і по справочнику

5. Уведичение длины списка ключа і в справочнике на единицу

6.Повторение пп. 2—5 для всех добавляемых ключей

7.Запомнить модифицированную запись в соответствии с проце­ дурой изменения неклгачевых данных

В табл .

8-3 описывается процесс добавления

ключей

в запись в

реальном м а с ш т а б е времени. П е р в ы й

этап —

чтение

записи из З У П Д в оперативную

память и

добав ­

ление

необходимых ключей к записи.

Второй — декоди­

рование по справочнику 1-го ключа, который был добав ­ лен к записи. Третий — передача начального адреса і-го ключа из справочника в область адреса связи ключа в из­ меняемой записи. Четвертый — помещение адреса новой записи в качестве начального адреса t-го ключа в спра-

168


вочнике. Наконец, длина списка і-го

ключа

увеличивает­

ся на единицу. Этапы со второго по

пятый

повторяются

для всех ключей, которые были добавлены к записи. Сле­ дует признать, что эта процедура идентична процедуре, описанной в табл . 8-1 д л я добавления полной записи, где всякий ключ представляет собой новый ключ, добавляе ­ мый к записи, поэтому рис. 8-2 является т а к ж е иллю ­ страцией и этого процесса. После того как соответствую­

щие изменения справочника были сделаны

в

соответст­

вии с этапами с первого по пятый запись

д о л ж н а быть

вновь помещена в файл З У П Д . Однако после

добавле ­

ния новых данных к записи переформированная

д о р о ж к а

может снова переполниться, поэтому т а к а я

ж е

процеду­

ра, которая применялась к модификации

неключевых

данных на втором и третьем этапах табл .

8-2, д о л ж н а

быть применена к восстанавливаемым данным . Это озна­ чает, что запись может быть удалена и помещена в ф а й л

на другую д о р о ж к у

в зависимости от количества добав ­

ляемых ключей и

количества резервного пространства,

имеющегося

в конце дорожки .

 

8-2. ОПЕРАТИВНОЕ ОБНОВЛЕНИЕ СПИСКОВ

С ИНВЕРТИРОВАННОЙ СТРУКТУРОЙ

В т а б л . 8-4

иллюстрируется процедура

добавления пол­

ной записи

в систему инвертированных

списков. К а к и

в случае мультисписков, на первом этапе запись редакти-

Т а б л и ц а 8-4 Добавление полной записи (инвертированный список)

1.Редактирование записи для входа в файл

2.Присвоение адреса ДА к новой записи

3.Декодирование і-го ключа по справочнику инвертированного списка переменной длины

4.Добавление ДА в список. Если резервная область^ исчерпана, добавить дополнительный блок записи и вставить адрес связи в качестве последнего слова предыдущей записи

5.Увеличение длины списка на единицу

6. Повторение пп. 3—5 для всех ключей новой записи

7. Запоминание новой записи в ЗУПД по адресу ДА

169