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

Описывает правила расположения информации на физическом устройстве. Файл состоит из физических записей или блоков. Длина блоков опредляется системой. Фрагментация блоков – разделение на фрагменты для повыш-я быстродействия; блок - наим. ед. данных при взаимодействии внешн. устр-ва с ОЗУ.

Размещение может быть непрерывным (необходимо знать 1-ый блок) – это неудобно; последовательный доступ, когда один элемент блока используется для ссылки на следующий блок (имеем цепочку). Уходим от фрагментации. Количество данных не кратно степени 2 (неудобно). Чтобы получить доступ к отдельному блоку надо прочитать всю цепочку.

Альтернатива: индексный вариант адресации. Индекс содержит индекс предыдущей записи. Индексы выносятся в индексную область (аналог FAT).

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

3 поля адресации блоков файла

1 поле - указывает цепочку блоков, если файл меньше 10 блоков

2 поле – если больше 10 блоков и указывает на блок, где хранятся блоки других последовательностей блоков файлов. Длина 10+128+128^2+128^3 (это величина блоков) более чем достаточно.

Право доступа к файлу – описывает оператор применительно для данного файла. Существ 2 подхода:

- избирательный – для каждого файла и пользователя можно задать допустимый набор операций

- мандатный – права определяются для каждой категорий пользователей

Каждая ФС обязана использовать кеширование (т.е. буферизацию данных). Образуются буферы в ОЗУ. Позволяет переносить множество блоков, т.е. сначала анализ наличия блока в памяти: если нет то прерывание и замена блока, давно не используется

Общая модель ФС

 

На сегодняшний день основные носители дисковые.

Жёсткий диск – набор пластин, цилиндры.

Цилиндр – совокупность дорожек одного радиуса на всех поверхностях. Дорожка бьётся на сектора/блоки. Для контроллера задаётся № цилиндра, дорожки и сектора. Он берёт сразу несколько секторов. Сектор – минимальная единица обмен между периферийными устройствами и ОЗУ одной величины, чаще используют 512, 1024 байт.

Кластер – порция информации, запрашиваемая ОС

В 1 запросе несколько секторов. ОС работает со своей единицей пространства, которая называется кластером. При создании файла место выделяется кластерами. Если файл 3000 байт, выделяется 3 кластера радиусом 1024.

Разбивка на дорожки и сектора осуществляется при низкоуровневом форматировании в независимости от ОС. Граница блоков определяется высокоуровневым форматированием – выполняет разметку под определённую ОС (логическое форматирование).

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

 

Методы размещения файлов на диске:

1) Предварительный (заранее известен max размер файла).

2) Динамический (проблема осуществляется порциями, проблема в вычислении размера порции (const / ∆). На практике используется комбинация (переменные порции блоков).

Методы размещения файлов:

Непрерывное

Имя файла Начало блока Длина блока

+ самая быстрая производительность при последовательном доступе к файлу

- большие потери неиспользуемого пространства

 

Цепочечная

Имя файла Начало блока Длина блока Ссылка

+ динамическое размещение

+ нет внешней фрагментации

- при загрузке нескольких блоков требуется несколько обращений к диску (т.к. блоки разбросаны)

 

Фиксированный

Имя файла Блок индекса

 

  Блок индекса  

 

Начало блока файла

 

- индекс (запись для каждой порции блока)

 

4) Индексированное размещение с порциями изменяемой

    Блок индекса  

 

Начало блока Длина блока
……… ………
……… ………
……… ………

 

 

+ индексы сохраняются в отдельном блоке

+ нет внешней фрагментации

 

Методы учёта свободного простанства:

1) Битовые карты (таблицы) –каждому блоку ставится в соответствие свой бит (1 – занят, 0 – свободен)

+ простота

Размер битовой карты=размер диска в байтах (16 Гб) / (8*Размер Ф.С.(512))=16 Гб/ 8 * 512 б = 4 мб