Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
VSOS_2014.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
1.9 Mб
Скачать
    1. Методы доступа

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

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

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

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

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

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

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

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

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

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

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

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

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

Прямой метод

Перемотка reset

cp: = 0 ;

Чтение read next

read cp ;

cp := cp + 1 ;

Запись write next

write cp ;

cp : =cp + 1 ;

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

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

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

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

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

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]