Cтраница 3
Способ произвольного обращения с помощью индексов предполагает непосредственное нахождение записи на диске по ее ключу. При этом создают один индексный массив, в котором можно по ключу отыскать номер дорожки и порядковый номер на дорожке искомой записи. Но при такой организации индексные массивы достигают значительной величины, что приводит к дополнительным расходам дорогостоящего носителя информации. Кроме того, при большом числе ступеней индексных массивов время поиска одной записи может стать значительным. [31]
![]() |
Связь между основной памятью, буферной памятью и индексным. [32] |
Индексный массив также содержит две строки по 128 колонок, что точно соответствует блокам буферной памяти. На рис. 7.5 показана структура кода элемента индексного массива. Поле адреса в строке содержит адрес блока данных в основной памяти, который занимает соответствующую позицию в буфере. Левый старший бит указателя полублока связан со старшим, полублоком, а правый бит указателя полублока соответствует младшему полублоку. Бит контроля ( Ж указывает правильность работы соответствующих позиций в буфере и индексном массиве. [33]
Видоизменением метода служит индексирование массива. Вместо использования алгоритма для отыскания записей создается второй массив, который содержит только значения ключевых полей и соответствующие номера записей или их адреса. Этот подход полезен для небольших массивов, в которых значения ключевых полей весьма не регулярны. Если нужно выполнить последовательную обработку некоторого поля массива, то вместо создания отдельного индексного поля может оказаться более экономичным введение индекса в каждую запись. При этом запись содержит индексное указание на следующую запись в последовательности. Индексирование является основным методом, применяемым в операционных системах всех типов, содержащих библиотеки программ. Индексный массив, обычно называемый в этом случае указателем, содержит имя, адрес и размер каждого программного модуля. [34]