ЗНАЕТЕ ЛИ ВЫ?

Последовательный метод доступа



Последовательный (sequential) метод доступа является простейшим. Он основан на «ленточной» модели файла. Этот метод доступа является «естественным» для ряда приложений. Например, компиляторы и текстовые редакторы используют этот метод доступа.

С каждым файлом связывается указатель текущей позиции. Каждая операция доступа (чтение или запись) автоматически изменяет этот указатель в соответствии с объемом прочитанных или записанных данных. Дописывание может осуществляться в конец файла. В случае необходимости текущая позиция может быть установлена в начало файла (для ленточных устройств путем перемотки), некоторые системы позволяют пропускать несколько блоков без выполнения доступа как в прямом, так и в обратном направлении.

Последовательный метод доступа (см. рис. 13.1) основан на «ленточной» модели файла и применим как для устройств последовательного доступа, так и для устройств прямого доступа.

Рисунок 13.1 – Файл с последовательным доступом

Прямой метод доступа

При прямом (direct) методе файл представляет собой пронумерованный набор записей фиксированной длины, доступ к которым осуществляется в произвольном порядке. Этот метод базируется на «дисковой» модели доступа к данным. Прямой метод доступа к файлу аналогичен произвольному методу доступа к ячейке основной памяти.

Файлы с прямым доступом широко используются для непосредственного доступа к большим объемам информации. Зачастую прикладные системы баз данных основаны на этом методе доступа.

Для реализации прямого метода в операции доступа должен быть добавлен номер блока, к которому будет применяться эта операция.

Не все операционные системы поддерживают как последовательный, так и прямой методы доступа. Существуют системы, поддерживающие только один из этих методов. В некоторых системах требуется указывать метод доступа при создании файлов.

Последовательный метод доступа можно легко промоделировать с помощью прямого метода доступа. Пусть ср (current position) – переменная, хранящая значение указателя текущей позиции, тогда основные операции последовательного метода доступа моделируются прямым методом доступа следующим образом:

Последовательный метод Прямой метод
Перемотка reset cp: = 0 ;
Чтение read next read cp ; cp := cp + 1 ;
Запись write next write cp ; cp : =cp + 1 ;

 

Другие методы доступа

Прямой метод доступа является основой для конструирования более сложных методов доступа. Эти методы включают построение индекса файла. Этот индекс, подобно разделу индекса в книге, содержит указатели на различные блоки. Чтобы найти запись в файле, сначала отыскивается необходимый индекс, а затем осуществляется доступ к необходимой записи по указателю, хранящемуся в индексе.

Пусть, например, некоторый файл хранит информацию некоторых продуктах и их ценах. Каждая запись содержит 10-разрядный универсальный код продукта и 6-разрядную цену. Таким образом, длина записи составляет 16 байтов. Если размер блока на диске равен 1024 байта, то в каждом блоке можно разместить 64 записи.

Пусть файл хранит сведения о 120000 товарах. Следовательно, он располагается примерно в 2000 блоках (2 миллиона байт). Если файл отсортирован по коду продукта, можно построить индекс, состоящий из значений кодов продукта в первой записи каждого блока. Такой индекс содержит 2000 записей по 10 байтов и может быть размещен в памяти. Чтобы найти цену конкретного продукта, нужно осуществить бинарный поиск в индексе, чтобы получить адрес блока, содержащего необходимую запись. Затем можно осуществить поиск записи в блоке.

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

Такой способ применен в индексно-последовательном методе доступа ISAM (Index Sequential Access Method), используемый в серии операционных систем для компьютеров фирмы IВМ (OS, VMS и др.).

 

Каталоги

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

­ Файловая система разбивается на части, называемые томами (volumes) или минидисками (minidisks). Обычно каждый диск содержит один или несколько томов. Некоторые операционные системы позволяют одному тому располагаться на нескольких дисках.

­ Каждый том содержит информацию о хранящихся на нем файлах. Эта информация сгруппирована в таблицу, которая называется таблицей содержания тома (volume table of contents), каталогом или директорией тома или просто директорией (device directory или directory).

Каталог содержит атрибуты всех файлов, например имя, расположение, размер; права доступа, тип и т. д.

Каталог может рассматриваться как таблица, преобразующая имя файла в соответствующую точку входа. С этой точки зрения становится ясно, что каталоги могут быть организованы многими способами. Должна быть предусмотрена возможность добавлять строки в таблицу, удалять строки и находить нужную строку.

Типичный набор операций с директорией включает следующие:

­ Поиск файла (Searсhing for a file). Всегда должна иметься возможность отыскать нужный файл. Поскольку файлы обычно имеют символические имена, и некоторые имена означают связи между файлами, может потребоваться найти все файлы, имена которых соответствуют определенному шаблону.

­ Создание файла(Creating a file). Необходимо иметь возможность создавать новые файлы и добавлять их в каталоги.

­ Чтение содержимого каталога (List a directory). Необходимо иметь возможность получить список файлов каталога, а также содержимое записи о каждом файле.

­ Удаление файла (Deleting a file). Если файл больше не потребуется, то его желательно удалить из каталога. Освобожденная память может быть впоследствии использована для размещения других файлов.

­ Переименование файла (Renaming a file). Поскольку имена файлов говорят их хозяевам о содержимом файлов, то они должны быть измененяемыми. Переименование файла может сопровождаться изменением местоположения записи о файле в каталоге.

­ Копирование файловой системы (Traverse the file system). Может понадобиться получить доступ к каталогам и файлам в пределах структуры каталогов. Это удобно для сохранения структуры и содержимого файловой системы с регулярными интервалами. Такой подход применяется при восстановлении системы после ее краха.|поперечина|

 





Последнее изменение этой страницы: 2016-08-16; Нарушение авторского права страницы

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 35.153.39.7 (0.008 с.)