Файловая система - это часть операционной системы, назначение которой состоит в том, чтобы организовать эффективную работу с данными, хранящимися во внешней памяти, и обеспечить пользователю удобный интерфейс при работе с такими данными. С точки зрения пользователя, файл – именованная единица внешней памяти, то есть данные, записанные на диск, должны быть в составе какого-нибудь файла.
Основная задача подсистемы управления файлами - связать символьное имя файла с блоками диска, которые содержат данные файла.
Нижний уровень в системе хранения данных - диски с подвижными головками. Для обмена с магнитным диском на уровне аппаратуры нужно указать номер цилиндра, номер поверхности, номер блока (сектора) на соответствующей дорожке и число байтов, которое нужно записать или прочитать от начала этого блока.
В традиционной многоуровневой системе построения операционных систем с устройствами (дисками) непосредственно взаимодействует часть ОС, называемая системой ввода-вывода, основу которой составляют драйверы устройств. Задача системы ввода-вывода: скрыть особенности работы с дисками и предоставить в распоряжение более высокоуровневого компонента ОС - файловой системы - используемое дисковое пространство в виде непрерывной последовательности блоков фиксированного размера.
В ОС Windows файловая система интегрирована в систему ввода-вывода (см. рис.1), построенную в виде набора разнообразных драйверов, и также реализована в виде драйвера, например, драйвера NTFS или драйвера FAT. Общение драйверов организовано путем посылки так называемых IRP (I/O request packet) пакетов – системных прерываний.
Обычно диски разбиты на блоки (секторы) размером - 512 б. Однако ОС оперирует блоками более крупного размера - кластерами (cluster). Размер кластера равен размеру сектора, умноженному на кластерный множитель (claster factor), и может быть установлен во время операции высокоуровневого форматирования диска. По умолчанию это значение равно 4 Кб и может быть изменено. Альтернативные значения размера кластера можно, например, извлечь из справочной информации команды format.
Размер кластера, которые часто называют блоками диска, играет немаловажную роль. Небольшой размер блока будет приводить к тому, что каждый файл будет содержать много блоков и читаться медленно. Большие блоки обеспечивают более высокую скорость обмена с диском, но из-за внутренней фрагментации (каждый файл занимает целое число блоков, и в среднем половина последнего блока пропадает) снижается процент полезного дискового пространства. Специально проведенные исследования показали, что оптимальным является компромиссный размер блока, лежащий в диапазоне от 1-го до 8 Кб.