Файл: Левковиц, Д. Структуры информационных массивов оперативных систем.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 в область |
адреса |
связи |
(для |
||
рассматриваемого ключа) записи N—1, если |
список не |
является двунаправленным . Но единственный способ по
лучить 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