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

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

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

отк р ы ва ется новый список, начальный адрес которого помещается в список таких адресов на выходе справоч­ ника ключей для соответствующего ключа, точнее (см. рис. 7-4), используется адресное обозначение, указываю­ щее, в котором из четырех секторов начинается список. Например, список W из семи записей разбивается на список длиной в четыре и список длиной в три записи. Первый начинается в нулевом секторе, шестая запись

W

X

Y

z

Д-1.3/3

яаэм

as/*

Я17M

я из/г

 

яг.5

 

 

 

Сектор О

 

 

 

Макси­

 

 

 

 

мальная

 

 

 

 

длина

списка

 

 

 

равна

4

 

Рис 7-4. Мультисписковая организация файла с управ­

ляемыми

длинами списков.

 

 

 

идентифицируется

как

А0.6;

второй список

начинается

в 1-м секторе записью

AI.9.

Схематически

на

рис. 7-4

изображена та ж е

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

и на

рис. 7-1.

Обрыв списка указан пунктиром; фактически семь эле­

ментов

списка W

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

списках.

 

Если

секторы

на д и а г р а м м е определить как индиви­

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

конъюнкцию WX,

будет выбран Х-список, состоящий из

шести записей, в то время как список W содержит семь

записей. Список X реализован в файле в виде двух под­

списков, к а ж д ы й

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

140

д у л е . Поисковая система выработает команду ввода-вы­ вода по отношению к обоим адресам Х-спнска, а именно АО.З и А 1.9. После этого функция операциононй системы

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

модулей и приоритетом требования

ввода-вывода. Если

в момент выработки поисковой системой команд

ввода-

вывода ни один из модулей не был использован,

начина­

ется

одновременная установка

начала (head positioning)

к а к

для АО.З, так и для А 1.9

с последующим считыва­

нием записей. Таким образом,

происходит

параллельный

поиск по двум подспискам списка

X. При

этом

полное

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

тырехкратного

произвольного

доступа

вместо

шести­

кратного. П р е д п о л о ж и м

далее,

что

/Y-список просматри­

вается

как в подсписке

АО.З, так и в А 1.9

и что как АО.З,

т а к и следующий за ним адрес

по

списку (нулевой сек­

тор)

выбраны

и обработаны

до

получения

доступа

к А 1.9.

Пусть,

кроме того, выработана

команда

ввода-

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

пока не будет получен доступ

к А 1.9 и не

передана за­

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

структуры

файла такого

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

входных

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

К а к

будет показано ниже, генерирование списковой

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

141

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

ответствии

с

новым

состоянием

таблицы .

Такая

процедура

о б л а д а л а бы тогда способностью к адаптации.

В

качестве

второго

примера

 

рассмотрим

запрос X

или У, который требует поиска как по списку X, так и по

списку

Y.

Поисковая система сформирует команды вво­

да - вывода

для

доступа

к записям

А0.9,

АО.З и А 1.9. Пусть

далее

эти

команды выработаны

в

описанной

последова­

тельности

и операционная система

приступает

к

выпол­

нению требования доступа к нулевому модулю для адре­ са А0.9 и к 7-му модулю для А 1.9. Таким образом, поиск части Z-списка и У-списка совмещен. Когда в оператив­ ной памяти исследуется первая запись У-списка по адре­ су АО.9, система вначале сформирует команду вводавывода с целью получения доступа к следующему эле­

менту списка Y, указанному адресом

связи внутри

запи­

си

А0.9.

Запись эта расположена,

как

указывает

дна-

грамма, в 1-м секторе. Следовательно, выдается

команда

для

получения доступа

к записи в 1

модуле. Если

к это­

му времени система еще находится

в

процессе

получе­

ния

доступа или чтения записи А0.9

из Х-спнска, то

команда

ввода -вывода

д л я второго

элемента

У-списка

помещается операционной системой в магазин. Нулевой модуль освобождается, и в порядке занесения операци­ онной системой в магазин индуцируется поиск в другой части .Y-списка, начинающегося по адресу АО.З. Следо­ вательно, в поиске по двум подспискам Х-списка про­

изойдет

перекрытие.

К а к только

первый

элемент под­

списка X,

с о д е р ж а щ и й

адрес А 1.9,

считан в

оперативную

память, в соответствии с адресом связи этой записи фор­

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

доступа

к следующей записи, которая о к а з а л а с ь во 2-м

секторе.

После этого может выполняться поиск по У-списку, кото­

рый был

з а д е р ж а н

до освобождения

1-го модуля. К это­

му времени процедуры поиска п о в е е м

трем спискам, тре­

бующим

доступа

к модулям 0,1

и

2, перекрываются.

М а к с и м а л ь н о в о з м о ж н а я степень

перекрывания обычно

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

142

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

дим

поиск по полному списку (кратчайшему в конъюнк­

ции)

и,

за

исключением полностью

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

файла,

при

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

пересечения

не

рассматриваются . Однако время поиска при этом

всегда

меньше, чем д л я неуправляемого

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

так

как

оно

зависит во-первых от

модульности З У П Д ,

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

Оперативное формирование файлов с такой списко­ вой структурой выполняется без обращений к устройст­

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

обновление

файлов, которое

в некоторых

случаях т а к ж е

можно рас­

сматривать

как

процедуру

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

разумеется,

использует

З У П Д , и требование такой процедуры накла ­

дывает свои ограничения на структуру файла, которые будут рассмотрены в гл. 8.

7-4. ПОСЕКТОРНЫЕ РАЗБИЕНИЯ

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

длине

списка

в

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

необязательно ведут

к улучшению свойств обработки

файла .

 

 

Д р у г о е решение

состоит

в

определении

логических

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

З У П Д , в

которые записи

помещаются

согласно некоторой

стратегии размещения . Д а ж е если за­

писи

з а г р у ж а ю т с я

произвольно,

секторы

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

разбиение, которое

может быть

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

или

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

па­

раметрами . Н и ж е исследуется

тип разбиения файла,

на­

зываемый на рис.

5-2 посекторными разбиениями .

 

143

Рис. 7-5 иллюстрирует

посекторное

разбиение, со­

д е р ж а щ е е мультисписковую структуру файла . С

другой

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

модификацию

мультисписковой техники,

при которой

список

вместо

ограничения по длине локализован внутри сектора. От­

сюда

и название

метода секторного

мультисписка. Тот

ж е подход применим

к методу

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

списка.

 

 

 

W

 

:<

 

У

 

2

 

 

 

 

n

as/3

Й

аз/г

Я

0.3/!

Я 1.7/2

 

 

 

 

яі.2/?.

/л; ѵ з

Й1Л/2

Я2.2/д

 

 

 

 

R2.SU

я

2.0/1

Я2.1/1

ЯЗ.7/1

 

 

 

 

Л 35/7

 

 

 

 

 

 

 

 

 

СекторО

\

 

\яо.з

 

\

 

J

 

 

 

 

 

 

 

 

 

 

 

 

 

Сектор !

 

 

 

 

 

 

nu

 

 

 

 

 

 

 

 

 

 

 

 

 

Сектор2

 

 

 

 

 

 

Д2.3\Яг

 

 

 

 

 

 

-?

 

 

 

 

\

 

 

 

 

 

 

 

 

 

-

- V - -

 

 

Сектор3

 

 

 

 

 

 

 

&

 

 

 

 

іязл

 

 

 

 

A3.5

 

 

 

 

 

 

 

 

 

 

 

 

 

Рис. 7-5.

Организация файла с секторным

 

 

 

 

 

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

 

 

 

 

П ри этом в начале сектора появился бы

инвертирован­

ный

список для

данного

сектора.

 

 

 

 

Поскольку,

как показано

на рис.

7-4,

номер

сектора

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

щений к

З У П Д

и

как

следствие д л я улучшения

допо-

исковой

статистики.

XZ. Просмотр

 

 

Рассмотрим

запрос

выходного

уровня

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

списков,

полностью

расположенных

внутри секторов О,

1 и 2 с длинами списков соответственно 2, 3 и 1. Анало­

гично, список Z имеет подсписки,

полностью л е ж а щ и е

внутри секторов 1, 2 и 3

с длинами

списков 2, 3, 1. Сле­

довательно, конъюнкция

XZ может

быть расположена

144

только в секторах, содержащихся

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

начальных адресных списков X и Z. В нашем

примере

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

секторе. Список

Z в этом секторе не

имеет

подсписка.

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

пересечение

XZ

по

нулевом

 

сектору

пусто, поскольку

список Z в нулевом секторе отсутствует.

Аналогичные рассуждения применимы к 3-му

 

сектору.

Таким образом,

поиск по конъюнкции

списков

XZ огра­

ничится поиском

подсписков

Х\\

(или)

Z,

содержащихся

в секторах 1 и 2.

Более того, в 1-м секторе предпочтение

будет отдано списку Z (длина

его равна

двум

против

трех для списка X в 1-м секторе) . Во 2-м секторе пред­

почтение отдается списку Л', имеющему длину,

равную

единице. Общее число списков для поиска по конъюнк­

ции XZ становится равным трем

вместо

шести,

как это

было бы при поиске кратчайшего

из двух списков X, Z

при

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

организации

файла .

 

 

 

 

Если, кроме того, секторы приписаны к отдельным

дисковым

модулям, исполнительная системная

програм­

ма

поиска

установит

схему просмотра

списка

внутри

каждого индивидуального модуля,

отнеся

к а ж д ы й

поиск

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

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

отвести

сектору цилиндр

диска таким образом, что

если

блок головок

установлен

иа данный цилиндр, поиск

по некоторому фиксированно­

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

передвиже­

ний блока головок.

 

 

 

 

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

может быть

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

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

для

к а ж д о г о запроса

(как это определено

выше

процеду­

рой

пересечения)

изображены

так,

 

как

показано

в табл . 7-1. Согласно таблице первый

запрос (Qi) требу­

ет поиска подсписков в секторах

0,

1,

4

и 9, второй за­

прос

( Q 2 ) — в секторах

1, 8,

9 и

15;

третий

запрос (Q3)

требует поиска в секторах 0, 2 и 4. Вначале

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

ная

программа производит

слияние

индивидуальных

списков доступа к секторам и

образует

объединенный

список, приведенный

в

табл .

7-2.

Теперь

видно,

что пер-

10—88

145

 

Т а б л и ц а 7-1

 

 

Т а б л и ц а 7-2

Список

запрос/сектор

Объединенный список

доступных

секторов

 

 

 

 

 

 

Список

доступных

Объединенный

Номер запроса

 

список

доступных

 

секторов

 

секторов

 

 

 

 

 

 

 

Q

О,

1,

4,

9

 

О

 

 

1,

8,

9,

15

 

2

 

 

 

4

 

 

 

 

 

 

 

 

 

 

 

 

 

 

8

 

 

О,

2,

4

 

9

 

 

 

 

 

 

 

15

 

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

па,

поскольку

поиск

по

списку

идет

внутри

цилиндра.

Д л я

типичной

дисковой

системы

среднее время

доступа

составляет

около

50 млсек

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

ожидания .

Если

д о р о ж к а

содержит

более одной

записи

из

списка,

среднее

время

доступа

на

запись

составит

частное от деления 50 млсек на число записей

списка на

дорожке . Б о л е е того, приведенная

схема несколько лока­

лизует движение головки, уменьшая среднее время до­

ступа. Система

может быть построена так, что запросы

с более высоким

приоритетом н а р у ш а ю т эту схему и вы­

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

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

146

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

рядочить сами запросы. Например, в табл . 7-2

опреде­

ляется лента запросов в форме:

(нулевой

сектор),

Q b <3з*'

(сектор 1) Qi, Q2 ; (сектор 2) Q3 ;

(сектор

4) Q b

Qa

и т. д.,

где к а ж д ы й запрос полностью

повторяется

на

ленте.

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

структуру,

то

к а ж д а я запись, проходящая

через

процес­

сор,

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

релевантным

запросом

только

в том

случае,

если она

включена

в

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

список.

 

 

 

 

 

 

 

Помимо

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

ма д о л ж н а

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

список

«следующих

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

которые могут быть размещены в оперативной

памяти,

и временем обработки одной записи по всем

запросам .

С увеличением числа запросов это время возрастает; при

этом

система

переходит

от ограничений

на операцию

с лентой к ограничению на процессор. При

использова­

нии

стратегии

секторного

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

оперативной

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

щественно, что к а ж д а я запись при прохождении

через

процессор обрабатывается только одним запросом

(иног­

да более чем одним) при минимальных з а т р а т а х

на со­

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

мерно больших пакетов. К р о м е

того,

обработка

текущей

записи может быть совмещена

в исполнительной схеме

с чтением «следующей» записи,

что

улучшает

свойства '

10*

147

.системы, характеризуемые как ограничение на работу с магнитной лентой.

На рис. 7-6 представлен другой метод, который пол­ ностью исключит списковую структуру. Этот метод назы­

вается

секторыо-последователыюй

 

организацией

файла.

Н а з в а н и е

это объясняется тем, что

хотя файл

организо-

 

 

 

 

w

 

X

 

 

Y

 

 

г

 

 

 

 

 

 

 

 

0

—0

 

 

0

 

 

;

 

 

 

 

 

 

 

 

1

— 1

 

 

1

 

 

9

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Z

 

 

 

 

 

 

 

 

г

г-2

 

 

г

 

 

 

 

 

 

 

 

 

 

 

 

 

 

3

 

 

 

 

 

 

 

 

3

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

 

м

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Сектор 0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Сектор 1

 

 

 

 

 

••

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Сектор

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Сектор

3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Put

Лб. Организация файла

с

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

 

 

 

 

 

 

 

ми

секторами.

 

 

 

 

 

 

ван в секторы подобно изображенным на рис.

7-5,

поиск

самих

секторов

происходит

 

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

т.

е.

так,

как если

бы

они

были

полосами

магнитной

ленты. Здесь

т а к ж е

для

получения

грубого

 

разбиения

файла

по

запросу

может

быть

применена

стратегия

пересечения

секторов,

после

чего обрабатывается к а ж д а я

запись

до­

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

новления. Этот способ имеет

явные

преимущества при

использовании З У П Д , для которых

велики к а к среднее

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

так и

скорость групповой

передачи данных.

 

 

Сравнивая результаты секторного подхода при нали­ чии структуры внутрисекторного списка и без него, ви­ дим, что при уплате высокой цены (в терминах времени М8 '

доступа) за установку механизма для поиска сектора экономия во времени (в процентном отношении) за счет

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

сектора может оказать ­

ся незначительной по сравнению

с временем последова­

тельной переписи всего сектора. Например, пусть: 1) вре­ мя доступа к сектору 580 мсек, 2) скорость последова­ тельной переписи 250 кбайт/сек, 3) среднее время про­ извольного доступа на одну запись при условии, что

механизм

З У П Д

установлен

на

требуемом секторе,

со­

ставляет

50

мсек,

4) размер

сектора

125 К* байтов

и

5) к а ж д ы е

пять из 100 записей

сектора

находятся в по­

исковом списке. Метод последовательных секторов по­

требует 1 сек дл я получения доступа

и переписи

сектора,

в то

время

как способ секторного

мультисписка потре­

бует 3 / 4 сек.

Н о если длину поискового

списка

увеличить

до 10, то время

поиска приблизится

к 1 сек и

достигнет

1 сек

только в случае, если длина списка с о в п а д а е т е пол­

ной длиной-сектора в 100 записей. Компенсация

происхо­

дит

за

счет

уменьшения

среднего

времени

доступа

(с 50 млсек)

по мере появления

на той ж е д о р о ж к е дру­

гих записей. К сожалению

З У П Д

на магнитных

 

полосках

и картах типа

I B M Data

Cell

имеют

не только

большее

время

доступа

(несколько

сотен

миллисекунд),

но и от­

носительно низкую скорость групповой переписи данных (порядка 50—70 кбайт/сек). Однако можно надеяться, что со временем скорости групповой передачи для устройств такого типа возрастут.

7-5. АВТОМАТИЧЕСКАЯ КЛАССИФИКАЦИЯ

 

Очевидно, что чем меньше число

секторов, в которых

представлен

ключ, тем эффективней процесс

поиска

в файле с секторной организацией,

т. е. чем выше

плот­

ность списков

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

меньше число

секто­

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

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

* /(=1024 байта (Прим. пер.)

149

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