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

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

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

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

Добавлен: 19.10.2024

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

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

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

память может

быть вызвано в зависимости от

разме ­

ра логической

записи несколько Элементов

и д а ж е

полных подзаписей. Более того, последовательные под-

записи

могут быть вызваны из З У П Д с помощью

груп­

повых

операций. Второе обращение необходимо

только

в случае вызова остаточной записи. Таким образом, об­ работка полных цепочек Обобщение/Элемент происходит очень эффективно . Случайная выборка произвольного Элемента в структуре, описанной схемой рис. 3-1, т а к ж е достаточно эффективна . Н а долю системного програм ­ миста, открывающего файл, остается композиция логи­ ческой записи и распределение памяти в поле элементов. В некоторых приложениях необходимый объем памяти Элемента известен и фиксирован. Например, если в за­

даче

о выдаче

ежемесячных

накладных

по

данному

счету принять, что оперативная

система

хранит

сведе­

ния

о накладных, с к а ж е м ,

за

год, то подзапись

наклад ­

ной

д о л ж н а содержать 12

Элементов Н а к л а д н о й .

Если

предварительное

распределение

памяти,

образующее

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

зации

объема памяти

система

д о л ж н а

о б л а д а т ь

способ­

ностью

динамически

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

новые

объемы дл я

записи

продолжений.

 

 

 

 

 

 

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

рис. 3-3

и 3-4 содержат

управляющую информацию дл я ассоциативных

связей

между

данными и все поля

данных,

п р и н а д л е ж а щ и х

Элементам. Н а рис. 3-5 и з о б р а ж е н

обобщенный

формат

для этой области Элементарной записи.

С о д е р ж а щ а я с я

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

запросу, в то время как данные печати проходят

через

различные процедуры

обработки, определяемые

кон­

кретным приложением

ка к м е ж з а п и с н а я обработка

про­

граммы формирования выходных данных . С точки зре­

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

клю­

чей и классификаторов

несущественна,

но, как

показано

в гл. 1, система

поиска

и

размещения

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

по-разному. К а к ключи,

так и классификаторы,

вообще

говоря,

являются дескрипторами системного

 

файла .

К а ж д ы й

из них может иметь Им я (соответствующее его

признаку) и Значение. Например, Имя/Смит,

Возраст/21 .

Внутри записи ка к ключи, так и классификаторы

хра­

нятся в

общем

виде И м я

Ключа/Значение

или

И м я

59



К л а с с и ф н к а т о р а / З н а ч е п пе

*. В

случае ключа для каж ­

дой пары

Им я Ключа/Значение

генерируется

список или

происходит разбиение

файла .

 

 

 

 

 

Вообще говоря, существуют два класса

методов

орга­

низации

списковой структуры. К первому

п р и н а д л е ж а т

ото

Счет 4

 

 

 

 

0600

ИнВоп # 18

 

 

 

накладная/^

 

 

 

Страсх/о.]

 

 

 

Поручитель/^

 

 

 

ядpec связи ОЮО/у.

 

or,

Накладнаяы

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Счет/аг

'

 

 

 

 

 

 

 

 

«2

Накладная

#2

 

0250

Поручитель #3

 

 

 

 

Счет/ф

 

 

 

 

Счет/ф

 

 

 

 

 

 

 

 

 

 

Суасх/у

 

 

 

 

 

 

 

 

 

fil

Поручитель #/

 

 

 

 

 

 

 

 

 

Счет//Зг

 

 

 

 

 

Страсх #/

 

 

 

 

Поручитель

#2

 

 

 

Накладиая/уц

 

 

 

 

 

 

Инбоп/у6

 

 

 

 

Счет//33

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

\Ддрес продолжения 0251

 

Страсх ъ 2

 

 

 

 

йакладиая/у5

 

 

 

Страсх # /

 

 

 

 

 

 

 

 

 

 

 

 

 

Страсх # J

 

 

 

Накладная/у2

 

 

 

 

 

 

Страсх

# 2

 

 

 

 

 

Накладная/а3

 

 

 

 

 

 

 

Ядрес связи 0600

 

 

Накладная/а.

 

 

 

 

 

 

 

 

 

 

 

 

 

Индоп/уя

 

 

 

 

 

 

 

 

 

Рис. 3-4. Пример

файла

с иерархическим

управле­

 

 

 

 

 

 

нием.

 

 

 

 

 

методы

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

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

• , ко второ­

м у — м е т о д ы инвертированного

списка. В первом

случае

для образования

списка

разбиения ф а й л а

необходим

адрес связи, расположенный внутри записи. Следова­ тельно, в поле ключа дополнительно к Имени Клю-

*В некоторых системах Имя опускается или подразумевается и хранятся только Значения. {Прим. пер.)

**Иногда называемого узловым списком. (Прим. пер.)

60


Номер элемента Управляющая информация элемента

Ключ доступа

Статистика использования Оглавление

'Начальный адрес данных

• Число ключей или список длин ключей

• Список длин по составу данных

Ключи

Имя ключа/зиачеііис/адрсс связи

Имя ключа/значение/адрес связи

Классификаторы

Имя классификатора/значение

Имя классификатора/значение

Данные

Запись

Данные

Рис...3-5.. Ассоциативное управление и размещение данных для запи-

,си обобщенного формата.

ча/Значению записывается Адрес связи,

у к а з ы в а ю щ и й

следующую запись в

З У П Д , с о д е р ж а щ у ю

то

ж е

И м я

Ключа/Значение

(или

З н а ч е н и е ) . З а п и с и

этого

списка,

вообще говоря,

физически не расположены последова­

тельно, а связаны между собой программным

образом

через адреса связи. Классификаторы не образуют

спис­

ка и, следовательно, рассматриваются только как инди­

видуальные входы ( И м я

Классификатора/Значение)

внутри к а ж д о й записи. С

программной точки зрения

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

чей

(а не д л я классификаторов) .

В терминах

системы

с последовательным списком

такой

поиск должен

выпол­

няться д л я самого

короткого

списка

в к а ж д о й

дизъюнк ­

ции

запроса. П р и

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

логическое

выражение запроса имеет нормальную дизъюнктивную форму (сумма произведений) или преобразовано к та­ кому виду предыдущей обработкой. Участок логики за­

проса,

включающий

классификаторы,

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

только

в

момент, когда

запись списка выбирается из

З У П Д

и

переносится

в

оперативную

память

процессо­

ра. Очевидно, произвольный доступ или

просмотр списка

может

быть выполнен

только тогда,

когда в

к а ж д о й

61


дизъюнкции запроса содержится хотя бы один меотрйцаемый ключ.

Методы

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

т а к ж е

требуют

адреса связи

по ключу, но при такой

структуре

ф а й л а

у п р а в л я ю щ а я

информация списка расположена

несколь­

ко по-другому. Адреса связи изъяты из индивидуальных

записей и помещены в виде компактных,

последователь­

ных списков

в другой

области З У П Д .

Таким

образом,

адреса

связи

не фигурируют внутри

записи

 

явно,

ка к

это

показано

на рис. 3-4, но тем не менее в системе

фай­

лов они существуют и выполняют

те ж е функции.

 

 

Следует отметить,

что в случае

запроса,

выраженно ­

го в терминах пар Имя/Значение,

система,

р а б о т а ю щ а я

со

списком,

с о д е р ж а щ и м Значения,

менее

эффективна,

чем

система

со списком пар И м я Ключа/Значение .

Сни­

жение

эффективности

происходит из-за необходимости

вести

более

длинный

поиск по списку. Однако

система

со списком Значений

более гибка,

не требует

от

пользо­

вателя указания в запросе имени ключа. В том случае, когда имя ключа пользователю неизвестно или он умыш ­ ленно хочет просмотреть все записи с данным Значением ключа независимо от его имени, это обстоятельство является преимуществом. Например, рассмотрим имена ключей Автор и Главный Разработчик . Значение Смит может быть приписано любому из этих ключей. В си­ стеме со списком одних Значений можно выбрать всех Смитов независимо от того, Авторы они или Г л а в н ы е

Разработчики . В той ж е

системе,

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

список

Смитов и классифицируя

к а ж д у ю

запись после

ее пере­

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

бы найти всех Смитов только по запросу

Автор/Смит

или Главный

Разработчик/Смит, что возможно

только

в том случае,

когда

пользователь

знает,

что

Автор и

Главный Р а з р а б о т ч и к

есть имена

именно

тех

ключей,

которые могут принять значение Смит; в действительно­

сти, могут

оказаться

другие имена ключей, принимаю­

щие значение Смит, о которых он может не знать .

К а ж д а я

м л а д ш а я

или элементарная

запись

наряду

с Именем

элемента

 

обычно идентифицируется

номером

д л я доступа. Этот

номер

желательно

сделать

ключом

по длине списка с тем, чтобы поиск Элементов

можно

было производить

т а к ж е

по. номеру. Это особенно по-

62