- •Алгоритмические основы программной инженерии Конспекты
- •Глава 4. Файловые системы.
- •§0. Вступление
- •§1. Файлы
- •Представления Unicode
- •Разница между текстовым и бинарным представлением файла
- •Логическая организация файла
- •Физическая организация и адрес файла
- •2. Определение по символьному имени файла его уникального имени.
- •4. Проверка прав доступа для выполнения запрашиваемой операции.
- •§2. Файловая система fat
- •1. Загрузочный сектор с загрузочной записью.
- •2. Зарезервированные секторы.
- •4. Корневой каталог.
- •§3. Файловая система ntfs
Логическая организация файла
Программист имеет дело с логическим представлением файла в виде логических записей, организованных определенным образом.
Логическая запись — наименьшая структура данных, которой может оперировать программист при обмене с внешним устройством.
Даже если физический обмен с устройством осуществляется большими структурами данных, ОС обеспечивает программисту доступ к отдельной логической записи.
Записи могут иметь фиксированную или переменную длину, и при этом могут быть расположены в файле последовательно или с ключами, идентифицирующими записи в индексных таблицах.
В файловых системах UNIX и MS DOS файл имеет простейшую логическую структуру, а именно в виде последовательности однобайтовых записей.
Физическая организация и адрес файла
Физическое представление файла описывает его размещение на устройстве внешней памяти (в частности, на диске). Файл состоит из физических записей, называемых блоками.
Блок — это наименьшая структура данных, при помощи которой внешнее устройство обменивается данными с оперативной памятью.
При непрерывном размещении файлу предоставляется последовательность блоков диска, образующих единый сплошной участок дисковой памяти. Для задание адреса файла в этом случае достаточно указать только номер начального блока. При такой схеме размещения изначально неизвестно, сколько памяти надо зарезервировать для файла. Кроме того, неизбежна фрагментация.
Другим способом является размещение в виде связанного списка блоков дисковой памяти, при котором в начале каждого блока содержится указатель на следующий блок.
В этом случае адрес файла может быть задан одним номером первого блока и к существующему списку блоков файла могут быть в любой момент присоединены другие блоки, что минимизирует фрагментацию. Недостаток этого способа хранения данных заключается в том, что для доступа к нужному блоку файла необходимо последовательно прочитать предыдущие его блоки, поэтому в ряде ОС с каждым блоком сопоставляется индекс, который содержится в отдельной области диска.
Индекс блока, выделенного файлу, содержит номер следующего блока данного файла. При такой схеме индексации блоков для доступа к произвольному блоку файла достаточно прочитать блок индексов, отсчитать нужное количество блоков файла и определить номер нужного блока.
Права доступа к файлам описываются таблицей, столбцы которой соответствуют всем файлам системы, а строки соответствуют всем пользователям, а на пересечении указываются разрешенные операции.
Работа файловой системы может быть отражена в поэтапном виде.
Этапы:
1. Запрос файлу (операция, имя файла и логическая запись).
2. Определение по символьному имени файла его уникального имени.
В таких файловых системах, как MS DOS, каждый файл может иметь только одно символьное имя, которое одновременно является уникальным.
Вместе с тем, в файловых системах UNIX один файл может иметь несколько символьных имен. В таком случае уникальное имя представляет собой числовой идентификатор и предназначено только для операционной системы. Примером такого уникального имени файла является номер индексного дескриптора в системе UNIX.
3. Определение атрибутов файла (права доступа, адрес файла) по его уникальному имени.