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

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

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

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

Добавлен: 19.10.2024

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

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

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

Он т а к ж е содержит идентификатор

запроса

ID,

дей­

ствие, условие, функции обработки, выходное

устрой­

ство и выходной формат. Мультиобрабатывающая

 

Ис­

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

Программа

присваивает

к а ж д о м у

запросу

Область

Управления

Запросом

в реальном

масштабе

времени. В пределах этой области

р а з м е щ а ю т с я

пара­

метры запроса

и списковые адреса.

 

 

 

 

 

В

оперативных

системах

часто

желательно

 

иметь

хотя

бы

минимальную

возможность

вести диалог,

в х о ­

де которого Исполнительная

Программа

передает

через

программы ввода-вывода Т е р м и н а л у

 

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

Декодирующего

Справочника

допоисковую

статистику.

К а к

выше указывалось,

некоторые

формы

организации

файла приспособлены лучше других для получения ка­

чественной

допоисковой

статистики.

Следовательно,

если система

может вести

такой диалог,

некоторые ви­

ды структуры (организации) файлов могут быть исклю­ чены из рассмотрения. В . таком случае пользователь у терминального устройства решает на основе этой ста­

тистики, продолжать ли

поиск в файле, модифицировать

ли запрос

или закончить

его. По

получении ответа

Ис­

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

Программа

Поиска

может принять

соот­

ветствующее решение. В первом случае она вводит но­ вую процедуру в исполнительную схему и в соответствии

со

стратегией просмотра ф а й л а

выполняет с

З У П Д

операцию произвольного чтения (или занесение)

записи,

после чего передает управление

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

файла

со

специфической привязкой к

соответствующей

QEA.

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

системы

поиска файла

от

соответствующей

Области

Управления

Запросом

QEA

в о з в р а щ а ю т с я

через

Испол­

нительную

Программу

Поиска к программе

вывода, где

они временно помещаются

в З У П Д с высокой скоростью

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

90


ка вместо программы вывода передает ответ в промежу­

точный

файл

(Fe на рис. 1-3).

Программы

Помимо

Оперативной

Исполнительной

(блок

1.2 на

рис. 1-3)

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

основных

субисполнительных программных компонентов. Ими

являются

(1)

Интерпретатор Запроса,

(2)

Исполнитель­

ная

Программа

Поиска,

(3)

Декодирующий

 

Справоч­

ник

Ключей,

(4)

Подсистема

Поиска

файла

и (5)

Программа

В-В. В

оставшейся

части

книги

рассматри ­

ваются в

основном

Декодирующий

Справочник

 

Ключей

и Подсистема

Поиска

Файла

как

имеющие

 

непосред­

ственное

отношение

к

методам

организации

файла .

Различные структуры файла влияют иа схему работы Исполнительной П р о г р а м м ы Поиска в режиме мульти-

работ

(Multitask),

поэтому

ее

работа т а к ж е

будет

вкратце рассмотрена.

 

 

 

 

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

рассмат­

ривать как двухступенчатый процесс. Первый

ш а г

сос­

тоит

в трансляции

ключей

с

помощью

Справочника

с естественного языка или языка кодов в логическом выражении в списковые адреса. Вторая ступень состоит из поиска с произвольным доступом по списковым адресам

файла. Н а рис. 5-2 представлена

классификационная

диаг­

рамма

существующих методов

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

этих

двух

функций. В левой части

д и а г р а м м ы изображено

дерево с обозначениями различных методов организации

Декодирующего

Справочника

Ключей. Методы

эти

раз­

биваются на два класса, одни из них

относятся к

т а к

называемым методам

рандомизированного,

или

смешан­

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

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

согласно

дереву

или

справочной

таблице.

Рандомизиро ­

ванный

метод

имеет

несколько вариантов,

которые

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

функциональные

отличия. Первое из них заключается

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

Ключей

Постоянной

и

Переменной

длины. Н а естественном

языке полный

ключ

обычно

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

91


неоднозначности. Ключи Фиксированной Длины обычно допустимы, и тогда этот подход, вообще говоря, пред­ почтительней, потому что при этом программы декоди­ рования легче пишутся и быстрее в выполнении. К а к указано на рис. 5-2, существуют два общих метода при­ ведения полной длины ключа к фиксированной длине.

Первый из

них

состоит

ь выборке

из

ключа

фиксирован-

 

 

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

 

 

 

 

 

Поиск сайла

 

 

 

 

 

 

 

 

 

 

Управление

 

 

ключей по справочнику

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

— длиной

 

 

 

 

 

 

 

 

 

 

 

 

 

 

списка

 

 

Рандомизированный] Декодирование

 

 

 

Частичная

 

процесс

 

 

согласно

 

 

 

 

инверсия

 

 

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

дереву

 

 

 

 

 

 

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

 

 

 

 

 

 

 

 

Мультисписок

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

список

 

 

 

 

 

 

 

 

 

 

^/У/і

Разбцени.8

 

 

 

 

 

 

 

 

 

 

 

•'//,{ по сектора-м

 

 

КЛЮЧ

 

 

 

 

Ключ

 

 

 

 

 

 

 

 

{риксированнои

 

переменной

 

 

 

 

 

 

 

 

 

длины

 

 

 

 

длины

 

 

 

 

 

 

 

 

Представ­

Рандомизи­

Полное

Однозначная

 

 

 

 

ленный

 

значение

выборка

 

 

 

 

выборкой

рованный

ключа

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Рис. 5-2. Двухступенчатый процесс выборки.

 

 

ыого набора символов или битов. Частным случаем та­

кого

преобразования,

используемого

во

многих

систе­

мах,

является

простое

усечение

ключа

до

заданного

числа символов. При втором способе

ключ

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

некоторой

 

рандомизированной

 

обработке,

 

переводящей

его

в

область,

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

фиксированным

числом

битов.

При

использовании

ключей , переменной

длины

т а к ж е

существуют д в а

подхода.

При

первом

из них

используется полное

значение

ключа.

Другой

 

состоит

у в том,

чтобы

найти

для

каждого

ключа

 

однозначную

^ выборку (или преобразование), сохраняющую от ключе­

вого

слова ту минимальную

часть, которая

необходима

д л я

того,

чтобы отличить его от всех

других

ключей си­

стемы. В

терминах объема

памяти

последний способ

92


Может окаааться фактически таким

же

экономичным,

как метод

ключей

фиксированной

длины,

обеспечивая

в то ж е время совершенно однозначное

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

Однако, как мы увидим ниже, метод

этот

достаточно

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

дерева, так

и для его

обновления и,

возможно,

обладает какими-

либо другими нежелательными свойствами.

 

Цель создания

методов

классификации состоит в том,

чтобы на

к а ж д о м

уровне

предоставить

проектировщику

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

личий в

свойствах декодеров.

Эти свойства будут рас­

смотрены

в гл. 6. Здесь ж е в

связи с описанием дерева

классификации, изображенного на рис. 5-2, можно сде­ лать следующий вывод: на первом уровне проводится различие между рандомизированным подходом и деко­ дированием согласно дереву. Вообще говоря, рандоми­

зированный подход предъявляет

меньшие

требования

к З У П Д

(иногда вовсе никаких), чем дерево. С другой

стороны,

дерево

обладает сканирующим

свойством

в области

ключа,

необходимым

при выполнении опера­

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

дами в большинстве случаев сопоставимы.

На втором уровне

метод дерева ветвится на вариан-'

ты работы с ключами

фиксированной и переменной дли­

ны; издержки следует

отнести исключительно за счет

неоднозначности декодирования . Первым из них может

вызвать при декодировании неоднозначность,

требую­

щую последующего просмотра полного значения

ключа

либо с помощью

другого субсправочника

(что сводится

к расходованию

дополнительной

п а м я т и ) ,

либо

за счет

времени поиска

в файле записей

(что снижает

эффек­

тивность) .

 

 

 

 

Метод переменных ключей гарантирует от неодно­ значности декодирования, но это приводит к усложне ­

нию программирования

и выдвигает дополнительные

требования к

памяти

З У П Д .

Б о л ь ш а я

часть

про­

ектировщиков

предпочитает схему

с

ключами фиксиро­

ванной длины

из-за ее

простоты

и

еще

потому,

что

издержки в виде дополнительной памяти и потери эф ­

фективности

не

существенны.

 

 

Н а третьем

уровне

принятия решения

в

варианте

с ключами

переменной

длины возникает

з а д а ч а

выбора

93


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

памяти, но

сложней

дл я

программирования .

Кроме

того, если

необходим

поиск

в окрестности

значения

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

мощью

усечения

такую возможность

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

в то в р е м я как любые

другие

методы

выборки

или

рандомизация ключа ее не содержат .

 

 

 

 

Второй ша г оперативного процесса

поиска,

как это

указано в правой части рис. 5-2, состоит

в поиске

файла.

В а ж н е й ш е й характеристикой организации файла для

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

поиска

является

процесс,

описанный

в гл. 1 и 3

как

логическое разбиение.

Пусть

каждая

запись

ф а й л а

записана

в З У П Д

один

раз, и

при

этом

требуется получить доступ к этой записи с помощью лю­

бого

из ее ключей. Одновременно мы хотели

бы

полу­

чить

доступ ко всем другим записям, с о д е р ж

а щ и м

этот

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

кструктуре данных внутри записей?

Вконце 50-х и начале 60-х годов дл я внутренних операций с магазинными списками (в оперативной па­ мяти) были созданы методы программирования, наз­

ванные

списковыми

структурами

[Л. 7]. Эти методы опи­

саны

в

литературе

как

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

(threaded

list [Л. 8]), узловые

списки [Л. 9] и

последова­

тельные

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

(Multilist [Л. 10]). С

появлением

З У П Д

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

загрузки

и поиска

списковых

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

дов. Н а и б о л е е

общей среди этих структур является по­

следовательный

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

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

тема Prywes и Gray; эти методы

мы будем в дальнейшем

называть или последовательными списками, или мульти­ списками без каких-либо то ни было дальнейших ссы­

лок.

Последовательный список характеризует

каждый

ключ

единственным

адресом З У П Д ,

полученным

на вы­

ходе

Декодирующего

Справочника

Ключей; этим адре­

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

94