Добавил:
СПбГУТ * ИКСС * Программная инженерия Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
АОПИ. Старое / АОПИ. Глава 4. Конспекты (18_04_19).rtf
Скачиваний:
59
Добавлен:
10.09.2019
Размер:
588.93 Кб
Скачать

Логическая организация файла

Программист имеет дело с логическим представлением файла в виде логических записей, организованных определенным образом.

Логическая запись — наименьшая структура данных, которой может оперировать программист при обмене с внешним устройством.

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

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

В файловых системах UNIX и MS DOS файл имеет простейшую логическую структуру, а именно в виде последовательности однобайтовых записей.

Физическая организация и адрес файла

Физическое представление файла описывает его размещение на устройстве внешней памяти (в частности, на диске). Файл состоит из физических записей, называемых блоками.

Блок — это наименьшая структура данных, при помощи которой внешнее устройство обменивается данными с оперативной памятью.

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

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

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

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

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

Работа файловой системы может быть отражена в поэтапном виде.

Этапы:

1. Запрос файлу (операция, имя файла и логическая запись).

2. Определение по символьному имени файла его уникального имени.

В таких файловых системах, как MS DOS, каждый файл может иметь только одно символьное имя, которое одновременно является уникальным.

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

3. Определение атрибутов файла (права доступа, адрес файла) по его уникальному имени.