Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

книги из ГПНТБ / Левковиц, Д. Структуры информационных массивов оперативных систем

.pdf
Скачиваний:
3
Добавлен:
21.10.2023
Размер:
8.9 Mб
Скачать

В приложении 3 представлены данные об имеющихся З У П Д и их рабочих характеристиках . Н а рис. 2-5 изо­ б р а ж е н ы графики, характеризующие среднее общее вре­

мя доступа

(время

установления

головки

плюс время

з а д е р ж к и )

и стоимость хранения

одного

символа для

трех типов

З У П Д ,

а

т а к ж е представлены

аналогичные

данные дл я магнитных

лент и устройств оперативной па-

Стоимость долговременного хранения

стоимость оперативного хранения

< «1

 

\0,1

J 7

10

ЮО^ 1000

to t

 

 

Оперативная Диск Пакет Магнитные ГиперЛента

 

память

дисков

полоски

ленты

 

Среднее

время

(карты)

 

 

 

 

доступа, сек

 

 

Рис. 2-5. Отношение стоимости к времени доступа.

 

мяти (с временем доступа 8 мксек).

Н а рисунке

т а к ж е

показано, как стоимость оперативного хранения и стои­

мость долговременного хранения

единицы

информации

в различных устройствах зависят от среднего

времени

доступа.

Сплошная линия

характеризует

оперативную

стоимость, которую следует понимать как стоимость хра­

нения одного символа информации, находящегося в опе­

ративном пользовании. Она, по существу, равна

стоимо­

сти механизма доступа. И з

графиков видно, что

самой

дорогой является оперативная память с временем

досту­

па 8 мксек

(25 центов за символ) ; стоимость диска

с фик­

сированными головками и диска с подвижной

головкой

(disk pack) меньше; стоимость устройств памяти на маг­

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

 

равным

примерно

0,5 сек, минимальна (0,035 цента

за

символ);

40

 

 

 

 

 

 

д ля п-шерлеиты и стандартной лепты стоимость возра­ стает приблизительно до 0,25 цента за символ. Отсюда видно,, что и лента и гиперлента непрактичны д л я опе­ ративного хранения и уступают по стоимости и времени

доступа устройствам

памяти на магнитных полосках и

с пакетами дисков.

Кроме того, оба последних вида

устройств являются модульными в том смысле, что их

можно

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

т

а к ж е

и д л я долговременного хра­

нения

информации,

на

что

указывает пунктирная линия.

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

сков. Это свидетельствует о том, что в р е ж и м е

пакетной

обработки, когда требуется сравнительно дешево

хранить

большие архивные массивы информации, магнитные лен­ ты все еще являются более предпочтительными.

ГЛАВА ТРЕТЬЯ

СТРУКТУРА ИНФОРМАЦИИ

ИО Р Г А Н И З А Ц И Я ФАЙЛА

1

3-1. ФУНКЦИОНАЛЬНЫЕ ТРЕБОВАНИЯ К ОРГАНИЗАЦИИ ФАЙЛА

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

граммных построений и формулируются

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

требования к организации ф а й л а в оперативных

систе­

мах.

 

 

 

Эти требования возникают

при включении

ф а й л а

в общесистемную схему, подробно рассмотренную

в гл. 1.

В табл . 3-1 перечислены основные

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

требования и характеристические

свойства, которым дол -

41

 

 

 

 

Т а б л и ц а 3-1

Функциональные требования к системе файлов

Функциональное

требование

Характеристика файла и системы

Вызов записи в реальном

масштабе

Разбиение файла (списковая

времени

 

 

структура)

 

Выборка по составному

логическо­

Разбиение по составному списку

му ключу

 

 

 

 

Неключевые классификации

 

 

Сравнение арифметических значений

Межзаписная

обработка

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

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

Меж- и внутризаписная обработка

значении

 

 

 

 

Формирование отчетности

 

Внутризаписная обработка

Реальный масштаб времени и

Управление

списками

пакетное обновление

 

 

 

Обслуживание файла

 

Управление

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

 

 

1

памяти

 

 

 

І

 

 

ж н ы удовлетворять структура файла и система его об­

служивания .

 

 

 

Система,

р а б о т а ю щ а я

в

оперативном режиме, требу­

ет доступа

к записям

в

файле в реальном масштабе

времени. Схемно, как показано в гл. 2, это влечет за со­

бой выбор

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

типа З У П Д

( D A S D ) .

П р о г р а м ­

мные решения, которым

в основном посвящена

н а с т о я щ а я

книга, предполагают

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

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

на вызываемые с З У П Д достаточно

мелкие

подфайлы,

позволяющие д а л е е с помощью последующих

классифи­

кационных

процедур

выявить указанную запись. При

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

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

42

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

Структура ф а й л а д о л ж н а допускать поиск внутри файла по составному логическому ключу. Это утвержде ­ ние содержит три понятия, которые следует определить , точнее: ключ, составной ключ и логический ключ. Функ­

ционально ключ определяет однозначное разбиение

фай­

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

эле­

мент записи в форме цепочки символов или битов а. Тог­

да о к а ж д о й

записи в файле, содержащей цепочку а,

я в л я ю щ у ю с я

подмножеством некоторого общего поля

(называемого полем ключей), говорят, что запись нахо­

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

а. Б о л е е

того,

это

разбиение

не

содержит записей,

в которых

отсутствует

цепочка а

из

поля

ключей. Д л я

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

системы

ключ является

дескриптивным

элементом информации,

п р и н а д л е ж а щ и м записи. Например,

автор/Смит

или

г р а ж д а н с т в о / С Ш А .

 

 

 

 

 

 

 

Второе

и

третье

понятия

(или,

скорее,

связанные

с ними функциональные требования) ведут к

постановке

задач,

рассмотрению

которых в основном

и

посвящена

н а с т о я щ а я

книга. Включение

в систему понятия состав­

ного

ключа

означает,

что

поиск может

определяться

более чем одним ключом; логика поиска при этом опре­ деляется логическими условиями на комбинацию этих

ключей. Н а и б о л е е

употребительны

логические

функции

в виде булевых операторов И, И Л И , Н Е ;

иногда

пользу­

ются

пороговыми

из п) или взвешенными пороговы­

ми

функциями .

Единственному

ключу

соответствует

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

по комбинации ^разбиений. Н а п р и м е р ,

ключевое в ы р а ж е ­

ние А И В

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

содер­

ж а щ и е объединение разбиений по признаку

А и

призна­

ку В. Следовательно, ф а й л ы

д о л ж н ы

быть

организованы

так, чтобы

минимизировать

число записей,

считываемых

с З У П Д , для

проверки

выполнения

условия

составного

ключа. П о

определению

максимальное число

пересылок

из З У П Д

в процессор

не д о л ж н о превосходить

объема

наименьшего

из разбиений

А И В .

Более

тщательной

организацией Справочника ключей эффективность поиска можно повысить, но стоимость разработки системы при

этом

возрастает. Р а з р а б о т к а систем поиска по

одному

ключу

не представляет больших затруднений.

В этом

43

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

Системы

первого типа, несмотря

на свою ограниченность,

имеют много приложений. К а ж д ы й ключ

в таких

систе­

мах определяет единственную запись. Примером

может

служить

банковская система,

в которой

к а ж д ы й

счет

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

ставному

признаку. Если в

описанном

выше

примере

к записи

счета добавить

ключи, соответствущие

д а т а м

и-именам, то разбиения, генерируемые запросами,

могут

содержать

класс

записей.

 

 

 

 

 

 

 

Таким образом, можно создать разбиение для всех

записей, с о д е р ж а щ и х данное число или данное

имя,

так

чтобы, например,

организовать прямой доступ

к

к а ж д о ­

му счету,

заприходованному,

например,

19

мая

1968

г.

Т а к а я система со

многими ключами могла

бы

работать

по типу системы

с запросом по одному ключу. Н о

как

только разрешены

запросы типа «Выбрать запись

Д ж о н а

Смита, внесшего

в к л а д 9

апреля 1968 г.», возникает

не­

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

только от структуры

файла, в то

время как

разбиение

по

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

большинстве

систем

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

в

процессе

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

согласно

логическому

в ы р а ж е н и ю

запроса,

с о д е р ж а щ е м у

составной

ключ. Р а ­

бота этих программ вносит в разработку системы кри­ тический элемент — время ответа.

Другое функциональное требование к организации файла в информационно-поисковых системах заклгочает-

44

ся в необходимости неключевой классификации записей. В гл. 1 описан двухуровневый поисковый процесс. На первом уровне через декодирующий справочник опреде­

ляются

списки

или разбиения записей, после

чего из

З У П Д

в процессор передаются физические записи

спи­

ска. Составное

ключевое

в ы р а ж е н и е

запроса,

являясь

входом

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

справочник,

определяет

доступ

к элементам списка. Д а л ь н е й ш а я классификация

запи­

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

совпадение подцепочки

и т.

д. Эти

ж е

операции

можно

з а л о ж и т ь в в ы р а ж е н и е

д л я

запроса,

но

тогда выполнять­

ся они д о л ж н ы не внутри записи, а

процедурой справоч­

ного декодирования . С точки зрения

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

систе­

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

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

измещение ниже среднего. Т а к а я формулировка

предпо­

лагает, что существует программа, вычисляющая

среднее

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

(или да­

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

45

O T I I O C I I T Ö L K

ции этого требования в системах, работающих в реаль­ ном масштабе времени, рассмотрены в гл. 4.

Решение об отборе той или иной записи по результату арифметического сравнения ее классификатора зави­ сит только от данных рассматриваемой записи и ие зави­ сит от значений или процедур, выполняемых над другими записями файла в целом или списком его записей, счи­ танных с З У П Д . Такие системные процедуры называют ­ ся внутризаписной обработкой (intrarecord processing). Результат сравнения функционально преобразованных значений обычно зависит от результатов предшествую­

щей обработки других записей файла

или его

разбиения,

а т а к ж е от результатов

внутризаписной обработки. Соот­

ветствующие

системные

процедуры

называются

межза ­

писной обработкой (interrecord processing).

 

 

Вопросы

функционального

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

данных

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

формирования

отчетности,

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

мым к

оперативной системе. Генерируемая отчетность

д о л ж н а

обладать гибким и высококачественным форма ­

том. При этом следует использовать весь описанный вы­ ше механизм выборки, легко формируемый в терминах межзаписной обработки.

Одна из главных з а д а ч

при работе

с ф а й л а м и

в

опе­

 

ративных системах заключается в выборе

способа

обнов-

_ ^ л е н и я ѵ П р и необходимости

обновления

в

реальном

мас­

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

атацией

файлов, возрастает. В этом случае в целях об­

л е г ч е н и я

внесения

исправлений списковые

структуры

д о л ж н ы

содержать

некоторые у п р а в л я ю щ и е

элементы.

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

46

а

не к

обновлению. Новые записи можно сгруппировать

в

пакет

и периодически присоединять к ф а й л а м . Р а з м е ­

щение новых записей в оперативной памяти или на внеш­ нем носителе не зависит от организации файла, посколь­

ку

его обновление планируется на время,

когда система

не

работает

в оперативном режиме . Однако оперативное

обновление

имеет и ряд преимуществ, в

некоторых слу­

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

новления в

реальном

м а с ш т а б е времени. В

этом

случае,

так

ж е как

в случае

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

формирования ф а й л а ,

для

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

входов, формализации

 

обновления

и обнаружения текущих

ошибок

можно

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

специальные программы

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

 

 

 

 

Таким образом, первая з а д а ч а проектировщика си­

стемы состоит в определении необходимости

требования

обновления

файлов

в

реальном

масштабе

-времени..

Если такой

необходимости" нет, он

располагает

большей

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

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

ко ухудшают состояние организации . Н а п р и м е р ,

в неко­

торых системах

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

длины,

которые нельзя

разместить по соответствующему

адресу

полностью, формируют - в - конце записи остаточную часть

(trailer), которая

р а з м е щ а е т с я

по некоторому

п р о и з в о л ь 7

но отдаленному,_ад£есу.

Б о л е е

того, остаточные

записи

могут создавать

новые

фрагменты, т а к что д л я

восста­

новления полной

записи

может

потребоваться

несколько

обращений с произвольным доступом. Д р у г о й подход со­ стоит в резервировании п а м я т и • для -- разм«щения . лолной

записи. П р и этом некоторый прилегающий

объем памяти

остается незаполненным. В обоих случаях

как

д л я сбор­

ки записи по фрагментам, так и д л я сборки и

возвраще ­

ния системе участков свободной памяти появляется не­ обходимость в процедуре обслуживания файла . Приве -

47

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

тода обновления. В некоторых системах

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

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

можно приурочить

к з а р а н е е

запланиро ­

ванным

интервалам времени, выполняя его над файлом

в целом

или

его значительной частью. В

других случаях

требования к

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

ны, что

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

фоновая

з а д а ч а и выполняется

в условиях

разрешения

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

3-2. СТРУКТУРА ИНФОРМАЦИИ

ИОРГАНИЗАЦИЯ ФАЙЛА

Дл я четкого понимания дальнейшего изложения в а ж н о определить термины: структура информации, организа­

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

(если

это в о з м о ж н о ) , — воспользоваться ее

преимущест­

вами

при организации файла . В свою очередь

организация

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

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

и передачи

I информации* Решение проблемы организации

файла це-

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

48

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

В целях удобства рассмотрения структуру информа­ ции можно разделить на два типа — иерархический и ас­ социативный, изображенные схематически на рис. 3-1.

Рис. 3-1. Схема иерархической и ассоциативной структур информации.

иерархическая;

ассоциативная.

И з о б р а ж е н н ы е на схеме точки

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

записи файла, а соединяющие их сплошные и пунктир­ ные линии у к а з ы в а ю т соответственно иерархические и ассоциативные связи между записями. В верхней части схемы помещена запись наивысшего иерархического уровня по отношению к пяти другим записям файла, три из которых (слева) могут представлять некоторый подфайл записей с общими признаками и, возможно, общим форматом записи. Указанием на это с л у ж а т общие за­ мыкающие прямоугольники, с о д е р ж а щ и е соответственно три записи слева и две справа. Аналогично две записи справа стоят по иерархии выше других подфайлов . Та­ ким образом, иерархическую структуру можно изобра­ зить деревом с произвольным количеством уровней. Д р у ­ гое свойство иерархической структуры информации, как видно по нижней записи/схемы, состоит в том, что неко­ торая запись может быть использована несколькими за­ писями более высокой иерархии. Таким образом, запись, обозначенная через А, как это видно из взаимного рас -

4—88 49

Соседние файлы в папке книги из ГПНТБ