The design of the UNIX Operating System 68 страница



 

ОС поддерживают несколько вариантов структуризации файлов.

 

Последовательный файл

 

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

 

ванную последовательность байтов.

 

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

 

Файл прямого доступа

 

В реальной практике файлы хранятся на устройствах прямого (random) доступа, например на дисках, по-этому содержимое файла может быть разбросано по разным блокам диска, которые можно считывать в произвольном порядке. Причем номер блока однозначно определяется позицией внутри файла.


Основы операционных систем 102

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

 

Естественно, что в этом случае для доступа к середине файла просмотр всего файла с самого начала не обязателен. Для специфицирования места, с которого надо начинать чтение, используются два способа: с начала или с текущей позиции, которую дает операция seek. Файл, байты которого могут быть считаны в произвольном порядке, называется файлом прямого доступа.

 

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

 

Подобную логическую структуру имеют файлы во многих файловых системах, например в файловых системах ОС Unix и MS-DOS. ОС не осуществляет никакой интерпретации содержимого файла. Эта схе-ма обеспечивает максимальную гибкость и универсальность. С помощью базовых системных вызовов (или функций библиотеки ввода/вывода) пользователи могут как угодно структурировать файлы. В част-ности, многие СУБД хранят свои базы данных в обычных файлах.

 

Другие формы организации файлов

 

Известны как другие формы организации файла, так и другие способы доступа к ним, которые использо-вались в ранних ОС, а также применяются сегодня в больших мэйнфреймах (mainframe), ориентирован-ных на коммерческую обработку данных.

 

Первый шаг в структурировании - хранение файла в виде последовательности записей фиксированной длины,каждая из которых имеет внутреннюю структуру.Операция чтения производится над записью,аоперация записи переписывает или добавляет запись целиком. Ранее использовались записи по 80 байт (это соответствовало числу позиций в перфокарте) или по 132 символа (ширина принтера). В ОС CP/M файлы были последовательностями 128-символьных записей. С введением CRT-терминалов данная идея утратила популярность.

 

Другой способ представления файлов - последовательность записей переменной длины, каждая из ко-торых содержит ключевое поле в фиксированной позиции внутри записи (см . рис. 11.1). Базисная опера-ция в данном случае - считать запись с каким-либо значением ключа. Записи могут располагаться в фай-ле последовательно (например, отсортированные по значению ключевого поля) или в более сложном по-рядке. Метод доступа по значению ключевого поля к записям последовательного файла называется ин-


Дата добавления: 2021-01-21; просмотров: 100; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!