В информатике файловая система, ориентированная на записи, - это файловая система, в которой данные хранятся в виде коллекций записей . Это отличается от байтовой файловой системы, где данные обрабатываются как неформатированный поток байтов . Есть несколько различных возможных форматов записи; детали различаются в зависимости от конкретной системы. Как правило, форматы могут быть фиксированной или переменной длины, с различными физическими организациями или механизмами заполнения; метаданные могут быть связаны с записями файла для определения длины записи, или данные могут быть частью записи. Различные методы доступадля записей может быть предоставлено, например, записи могут быть получены в последовательном порядке , по ключу или по номеру записи.
Происхождение и характеристики
Файловые системы, ориентированные на запись, часто ассоциируются с операционными системами мэйнфреймов, такими как OS / 360 и его преемники [1] и DOS / 360 и его преемники , а также с операционными системами среднего уровня, такими как RSX-11 и VMS . Однако они возникли раньше в программном обеспечении, таком как Система управления вводом / выводом (IOCS). [2]
Файловые системы, ориентированные на запись, могут поддерживаться на носителях, отличных от устройств прямого доступа. Колоду перфокарт можно рассматривать как файл, ориентированный на записи. Магнитная лента - это пример носителя, который может поддерживать записи одинаковой или переменной длины.
В файловой системе записей программист проектирует записи, которые могут использоваться в файле. Все прикладные программы, обращающиеся к файлу, будь то добавление, чтение или обновление записей, разделяют понимание структуры записей. В DOS / 360, OS / 360 и их преемниках нет ограничений на битовые комбинации, составляющие запись данных, т. Е. Отсутствует символ-разделитель; это не всегда верно для другого программного обеспечения, например, определенных типов записей для процессора управления файлами RCA (FCP) на 301, 501, 601 и 3301.
Файл создается, когда файловой системе отправляется запрос на создание файла. Некоторая информация о файле может быть включена в запрос на создание. Эта информация может указывать, что файл имеет записи фиксированной длины (все записи имеют одинаковый размер) вместе с размером записей. В качестве альтернативы в спецификации может быть указано, что записи имеют переменную длину вместе с максимальной длиной записи. Может быть указана дополнительная информация, включая коэффициент блокировки, двоичный код по сравнению с текстом, а также максимальное количество записей.
Может быть разрешено читать только начало записи; следующее последовательное чтение возвращает следующую коллекцию данных (запись), которую писатель намеревался сгруппировать. Также может быть разрешено записывать только начало записи. В этих случаях запись дополняется двоичными нулями или пробелами, в зависимости от того, распознается ли файл как двоичный файл или как текстовый файл.
Некоторые операционные системы требуют, чтобы в программу были включены библиотечные процедуры, специфичные для формата записи. Это означает, что программа, изначально ожидаемая для чтения файла записи переменной длины, не может читать файл фиксированной длины. Эти операционные системы должны предоставлять служебные программы файловой системы для преобразования файлов из одного формата в другой. Это означает, что может потребоваться копирование файла (что требует дополнительного места для хранения, времени и координации).
Другие операционные системы включают в себя различные процедуры и связывают соответствующую процедуру в зависимости от файловой организации во время выполнения.
В любом случае для обеспечения целостности файлов в защищенных подпрограммах должен быть предусмотрен значительный объем кода для управления записями.
Альтернативой файлу, ориентированному на запись, является поток. В потоковом файле, в котором файловая система обрабатывает файлы как неструктурированную последовательность байтов. Приложения могут, но не обязательно, налагать структуру записи. Такой подход значительно уменьшает размер и сложность библиотеки, а также уменьшает количество утилит, необходимых для обслуживания файлов.
Распространенным соглашением приложений для текстовых файлов, представленных в виде потоков, является использование разделителя новой строки для разделения или завершения записей, обычно CR , CRLF или LF. К сожалению, время ЦП, необходимое для синтаксического анализа разделителя записей, является значительным, и исключение шаблона разделителя записей из данных часто нежелательно.
Альтернативным соглашением является включение поля длины в каждую запись. Приложение для записи отвечает за наложение любой структуры записи, а приложение для чтения отвечает за разделение записей.
Преимущества и стоимость
Файл, ориентированный на записи, имеет несколько преимуществ. После того, как программа записывает набор данных в виде записи, программа, читающая эту запись, понимает эти данные как коллекцию. Хотя разрешено читать только начало записи, следующее последовательное чтение возвращает следующую коллекцию данных (запись), которую писатель намеревался сгруппировать. Другое преимущество состоит в том, что запись имеет длину и нет ограничений на битовые комбинации, составляющие запись данных, т.е. отсутствует символ-разделитель.
Файлы, ориентированные на записи, связаны с расходами. Определение длины занимает место. На магнитной ленте это определение принимает форму промежутка между записями. На диске должна быть выделена область метаданных. Это минимально для файла, в котором все записи имеют одинаковую длину. В файле, состоящем из записей переменной длины, максимальная длина записи определяется для определения размера метаданных длины, связанных с каждой записью.
Смотрите также
Рекомендации
- ^ z / OS DFSMS с использованием наборов данных, версия 2, выпуск 3 (PDF) , 2 октября 2018 г., SC23-6855-30
- ^ Справочное руководство, IBM 709/7090 Система управления вводом / выводом (PDF) . IBM . п. 3. C28-6100-2 . Проверено 12 сентября 2020 года .