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

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

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

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

Добавлен: 19.10.2024

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

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

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

мисту-прикладпику, работающему с компилятором . Язык запроса может функционировать к а к средство об­

щения с пользователем-непрограммистом, в этом

случае

его утверждения д о л ж н ы

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

поскольку

эффективное

взаимодействие

ч е л о в е к — м а ш и н а

требует

построчного

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

и исполнения.

Это

свойст­

во

превращает операции

управления

файлом

как

с

точ­

ки

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

так

и с точки

зрения

пользова­

теля - непрограммиста

в операции, не

зависящие

от

ма­

шины.

 

 

 

 

 

 

 

 

 

 

 

Более конкретно,

язык

запроса

и

связанный

с

ним

процессор д о л ж н ы

как

минимум

уметь

осуществлять

следующие

операции:

 

 

 

 

 

 

 

 

1)поиск, основанный на использовании ключей и классификаторов;

2)обновление записей — присоединение и исключе­ ние записей, присоединение, исключение и модификации

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

данных;

3) межзаписную обработку со свободным включением

процедур;

 

 

 

 

4)

создание гибких

форм для

выходных

данных.

К этому следовало бы добавить компилятор д л я вы­

числительных процедур, но если

блок запроса

включен

в существующий компилятор,

это требование

выпол­

няется

автоматически,

и тогда

утверждения языка за­

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

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

главной его

целью

является выяснение

требований

к структурам

файла

и их иллюстрация . К а к

прототип

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

своих приложений,

поскольку к а ж д а я система

может

содержать некоторые

специальные требования,

которые

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

ная задача

в р а м к а х

этой

книги состоит

в

выявлении

некоторых

фундаментальных

требований

к

структурам

файлов в оперативных

системах.

 

 

68


HEADER (ID, Priority, File Access Key)

COMMAND (Retrieve, Update, Report, etc.)

OUTPUT D E V I C E (Typewriter, Display, Printer)

DATA CONDITIONS

K l (key name R value)

K2 (key name R value)

CI (qualifier name R value)

C2 (qualifier name R value)

PROCESSING (A function of K l , K2, .. . C l , C2 .. Л

• Intra — Record Logic Functions

Inter — Record Processing OUTPUT FORMAT

Titles

Formatting Print Statements

Рис. 4-1. Прототип схемы запроса.

Ф о р м а т запроса,

представленный

на рис. 4-1, состоит

из шести основных

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

три из которых со­

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

нами не рассматриваются; остальные

три существенно

связаны

со структурой

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

и обра­

щением с ним.

 

 

 

Первый раздел представляет собой

Заголовок

(HEA ­

DER),

с о д е р ж а щ и й

идентификатор

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

в случае

мультитерминальной системы

с дальней

связью

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

терминального устройства. Заголо ­

вок, кроме того, может содержать и другую информацию,

такую как, например, приоритет

запроса

и ключ доступа

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

подлинности

системных

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

участвующих в запросе.

Р а з д е л

Действие ( C O M M A N D ) запроса

обычно пред­

ставляет

собой относительно

простое

мнемоническое

утверждение или функцию, которое д о л ж н о

быть выпол­

нено в ответ на запрос. Следует отметить, что понятие

«запрос» здесь понимается в достаточно широком

смыс­

ле; в некоторых системах помимо поиска

ф а й л а

запрос

может

содержать

требование

на обновление

файла,

выполнение процедур

редактирования, сообщение

о со­

стоянии

системы

или

вызов

процедуры

или подпро­

граммы

 

 

 

 

 

 

69



Третий раздел запроса содержит спецификацию Вы­ ходных устройств (OUTPUT D E V I C E ) . В некоторых си­ стемах речь может идти о выборе выходного устройства.

Эти три различные системные функции

осуществляют

«естественное» разделение операций над

ф а й л а м и ,

кото­

рые рассмотрены в последующих главах.

Другими

сло­

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

может несколько отличаться от естественного

процесса,

реализуемого человеком при попытке установления

свя­

зи с системой и ее -использовании. Таким

образом,

язык

запроса

и процессор

д о л ж н ы

служить

«ограничитель­

ным»

механизмом

или синхронизатором

между челове­

ком

и

машиной.

А

поскольку

человеческое

мышление

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

матом запроса,

проводя его

через последовательность

четких утверждений,

которые

в некоторых

случаях могут

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

него

поиска

аналоіий

и переработки

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

выделяя

основные

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

компоненты

струк­

туры

файла .

 

 

 

 

 

 

Четвертый раздел

запроса

под названием

Условия

(DATA

CONDITIONS)

содержит у п р а в л я ю щ и е

аргумен­

ты или

параметры .

 

Например,

при

действии

 

поиска

д о л ж н ы быть определены ключи, классификаторы

и ус­

ловия

поиска. При

обновлении

у п р а в л я ю щ и м и

парамет­

рами могут быть номер д л я доступа единичной записи и собственно данные обновления. Группу записей лучше

обновлять

не по номеру записи,

а по списковому ключу.

Например,

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

обновление в

записях

о воинском

подразделении, относящееся

к определенно­

му воинскому званию. Во всех случаях

р а з д е л

условия,

определяющий условия д л я ключей и

классификаторов

при получении доступа к записи,

будет

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

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

моническими символами, например KU К2,

Cl, С2

(см.

рис. 4-1), с тем

чтобы далее использовать

 

мнемонику

естественного языка для спецификации имени

ключа или

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

его значения или серии значений, а

так­

ж е требуемого соотношения между именем

и

значением.

70


Д л я прототипа

запроса, ф о р м а т

которого

мы у ж е

рас­

сматривали, это достигается достаточно точно

введением

символов пользователя . А

именно

вслед за

присвоенным

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

символом,

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

как

метка

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

имя

ключа

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

ния, вслед за которым идет

оператор

отношения

(равно,

больше, меньше,

в пределах), д а л е е

цифровое

или

ал­

фавитно-цифровое

значение

или серия значений

за­

висимости от типа оператора отношения), и, наконец,

закрывающая

скобка. Обобщение этой концепции могло

бы привести

к значениям, полученным в результате

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

лежит поле данных, определенное

в р а з д е л е обработка,

а новые

данные, которые

д о л ж н ы

быть добавлены или

внесены

в поле, у к а з а н ы

и помечены в разделе Условие.

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

С помощью метки проектировщик системы может ре­ шать вопрос о том, следует ли пользователю различать

71