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

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

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

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

Добавлен: 19.10.2024

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

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

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

ГЛАВА

ВОСЬМАЯ

О Б Н О В Л Е Н И Е И О Б С Л У Ж И В А Н И Е

ОПЕРАТИВНОГО

ФАЙЛА

Оперативное обновление

файлов

в реальном масштабе

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

тобеспечения и

оборудования

не

позволит

провести

надежное сравнение стоимостей,

то способ

обновле­

ния выбирается в зависимости от временных

критериев.

Например, если

оборудование

снабжается матобеспече­

нием и оценивается в строгой зависимости от скорости,

типа емкости памяти

(т. е. классифицируется по

типу

il емкости

оперативной

п а м я т и ) , то сравнение двух

видов

обновлений

по стоимости можно считать надежным .

Трудность стоимостного сравнения возникает, когда пы­

таются выделить

стоимость тех технических средств, ко­

торые

участвуют

в функциях

обновления. Однако те же

З У П Д

и те ж е терминальные

устройства участвуют в реа-

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

чества

обновлений. П а к е

т н а я система, однако, имеет не­

большое дополнительное

время СРь,~которое

затрачива­

ется

в

основном на запись файла на магнитную ленту.

Д о

тех

пор,

пока выполнение обновлений лимитируется

операциями

с магнитной лентой, стоимость

обновления

не зависит от размеров пакета. Однако процессу обнов­

ления на ленте всегда предшествует

сортировка

новых

записей при их внесении в файл, а временное

выражение

стоимости этого

процесса

является

функцией

объема

новых записей.

Обозначим

значение

такой

стоимости

CS(b). Тогда мы сможем провести сравнение между еди­

ницами стоимости (на

одно изменение) д л я

оператив­

ного С,- и пакетного обновлений

Сь так:

 

Cr =

- i r +

tfCpr;

(8-1)

160


 

П

Wb Т

^РЬ <-s [Ь>

/о о\

 

Сь —

 

ді

,

{й-2)

где

Сfr и С — постоянные

части,

отнесенные

ко време­

ни

накопления пакета

из N записей, приходящиеся на

долю технических средств

и математического

обеспече­

ния. Очевидно, что эти оценки очень приблизительны. Эта глава будет посвящена технике построения файлов, предназначенных д л я обновления в реальном м а с ш т а б е времени. Оперативные обновления могут быть разделены на пять категорий: 1 ) добавление полной записи; 2) удаление полной записи; 3) стирание ключей; 4) до­

бавление (стирание), модификация неключевых

данных;

5) добавление

ключей.

 

Р а з р а б о т ч и к

структур файлов с оперативными

обнов­

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

терно д л я

категорий пп. 4 и

5.

Процедуры обновлений

с учетом

этих двух

особенностей

д л я последовательного

и инвертированного

списков

различны . В н а ч а л е будет

описана методика обновления последовательного списка,

затем

инвертированного и, наконец, секторного. В к а ж ­

дом случае рассматриваются все пять категорий.

 

8-1. ОПЕРАТИВНЫЕ ОБНОВЛЕНИЯ

 

МУЛЬТИСПИСКОВЫХ ФАЙЛОВ

Д а л е е

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

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

туры, в запись

вводятся некоторые у п р а в л я ю щ и е

д а н н ы е

(рис. 8 - 1 ) . В

начале записи в фиксированной

позиции

располагается один бит, н а з ы в а е м ы й «битом стирания записей». Значение бита, равное нулю, означает, что за­

пись находится в файле; если

ж е

этот бит

равен

едини­

це, то в процессе поиска запись

д о л ж н а

пропускаться

с переходом к следующему

адресу связи,

т а к

как эта

11—88

161


з а п и сь

логически, хотя

и не физически, удалена из

фай­

ла . К р

о м е того, имеется

бит, связанный с к а ж д о й

парой

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

находится

в

записи,

а в

положении

единица

означает,

что ключ

был

удален

из

записи. П а р а

ключ/адрес

связи

не может быть вычеркнута из записи,

потому

что

были

бы нарушены

связи

в списке. В качестве альтернативы

может служить организация связи от предыдущей запи-

 

 

 

Sum

бит

 

 

 

 

 

 

\КпШч/ЯС\Уничт\ключ/ЛС

уничто­

Клшч/.Щ

 

 

 

 

тения

жения

 

 

 

 

 

 

ключа

ключа

 

 

 

Рис. 8-1. Параметры для обновления записи мультисписка.

си списка

к

п о с л е д у ю щ е й ^ П р е д п о л о ж и м ,

что запись,

в которой ключ д о л ж е н быть уничтожен, является

ІѴ за­

писью

списка. Тогда запись ;Ѵ—1

имеет

адрес

связи

к списку N,

а запись N имеет адрес записи

к списку N +

+ 1. Связь через запись может быть

создана

перенесе­

нием

адреса

записи N + 1 в область

адреса

связи

(для

рассматриваемого ключа) записи N1, если

список не

является двунаправленным . Но единственный способ по­

лучить N—1-ю запись — это

просмотреть список сначала,

что неэффективно, когда N

велико. Легче поставить бит

удаления ключа в положение единица и оставить связь

записей N—1 и N+1

через запись N.

В табл . 8-1 иллюстрируется процесс добавления пол­

ной записи в реальном

масштабе времени. Сначала (пер­

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

си, представленному на рис.

3-5,

и

т а к ж е ,

к а к

и

при

организации

файла,

единственной

частью,

которая

не

может

быть вставлена

в

это время,

являются

адреса

связи.

Н а

втором

этапе

ей

присваивается

адрес

ДА

в З У П Д

в соответствии

с

имеющимся

местом. В

систе­

ме, использующей подвижную

головку

З У П Д ,

новым

за­

писям следует присваивать

адреса

в монотонной последо­

вательности

для того, чтобы

при

выборке списка

меха­

низм передвигался на небольшие расстояния в одном на­ правлении. Н а третьем этапе начинается цикл последо-

162


Т а б л и ц а 8-1

Добавление полной, записи

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

2.Присвоение новой записи адреса ЗУПД, ДП

3.Декодирование г'-го ключа по справочнику

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

5.Занесение ДА в справочник в качестве нового начального ад­ реса ключа і

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

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

8.Занесение записи в фаііл по адресу ДА

вателы-юй обработки

ключей внутри

записи.

Ключ :

в записи декодируется

по справочнику.

З а т е м на

четвер­

том этапе начальный адрес списка і-го ключа в спра­

вочнике передается

из

справочника

в поле адресов свя­

зи ключа

в новой

записи. Н а

пятом

этапе адрес

новой

записи Д А

становится

новым

начальным адресом

ключа

і в справочнике. Этим самым новая запись наиболее эф ­ фективно ставится в начало списка и остаток списка со­

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

любых записей. Н а шестом

этапе длина списка ключа

в справочнике увеличивается

на единицу, а на седьмом этапе цикл заканчивается по­

вторением этапов с третьего по шестой д л я всех

ключей

новой записи. Наконец, на восьмом этапе новая

запись

запоминается в

З У П Д по адресу Д А .

 

Н а рис. 8-2

схематически иллюстрируется этот про­

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

после обновления. Внизу к а ж д о й секции

показан

выход­

ной уровень

справочника

ключей. Д л я

простоты

иллю­

стрируется обновление одного

ключа,

т. е. одна итерация

цикла этапов с третьего по шестой

(см. табл . 8-1).

К а к

указано

на

седьмом

этапе,

эта

процедура д о л ж н а

повто­

ряться

д л я

к а ж д о г о

ключа

в

новой

записи. Рассмотрим

ключ X, имеющий в своем списке два адреса связи, пер­

вый из

которых указывает

на

запись

по

адресу 105

в no­

i l *

163


ле файла . Адреса на этой д и а г р а м м е располагаются по возрастанию . Так, когда этот ф а й л создавался, первый элемент был введен по адресу 76, а второй вошел в файл по адресу 105. Допустим, что в этот момент предполага­ ется добавить к списку третий адрес связи. Н а четвертом этапе начальный адрес списка 105 в выходном уровне справочника становится адресом связи новой записи, а на

пятом этапе адрес новой записи, который

д о л ж е н

быть

выходной

 

 

 

 

 

 

 

 

 

 

 

 

 

 

уровень

 

'X/W5/2

 

 

 

 

 

 

 

 

 

 

 

справочника

 

 

 

 

 

 

 

 

 

 

 

 

105

 

 

 

 

 

 

 

 

 

 

 

ключей

 

 

 

ОІХ/76

 

 

 

 

 

[ Черед

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

о&новление

 

 

 

 

 

 

! 75

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Выходной

 

 

 

 

 

X/E0L

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

уровень

 

\КлючХШ/3

 

 

 

 

 

 

 

 

 

 

справочника

 

 

 

 

 

 

 

 

 

 

ключей

 

 

m

 

 

 

 

 

 

 

 

 

 

 

 

 

 

U- п

 

 

 

 

 

 

 

 

После

 

 

 

 

 

 

 

105

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Iпвнавления

 

 

 

 

 

 

 

0W76

 

 

 

 

 

 

 

Увеличение

 

 

 

 

 

76

\Ö.X/E0Ü

 

 

 

 

 

 

 

 

 

 

 

 

 

 

адресов

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Рис. 8-2. Обновление ключа.

 

 

 

 

 

 

182, становится новым начальным адресом

списка в спра­

вочнике. Наконец, на шестом этапе длина списка увели­

чивается на единицу. Окончательная картина после об­

новления

показана

в

нижней

половине

д и а г р а м м ы .

 

 

Н а

рис. 8-3

представлены

процедура

и

схематическое

выполнение у д а л е н и я

полной записи. П о л н а я запись

уда­

ляется из ф а й л а в

реальном

м а с ш т а б е

времени

за

один

или д в а

этапа .

Н а

первом этапе

запись

выбирается

и

в бит

у д а л е н и я

записи

заносится

единица. Н а

этом

 

об­

новление

м о ж н о закончить,

т а к

к а к

запись

логически

у д а л е н а

из массива, а все списки, которые

проходят

че­

рез эту запись, остаются нетронутыми. В некоторых слу­

чаях

модифицируется

 

длина

списка.

Если

разработчик

р а с с м а т р и в а е т

это

число к а к

физическую

длину

списка,

т.. е. действительное

количество произвольных

выборок,

которое

требуется

д л я

просмотра

списка,

то

длина

не

164