Физическая организация файла описывает правила расположения файла на устройстве внешней памяти, в частности на диске. Файл составляется из физических записей - блоков. Блок - наименьшая единица данных, которой внешнее устройство обменивается с оперативной памятью. Непрерывное размещение - простейший вариант физической организации (рисунок 2.34,а), при какому файла дается последовательность блоков диска, которые образуют единый сплошной участок дисковой памяти. Для задачи адреса файла в этом случае достаточно заметить только номер начального блока. Другое достоинство этого метода - простота. Но есть и два существенных недостатка. Во-первых, во время создания файла заранее не известная его длина, а значит не известно, сколько памяти надо зарезервировать для этого файла, во-вторых, при такому порядку размещения неизбежно возникает фрагментация, и пространство на диске используется не эффективно, потому что отдельные участки маленького размера (минимально 1 блок) могут остаться не используемыми.

Такое средство физической организации - размещение в виде связанного списка блоков дисковой памяти (рисунок 2.34,б). При таком средстве в начале каждого блока содержится указатель на такой блок. В этом случае адреса файла также может быть заданный одним числом - номером первого блока. В отличие от предыдущего средства, каждый блок может быть присоединен в цепочку некоторого файла, ведь фрагментация отсутствующих. Файл может меняться во время своего существования, наращивая число блоков. Недостатком является сложность реализации доступа к произвольно заданному месту файла: для того, чтобы прочитать пятый по порядку блок файла, необходимо последовательно прочитать четверых первых блока, прослеживая цепочка номеров блоков. Кроме того, при этом средстве количество данных файла, что содержатся в одном блоке, не равняется степени двойки (одно слово израсходовано на номер такого блока), а много программ читают данные блоками, размер которых равняется степени двойки.

Рис. 2.34.  Физическая организация файла
а - непрерывное размещение; бы - связанный список блоков;
в - связанный список индексов; р - перечень номеров блоков

Популярным средством, используемому, например, в файловой системе FAT операционной системы MS-DOS, есть использования связанного списка индексов. С каждым блоком связывается некоторый элемент - индекс. Индексы располагаются в отдельной области диска (в MS-DOS это таблица FAT). Если некоторый блок распределен некоторому файлу, то индекс этого блока содержит номер такого блока данного файла. При такой физической организации хранятся все достоинства предыдущего средства, но нанимаются обе отмеченных недостатка: во-первых, для доступа к произвольному месту файла достаточно прочитать только блок индексов, отсчитать нужное количество блоков файла по цепочке и определить номер нужного блока, и, во-вторых, данные файла занимают блок целиком, а значит имеют объем, равный степени двойки.

На окончание рассмотрим задача физического расположения файла путем простого перечисления номеров блоков, которые занимаются этим файлом. ОС UNIX использует вариант данного средства, которое позволяет обеспечить фиксированную длину адреса, независимо от размера файла. Для сохранности адреса файла выделено 13 поляг. Если размер файла меньше или равняется 10 блокам, то номера этих блоков непосредственно перечисленные в первых десяти полях адреса. Если размер файла больше 10 блоков, то такое 11-е поле содержит адрес блока, в котором могут быть расположенные еще 128 номеров таких блоков файла. Если файл больше, чем 10+128 блоков, то используется 12-е поле, в котором находится номер блока, который содержит 128 номеров блоков, которые содержат по 128 номеров блоков данного файла. И, в конце концов, если файл больше 10+128+128(128, то используется последнее 13-е поле для тройной косвенной адресации, что позволяет задать адресу файла, что имеет размер максимум 10+ 128 + 128(128 + 128(128(128.

 

Возможно стоит прочитать: