Как называется минимальный блок который может быть выделен для размещения файла на диске
Физическая организация выделяет способ размещения файлов на диске и учет соответствия блоков диска файлам. Основными критериями эффективности физической организации файлов являются:
- скорость доступа к данным;
- объем адресной информации файла;
- степень фрагментированности дискового пространства;
- максимально возможный размер файла.
Наиболее часто используются следующие схемы размещения файлов:
- непрерывное размещение (непрерывные файлы);
- сводный список блоков (кластеров) файла;
- сводный список индексов блоков (кластеров) файла;
- перечень номеров блоков (кластеров) файла в структурах, называемых i-узлами (index-node – индекс-узел).
Простейший вариант физической организации – непрерывное размещение в наборе соседних кластеров (рис. 7.15a). Достоинство этой схемы – высокая скорость доступа и минимальный объем адресной информации, поскольку достаточно хранить номер первого кластера и объем файла. Размер файла при такой организации не ограничивается.
Однако у этой схемы имеется серьезный недостаток – фрагментация, возрастающая по мере удаления и записи файлов. Кроме того, возникает вопрос, какого размера область нужно выделить файлу, если при каждой модификации он может увеличить свой размер.
И все-таки есть ситуации, в которых непрерывные файлы могут эффективно использоваться и действительно широко применяются – на компакт-дисках. Здесь все размеры файлов заранее известны и не могут меняться.
Второй метод размещения файлов состоит в представлении файла в виде связного списка кластеров дисковой памяти (рис. 7.15б). Первое слово каждого кластера используется как указатель на следующий кластер . В этом случае адресная информация минимальна, поскольку расположение файла задается номером его первого кластера.
Кроме того, отсутствует фрагментация на уровне кластеров, а файл легко может изменять размер наращиванием или удалением цепочки кластеров. Однако доступ к такому файлу может оказаться медленным, так как для получения доступа к кластеру n операционная система должна прочитать первые n-1 кластеры. Кроме того, размер кластера уменьшается на несколько байтов, требуемых для хранения. Указателю это не очень важно, но многие программы читают и пишут блоками, кратными степени двойки.
Оба недостатка предыдущей схемы организации файлов могут быть устранены, если указатели на следующие кластеры хранить в отдельной таблице, загружаемой в память . Таким образом, образуется связный список не самих блоков (кластеров) файла, а индексов, указывающих на эти блоки (рис. 7.16).
Такая таблица , называемая FAT -таблицей (File Allocation Table ), используется в файловых системах MS- DOS и Windows ( FAT 16 и FAT 32). Файлу выделяется память на диске в виде связного списка кластеров. Номер первого кластера запоминается в записи каталога, где хранятся характеристики этого файла. С каждым кластером диска связывается индекс . Индексы располагаются в FAT -таблице в отдельной области диска. Когда память свободна, все индексы равны нулю. Если некоторый кластер N назначен файлу, то индекс этого кластера либо становится равным номеру M следующего кластера файла, либо принимает специальное значение , являющееся признаком того, что кластер является последним для файла. Вообще индексы могут содержать следующую информацию о кластере диска (для FAT 32):
- не используется (Unused) – 0000.0000;
- используется файлом (Cluster in use by a file) – значение, отличное от 000.000, FFFF.FFFF и FFFF.FFF7;
- плохой кластер ( Bad cluster ) – FFFF.FFF7;
- последний кластер файла (Last cluster in a file) – FFFF.FFFF.
При такой организации сохраняются все достоинства второго метода организации файлов: отсутствие фрагментации, отсутствие проблем при изменении размера. Кроме того, данный способ обладает дополнительными преимуществами: для доступа к произвольному кластеру файла не требуется последовательно считывать его кластеры, достаточно прочитать FAT -таблицу, отсчитать нужное количество кластеров файла по цепочке и определить номера нужного кластера. Во-вторых, данные файла заполняют кластер целиком в объеме, кратном степени двойки.
Еще один способ заключается в простом перечислении номеров кластеров, занимаемых файлом (рис. 7.17). Этот перечень и служит адресом файла. Недостаток такого подхода – длина адреса зависит от размера файла. Достоинства – высокая скорость доступа к произвольному кластеру благодаря прямой адресации, отсутствие внешней фрагментации.
Эффективный метод организации файлов, используемый в Unix -подобных операционных системах, состоит в связывании с каждым файлом структуры данных, называемой i-узлами. Такой узел содержит атрибуты файла и адреса кластеров файла (рис. 7.18). Преимущество такой схемы перед FAT -таблицей заключается в том, что каждый конкретный i-узел должен находиться в памяти только тогда, когда открыт соответствующий ему файл . Если каждый узел занимает n байт , а одновременно может быть открыто k файлов, то массив i-узлов займет в памяти k * n байт , что значительно меньше, чем FAT - таблица .
Это объясняется тем, что размер FAT -таблицы растет линейно с размером диска и даже быстрее, чем линейно, так как с увеличением количества кластеров на диске может потребоваться увеличить разрядность числа для хранения их номеров.
Достоинством i-узлов является также высокая скорость доступа к произвольному кластеру файла, так как здесь применяется прямая адресация . Фрагментация на уровне кластеров также отсутствует.
Однако с такой схемой связана проблема, заключающаяся в том, что при выделении каждому файлу фиксированного количества адресов кластеров этого количества может не хватить. Выход из этой ситуации может быть в сочетании прямой и косвенной адресации. Такой поход реализован в файловой системе ufs , используемой в ОС UNIX , схема адресации в которой приведена на рис. 7.19.
Для хранения адреса файла выделено 15 полей, каждое из которых состоит из 4 байт . Если размер файлов меньше или равен 12 кластерам, то номера этих кластеров непосредственно перечисляются в первых двенадцати полях адреса. Если кластер имеет размер 8 Кбайт, то можно адресовать файл размеров до 8 Кбайт * 12 = 98304 байт . Если размер кластера превышает 12 кластеров, то следующее 13 поле содержит адрес кластера, в котором могут быть расположены номера следующих кластеров, и размер файла может возрасти до 8192 * (12 + 2048) = 16.875.520 байт .
Следующий уровень адресации, обеспечиваемый 14-м полем, позволяет адресовать до 8192 * (12 + 2048 + 20482) = 3,43766*1020 байт . Если и этого недостаточно, используется следующее 15-е поле . В этом случае максимальный размер файла может составить 8192 * (12 + 2048 + 20482 + 20483) = 7,0403*1013 байт .
При этом объеме самой адресной информации составит всего 0,05% от объема адресуемых данных (задачи. ).
Метод перечисления адресов кластеров файла задействован и в файловой системе NTFS , применяемой в Windows NT/2000/2003. Для сокращения объема адресной информации в NTFS адресуются не кластеры файла, а непрерывные области, состоящие из смежных кластеров диска. Каждая такая область называется экстентом ( extent ) и описывается двумя числами: номером начального кластера и количеством кластеров.
Запись информации о файлах производится в специальные области диска. В зависимости от аппаратных средств компьютера и возможностей установленной операционной системы для организации работы применяются различные файловые системы.
Файловая система(FAT (File Allocation Table) – таблица размещения файлов) – общая структура, определяющая в операционной системе наименование, сохранение и размещение файлов. От файловой системы зависят правила именования файлов, способы обращения к файлам и способы работы с ними.
Все современные дисковые операционные системы обеспечивают создание файловой системы, предназначенной для хранения данных на дисках и обеспечения доступа к ним. Принцип организации файловой системы зависит от операционной системы. Наиболее распространенный тип — табличный.
Диск представляется как набор поверхностей. У гибких дисков их всего две (верхняя и нижняя), но жесткие диски — это на самом деле «этажерки», состоящие из нескольких пластин, поэтому количество поверхностей у них больше.
Каждая поверхность диска разделяется на кольцевые дорожки, а каждая дорожка — на секторы. Размеры секторов фиксированы и равны 512 байт.
Сектор — это наименьшая единица хранения данных, но для адресации она используется далеко не во всех файловых системах. Для этого она слишком мала. Такие операционные системы, как MS-DOS, Windows, OS/2, используют для адресации более крупную единицу хранения, называемую кластером. Кластер — это группа соседних секторов. Размер кластера зависит от размера жесткого диска. Чем больше диск, тем большим назначается размер кластера. Типовые значения: 8, 16, 32 или 64 сектора.
Кластер – минимальный объем дискового пространства, который может быть выделен для размещения файла. Все файловые системы, используемые Windows для работы с жесткими дисками, основаны на кластерах, которые состоят из одного или нескольких смежных секторов. Чем меньше размер кластера, тем более эффективно используется дисковая память. Если при форматировании диска размер кластера не указан в явном виде, Windows выбирает одно из стандартных значений, исходя из размера тома. Стандартные значения подобраны таким образом, чтобы снизить потерю дискового пространства и степень возможной фрагментации тома. Размер кластера называется также единицей выделения памяти.
В файловой системе FAT, данные о том, в каком кластере диска начинается тот или иной файл, хранятся в системной области диска в специальных таблицах размещения файлов (FAT-таблицах). Поскольку нарушение FAT-таблицы приводит к невозможности воспользоваться данными, записанными на диске, к ней предъявляются особые требования надежности, и она существует в двух экземплярах, идентичность которых регулярно контролируется средствами операционной системы.
Файловая система FAT16. Эта система существовала еще до MS-DOS. Максимальный размер поддерживаемого дискового пространства не превышает 4096 Мбайт, большие объемы FAT16 не поддерживает. В FAT16 применяется 16-битная адресация и, соответственно, возможно использование до 2 адресов. Том памяти, отформатированный FAT 16, разделяется на кластеры. Размер кластера зависит от размера тома и колеблется от 512 байт до 64 Кбайт, принимая ряд определенных значений. В том, организованный файловой системой FAT16, входят загрузочный диск, FAT16-оригинал, FAT16-копия, корневой каталог, каталоги и файлы. Отличием корневого каталога от всех прочих подкаталогов является фиксированное число вхождений (обычно 512). Это число равно общему количеству подкаталогов и файлов, созданных в корневом каталоге.
Файловая система FAT32. Начиная с Windows 95, появилась FAT32, которая способна обслуживать тома до 2 Тбайт с размером кластера до 32 Кбайт. В целом размеры кластеров в FAT32 меньше соответствующих размеров в FAT16. Это приводит к более эффективному использованию дискового пространства. Кроме того, максимальное число вхождений в корневой каталог увеличено до 65 535. В FAT32 применяется 32-битная адресация, но первые четыре бита таблицы расположения файлов FAT32 необходимы для собственных нужд, поэтому
Файловая система NTFS.В состав Windows 2000 входит поддержка новой версии файловой системы NTFS (New Technology File System). Ключевое преимущество NTFS – возможность ограничения доступа к файлам и папкам. При формировании файловой системы NTFS создается файл MTF (Master File Table), в котором хранятся адреса копий данных. Полная копия загрузочного сектора располагается в конце тома. В MTF, кроме того, находится таблица имен атрибутов, корневой каталог и т. д. Если у файла слишком большой набор атрибутов, то информация о нем хранится в нескольких записях, причем первая (базовая) запись хранит адреса других записей.
Сравнение файловых систем FAT16, FAT32 и NTFS. Цифры в названиях файловых систем FAT16 и FAT32 указывают на число бит, необходимых для хранения информации о номерах кластеров, используемых файлом, т. е. на разрядность адресации. Проведем сравнение этих файловых систем, указав их преимущества и недостатки.
FAT16 имеет следующие преимущества:
1) эта файловая система поддерживается всеми ОС, входящими в линейку программных продуктов Windows и некоторыми версиями ОС UNIX;
2) накоплено большое число программ для исправления ошибок в этой файловой системе и восстановления данных;
3) система может быть загружена с системной дискеты;
4) эта файловая система весьма эффективна для томов памяти объемом менее 256 Мбайт.
К недостаткам FAT16 можно отнести:
1) в системе не поддерживается резервная копия загрузочного сектора;
2) в FAT 16 не поддерживается встроенная защита файлов и их сжатие.
Преимущества FAT32 таковы:
1) для дисков большого объема более эффективно используется выделенное дисковое пространство;
2) корневой каталог в FAT32 занимает цепочку кластеров и может располагаться в любом месте диска, благодаря чему система не накладывает никаких ограничений на число элементов (вхождений) в корневом каталоге;
3) из-за меньшего размера кластеров занятое дисковое пространство на 10 – 15% меньше, чем у FAT 16;
4) FAT32 из-за возможности использования резервной копии FAT является более надежной системой, чем FAT 16.
Основные недостатки FAT32:
1) размер тома памяти под Windows 2000 ограничен объемом 32 Гбайт;
2) тома недоступны для других ОС кроме Windows 95 и Windows 98;
3) не поддерживается резервная копия загрузочного сектора;
4) не поддерживается встроенная защита файлов и их сжатие.
Файловая система NTFS имеет несколько возможностей, не реализованных в системах FAT16 и FAT32. По сравнению с этими файловыми системами она не имеет явных недостатков. Отметим лишь ее дополнительные возможности:
а) возможность восстановления информации. NTFS гарантирует сохранность данных за счет ведения протокола и некоторых встроенных алгоритмов восстановления информации;
б) сжатие данных. При чтении файл автоматически распаковывается, при закрытии и сохранении файл снова упаковывается;
в) защита файлов и каталогов путем задания атрибутов доступа;
г) поддержка резервной копии загрузочного сектора (в конце тома памяти);
д) поддержка системы шифрования содержимого файлов.
Эта файловая система наиболее эффективно работает с файлами большого объема, недостатком системы является тот факт, что она не поддерживается ОС MS-DOS, Windows 95 и Windows 98.
До появления операционной системы Windows 95 общепринятым способом именования файлов на компьютерах IBM PC было соглашение 8.3. Согласно этому соглашению, принятому в MS-DOS, имя файла состоит из двух частей: собственно имени и расширения имени. На имя файла отводилось 8 символов, а на его расширение — 3 символа. Имя от расширения отделяется точкой. Как имя, так и расширение могут включать только алфавитно-цифровые символы латинского алфавита.
Соглашение 8.3 не является стандартом, и потому в ряде случаев отклонения от правильной формы записи допускаются как операционной системой, так и ее приложениями. Так, например, в большинстве случаев система «не возражает» против использования некоторых специальных символов (восклицательный знак, символ подчеркивания, дефис, тильда и т. п.), а некоторые версии MS-DOS даже допускают использование в именах файлов символов русского и других алфавитов.
Сегодня имена файлов, записанные в соответствии с соглашением 8.3, считаются короткими.
Основным недостатком коротких имен является их низкая содержательность. Далеко не всегда удается выразить несколькими символами характеристику файла, поэтому с появлением операционной системы Windows 95 было введено понятие длинного имени. Такое имя может содержать до 256 символов. Этого вполне достаточно для создания содержательных имен файлов. Длинное имя может содержать любые символы, кроме девяти специальных: \ / : * ? " < >|.В имени разрешается использовать пробелы и несколько точек. Расширением имени считаются все символы, идущие после последней точки.
Физическая организация выделяет способ размещения файлов на диске и учет соответствия блоков диска файлам. Основными критериями эффективности физической организации файлов являются:
- скорость доступа к данным;
- объем адресной информации файла;
- степень фрагментированности дискового пространства;
- максимально возможный размер файла.
Наиболее часто используются следующие схемы размещения файлов:
- непрерывное размещение (непрерывные файлы);
- сводный список блоков (кластеров) файла;
- сводный список индексов блоков (кластеров) файла;
- перечень номеров блоков (кластеров) файла в структурах, называемых i-узлами (index-node – индекс-узел).
Простейший вариант физической организации – непрерывное размещение в наборе соседних кластеров (рис. 7.15a). Достоинство этой схемы – высокая скорость доступа и минимальный объем адресной информации, поскольку достаточно хранить номер первого кластера и объем файла. Размер файла при такой организации не ограничивается.
Однако у этой схемы имеется серьезный недостаток – фрагментация, возрастающая по мере удаления и записи файлов. Кроме того, возникает вопрос, какого размера область нужно выделить файлу, если при каждой модификации он может увеличить свой размер.
И все-таки есть ситуации, в которых непрерывные файлы могут эффективно использоваться и действительно широко применяются – на компакт-дисках. Здесь все размеры файлов заранее известны и не могут меняться.
Второй метод размещения файлов состоит в представлении файла в виде связного списка кластеров дисковой памяти (рис. 7.15б). Первое слово каждого кластера используется как указатель на следующий кластер. В этом случае адресная информация минимальна, поскольку расположение файла задается номером его первого кластера.
Рис. 7.15. Варианты физической организации файлов
Кроме того, отсутствует фрагментация на уровне кластеров, а файл легко может изменять размер наращиванием или удалением цепочки кластеров. Однако доступ к такому файлу может оказаться медленным, так как для получения доступа к кластеру n операционная система должна прочитать первые n-1 кластеры. Кроме того, размер кластера уменьшается на несколько байтов, требуемых для хранения. Указателю это не очень важно, но многие программы читают и пишут блоками, кратными степени двойки.
Оба недостатка предыдущей схемы организации файлов могут быть устранены, если указатели на следующие кластеры хранить в отдельной таблице, загружаемой в память. Таким образом, образуется связный список не самих блоков (кластеров) файла, а индексов, указывающих на эти блоки (рис. 7.16).
Рис. 7.16. Вариант физической организации файлов
Такая таблица, называемая FAT-таблицей (File Allocation Table), используется в файловых системах MS-DOS и Windows (FAT 16 и FAT 32). Файлу выделяется память на диске в виде связного списка кластеров. Номер первого кластера запоминается в записи каталога, где хранятся характеристики этого файла. С каждым кластером диска связывается индекс. Индексы располагаются в FAT-таблице в отдельной области диска. Когда память свободна, все индексы равны нулю. Если некоторый кластер N назначен файлу, то индекс этого кластера либо становится равным номеру M следующего кластера файла, либо принимает специальное значение, являющееся признаком того, что кластер является последним для файла. Вообще индексы могут содержать следующую информацию о кластере диска (для FAT 32):
- не используется (Unused) – 0000.0000;
- используется файлом (Cluster in us by a file) – значение, отличное от 000.000, FFFF.FFFF и FFFF.FFF7;
- плохой кластер (Bad cluster) – FFFF.FFF7;
- последний кластер файла (Last cluster in a file) – FFFF.FFFF.
При такой организации сохраняются все достоинства второго метода организации файлов: отсутствие фрагментации, отсутствие проблем при изменении размера. Кроме того, данный способ обладает дополнительными преимуществами: для доступа к произвольному кластеру файла не требуется последовательно считывать его кластеры, достаточно прочитать FAT-таблицу, отсчитать нужное количество кластеров файла по цепочке и определить номера нужного кластера. Во-вторых, данные файла заполняют кластер целиком в объеме, кратном степени двойки.
Еще один способ заключается в простом перечислении номеров кластеров, занимаемых файлом (рис. 7.17). Этот перечень и служит адресом файла. Недостаток такого подхода – длина адреса зависит от размера файла. Достоинства – высокая скорость доступа к произвольному кластеру благодаря прямой адресации, отсутствие внешней фрагментации.
Рис. 7.17. Вариант физической организации файлов
Эффективный метод организации файлов, используемый в Unix-подобных операционных системах, состоит в связывании с каждым файлом структуры данных, называемой i-узлами. Такой узел содержит атрибуты файла и адреса кластеров файла (рис. 7.18). Преимущество такой схемы перед FAT-таблицей заключается в том, что каждый конкретный i-узел должен находиться в памяти только тогда, когда открыт соответствующий ему файл. Если каждый узел занимает n байт, а одновременно может быть открыто k фалов, то массив i-узлов займет в памяти k * n байт, что значительно меньше, чем FAT-таблица.
Это объясняется тем, что размер FAT-таблицы растет линейно с размером диска и даже быстрее, чем линейно, так как с увеличением количества кластеров на диске может потребоваться увеличить разрядность числа для хранения их номеров.
Рис. 7.18. Вариант физической организации файлов
Достоинством i-узлов является также высокая скорость доступа к произвольному кластеру файла, так как здесь применяется прямая адресация. Фрагментация на уровне кластеров также отсутствует.
Однако с такой схемой связана проблема, заключающаяся в том, что при выделении каждому файлу фиксированного количества адресов кластеров этого количества может не хватить. Выход из этой ситуации может быть в сочетании прямой и косвенной адресации. Такой поход реализован в файловой системе ufs, используемой в ОС UNIX, схема адресации в которой приведена на рис. 7.19.
Рис. 7.19. Файловая система ufs
Для хранения адреса файла выделено 15 полей, каждое из которых состоит из 4 байт. Если размер файлов меньше или равен 12 кластерам, то номера этих кластеров непосредственно перечисляются в первых двенадцати полях адреса. Если кластер имеет размер 8 Кбайт, то можно адресовать файл размеров до 8 Кбайт * 12 = 98304 байт. Если размер кластера превышает 12 кластеров, то следующее 13 поле содержит адрес кластера, в котором могут быть расположены номера следующих кластеров, и размер файла может возрасти до 8192 * (12 + 2048) = 16.875.520 байт.
Следующий уровень адресации, обеспечиваемый 14-м полем, позволяет адресовать до 8192 * (12 + 2048 + 20482) = 3,43766*1020 байт. Если и этого недостаточно, используется следующее 15-е поле. В этом случае максимальный размер файла может составить 8192 * (12 + 2048 + 20482 + 20483) = 7,0403*1013 байт.
При этом объеме самой адресной информации составит всего 0,05% от объема адресуемых данных (задачи. ).
Метод перечисления адресов кластеров файла задействован и в файловой системе NTFS, применяемой в Windows NT/2000/2003. Для сокращения объема адресной информации в NTFS адресуются не кластеры файла, а непрерывные области, состоящие из смежных кластеров диска. Каждая такая область называется экстентом (extent) и описывается двумя числами: номером начального кластера и количеством кластеров.
Область данных диска, отведенную для хранения файлов, можно представить как линейную последовательность адресуемых блоков (секторов). Размещая файлы в этой области, ОС должна отвести для каждого файла необходимое количество блоков и сохранить информацию о том, в каких именно блоках размещен данный файл. Существуют два основных способа использования дискового пространства для размещения файлов.
Непрерывное размещение характеризуется тем, что каждый файл занимает непрерывную последовательность блоков.
Сегментированное размещение означает, что файлы могут размещаться «по кусочкам», т.е. один файл может занимать несколько несмежных сегментов разной длины. Оба способа размещения показаны на рис. 16.1.
Рис. 16.1 Способы размещения файлов на диске
Непрерывное размещение имеет два серьезных достоинства.
Информация о размещении файла очень проста и занимает мало места. Фактически достаточно хранить два числа: номер начального блока файла и число занимаемых блоков (или размер файла в байтах, по которому легко вычислить число блоков).
Доступ к любой позиции в файле выполняется быстро, поскольку, зная смещение от начала файла, легко можно вычислить номер требуемого блока и прочитать сразу этот блок, не читая предыдущие блоки.
К сожалению, недостатки непрерывного распределения еще более весомы.
При создании файла требуется заранее знать его размер, чтобы найти и зарезервировать на диске область достаточной величины. Последующее возможное увеличение файла весьма затруднено, т.к. после конца файла может не оказаться достаточно свободного места. Фактически вместо увеличения файла обычно приходится заново создавать файл большего размера в другом месте, переписывать в него данные и удалять старый файл. Но такое решение требует много времени на чтение и запись данных и, кроме того, снижает надежность хранения данных, поскольку ошибка при чтении или записи гораздо более вероятна, чем порча данных, «спокойно лежащих» на диске.
В ходе обычной эксплуатации файловой системы, после многократного создания и удаления файлов разной длины, свободное пространство на диске оказывается разбитым на небольшие кусочки. Суммарный объем свободного места на диске может быть достаточно большим, но создать файл приличного размера не удается, для него нет непрерывной области нужной длины. Это явление носит название фрагментации диска. Для борьбы с ним приходится использовать специальную процедуру дефрагментации, которая перемещает все файлы, размещая их впритык друг к другу от начала области данных диска. Но такая процедура требует много времени, снижает, как сказано выше, надежность и усугубляет проблемы в случае, если позднее потребуется увеличить файл.
Сегментированное размещение лишено первого из недостатков непрерывного: при создании файла ему обычно вообще не выделяют память, а потом, по мере возрастания размера файла, ему могут быть выделены любые свободные сегменты на диске, независимо от их длины.
Не так просто с фрагментацией. Конечно, в отличие от непрерывного размещения, при сегментированном никакая фрагментация не помешает системе использовать все блоки, имеющиеся на диске. Однако последовательное чтение из сегментированного файла может выполняться существенно медленнее за счет необходимости переходить от сегмента к сегменту. Замедление особенно заметно, если файл оказался разбросан маленькими кусочками по нескольким цилиндрам диска. В результате, время от времени целесообразно выполнять дефрагментацию диска, чтобы повысить скорость доступа к данным. При сегментированном размещении дефрагментация означает не только объединение всех свободных участков диска, но и, главным образом, объединение сегментов каждого файла. Эта процедура выполняется значительно сложнее, чем дефрагментация при непрерывном размещении.
Недостатком сегментированного размещения является то, что информация о размещении файла в этом случае намного сложнее, чем для непрерывного случая и, что наиболее неприятно, объем этой информации переменный: чем большее число сегментов занимает файл, тем больше нужно информации, ибо надо перечислить все сегменты. Имеется почти столько же способов решения этой проблемы, сколько вообще придумано разных файловых систем.
Чтобы уменьшить влияние сегментации на скорость доступа к данным файла, в ОС, использующих сегментированное размещение, применяются различные алгоритмы выбора места для файла. Их целью является разместить файл по возможности в одном сегменте, и только в крайнем случае разбивать файл на несколько сегментов.
В современных ОС для файловых систем на магнитных дисках практически всегда используют сегментированное размещение. Иное дело файловые системы на дисках, предназначенных только для чтения (например, CD ROM). Нетрудно понять, что в этом случае недостатки непрерывного размещения не имеют никакого значения, а его достоинства сохраняются.
Еще одной важной характеристикой размещения файлов является степень его «дробности». До сих пор мы предполагали, что файл может занимать любое целое число блоков, а под блоком фактически понимали сектор диска. Проблема в том, что для дисков большого объема число блоков может быть слишком большим. Допустим, в некоторой файловой системе размер блока равен 512 байт, а для хранения номеров блоков файла используются 16-разрядные числа. В этом случае размер области данных диска не сможет превысить 512 * 216 = 32 Мб. Конечно, можно перейти к использованию 32-разрядных номеров блоков, но тогда суммарный размер информации о размещении всех файлов на диске становится чересчур большим. Обычный выход из этого затруднения заключается в том, что минимальной единицей размещения файлов считают кластер (называемый в некоторых системах блоком или логическим блоком), который принимается равным 2k секторов, т.е., например, 1, 2, 4, 8, 16, 32 сектора, редко больше. Каждому файлу отводится целое число кластеров, и в информации о размещении файла хранятся номера кластеров, а не секторов. Увеличение размера кластеров позволяет сократить количество данных о размещении файлов «и в длину и в ширину»: во-первых, для каждого файла нужно хранить информацию о меньшем числе кластеров, а во-вторых, уменьшается число двоичных разрядов, используемых для задания номера кластера (либо при той же разрядности можно использовать больший диск). Так, при кластере размером 32 сектора и 16-разрядных номерах можно адресовать до 1 Гб дисковой памяти.
Использование больших кластеров имеет свою отрицательную сторону. Поскольку размер файла можно считать случайной величиной (по крайней мере, этот размер никак не связан с размером кластера), то можно приближенно считать, что в среднем половина последнего кластера каждого файла остается незанятой. Это явление иногда называют внутренней фрагментацией (в отличие от описанной выше фрагментации свободного пространства диска, которую называют также внешней фрагментацией). Кроме того, если хотя бы один из секторов, входящих в кластер, отмечен как дефектный, то и весь кластер считается дефектным, т.е. не может быть использован. Очевидно, что при увеличении размера кластера возрастает и число неиспользуемых секторов диска.
Оптимальный размер кластера либо вычисляется автоматически при форматировании диска, либо задается вручную.
Для нормальной работы файловой системы требуется, чтобы, кроме информации о размещении файлов, система хранила в удобном для использования виде информацию об имеющихся свободных кластерах диска. Эта информация необходима при создании новых или увеличении существующих файлов. Используются различные способы представления информации о свободном месте, некоторые из них перечислены ниже.
Можно хранить все свободные кластеры как связанный линейный список, т.е. в начале каждого свободного кластера хранить номер следующего по списку. Недостаток такого способа в том, что затрудняется поиск свободного непрерывного фрагмента нужного размера, поэтому сложнее оптимизировать размещение файлов.
Названный недостаток можно преодолеть, если хранить список не из отдельных кластеров, а из непрерывных свободных фрагментов диска. Правда, работать с таким списком несколько сложнее.
В системах с непрерывным размещением часто каждый непрерывный фрагмент диска описывают так же, как файл, но отмечают его флажком «свободен».
Удобный и простой способ заключается в использовании битовой карты (bitmap) свободных кластеров. Она представляет собой массив, содержащий по одному биту на каждый кластер, причем значение 1 означает «кластер занят», а 0 – «кластер свободен». Для поиска свободного непрерывного фрагмента нужного размера система должна будет просмотреть весь массив.
Перед началом работы с диском, флешкой или другим носителем информации его необходимо отформатировать. При форматировании надо выбрать файловую систему и установить для нее размер кластера.
В данной статье даются самые базовые сведения о том, как организуется хранение информации на дисках, что такое файловая система, кластер и как оптимальным образом выбрать размер кластера при форматировании.
Видео
Из этого видео вы узнаете, как самостоятельно правильно отформатировать флешку.
Поставь лайк, это важно для наших авторов, подпишись на наш канал в Яндекс.Дзен и вступай в группу Вконтакте
Размещение информации на жестком диске
Жесткий диск компьютера физически представляет из себя металлический диск, на поверхность которого нанесен магнитный слой. Диск вращается с постоянной скоростью, а над его поверхностью, не касаясь ее, скользят магнитные головки. При записи магнитные головки оставляют на поверхности намагниченный след — дорожку. Дорожка делится на сектора, в которые, собственно, и записывается информация. В стандартном секторе 512 байт информации. Головки могут двигаться от края диска к центру, формируя на его поверхности множество дорожек. Номер дорожки и номер сектора на ней однозначно определяют положение информации на диске.
Что такое форматирование
Форматирование носителя — это его разметка для подготовки к использованию для чтения или записи информации.
Различают низкоуровневое и высокоуровневое форматирование.
- Низкоуровневое форматирование подразумевает предварительную разметку носителя, формирование базовой структуры в виде дорожек и секторов. Выполняется заводом-изготовителем и впоследствии, как правило, не меняется. После низкоуровневого форматирования производится разбиение диска на разделы.
- На этапе высокоуровневого форматирования формируется логическая структура диска.
Различают два вида форматирования: быстрое и полное.
- При быстром форматировании формируется только файловая таблица.
- При полном форматировании сначала проходит проверка состояния носителя. Поврежденные сектора помечаются как непригодные для использования, и информация в них впоследствии не пишется. И только после этого формируется файловая таблица.
Файловая система и ее виды
Файловая система - это способ организации хранения информации в виде файлов на любых типах носителей. Носителем информации может быть не только жесткий диск, но и внешний флеш-накопитель, оптический диск, внешняя карта памяти или другой компьютер в сети, если система сетевая.
Система отвечает за запись информации на носитель, ее поиск, чтение и удаление. Некоторые системы дополнительно могут шифровать информацию, разграничивать права доступа и обеспечивать совместный доступ к файлам.
На сегодняшний день наиболее распространены следующие системы:
- FAT-32. Использовалась в ОС Windows вплоть до 7 версии. Простая и надежная система. Не поддерживает запись файлов более 4 Гб. Используется во флеш-накопителях небольшой емкости.
- NTFS. Заменила FAT-32 в ОС Windows начиная с 7 версии. Устанавливается в этих ОС по умолчанию. Работает с файлами более 4 Гб. Допускает шифрование информации и разграничение прав доступа к файлам.
- ExFAT. Разработана как расширение FAT-32. Снято ограничение на максимальную длину файла в 4 Гб. Введена возможность шифрования и разграничения прав доступа. Относительно новая система. Используется во флеш-накопителях большой емкости. Читается не всеми ОС. Не работает со старыми устройствами.
Размер кластера в разных файловых системах
Для каждой системы определена величина кластера по умолчанию.
Этот размер считается оптимальным и установится автоматически, если при форматировании носителя не установить другой размер принудительно.
Для наиболее популярных систем эти значения будут равны:
- FAT 32. Величина зависит от размера тома, при размере тома от 8 до 16 ГБ он равен 4 КБ. При размере тома от 16 до 32 ГБ кластер по умолчанию равен 16 КБ.
- NTFS - по умолчанию 4 КБ.
- ExFAT - 4,32 или 128 КБ в зависимости от размера тома.
Значение по умолчанию имеет смысл использовать при форматировании диска в подавляющем большинстве случаев.
Файловая система для флешки
Флеш-накопители на заводе по умолчанию форматируются под FAT-32.
Это наиболее универсальная на сегодняшний день система, с которой работают практически все устройства: как старые, так и новые.
Единственное практически важное ограничение — размер файла не может быть больше 4 Гб.
Если есть необходимость записи файлов более 4 Гб, например, игр или фильмов, можно отформатировать под NTFS или под ExFAT. Но будьте готовы к тому, что более старые устройства не смогут работать с этими системами.
Размер кластера при форматировании флешки
Общее правило форматирования: чем больше длина файлов, которые предполагается хранить, тем большую величину следует выбирать при форматировании. При отсутствии особых показаний оставлять значение по умолчанию.
На что влияет размер кластера
С точки зрения операционной системы диск представляет собой массив минимальных блоков информации — кластеров.
При записи файла он всегда занимает на диске определенное число блоков. Например, при записи файла в 12 байт он занимает на диске минимальное возможное пространство в 1 блок. При величине блока в 512 байт реально используется 12 байт, а остальные 500 теряются бесполезно.
Таким образом, чем меньше блок, тем более экономно расходуется дисковое пространство.
Длинный файл представляет собой цепочку блоков. Чем меньше размер, тем больше блоков в цепочке. Блоки могут оказаться разбросаны по разным секторам и дорожкам весьма хаотично. Контроллеру диска придется разыскивать последовательно блок за блоком на разных дорожках, и этот процесс может занять значительное время.
Чем больше кластер, тем меньше их в файле, и тем быстрее происходит его поиск, чтение или запись.
Оптимальная величина кластера — это компромисс между скоростью и экономией дискового пространства.
Что такое кластер
Итак, минимальный фрагмент информации на диске — это сектор размером 512 байт.
Работать с фрагментами такого малого размера не всегда удобно, поэтому файловая система работает не с отдельными секторами, а с блоками секторов, называемыми кластерами.
Величина кластера может меняться в зависимости от того, сколько секторов объединяется в кластер. Минимальный размер кластера — 512 байт, максимальный — 32 МБ.
Таким образом, минимальный фрагмент информации, который может быть записан на диск или считан с него, равен в общем случае не сектору, а кластеру.
Читайте также: