ВУЗ:
Составители:
В последовательных файлах размещают наборы данных с последовательной организацией. Обычно в последовательных
файлах используют один указатель от одного блока к другому (рис. 5.8). Иногда для ускорения доступа применяют двойные
ссылки.
Блок 0
Данные
Указатель
на блок 1
Блок 1
Данные
Указатель
на блок 2
и т.д.
Рис. 5.8. Последовательная организация файла
Последовательный файл состоит из связанной последовательности блоков. В одном блоке последовательного файла
может быть размещена одна или несколько записей последовательного набора данных. Доступ к последовательному файлу
отличается простотой и достаточно быстр. Для того, чтобы найти нужную запись, файл должен быть просмотрен блок за
блоком от начала файла, пока не будет найдена требуемая запись. При обработке последовательного файла в файловых сис-
темах рассматривают следующие случаи размещения логической записи в физических блоках:
1)
один физический блок под одну логическую запись;
2)
несколько физических блоков под одну логическую запись;
3)
один физический блок под несколько логических записей.
В первом случае необходимо считывать в первичную память только один физический блок. Логическая запись может
быть обновлена на том же месте путем записи новых данных поверх старых. Включить новую запись довольно просто, так
как система выделяет еще один физический блок и настраивает соответствующие указатели.
Во втором случае для того, чтобы получить логическую запись целиком, все физические блоки, занятые ею, должны
быть считаны в память. Обновление логической записи производится так же, как и в первом случае – путем записи новых
данных поверх старых в найденном физическом блоке. Относительно несложно добавить новую логическую запись, так как
для этого система должна просто выделить необходимое число блоков для новой записи и настроить соответствующие ука-
затели.
В третьем случае для обеспечения доступа к требуемой записи программа управления файлами должна сначала найти
блок, где она находится. После того, как этот блок считан в первичную память, выполняется выделение нужной записи из со-
держимого блока. Добавить новую запись значительно сложнее, чем в первых двух случаях, так как если блок заполнен, необ-
ходимо перенести в новый блок одну или несколько записей из старого блока с соответствующей коррекцией указателей.
Доступ к записи в последовательном файле требует, в среднем, чтения и просмотра половины блоков файла.
Непрерывная организация файла предполагает создание на диске непрерывного файла.
Непрерывный файл – файл на носителе, состоящий из ряда физических блоков, которые все расположены в одной
сплошной области дискового пространства.
Непрерывная организация файла представляет собой жесткую структуру, что обеспечивает самый быстрый доступ к
данным. Размер непрерывного файла фиксирован и задается в момент создания файла. Файл не может быть увеличен в раз-
мере, однако уменьшение длины непрерывного файла допускается. Главный недостаток непрерывной организации файла в
том, что во внешней памяти не всегда может быть выделено нужное количество смежных физических блоков.
Доступ к записям непрерывного файла достаточно прост. Если обозначить через r – номер записи, l – длину записи и L
– длину блока, то номер b блока, где находится запись, вычисляется по формуле
b = l r / L.
Значение b используется затем для считывания нужного блока в первичную память. Поскольку не нужно проходить по
указателям, как в первом случае, то достигается существенное сокращение затрат времени на доступ к данным.
Обновление записи r совершается очень просто – она просто перекрывается новыми данными. При этом происходит
обращение к нужному количеству физических блоков.
Для непрерывного файла имеют место те же три случая размещения логических записей в физических блоках, что и для
последовательного файла. Включение новой записи в непрерывный файл очень сложно. Для этого системе, в среднем, необ-
ходимо переместить половину записей длиной l, прежде чем освободить место для новой записи. Включение новой записи в
непрерывный файл может окончиться неудачей, если при сдвиге записей последняя запись будет передвинута за границу
файла.
Сегментированная организация файла предполагает создание сегментированного файла.
Сегментированный файл – это файл, состоящий из последовательного индекса, содержащего адреса соответствующих
блоков данных.
Сегментированный файл называют также
индексным файлом.
Такая организация предназначена для преодоления недостатков доступа в последовательных файлах. Индекс представ-
ляет собой меру произвольности доступа и средство обслуживания добавления в файл.
Индекс строится как множество блоков указателей сегментов (БУС) и может быть организован последовательным или
непрерывным способами. При непрерывном подходе максимальный размер файла считается известным (например, один
дисковый том) и в соответствии с этим выделяется требуемое количество индексных блоков. В случае последовательного
подхода размер файла не ограничивается. Однако поиск по последовательному индексу ставит те же проблемы, что и при
Страницы
- « первая
- ‹ предыдущая
- …
- 53
- 54
- 55
- 56
- 57
- …
- следующая ›
- последняя »
