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

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

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

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

Добавлен: 19.10.2024

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

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

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

д о в а т е л ы і ыи список, причем

к а ж д ы й новый олок

ставит­

ся в

начало списка, а когда

нужен блок ж е л а е м о г о раз­

мера,

«искатель пространства» просматривает

список

(один произвольный доступ на блок) до тех пор, пока он не найдет запись соответствующего размера . Недостаток

До упоря дочивания\

после упо рядЬѵиваніт\

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

ного

пространства

мо­

ж е т

стать

большим и

потребовать

собствен­

ного

обслуживания,

в

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

В отличие от логиче­ ского способа обслужи ­ вания пространства фи­

Рис. 8-6. Упорядочивание памяти.

зический

способ

обслу­

 

ж и в а н и я

имеет

неко­

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

передает системе пригодные

д л я

использования блоки

по всей памяти. Он включается,

когда устройства или

программы с более высоким

приоритетом не з а г р у ж а ю т

ЭВМ, и это может привести к резкому увеличению сво­

бодной памяти

в

течение

нескольких секунд,

оставляя

ф а й л ы полностью

в рабочем

состоянии. Н а рис. 8-6 ил­

люстрируется

этот

процесс.

В верхней

части

рисунка

и з о б р а ж е н а часть файла с

16 записями .

З а ш т р и х о в а н н ы е

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


тов удаления записей

или ключей. Н и ж н я я часть рисунка

показывает состояние

ф а й л а после упорядочивания памя ­

ти. Выбирается запись 1, проверяются биты удаления и, так как таковых ие было, запись пропускается. Выбира­ ется запись 2, укорачивается и вновь записывается в па­

мять с образованием з а з о р а м е ж д у

записями 2 и 3.

Если

логические записи упакованы в физические записи

(та­

кие

как д о р о ж к и ) , то полная физическая запись

обрабо ­

тана

таким ж е образом,

а излишек

пространства

переда­

ется

следующей записи.

Запись 3

продвигается

вверх,,

запись 4 полностью уничтожается, а запись 5 становится за записью 3 с последовательным накапливанием про­ странства, равным длине записи 5 плюс длина уничто­ женного куска записи 2. К а ж д о е продвижение или уни­ чтожение записи требует обновления всех ключей в спра­ вочнике, относящихся к этой записи. Таким образом, это может быть довольно дорогой процедурой, но она вы­ полняется с низким приоритетом, если только не появля­

ется внезапная необходимость

в пространстве. П р о г р а м ­

ма может закончиться и оставить рабочий файл

после

окончания движения очередной записи. Д л я записи

с 20

ключами и временем декодирования и обновления

спра­

вочника

200 мсек

на один шаг

по файлу потребовалось

бы 4 сек.

Если эта

процедура

д о л ж н а быть продолжена

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

Компромиссом м е ж д у физическим и логическим ис­ пользованиями пространства была бы организация по­

стоянного

списка

распределенной

имеющейся

памяти,,

в которой

к а ж д ы й

блок собирался

бы с помощью

проце­

дуры упорядочивания памяти . О б с л у ж и в а н и е этого'спи ­

ска очень простое (имеется

всегда Л' блоков,

относитель­

но небольшое по количеству и переменной д л и н ы ) , а

упо­

рядочивание

памяти локализовано .

 

 

 

 

Следует подчеркнуть, что упорядочивание памяти мо­

ж е т быть выполнено только на двунаправленных

муль­

тисписках

или

инвертированных

списках, потому

что,

когда

запись перемещается,

связи

к

последующим

за­

писям остаются нетронутыми, в то время как

адреса

свя­

зи к

предшествующим записям

д о л ж н ы быть

изменены.

Если

связи

однонаправленные,

адреса

предшествующих

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

не

может

быть вставлен как адрес связи в списке. Эта

трудность

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

мультисписках

с

двунаправленными

175 *


с в я з я ми и в инвертированных списках, так как новый адрес перемещаемой записи просто заменяет бывший адрес в последовательном инвертированном списке. Фак­ тически сама последовательность не изменяется.

8-5. РАСЧЕТ ВРЕМЕНИ ОБНОВЛЕНИЯ

В табл . 8-8—8-10 представлены формулы расчета време­ ни дл я мультисписка, инвертированного списка и систе­ мы последовательных секторов по отношению к пяти оперативным категориям обновления: добавление полной

Т а б л и ц а 8-8 Расчет времени обновления для мультиспискового файла

Процедуры

Декодирование по

справочнику Выборка записи

Обновление справоч­

ника Запоминание обнов­

ленной записи

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

Уничтоже­ ние** полноі! записи

Уничтоже­ ние** ключей

 

"Г-

т»

 

1 3

 

ТА

ТА

 

 

T'A

ТА

ТА

Изменение

Изменение

неключе­

неключе­

вых дан­

вых

дан­

ных (без

ных

(с пе­

перемеще­

ремещени­

ния)

ем)

т3

Тг

ТА

ТА

 

ТА

ТА

Добавление ключей (без перемещения)

ТА

ТА

*

7"д=7"г н-1.5^?. (Добавить

R, если после

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

требуется

конт­

рольное чтение.)

 

 

 

 

 

 

** Предполагается, что длпиы списков справочника—физические,

поэтому,

если

поставлен бит уничтожения ключа или записи, не нужно

обновлять

справочник

 

***

Г3 —время декодирования

трехуровневого

дерева

[см. (6-12)].

(Добавить R,

если после занесения в память требуется контрольное чтение.)

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

тролем, ко

времени

занесения на З У П Д

д о л ж н а быть

добавлена

величина

R, которая не

включает схемного

контроля. В приложении 3

указано,

какое

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

имеет устройство схемного

контроля. Те устройства, ко-

1 76

 

 

 

 

 


 

 

 

 

 

 

 

 

 

 

Т а б л и ц а

8-9

Расчет

времени

обновления

для инвертированных

списков

 

 

 

 

 

 

 

Изменение

Изменение

 

 

 

 

Добавле­ Уничто­

Уничтоже­

неключе­

Добавление

 

 

ние

пол­

жение

вых

дан­

неключе­

п. ключей

Процедуры

ной за­

полной

ние п

ных

(без

вых

данных

(без

пере­

 

 

писи

записи

ключей

перемеще­

переме­

мещения)

 

 

 

 

 

 

 

ния)

щением)

 

 

 

 

 

 

 

 

 

 

 

 

 

Декодирова­

 

 

т3

 

т3

т,

 

т,

 

т3

ние по спра­

 

 

 

 

 

 

 

 

 

 

 

вочнику

 

 

 

ТА

 

 

 

 

 

 

 

 

Выборка

 

 

 

Тл

ТА

 

 

ТА

ТА

записи

 

вд

 

 

 

 

 

ад

 

 

Обновление

 

 

пТ3

 

 

пТ3

справочника

 

 

 

 

 

 

 

ад

 

 

Обновление

NhTL*

 

 

nTL

 

 

n

ТL,

инвертиро­

 

 

 

 

 

 

 

 

 

 

 

ванного

 

 

 

 

 

 

 

 

 

 

 

 

списка

 

 

 

 

 

 

 

 

 

 

 

 

Запоминание

 

ТА

ТА

 

ТА

ТА

 

 

тА

обновленной

 

 

 

 

 

 

 

 

 

 

 

записи

 

 

 

 

 

 

 

 

 

 

 

 

*

Р"г + 1/2 j—J-J R.) (Добавить

R, если

требуется

контрольное

чтение.)

" Т р е б у е т с я ,

если

используется бит уничтожения. Бит уничтожения тр е б у е т с я

если производилось

упорядочивание

памяти.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Т а б л и ц а

8-10

Расчет времени обновления для секторно-последовательной структуры файла

Процедуры

 

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

Уничтожение полнойзаписи

Уничтожение ключей"л

Изменениене­ ключевых данных(без перемещения)

Изменение*** неключевых данных(с пе­ ремещением)

 

 

 

 

 

 

 

 

 

 

 

 

 

I

 

Декодирование

по

 

Т3

т,

 

т3

справочнику

 

 

 

 

 

 

Выборка

записи

 

 

ТА

ТА

Т А

Т А

Обновление

справоч­

 

 

 

 

 

ника

 

инверти­

 

 

 

 

 

Обновление

 

 

 

 

 

рованных

списков

 

 

 

 

 

Запоминание

 

обнов­

ТА

ТА

ТА

ТА

Т А

ленной

записи

 

 

 

 

 

 

 

* Предполагается, что все ключи записи всегда находятся в секторе.

**Ключи не уничтожаются в секторе.

**Предполагается, что записи перемещаются внутри сектора.

я Добавление(безключей )перемещения

7*3

ТА

ТА

12—88

177


 

торые не имеют устройств схемного контроля,

д о л ж н ы

 

проверяться программным чтением (на следующем по­

 

вороте

диска)

записанных

данных.

 

 

 

 

 

 

 

В к а ж д о й из этих т а б л и ц процедуры

обновления

раз ­

 

биты на четыре последовательных ш а г а : 1)

справочное

 

декодирование;

2) выборка

записи

(для

обновления);

 

3) обновление справочника; 4) запоминание обновленной

 

записи.

 

 

 

 

 

 

 

 

 

 

 

 

 

Предполагается, что все обновления относятся к еди­

 

ничной записи, которая идентифицируется по

ее

номеру.

 

В общем случае для того, чтобы подсчитать

время

д л я

 

многократного декодирования

ключей при

многократной

 

выборке записей, обновлений справочника и восстанов­

 

лений

записи, вводятся соответствующие

 

коэффициенты.

 

В т а б л и ц а х

видна

сравнительная

степень

сложности

I

к а ж д о й системы. Система

последовательных

секторов—

 

наименее с л о ж н а я в предположении, что перемещение

 

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

 

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

 

делы сектора, что обычно наблюдается . Средней по слож-

. ности

является

мультисписковая

система,

а

наиболее

j

сложной — структура

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

списка.

 

 

 

И з

табл . 8-11

видно, какие

соотношения

существуют

 

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

 

рованного списка

д л я

всех

пяти

категорий

обновления.

 

Д о б а в л е н и е

полной записи

 

 

 

 

 

 

 

 

 

 

 

 

TIL=TML

+ NhTL.

 

 

 

 

 

(8-3)

 

Уничтожение

полной записи

 

 

 

 

 

 

 

 

 

 

 

Trz.=

TML

+ Nk(T3...).

 

 

 

 

 

(8-4)

 

Уничтожение

ключей

 

 

 

 

 

 

 

 

 

 

 

 

 

TIL=TML+n(T3+TL).

 

 

 

 

 

 

 

(8-5)

 

М о д и ф и к а ц и я

неключевых данных

(без

перемеще­

 

ния)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

TIL

= TML.

 

 

 

 

 

 

(8-6)

Модификация неключевых данных (с перемещением)

TIL=TML+NhTL.

(8-7)

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

(8-8)

178