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