10.6. Библиотечный файл
Файл с библиотечной организацией состоит из последовательно организованных разделов, каждый из которых имеет свое имя и содержит одну или несколько логических записей. В начале файла размещается специальный служебный раздел, называемый справочником или оглавлением файла. Оглавление состоит из элементов, относящихся к отдельным разделам. Каждый элемент содержит имя раздела и его адрес (адрес первой записи раздела).
К каждому разделу библиотечного файла осуществляется прямой доступ через оглавление. Записи разделов просматриваются последовательно в порядке их физического размещения на носителе.
Характерным примером использования файла с библиотечной организацией является библиотека программ. В этом случае каждый раздел представляет собой отдельную программу или подпрограмму, вызов которых осуществляется по имени раздела. Обслуживание библиотек, т.е. помещение в них новых программ, удаление ранее записанных, переименование программ, их копирование и т.п., производится специальным комплексом системных программ под общим названием "Библиотекарь".
Произвольная обработка библиотечного файла заключается в прямом обращении к требуемому разделу и в обработке отдельных разделов файла в произвольной последовательности.
При последовательной обработке последовательно читаются и обрабатываются записи, относящиеся к одному разделу. Такая обработка в ряде задач является эффективной из-за простоты и удобства написания прикладных программ.
Корректировка библиотечного файла заключается в добавлении и удалении разделов. Новые разделы размещаются в конце файла на свободном участке памяти, и сведения о них заносятся в оглавление. При удалении раздела удаляется соответствующий элемент оглавления, так что доступ к записям раздела становится невозможным. Однако участок памяти, занимаемый удаленным разделом, не может быть использован до тех пор, пока не будет выполнено уплотнение файла, в процессе которого все разделы файла сдвигаются (перезаписываются), а оглавление корректируется. При этом исключаются неиспользуемые участки между разделами и увеличивается свободный участок в конце области памяти, выделенной для файла. На этом участке размещаются вновь создаваемые разделы.
