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

Обновлено: 29.06.2024

Фа́йловая систе́ма (англ. file system ) — порядок, определяющий способ организации, хранения и именования данных на носителях информации в компьютерах, а также в другом электронном оборудовании: цифровых фотоаппаратах, мобильных телефонах и т. п. Файловая система определяет формат содержимого и способ физического хранения информации, которую принято группировать в виде файлов. Конкретная файловая система определяет размер имен файлов и (каталогов), максимальный возможный размер файла и раздела, набор атрибутов файла. Некоторые файловые системы предоставляют сервисные возможности, например, разграничение доступа или шифрование файлов.

Содержание

Общие понятия

Назначение файловой системы - обеспечение интерфейса к данным на накопителях. Цель - организация хранения и доступа.

Состав файловой системы

  • Совокупность файлов.
  • Набор структур данных управления (каталоги, дескрипторы, таблицы).
  • Функции управления (создание объекта ФС, уничтожение, чтение, запись).

Каждый файл характеризуется своим уникальным именем. Чтобы упростить имена используются разрешения.

Для FAT16 правило 8.3: имя файла может состоять из 12 символов (8 - основная часть, и 3 символа расширения).

При копировании в файловой системе файлов производится преобразование имен.

Путь в файловой системе - для однозначной идентификации объекта.

Типы файлов

  • Текстовые.
  • Двоичные.
  • Специальные (связанные с аппаратными устройствами).
  • Файлы, через которые описываются каталоги (директор).

Атрибуты файлов

  • Системные.
  • Архивные.
  • Только для чтения.
  • Скрытые.
  • Время создания
  • Временные

Типы иерархической структуры

  • Дерево: узлы - объекты файловой системы, показана их вложенность; корень - точка, в которой начинается файловая система.
  • Сеть: в отличие от дерева один объект может присутствовать в разных директориях.

С понятием файловые системы связаны следующие технологии:

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

Принципы организации файловых систем

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

Описывает то, как выглядит файл для работающих с ним приложений. Файл рассматривается как набор записей. Выделяют следующие подходы к хранению файлов:

Набор записей постоянной длины

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

Набор записей переменной длины

Для любой записи тут в начале (конце) должна указываться длина.

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

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

Непрерывное размещение

Непрерывное размещение (подряд блок за блоком).

Достоинства:

  • простота реализации
  • скорость доступа (все данные подряд, поэтому не надо перемещать носитель головки).
  • фрагментация
  • место на носителе распределяется неэффективно.

Связанный список блоков

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

Связанный список индексов

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

Перечень номеров блоков

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

Общая организация файловой системы

ОС WINDOWS

В ОС Windows наиболее распространенной на сегодняшний день является файловая система NTFS, заменившая устаревшую файловую систему FAT. Именно файловую систему NTFS лучше всего использовать на сегодняшний день. Чтобы жесткий диск можно было использовать в компьютере, его необходимо подготовить, отформатировать в выбранную файловую систему. Программа форматирования создает на жестком диске компьютера структуру в соответствии с правилами файловой системы Windows после чего диск становится виден в операционной системе и его можно использовать. Форматирование жесткого диска осуществляется силами операционной системы или сторонней программы. При этом выбирается тип файловой системы жесткого диска, размер кластера и способ форматирования.

Кластер — упрощенно, минимальная ячейка на жестком диске для хранения информации, эдакая коробочка для хранения файлов. Кластер имеет вполне конкретные стандартизованные размеры равные 512 байт раньше и 4 096 байт в настоящее время. В одном кластере хранится только один файл, если он меньше размера кластера, то все равно занимает весь кластер. Когда файл не помещается целиком в одном кластере, то он записывается кусочками по разным кластерам, необязательно соседним. Поскольку размеры файлов крайне редко кратны размеру кластера, то на диске файлы практически всегда занимают больше места, чем их реальный размер. Чтобы было понятнее, возьмем для наглядности такой пример. Есть 9 кирпичей, из них 3 белых и 6 красных, а в контейнер помещается только 5 кирпичей одного типа. Чтобы хранить наши кирпичи нам понадобится 3 контейнера, хотя емкость двух контейнеров 10 кирпичей. Вот наглядная иллюстрация, как это происходит.

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

Файл размером 6 байт занимает в файловой системе жесткого диска 4 096 байт, т.е. один кластер. Соответственно маленький размер кластера больше подходит для хранения маленьких файлов, а большой размер кластера для хранения больших. Тогда место на диске будет использоваться более рационально. Так же происходит и с ярлыками.

Структура файловой системы Windows

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

Дальнейший рост емкости дисков привел к следующему очевидному шагу, разбить один физический носитель информации на несколько логических разделов (дисков). Логически выделенная часть смежных блоков на диске называется раздел (partition). Такая структура файловой системы применяется в настоящее время в операционной системе Windows.

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

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

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

Вот и все, что мы хотели рассказать о файловой системе компьютера в операционной системе Windows.

ОС UNIX

Состоит из двух компонент:

  • иерархия файлов и директорий
  • набор файлов устройств, логических томов или разделов.

Для файловой системы UNIX характерна операция монтирования. Монтирование – установление ассоциаций между именами файловой иерархии и устройствами. Оно происходит в два этапа:

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

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

Виды файлов:

· собственно файл (файл текстового редактора Word, электронных таблиц Excel и др.),

· ярлык – ссылка на объект, чаще всего запускной файл; ярлыки принято создавать на рабочем столе Windows.

Файловая система – система организации хранения файлов на каком-либо электроном носителе.

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

Адрес, или путь доступа к файлу, состоит из имени диска и последовательности имен всех каталогов (папок) на пути к файлу.

G:\Задания\Lekzii\Т2_1Архитектура.doc – путь доступа к файлу, адрес.

Файлы. Физическая файловая система.

Любые данные хранятся на любом носителе в виде файлов.

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

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

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

В широком смысле понятие "файловая система" включает следующие компоненты.

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

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

По способу физической организациисуществует несколько различных файловых систем. Рассмотрим наиболее распространенные из них.

Файловая система FAT(FileAllocationsTable) – это одна из наиболее старых файловых систем для ПК, разработанная Биллом Гейтсом и Марком МакДональдом в 1977г. СистемаFATможет реализовываться на логических дискахHDD, наFDDи на других аналогичных носителях. При использовании системыFATвсе пространство данного диска делится на равные последовательно расположенные области –кластеры. Как было указано ранее, существует минимальный объем данных, называемый сектором (блоком), который может быть записан на жесткий диск или прочитан с жесткого диска. Объем кластера должен составлять целое число секторов. Каждый файл может состоять из одного или из нескольких кластеров в зависимости от своего размера. Минимальный размер файла на диске – один кластер. Весь диск делится на 5 разделов - загрузочный сектор (1-й сектор 1-й дорожки), областьFAT-таблицы, область копииFAT-таблицы, область каталога, область файлов. Первые 4 раздела занимают небольшой объем и содержат системную информацию.

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

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

Каталог(корневая папка) содержит все имена файлов и подкаталогов (вложенных папок) со ссылкой на запись вFAT-таблице, указывающей на первый кластер данного файла. Кроме того, в каталоге указываются дополнительные характеристики (атрибуты) файла: дата и время создания, размер, дополнительные атрибуты (архивный, скрытый, системный, “только для чтения”).

Поскольку FAT изначально проектировалась для однопользовательской операционной системы DOS, то она не предусматривает хранения такой информации, как сведения о владельце или полномочия доступа к файлу/каталогу. Кроме того, т. к. DOS– 16-разрядная операционная система, то, соответственно,FAT– также 16-разрядная файловая система. Это означает, что максимальное количество кластеров на диске составляет 2 16 (примерно 64000 тыс.). Это совсем немного. Еще один недостатокFAT-системы – сильное уменьшение скорости поиска файлов, при увеличении объема носителей. Наконец,FATне может поддерживать диски объемом более 2 ГБ.

В настоящее время FATиспользуется в основном для магнитных дискет (FDD).

Файловая система VFAT(VirtualFAT), реализованная в Windows 95/98 - это система FAT, дополненная поддержкой длинных имен файлов в кодировке UNICODE (каждый символ имени кодируется 2 байтами). VFAT использует ту же самую схему распределения дискового пространства, что и файловая система FAT. В VFAT имя может быть длиной до 255 символов, в имя можно включать несколько пробелов и точек, текст после последней точки рассматривается как расширение, регистр символов в именах не различается, но сохраняется. Длинные имена по частям хранятся в специальных записях каталога. Для каждого файла и подкаталога в VFAT хранится два имени: длинное и короткое. Короткое имя генерируется файловой системой автоматически в формате 8.3 (имя из 8 символов, точка, расширение из 3-х символов).

Файловая система FAT32- это 32-разрядная файловая система, которая пришла на сменуVFAT, сохранив основные черты и принципы организации последней. FAT32 поддерживает жесткие диски объемом до 2 терабайт. Впервые файловая система FAT32 была включена в состав ОС Windows 95 OSR 2. В FAT32 были расширены атрибуты файлов, позволяющие теперь хранить время и дату создания, модификации и последнего доступа к файлу или каталогу. ВFAT32 адрес каждого кластера стал 32 разрядным, что позволило иметь на диске до 2 32 = 4 млрд. кластеров. ВFAT32 объем кластера должен быть не менее 4 кБ, а объем диска – не менее 512 МБ. Корневой каталог в FAT32 больше не располагается в определенном месте, вместо этого хранится указатель на начальный кластер корневого каталога. В результате снимается ранее существовавшее ограничение на число записей в корневом каталоге. Кроме того, для учета свободных кластеров, в зарезервированной области на разделе FAT32 имеется сектор, содержащий число свободных кластеров и номер самого последнего использованного кластера. Это позволяет системе при выделении следующего кластера не перечитывать заново всю таблицу размещения файла.FAT32 поддерживается в Windows 98, Windows ME, Windows 2000 и Windows XP.

Файловая система NTFS(NewTechnologyFileSystem) - наиболее предпочтительная файловая система при работе с ОС Windows 2000 иWindowsXP.

Каждый файл на томе NTFS представлен записью в специальном файле – главной файловой таблице - метафайле MFT (MasterFileTable). В отличие от файловой таблицы и каталогаFATметафайл является иерархической базой данных, позволяющей очень быстро осуществлять поиск нужного файла

NTFS является 64-разрядной файловой системой, что дает возможность иметь 2 64 кластеров, каждый размером до 64 Кбайт. Как и в FAT размер кластера может меняться, но необязательно возрастает пропорционально размеру диска. NTFS позволяет хранить файлы размером до 16 эксабайт (2 64 байт).

Файловая система NTFSявляетсяжурналируемой– все изменения в файловой системе записываются в специальный журнал транзакций (log file), что позволяет восстанавливать файловую систему после сбоев системы.

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

Файловые системы UFS(UnixFileSystem) – это семейство файловых систем для операционных системUNIX. Существует много различных версий ОСUNIX, разработанных разными фирмами, соответственно существуют и различные видыUFS, в том числе 32-разрядные и 64-разрядныеUSF. Так же как и в других файловых системах, вUFSфайл записывается в один или несколько (а может быть и в несколько сотен тысяч) кластеров. ОсобенностьюUSFявляется иерархическая кластерная структура файла, включающая кластеры, содержащие адреса других кластеров данного файла. Еще одной особенностьюUFSявляется очень мощная и разветвленная система защиты файлов от несанкционированного доступа – для этого файловая система содержит большое количество атрибутов. Классическая UFS поддерживает 14-буквенные имена файлов, современные UFS позволяют создавать длинные имена (до 255 символов).

Перечислим еще несколько современных файловых систем, близких по принципам построения к NTFSиUSF.

Файловая система HPFS(HighPerformanceFileSystem) была разработана вместе с операционной системойOS/2. По структуре и возможностям близка кNTFS. В настоящее время используется редко.

Файловые системы Linux ext, Linux ext2, Linux ext3(extendedfilesystem) специально разработаны под операционную системуLinux. Они обладают высокой надежностью и производительностью. Начиная сext3 файловая система становится журналируемой.

Файловая система XFS — высокопроизводительная 64-разрядная журналируемая файловая система, созданная компанией Silicon Graphics и поддерживаемая операционными системами Linux (начиная с версии 2.4.25) и. FreeBSD. Позволяет эффективно работать с данными на RAID-массивах и других носителях очень большого объема.

Для персональных компьютеров MacподMacOSXиспользуются файловые системыHFS(HierarchicalFileSystem),HFSPlus. Недавно для этих компьютеров была разработана высокопроизводительная 64- битная сетевая файловая системаXsan.

Одной из неприятностей, возникающих при работе с файловой системой, является фрагментация файлов – в процессе удаления файлов (очистки кластеров) и записи новых файлов (заполнения кластеров) неизбежно оказывается, что многие файлы состоят из кластеров, находящихся в разных частях диска. В результате сильно понижается скорость работы с диском (для чтения или записи фрагментированного файла магнитной головке необходимо последовательно перемещаться на все дорожки, содержащие кластеры этого файла). Для избежания этого необходимо периодически проводить процедуру дефрагментации диска– запускать специальную утилиту, которая собирает данные из всех кластеров каждого файла и записывает их в компактную область диска (насколько это возможно). Для эффективной работы процедуры дефрагментации необходимо, чтобы диск не был полностью занят, желательно, чтобы не менее 20 – 30% диска было свободно. Особенно это важно для файловой системыNTFS. Процедуру дефрагментации лучше проводить, не дожидаясь сильной фрагментации диска, т.к. время на эту процедуру резко возрастает с увеличением фрагментации. Для сильно фрагментированного диска процедура дефрагментации может потребовать несколько часов. Для проведения дефрагментации в состав ОСWindowsвходит утилита, которая так и называется Дефрагментация диска.

6.2. Логическая файловая система.

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

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

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

Полное имя файла формируется следующим образом. Корневой каталог обозначается идентификатором диска с двоеточием после него, например c:,d:,e: и т.д. Далее указывается вся цепочка имен вложенных папок, приводящая к данному файлу, в конце указывается имя файла. Для отделения имени файла от имени папки и имен папок в цепочке друг от друга используется разделитель. ВWindowsэто обратный слеш \, вUNIX– просто слеш / (впрочем, сейчас многие оболочки допускают оба этих разделителя). Таким образом, записьc:\Windows\System32\cmd.exeозначает, что файл с именемcmd.exeнаходится в папкеSystem32, которая вложена в папкуWindows, которая, в свою очередь, вложена в корневую папку дискаc: (находится в корневом каталоге дискаc:). При этом записьc:\Windows\System32\cmd.exeможно рассматривать как одно уникальное имя – полное имя файлаcmd.exe.

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

1.3.1. Логическая и физическая организация файловой системы

Файловая система (ФС) — это часть операционной системы, вклю­чающая совокупность всех файлов на диске, служебные структуры, включая каталоги, системные программные средства.

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

- обычные файлы (ОС не контролирует содержимое этих файлов);

- каталоги (содержат системную информацию о наборе файлов);

- специальные файлы (фиктивные файлы, соответствующие устрой­ствам ввода-вывода);

- отображаемые в память файлы и т. д.

Иерархическая структура файловой системы. Большинство файловых систем имеют иерархическую структуру. Структура может быть органи­зованна как дерево (рис. 12, а) или как сеть (Unix) (рис. 12, б).

В древовидной структуре действует принцип: один файл — одно пол­ное имя. В сетевой: один файл — много полных имен (за счет наличия уникального цифрового имени).

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


Набор атрибутов зависит от ОС. Значения атрибутов могут храниться в каталогах (FAT) или в специальных таблицах, ссылки на которые хранятся в каталогах (NTFS).

Физическая организация файловой системы. Представление пользователя о ФС и физическое хранение файлов на диске имеют мало общего. Диск в общем случае состоит из пакета пластин. На каждой пластине — две поверхности. На каждой поверхности размечены дорожки, на которых хранятся данные. Дорожки нумеруются с нуля, начиная от края к середине. Для каждой поверхности пластины имеется магнитная головка, которая, переме-щаясь, может позиционироваться над каждой дорожкой. Все головки закреплены на одном механизме и перемещаются синхронно. Дорожки одного радиуса на всех поверхностях называются цилиндром. Каждая дорожка делится на фрагменты, называемые секторами. Чаще размер сектора равен 512 байтам. Сектор — наименьшая адресуемая единица обмена. Для поиска контроллер должен задать: номер цилиндра, поверхности и сектора.

Дорожки и секторы создаются в результате низкоуровневого форматирования диска и не зависят от типа ОС. Диск может быть разделен на логические устройства — разделы (тома): а, b, с, . Разметку раздела под конкретный тип файловой системы выполняют процедуры логического форматирования. При этом определяется размер кластера и записывается информация о границах файлов и каталогов, поврежденных областях, о доступном пространстве. Также записывается загрузчик ОС. В одном разделе может быть создана только одна ФС, но любого доступного типа (FAT16, FAT32, NTFS и пр.).

На этапе разбиения диска на разделы в блоке данных первого физического сектора дис-ка (0 цилиндр, 0 поверхность, 1 сектор) с адреса 1BEh формируется таблица разделов (Partition table), состоящая из 4-х шестнадцатибайтных строк. Обычно системную информацию, записанную в блок данных этого сектора в процессе форматирования, называют Master Boot Record (MBR).

Физическая организация FAT.

На этапе логического форматирования раздела (тома) диска под ФС FAT создаются четыре логических области:

загрузочный сектор (boot sector), в который помещается программа загрузки ОС;

таблица FAT, которая является таблицей размещения файлов (создаются её основная и резервная копии FAT1 и FAT2);

корневой каталог — содержит 256 записей (для FAT16), или 65 535 записей (для FAT32) по 32 байта каждая (для FAT32 он может находиться в любом месте диска);

область данных — кластеры размером от 1 до 128 секторов.

Разрядность элемента таблицы FAT равна 16 бит (2 байта) для ФС FAT16 и 32 бита (4 байта) для ФС FAT32. Она определяет количество кластеров, к которым может физически адресоваться ФС. В области данных для FAT16 это 65525 кластеров. Для FAT32 это 288 435 445 кластеров.

Элемент в таблице FAT может принимать следующие значения: кластер свободен, за-нят и не последний, занят и последний, дефектный, резервный.

При запуске компьютера программа, запускаемая из главной загрузочной записи (MBR), ищет активный раздел на жестком диске. Если активный раздел найден, то управле-ние передаётся программе находящейся в загрузочном секторе (boot sector) этого раздела, которая запускает операционную систему, установленную в этом разделе жесткого диска.

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

Существуют три основных способа физического размещения файлов на диске 2 :

• способ непрерывного размещения;

• способ связанных блоков (цепочечный);

• способ индексированных блоков.

Рассматривая ранее физическую организацию ФС FAT, мы говорили о том, что в каж-дом элементе таблицы FAT хранится адрес (номер) кластера файла. Так было, когда объёмы жестких дисков были сравнительно не велики. Сейчас объёмы жестких дисков существенно выросли и достигают нескольких терабайт. Поэтому для реальных больших жестких дисков в каждом элементе таблицы FAT хранится не адрес отдельного кластера. Содержимое элемента таблицы FAT зависит от способа физического размещения файла на диске.

1. Способ непрерывного размещения (рис. 13а, 13б).


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

2. Способ связанных блоков (цепочечный). См. рис. 13в, 13г. Для хранения больших файлов.


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

3. Способ индексированных блоков (рис. 13д, рис. 13е). Для хранения сверхбольших файлов.


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

Физическая организация NTFS.

Файловая система NTFS была разработана в качестве основной для Windows NT. Ее особенностями являются поддержка больших файлов и дисков (до 264 Гбайт), восстанавливаемость после сбоев, низкий уровень фрагментации.

Непрерывная область кластеров в NTFS называется отрезком. Порядковый номер кластера тома называется логическим номером кластера (Logical Cluster Number - LCN). Порядковый номер кластера внутри файла называется виртуальным номером кластера (Virtual Cluster Number - VCN).

Часть файла в отрезке характеризуется числом, образованным значениями трех параметров: LCN, VCN, К, где К — длина отрезка. Для хранения номера кластера используются 64-разрядные указатели. Весь том (раздел) — это последовательность кластеров.

Файловая система NTFS представляет собой один и более файлов. Каталог тоже файл. Основа структуры тома NTFS – главная таблица файлов MFT (Master File Table). Это тоже файл. MFT содержит, по крайней мере, одну запись для каждого файла тома, включая одну запись для самой себя. MFT состоит из записей, размер которых равен размеру кластера и зависит от размера тома -1, 2, или 4 Кбайта. По умолчанию 2 Кбайта. Порядковый номер записи в MFT является номером файла в томе. Изначально под зону MFT отводится 12,5% объема тома NTFS.

Структура тома NTFS показана на рисунке 14. Загрузочный блок тома NTFS располагается в начале тома, а его копия - в середине области данных тома. Загрузочный блок содержит стандартный блок параметров BIOS, количество блоков в томе, а также начальные логические номера кластеров основной копии MFT и зеркальной копии MFT.


В NTFS файл целиком размещается в записи таблицы MFT, если это позволяет сделать его размер. В том же случае, когда размер файла больше размера записи MFT, в запись помещаются только некоторые атрибуты файла, а остальная часть файла размещается в отдельном отрезке тома (или нескольких отрезках). Часть файла, размещаемая в записи MFT, называется резидентной частью, а остальные части - нерезидентными. Адресная информация об отрезках, содержащих нерезидентные части файла, размещается в атрибутах резидентной части.

MFT делится на несколько отрезков.

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

Во второй отрезок помещаются нерезидентные части системных файлов и резидентные части обычных файлов и каталогов.

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

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

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

Существуют два способа хранения атрибутов файла - резидентное хранение в записях таблицы MFT и нерезидентное хранение вне ее, во внешних отрезках. Таким образом, резидентная часть файла состоит из резидентных атрибутов, а нерезидентная - из нерезидентных атрибутов. Сортировка может осуществляться только по резидентным атрибутам.

Основными системными атрибутами всех файлов являются:

− имя файла (FN — file name) - этот атрибут содержит длинное имя файла в формате Unicode, а также номер входа в таблице MFT для родительского каталога; если этот файл содержится в нескольких каталогах, то у него будет несколько атрибутов типа File Name; этот атрибут файла всегда резидентный;

− данные (Data) - содержит обычные данные файла;

− дескриптор безопасности (SD — security descriptor) - этот атрибут содержит информацию о защите файла: список прав доступа ACL и поле аудита, которое определяет, какого рода операции над этим файлом нужно регистрировать;

- список атрибутов (AL - attribute list) - список атрибутов, из которых состоит файл; содержит ссылки на номер записи MFT, где расположен каждый атрибут; этот редко используемый атрибут нужен только в том случае, если атрибуты файла не умещаются в основной записи и занимают дополнительные записи MFT;

− стандартная информация (SI — standard information) - этот атрибут хранит всю остальную стандартную информацию о файле, которую трудно связать с каким-либо другим атрибутом файла, например, время создания файла, время обновления и другие.

Файлы NTFS в зависимости от размера делятся на небольшие, большие, очень боль-шие и сверхбольшие. Каждый тип файла имеет свои особенности размещения в томе NTFS.

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

Организация файлов

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

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

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

Модель файла, в соответствии с которой содержимое файла представляется неструктурированной последовательностью (потоком) байт, стала популярной вместе с ОС UNIX, а теперь она широко используется в большинстве современных ОС (MS-DOS, Windows2000/NT, NetWare).

Неструктурированная модель файла позволяет легко организовать разделение файла между несколькими приложениями: разные приложения могут по-своему структурировать и интерпретировать данные, содержащиеся в файле.

Способы физической организации файла

Физическая организация файла (ФОФ) – это способ размещения файла на диске. Основные критерии эффективности физической организации файлов:

  • Скорость доступа к данным.
  • Объем адресной информации файла.
  • Степень фрагментированнности дискового пространства.
  • Максимально возможно размер файла.

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

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


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

Размещение файла в виде связанного списка кластеров дисковой памяти.

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


Достоинства: Адресная информация минимальна расположение файла может быть задано одним числом – номером первого кластера, фрагментация на уровне кластеров отсутствует, так как каждый кластер может быть присоединен к цепочке кластеров какого-либо файла, файл может изменять свой размер, наращивая число кластеров.

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

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

Использование связанного списка индексов (например, в FAT)

Данный способ является модификацией предыдущего метода. Файлу также выделяется память в виде связанного списка кластеров. Номер первого кластера запоминается в записи каталога, где хранятся характеристики этого файла. Остальная адресная информация отделена от кластеров файла. С каждым кластером диска связан индекс. Индексы располагаются в отдельной области диска – в файловых системах FAT это таблица (File Allocation Table):


Когда память свободна, все индексы имеют нулевое значение. Если некоторый кластер N назначен некоторому файлу, то индекс этого кластера становится равным либо номеру M следующего кластера данного файла, либо принимает специальное значение – признак того, что этот кластер является для файла последним. Индекс же предыдущего кластера файла принимает значение N, указывая на вновь назначенный кластер.

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

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

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

Организация файловой системы

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

Замечание. Различные файловые системы имеют разную физическую организацию (например, размер кластера). Основным типом устройства, которое используется для хранения файлов, являются дисковые накопители. Эти устройства предназначены для считывания и записи данных на жесткие и гибкие магнитные диски, оптические диски, flash-носители и др.

Физическая и логическая структура диска

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

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

На каждой стороне каждой пластины размечены тонкие концентрические окружности (по ним располагаются синхронизирующиеся метки). Каждая концентрическая окружность называется дорожкой.

Количество дорожек зависит от типа диска. Нумерация дорожек начинается с 0 от внешнего края к центру диска. Когда диск вращается, головка чтения/записи считывает двоичные данные с магнитной дорожки или записывает их на нее. Нумерация сторон начинается с 0.

Группы дорожек (треков) одного радиуса, расположенных на поверхностях магнитных дисков, называются цилиндрами. Номер цилиндра совпадает с номером образующей дорожки. Жесткие диски могут иметь по несколько десятков тысяч цилиндров, на поверхности дискеты, как правило, их восемьдесят. Зная количество рабочих поверхностей, дорожек на одной стороне, размер сектора, можно определить емкость диска.

Для дискет 3.5”: 2 рабочие поверхности, 80 дорожек на каждой стороне, 18 секторов на каждой дорожке, 512 байт – каждый сектор. Тогда, емкость дискеты=21801181512=1 474 560 байтов = 1.44 Мбайт.

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

Для того чтобы контроллер диска мог найти на диске нужный сектор, необходимо задать ему все составляющие адреса сектора: номер цилиндра, номер поверхности, номер сектора ([c-h-s]).

ОС при работе с диском использует, как правило, собственную единицу дискового пространства, называемую кластером.

Кластер (ячейка размещения данных) – объем дискового пространства, участвующий в единичной операции чтения/записи, осуществляемой ОС.

Кластер – это минимальный размер места на диске, которое может быть выделено файловой системой для хранения одного файла.

Пример. Если файл имеет размер 2560 байт, а размер кластера в файловой системе определен в 1024 байта, то файлу будет выделено на диске 3 кластера.

Размер кластера зависит от формата диска и может соответствовать одному сектору или нескольким смежным секторам дорожки.

Размер кластера определяется, как правило, автоматически при логическом форматировании.

Узнать размер кластера можно следующими способами:

  1. В ОС Windows: Панель управления → Администрирование → Управление компьютером → Дефрагментация диска → Выделить логический диск → Анализ.
  2. Выбор размера кластера: Format c:/a:size.
  3. Создать файл небольшого размера, например документ блокнота и вывести свойства файла. Размер фала на диске будет соответствовать размеру кластера.

Этапы подготовки диска к записи

Процесс подготовки диска к записи данных разбивается на следующие этапы:

  1. Форматирование низкого уровня (физическое форматирование).
  2. Логическое разбиение (только для HDD).
  3. Логическое форматирование (высокоуровневое).

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

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

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


ОС может поддерживать разные статусы разделов, особым образом отмечая разделы, которые могут быть использованы для загрузки модулей ОС, и разделы, в которых можно устанавливать только приложения и хранить файлы данных. Один из разделов диска помечается как загружаемый (основной, первичный, Primary). Именно из этого раздела считывается загрузчик ОС. А другой – как дополнительный (расширенный, Extenshion).

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

Логическое форматирование – процесс преобразования уже размеченного дискового пространства в соответствии со стандартами конкретной ОС. Единый стандарт разметки границ дискового раздела и разграничения разделов содержится в таблице разделов диска, которая находится в 1-ом секторе диска (цилиндр 0, дорожка 0, сектор 1). Таблица разделов содержит параметры диска, число разделов, размер и расположение каждого раздела и др.

Структура логического диска


Для организации логического диска каждая ОС разделяет его на две части:

  • системная область.
  • область данных (Data).

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

В системной области находятся:

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


Вся информация, необходимая для начальной загрузки компьютера, находится в самом первом секторе жёсткого диска. Эта информация называется главной записью загрузки — MBR (Master Boot Record).

Расширенная таблица разделов состоит из двух элементов: первый элемент расширенной таблицы разделов для первого логического устройства указывает на его загрузочный сектор, второй элемент — на EBR следующего логического устройства (Extended Boot Record, EBR — Расширенная загрузочная запись).

Читайте также: