Минимальный размер места на диске которое может быть выделено файловой системой для хранения файла
Все программы и данные хранятся в долговременной (внешней) памяти компьютера в виде файлов.
Файл- это определенное количество информации (программа или данные), имеющее имя и хранящееся в долговременной (внешней) памяти.
Имя файла.Имя файла состоит из двух частей, разделенных точкой: собственно имя файла и расширение, определяющее его тип (программа, данные и так далее). Собственно имя файлу дает пользователь, а тип файла обычно задается программой автоматически при его создании.
Таблица 1. Типы файлов и расширений
Тип файла | Расширения |
Программы | exe, com |
Текстовые файлы | txt, doc |
Графические файлы | bmp, д1Т,]рдидр |
Звуковые файлы | wav, mid |
Видеофайлы | avi |
Программы на языках программирования | bas, pas и др |
Файловая система.На каждом носителе информации (гибком, жестком или лазерном диске) может храниться большое количество файлов. Порядок хранения файлов на диске определяется используемой файловой системой.
Каждый диск разбивается на две области: область хранения файлов и каталог. Каталог содержит имя файла и указание на начало его размещения на диске.
Для дисков с небольшим количеством файлов (до нескольких десятков) может использоваться одноуровневая файловая система, когда каталог (оглавление диска) представляет собой линейную последовательность имен файлов. Такой каталог можно сравнить с оглавлением детской книжки, которое содержит только названия отдельных рассказов.
Таблица 2.Одноуровневый каталог
Имя файла | Номер начального сектора |
Файл_1 | |
Файл_2 | |
……. | |
Файл_112 |
Если на диске хранятся сотни и тысячи файлов, то для удобства поиска используется многоуровневая иерархическая файловая система, которая имеет древовидную структуру.
Начальный, корневой каталог содержит вложенные каталоги 1-го уровня, в свою очередь, каждый из последних может содержать вложенные каталоги 2-го уровня и так далее. Необходимо отметить, что в каталогах всех уровней могут храниться и файлы.
Файловая система— это система хранения файлов и организации каталогов.
Путь к файлу.Путь к файлу вместе с именем файла называют иногда полным именем файла.
Операции над файлами.В процессе работы на компьютере наиболее часто над файлами производятся следующие операции:
• копирование (копия файла помещается в другой каталог);
• перемещение (сам файл перемещается в другой каталог);
• удаление (запись о файле удаляется из каталога);
• переименование (изменяется имя файла).
Форматирование дисков.Для того чтобы на диске можно было хранить информацию, диск должен быть отформатирован, то есть должна быть создана физическая и логическая структура диска.
Формирование физической структуры диска состоит в создании на диске концентрических дорожек, которые, в свою очередь, делятся на секторы. Для этого в процессе форматирования магнитная головка дисковода расставляет в определенных местах диска метки дорожек и секторов.
После форматирования гибкого диска 3,5" его параметры будут следующими:
• информационная емкость сектора — 512 байтов;
• количество секторов на дорожке — 18;
• дорожек на одной стороне — 80;
Логическая структура гибких дисков. Логическая структура магнитного диска представляет собой совокупность секторов (емкостью 512 байтов), каждый из которых имеет свой порядковый номер (например, 100). Сектора нумеруются в линейной последовательности от первого сектора нулевой дорожки до последнего сектора последней дорожки.
На гибком диске минимальным адресуемым элементом является сектор.
При записи файла на диск будет занято всегда целое количество секторов, соответственно минимальный размер файла — это размер одного сектора, а максимальный соответствует общему количеству секторов на диске.
Файл записывается в произвольные свободные сектора, которые могут находиться на различных дорожках. Например, Файл_1 объемом 2 Кбайта может занимать сектора 34, 35 и 47, 48, а Файл_2 объемом 1 Кбайт — сектора 36 и 49.
Таблица 3. Логическая структура гибкого диска формата 3,5" (2-я сторона)
№ дорожки | № сектора |
…………………. |
Для того чтобы можно было найти файл по его имени, на диске имеется каталог, представляющий собой базу данных.
Запись о файле содержит имя файла, адрес первого сектора, с которого начинается файл, объем файла, а также дату и время его создания.
Таблица 4. Структура записей в каталоге
Имя файла | Адрес первого сектора | Объем файла, Кбайт | Дата создания | Время создания |
Файл 1 | 14 01 99 | 14 29 | ||
Файл 2 | 14 01 99 | 14 45 |
Полная информация о секторах, которые занимают файлы, содержится в таблице размещения файлов (FAT — File Allocation Table). Количество ячеек FAT соответствует количеству секторов на диске, а значениями ячеек являются цепочки размещения файлов, то есть последовательности адресов секторов, в которых хранятся файлы.
Для размещения каталога — базы данных и таблицы FAT на гибком диске отводятся секторы со 2 по 33. Первый сектор отводится для размещения загрузочной записи операционной системы. Сами файлы могут быть записаны, начиная с 34 сектора.
Виды форматирования. Существуют два различных вида форматирования дисков: полное и быстрое форматирование. Полное форматирование включает в себя как физическое форматирование (проверку качества магнитного покрытия дискеты и ее разметку на дорожки и секторы), так и логическое форматирование (создание каталога и таблицы размещения файлов). После полного форматирования вся хранившаяся на диске информация будет уничтожена.
Быстрое форматирование производит лишь очистку корневого каталога и таблицы размещения файлов. Информация, то есть сами файлы, сохраняется и в принципе возможно восстановление файловой системы.
Информационная емкость гибких дисков. Рассмотрим различие между емкостью неформатированного гибкого магнитного диска, его информационной емкостью после форматирования и информационной емкостью, доступной для записи данных.
Заявленная емкость неформатированного гибкого магнитного диска формата 3,5" составляет 1,44 Мбайт.
Рассчитаем общую информационную емкость отформатированного гибкого диска:
Количество секторов: N = 18 х 80 х 2 = 2880.
512 байт х N = 1 474 560 байт = 1 440 Кбайт -= 1,40625 Мбайт.
Однако для записи данных доступно только 2847 секторов, то есть информационная емкость, доступная для записи данных, составляет:
512 байт х 2847 = 1 457 664 байт = 1423,5 Кбайт = 1,39 Мбайт.
Логическая структура жестких дисков. Логическая структура жестких дисков несколько отличается от логической структуры гибких дисков. Минимальным адресуемым элементом жесткого диска является кластер, который может включать в себя несколько секторов. Размер кластера зависит от типа используемой таблицы FAT и от емкости жесткого диска.
На жестком диске минимальным адресуемым элементом является кластер, который содержит не сколько секторов.
Таблица FAT16 может адресовать 2 16 — 65 536 кластеров. Для дисков большой емкости размер кластера оказывается слишком большим, так как информационная емкость жестких дисков может достигать 150 Гбайт.
Например, для диска объемом 40 Гбайт размер кластера будет равен:
40 Гбайт/65536 = 655 360 байт = 640 Кбайт.
Файлу всегда выделяется целое число кластеров. При размещении на жестком диске большого количества небольших по размеру файлов они будут занимать кластеры лишь частично, что приведет к большим потерям свободного дискового пространства.
Эта проблема частично решается с помощью использования таблицы FAT32, в которой объем кластера принят равным 8 секторам или 4 килобайтам для диска любого объема.
В целях более надежного сохранения информации о размещении файлов на диске хранятся две идентичные копии таблицы FAT.
Преобразование FAT16 в FAT32 можно осуществить с помощью служебной программы Преобразование диска в FAT32, которая входит в состав Windows.
Мы рассмотрели файловую систему, имеющую название FAT, однако в последнее время все большую популярность приобретает файловая система NTFS (New Technology File System - файловая система операционных систем семейства Windows NT), которая, в частности, используется в Windows NT и Windows ХР.
Максимальный размер раздела NTFS в данный момент ограничен лишь размерами «жестких» дисков. Как и любая другая система, NTFS делит все полезное место на кластеры — блоки данных, используемые единовременно. NTFS поддерживает почти любые размеры кластеров — от 512 байт до 64 Кбайт, неким стандартом же считается кластер размером 4 Кбайт. Диск NTFS условно делится на две части. Первые 12 % диска отводятся под так называемую зону MFT (Master File Table). Это БД, представляющая собой общую файловую таблицу, строки которой соответствуют файлам тома NTFS, а столбцы - атрибутам файлов. Запись каких-либо других данных в эту область невозможна. Остальные 88 % диска является обычным пространством для хранения файлов.
Зона MFT поделена на записи фиксированного размера (обычно 1 Кбайт), и каждая запись соответствует какому-либо файлу (в общем смысле этого слова). Первые 16 файлов носят служебный характер и недоступны ОС — они называются метафайлами, причем самый первый метафайл - сам MFT. Эти первые 16 элементов MFT - единственная часть диска, имеющая фиксированное положение. Интересно, что вторая копия первых трех записей для надежности — они очень важны - хранится ровно посередине диска. Остальной MFT-файл может располагаться, как и любой другой файл, в произвольных местах диска — восстановить его положение можно с помощью его самого, «зацепившись» за самую основу первый элемент MFT.
Дефрагментация дисков.Замедление скорости обмена данными может происходить в результате фрагментации файлов. Фрагментация файлов (фрагменты файлов хранятся в различных, удаленных друг от друга кластерах) возрастает с течением времени, в процессе удаления одних файлов и записи других.
Так как на диске могут храниться сотни и тысячи файлов в сотнях тысяч кластеров, то фрагментированность файлов будет существенно замедлять доступ к ним (магнитным головкам придется постоянно перемещаться с дорожки на дорожку) и в конечном итоге приводить к преждевременному износу жесткого диска. Рекомендуется периодически проводить дефрагментацию диска, в процессе которой файлы записываются в кластеры, последовательно идущие друг за другом.
В этой статье, мы поговорим на такие темы, как организация файлов, затронем тему организации файловой структуры, а также изучим логическую структуру дисков.
Организация файловой системы
Файл, имеющий образ цельного, непрерывающегося набора байт, на самом деле разбросан «кусочками» по всему диску, причем это разбиение никак не связано с логической структурой файла: логически объединенные файлы из одного каталога совсем не обязательно должны соседствовать на диске.
Принципы размещения файлов, каталогов и системной информации на реальном устройстве (диске) называются физической организацией файловой системы.
Замечание. Различные файловые системы имеют разную физическую организацию (например, размер кластера). Основным типом устройства, которое используется для хранения файлов, являются дисковые накопители. Эти устройства предназначены для считывания и записи данных на жесткие и гибкие магнитные диски, оптические диски, flash-носители и др.
Этапы подготовки диска к записи
Процесс подготовки диска к записи данных разбивается на следующие этапы:
- Форматирование низкого уровня (физическое форматирование).
- Логическое разбиение (только для HDD).
- Логическое форматирование (высокоуровневое).
В результате выполнения процедуры физического форматирования в секторах создаются адресные метки, использующиеся для их идентификации в процессе использования диска (создаются дорожки и секторы).
Низкоуровневый формат диска не зависит от типа ОС, которая этот диск будет использовать.
В результате выполнения процедуры логического разбиения HDD делится на логические разделы (тома) перед форматированием диска под определенную файловую систему.
Раздел – это непрерывная часть физического диска, которую ОС представляет пользователю как логическое устройство (логический диск). Необходимость в разбиении на разделы возникает в следующих случаях:
- если существует ограничение на размер диска со стороны операционной системы.
- если необходимо разграничить дисковое пространство между пользователями.
- для удобства работы с разными видами информации: системный диск, архивный диск, документы и т.д.
- если есть необходимость в нескольких операционных системах или/и файловых системах.
ОС может поддерживать разные статусы разделов, особым образом отмечая разделы, которые могут быть использованы для загрузки модулей ОС, и разделы, в которых можно устанавливать только приложения и хранить файлы данных. Один из разделов диска помечается как загружаемый (основной, первичный, Primary). Именно из этого раздела считывается загрузчик ОС. А другой – как дополнительный (расширенный, Extenshion).
Разметку диска под конкретный тип файловой системы выполняют процедуры высокоуровневого, или логического, форматирования. При высокоуровневом форматировании определяется размер кластера и на диск записывается информация, необходимая для работы файловой системы, в том числе информация о доступном и неиспользуемом пространстве, о границах областей, отведенных под файлы и каталоги, информация о поврежденных областях. Кроме того, на диск записывается загрузчик ОС.
Логическое форматирование – процесс преобразования уже размеченного дискового пространства в соответствии со стандартами конкретной ОС. Единый стандарт разметки границ дискового раздела и разграничения разделов содержится в таблице разделов диска, которая находится в 1-ом секторе диска (цилиндр 0, дорожка 0, сектор 1). Таблица разделов содержит параметры диска, число разделов, размер и расположение каждого раздела и др.
Организация файлов
В общем случае, данные, содержащиеся в файле, имеют некоторую логическую структуру. Эта структура является базой при разработке программы, предназначенной для обработки этих данных.
Например, чтобы текст мог быть правильно выведен на экран, программа должна иметь возможность выделить отдельные слова, строки, абзацы и т.д. Признаками, отделяющими один структурный элемент от другого, могут служить определенные кодовые последовательности или просто известные программе значения смещений этих структурных элементов, относительно начала файла. Поддержание структуры данных может быть либо целиком возложено на приложения либо в той или иной степени может взять на себя ФС (файловую систему).
В первом случае, когда все действия, связанные со структуризацией и интерпретацией содержимого файла целиком относятся к ведению приложения. Файл представляется ФС неструктурированной последовательностью данных. Приложение формулирует запросы к ФС на ввод/вывод, используя общие для всех приложений системные средства. Например, указывая смещение от начала файла и количество байт, которые необходимо считать или записать.
Модель файла, в соответствии с которой содержимое файла представляется неструктурированной последовательностью (потоком) байт, стала популярной вместе с ОС UNIX, а теперь она широко используется в большинстве современных ОС (MS-DOS, Windows2000/NT, NetWare).
Неструктурированная модель файла позволяет легко организовать разделение файла между несколькими приложениями: разные приложения могут по-своему структурировать и интерпретировать данные, содержащиеся в файле.
Другая модель файлов, которая применялась в ОС OS/360, DEC RSX, VMS, а в настоящее время используется достаточно редко – это структурированный файл. В этом случае поддержание структуры файла поручается ОС. ФС видит файл как упорядоченную последовательность логических записей. Приложение может обращаться к ФС с запросами на ввод-вывод на уровне записей, например, «считать запись 25 из файла FILE.DOC». ФС должна обладать информацией о структуре файла, достаточной для того, чтобы выделить любую запись. ФС предоставляет приложению доступ к записи, а вся дальнейшая обработка данных, содержащаяся в этой записи, выполняется приложением. Замечание. Развитием этого подхода стали СУБД.
Способы физической организации файла
Физическая организация файла (ФОФ) – это способ размещения файла на диске. Основные критерии эффективности физической организации файлов:
- Скорость доступа к данным.
- Объем адресной информации файла.
- Степень фрагментированнности дискового пространства.
- Максимально возможно размер файла.
Фрагментация – это наличие большого числа несмежных участков свободной памяти очень маленького размера (фрагментов). Настолько маленького, что ни одна из вновь поступающих программ не может поместиться ни в одном из участков, хотя суммарный объем фрагментов может составить значительную величину, намного превышающую требуемый объем памяти.
Существует несколько способов физической организации файла. Непрерывное размещение – это простейший вариант ФОФ, при котором файлу предоставляется последовательность кластеров диска, образующих непрерывный участок дисковой памяти:
Достоинства способа: высокая скорость доступа, так как затраты на поиск и считывание кластеров файла минимальны, отсутствие фрагментации на уровне файла, минимален объем адресной информации – достаточно хранить только номер первого кластера и объем файла. Недостатки невозможно сказать, какого размера должна быть непрерывная область, выделяемая файлу, так как файл при каждой модификации может увеличить свой размер, фрагментация на уровне кластеров, из-за которой нельзя выбрать место для размещения файла целиком. Из-за этих недостатков на практике используются другие методы, при которых файл размещается в нескольких, в общем случае несмежных областях диска.
Размещение файла в виде связанного списка кластеров дисковой памяти.
При таком способе в начале каждого кластера содержится указатель на следующий кластер:
Достоинства: Адресная информация минимальна расположение файла может быть задано одним числом – номером первого кластера, фрагментация на уровне кластеров отсутствует, так как каждый кластер может быть присоединен к цепочке кластеров какого-либо файла, файл может изменять свой размер, наращивая число кластеров.
Недостатки: Сложность организации доступа к произвольно заданному месту файла – чтобы прочитать пятый по порядку кластер файла, необходимо последовательно прочитать четыре первых кластера, прослеживая цепочку номеров кластеров, количество данных файла в одном кластере не равно степени двойки (одно слово израсходовано на номер следующего кластера), а многие программы читают данные кластерами, размер которых равен степени двойки, Фрагментация на уровне файлов (файл может разбиваться на несмежные фрагменты).
При отсутствии фрагментации на уровне кластеров на диске все равно имеется определенное количество областей памяти небольшого размера, которые невозможно использовать, то есть фрагментация все же существует. Эти фрагменты представляют собой неиспользуемые части последних кластеров, назначенных файлам, так как объем файла в общем случае не кратен размеру кластера. На каждом файле в среднем теряется половина кластера. Эти потери особенно велики, когда на диске имеется большое количество маленьких файлов, а кластер имеет большой размер.
Использование связанного списка индексов (например, в FAT)
Данный способ является модификацией предыдущего метода. Файлу также выделяется память в виде связанного списка кластеров. Номер первого кластера запоминается в записи каталога, где хранятся характеристики этого файла. Остальная адресная информация отделена от кластеров файла. С каждым кластером диска связан индекс. Индексы располагаются в отдельной области диска – в файловых системах FAT это таблица (File Allocation Table):
Когда память свободна, все индексы имеют нулевое значение. Если некоторый кластер N назначен некоторому файлу, то индекс этого кластера становится равным либо номеру M следующего кластера данного файла, либо принимает специальное значение – признак того, что этот кластер является для файла последним. Индекс же предыдущего кластера файла принимает значение N, указывая на вновь назначенный кластер.
Достоинства: минимальность адресной информации, отсутствие фрагментации на уровне кластеров, отсутствие проблем при изменении размера файла, для доступа к произвольному кластеру файла не требуется последовательно считывать его кластеры, достаточно прочитать только секторы диска, содержащие таблицу индексов, отсчитать нужное количество кластеров файла по цепочке и определить номер нужного кластера, данные файла заполняют кластер целиком, следовательно имеют объем, равный степени двойки. Недостатки: Фрагментация на уровне файлов (файл может разбиваться на несмежные фрагменты).
Перечисление номеров кластеров, занимаемых этим файлом.
Достоинства: высокая скорость доступа к произвольному кластеру файла, так как здесь применяется прямая адресация, которая исключает просмотр цепочки указателей при поиске адреса произвольного кластера файла, отсутствие фрагментации на уровне кластеров. Недостатки: длина адреса зависит от размера файла и для большого файла может составить значительную величину. Данный подход с некоторыми модификациями используется в ОС UNIX.
Размер кластера по умолчанию для FAT16
В следующей таблице описаны размеры кластера по умолчанию для упомянутой в подзаголовке файловой системы:
Размер тома | Windows NT 3.51 | Windows NT 4.0 | Windows 7, Windows Server 2008 R2, Windows Server 2008, Windows Vista, Windows Server 2003, Windows XP, Windows 2000 |
---|---|---|---|
7 МБ - 8 МБ | Не поддерживается | Не поддерживается | Не поддерживается |
8 МБ - 32 МБ | 512 байт | 512 байт | 512 байт |
32 МБ -64 МБ | 1 КБ | 1 КБ | 1 КБ |
64 МБ - 128 МБ | 2 КБ | 2 КБ | 2 КБ |
128 МБ - 256 МБ | 4 КБ | 4 КБ | 4 КБ |
256 МБ - 512 МБ | 8 KB | 8 KB | 8 KB |
512 МБ -1 ГБ | 16 KB | 16 KB | 16 KB |
1 ГБ - 2 ГБ | 32 КБ | 32 КБ | 32 КБ |
2 ГБ - 4 ГБ | 64 КБ | 64 КБ | 64 КБ |
4 ГБ - 8 ГБ | Не поддерживается | 128 КБ * | Не поддерживается |
8 ГБ - 16 ГБ | Не поддерживается | 256 KB * | Не поддерживается |
> 16 ГБ | Не поддерживается | Не поддерживается | Не поддерживается |
Звездочка (*) означает, что она доступна только на носителе с размером сектора более 512 байт.
Размер кластера в виде наглядного примера
Возможно последнее предложение и формула несколько Вас смутили. Давайте попробуем объяснить проще и нагляднее. Наверняка, открыв свойства какой-то папки, Вы сталкивались с такой картиной:
Т.е размер папки с файлами и фактический размер занятого пространства на диске, собственно, отличаются в б о льшую или меньшую сторону. Это как раз связано с размером кластера, выбранным Вами (или системой) при форматировании/создании раздела.
Еще раз, - кластер, - это наименьший логический объем дискового пространства, который может быть выделен для хранения файла. Теперь попробуйте представить, что Ваш диск состоит из множества множества ячеек со своей нумерацией, куда можно положить файл. Наиболее наглядно это видно при дефрагментации (хотя там наиболее часто показан блок файловой системы, а не кластер, но всё же):
Размер этих ячеек и есть размер кластера. Теперь о том, как с этим взлетать.
Как с этим взлетать и что стоит понимать
Визуально Вы думаю представили, как оно выглядит. Давайте разбираться как работает.
Предположим, что размер кластера равен 4 КБ (как правило, - это значение по умолчанию, не считая самых старших версий систем). Так устроено, что файл, меньшего размера, помещенный туда всё равно будет занимать 4 КБ . Наглядный пример:
Два файла меньшего размера уже 8 Кб :
Т.е, условно говоря, в показанном выше примере, - Вы теряете место, - ибо хранение небольших файлов в файловой системе с б о льшими (чем размер файлов) кластерами приведет к, условно, потери (простою) места на диске.
Но при этом хранение больших файлов на малом размере кластера привет к излишней фрагментации (не критично для SSD ) этого файла на много маленьких кусочков, что потребует б о льшего времени доступа к нему и скажется на производительности. При этом, зачастую (но не всегда), свободное место теряться не будет.
Говоря проще, отсюда стоит вынести следующее:
- Вы выбираете средний (ни туда, ни сюда) размер кластера, если наверняка не знаете какие файлы у Вас будут храниться на диске, за всеми не уследить и вообще пытаетесь попасть в золотую середину ;
- Вы точно знаете, что на диске будут храниться в основном мелкие файлы и выбираете наименьший возможный размер кластера;
- Вам не важен небольшой выигрыш в производительности , ценой потери места и потому выбираете наименьший возможный размер кластера;
- Вы точно знаете, что на диске будут храниться в основном большие файлы и выбираете наибольший доступный размер кластера;
- Вы неиллюзорно важен выигрыш в производительности, ценой потери места и выбираете наибольший доступный размер кластера;
- Вы адепт майкрософт_всё_знает_лучше_меня_зачем_я_читаю_эту_статью и оставляете размер по умочанию .
Но это еще не всё. Для адептов последнего пути, далее приводится набор таблиц, которые используются Miscrosoft по умолчанию, в зависимости от размера носителя, т.е это значения по умолчанию, задаваемые системой. Пользоваться ими или нет, - дело Ваше.
Размер кластера по умолчанию для FAT32
В следующей таблице описаны размеры кластера по умолчанию для упомянутой в подзаголовке файловой системы:
Размер тома | Windows NT 3.51 | Windows NT 4.0 | Windows 7, Windows Server 2008 R2, Windows Server 2008, Windows Vista, Windows Server 2003, Windows XP, Windows 2000 |
---|---|---|---|
7 МБ - 16 МБ | Не поддерживается | Не поддерживается | Не поддерживается |
16 МБ - 32 МБ | 512 байт | 512 байт | Не поддерживается |
32 МБ - 64 МБ | 512 байт | 512 байт | 512 байт |
64 МБ - 128 МБ | 1 КБ | 1 КБ | 1 КБ |
128 МБ - 256 МБ | 2 КБ | 2 КБ | 2 КБ |
256 МБ - 8 ГБ | 4 КБ | 4 КБ | 4 КБ |
8 ГБ - 16 ГБ | 8 KB | 8 KB | 8 KB |
16 ГБ - 32 ГБ | 16 KB | 16 KB | 16 KB |
32 ГБ - 2 TБ | 32 КБ | Не поддерживается | Не поддерживается |
> 2 ТБ | Не поддерживается | Не поддерживается | Не поддерживается |
Послесловие
С точки зрения эффективности пространства, т.е сохранения свободного места на диске, конечно маленький кластер выглядит очень привлекательно и позволяет не терять большие объемы на ровном месте. С другой стороны, собственно, диски чем дальше, тем больше и дешевле, посему порой можно и принебречь потерями в угоду производительности, и, меньшей фрагментированности данных. С другой стороны, стоит ли заморачиваться, если есть SSD . С другой, - маловерятно, что на SSD вы храните терабайты фильмов, музыки, фото и других файлов, размером более мегабайта.
Что делать? Как и в случае с файлом подкачки, выбирать решение под свои цели, задачи и железо, либо попросту не заморачиваться, но тогда решительно не понятно зачем Вы это читали :)
Как и всегда, если есть какие-то вопросы, разумные мысли и послезные дополнения, то добро пожаловать в комментарии к этому материалу.
Белов Андрей (Sonikelf) Заметки Сис.Админа [Sonikelf's Project's] Космодамианская наб., 32-34 Россия, Москва (916) 174-8226
Область данных диска, отведенную для хранения файлов, можно представить как линейную последовательность адресуемых блоков (секторов). Размещая файлы в этой области, ОС должна отвести для каждого файла необходимое количество блоков и сохранить информацию о том, в каких именно блоках размещен данный файл. Существуют два основных способа использования дискового пространства для размещения файлов.
Непрерывное размещение характеризуется тем, что каждый файл занимает непрерывную последовательность блоков.
Сегментированное размещение означает, что файлы могут размещаться «по кусочкам», т.е. один файл может занимать несколько несмежных сегментов разной длины. Оба способа размещения показаны на рис. 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 – «кластер свободен». Для поиска свободного непрерывного фрагмента нужного размера система должна будет просмотреть весь массив.
Физическая и логическая структура диска
Жесткий диск состоит из одной или нескольких стеклянных или металлических пластин, каждая из которых покрыта с одной или двух сторон магнитным материалом. Для записи информации на магнитную поверхность дисков применяется следующий способ: поверхность рассматривается как последовательность точечных позиций, каждая из которых считается битом и может быть установлена в 0 или 1. Так как расположения точечных позиций определяется неточно, то для записи требуются заранее нанесенные метки, которые помогают записывающему устройству находить позиции записи. Процесс нанесения таких меток называется физическим форматированием и является обязательным перед первым использованием накопителя.
Физическое форматирование – это процесс записи на поверхность диска служебной информации, обозначающей сектора на диске (пометка начала и конца дорожки и сектора).
На каждой стороне каждой пластины размечены тонкие концентрические окружности (по ним располагаются синхронизирующиеся метки). Каждая концентрическая окружность называется дорожкой.
Количество дорожек зависит от типа диска. Нумерация дорожек начинается с 0 от внешнего края к центру диска. Когда диск вращается, головка чтения/записи считывает двоичные данные с магнитной дорожки или записывает их на нее. Нумерация сторон начинается с 0.
Группы дорожек (треков) одного радиуса, расположенных на поверхностях магнитных дисков, называются цилиндрами. Номер цилиндра совпадает с номером образующей дорожки. Жесткие диски могут иметь по несколько десятков тысяч цилиндров, на поверхности дискеты, как правило, их восемьдесят. Зная количество рабочих поверхностей, дорожек на одной стороне, размер сектора, можно определить емкость диска.
Для дискет 3.5”: 2 рабочие поверхности, 80 дорожек на каждой стороне, 18 секторов на каждой дорожке, 512 байт – каждый сектор. Тогда, емкость дискеты=21801181512=1 474 560 байтов = 1.44 Мбайт.
Каждая дорожка разбивается на секторы. Сектор – наименьшая адресуемая единица обмена данными дискового устройства с оперативной памятью. Нумерация секторов начинается с 1. Каждый сектор состоит из поля данных и поля служебной информации, ограничивающей и идентифицирующей его.
Для того чтобы контроллер диска мог найти на диске нужный сектор, необходимо задать ему все составляющие адреса сектора: номер цилиндра, номер поверхности, номер сектора ([c-h-s]).
ОС при работе с диском использует, как правило, собственную единицу дискового пространства, называемую кластером.
Кластер (ячейка размещения данных) – объем дискового пространства, участвующий в единичной операции чтения/записи, осуществляемой ОС.
Кластер – это минимальный размер места на диске, которое может быть выделено файловой системой для хранения одного файла.
Пример. Если файл имеет размер 2560 байт, а размер кластера в файловой системе определен в 1024 байта, то файлу будет выделено на диске 3 кластера.
Размер кластера зависит от формата диска и может соответствовать одному сектору или нескольким смежным секторам дорожки.
Размер кластера определяется, как правило, автоматически при логическом форматировании.
Узнать размер кластера можно следующими способами:
- В ОС Windows: Панель управления → Администрирование → Управление компьютером → Дефрагментация диска → Выделить логический диск → Анализ.
- Выбор размера кластера: Format c:/a:size.
- Создать файл небольшого размера, например документ блокнота и вывести свойства файла. Размер фала на диске будет соответствовать размеру кластера.
Новые вопросы в Информатика
Вводится последовательность, состоящая из 14 чисел. Составьте программу для нахождения суммы отрицательных чисел в последовательности.
С++ !! Вивести на екран таблицю значень функції =sin2(x). Змінна X змінюється від 0 до 10 з кроком 0,5. Написати в консольному режимі програму, викор … истати функцію повторення while
Задание 3. 1. Заполните таблицы на листе 3. 2. Заполните формулами пустые ячейки. Засушливым считается месяц, в котором количество выпавших осадков ме … ньше 15 мм (воспользуйтесь формулой СЧЕТЕСЛИ). 3. Заполните столбец Прогноз: засуха, если количество осадков < 15 мм; дождливо, если количество осадков >70 мм; нормально (в остальных случаях). 5. Переименуйте Лист 3 в Метео. 6) Установите ориентацию листа – альбомная, укажите в верхнем колонтитуле (Вид, Колонтитулы) свою фамилию, а в нижнем – дату выполнения работы. 7) Сохраните таблицу под именем метео(Фамилия класс). простите, скрин не смог прикрепить
напишите программы на языке Паскаль: 1) среди чисел от 3 до 37 определите количество чисел, кратных 4 и 9. 2) дана последовательность чисел, оканчив … ающихся 0. Определите максимальное число среди введённых.
Язык программирования Python 1. Напишіть цикл for, щоб кожен елемент у списку друкувався. lst=["koala", "cat", "fox", "panda", "chipmunk", "sloth", " … penguin", "dolphin"] 2.Напишіть цикл for, який друкує "Hello! " плюс кожне ім'я у списку. тобто: "Hello!, Sam" lst=["Sam", "Lisa", "Micha", "Dave", "Wyatt", "Emma", "Sage"] 3.Напишіть цикл for, який перебирає рядок і друкує кожну літеру. string = "Antarctica" 4.Використовуючи цикл for і метод .append(), додайте кожен елемент із префіксом Dr. до lst2. lst1=["Phil", "Oz", "Seuss", "Dre"] lst2=[] 5. Напишіть цикл for, який додає квадрат кожного числа до нового списку. lst1=[3, 7, 6, 8, 9, 11, 15, 25] lst2=[] 6. Напишіть цикл for, використовуючи оператор if, який додає кожне число до нового списку, якщо воно додатне. lst1=[111, 32, -9, -45, -17, 9, 85, -10] lst2=[] 7.Напишіть цикл for, який додає тип кожного елемента з першого списку до другого списку. lst1=[3.14, 66, "Teddy Bear", True, [], <>] lst2=[]
Петя уехал отдыхать в Марокко и решил разыграть между друзьями настоящий берберский ковёр. Приз достанется тому, кто первый угадает число, которое он … загадал. Петя оставил подсказку: если разделить это число на 5, вычесть из него 4, получится число, состоящее из 3 одинаковых чисел. Если затем взять одну из этих 3 частей, извлечь корень и прибавить 1, получится N. Напиши программу, которая прочитает число N и быстро посчитает и выведет ответ на Петину загадку. язык питон
Заполните таблицу следующим образом: в ячейке A1 запишите число -7,2, в ячейке A2 число -6,3, в ячейке A3 число -5,4. Затем выделите диапазон A1:A3, и … , потянув за правый нижний угол, растяните его до ячейки A17. Какое число будет записано в ячейке A17? Выберите правильное значение: 6,3 4,3 5,4 7,2
Сколько звёздочек напечатает эта программа? Python n = 22 for i in range (0, n // 3): print('*') В ответ запишите одно число.
Мы уже говорили с вами про размерности, рассказывали о том куда девается место на жестком диске и многое всякое-разное на эту тему. Пришла пора говорить и про размеры кластеров, ибо часто они вызывают при форматировании (не путать с дефрагментацией) множество вопросов.
Сам по себе этот размер задаётся при уже упомянутом форматировании или создании самого раздела. Доступные размеры зависят от файловой системы ( NTFS, FAT, exFAT , если мы рассматриваем Windows) и влияют не только на количественные, но и на скоростные характеристики дисковой подсистемы.
Впрочем, давайте обо всём по порядку.
- Вводная
- Размер кластера в виде наглядного примера
- Как с этим взлетать и что стоит понимать
- Тип файловой системы
- Размер кластера по умолчанию для NTFS
- Размер кластера по умолчанию для FAT32
- Размер кластера по умолчанию для FAT16
- Размер кластера по умолчанию для exFAT
- Послесловие
Вводная
Для начала разберемся, что есть кластер . Все файловые системы, которые используются Windows , организуют ваш жесткий диск на основе такой штуки как размер кластера (также известного как размер блока распределения).
Размер же кластера представляет собой наименьший объем дискового пространства, который можно использовать для хранения файла.
Если размеры файлов не достигают четного кратного размера кластера, для хранения файла необходимо использовать дополнительное пространство (до следующего кратного размера кластера). В типичном разделе жесткого диска средний объем пространства, который теряется таким образом, может быть рассчитан с использованием уравнения:
(размер кластера) / 2 * (количество файлов)
Размер кластера по умолчанию для NTFS
В следующей таблице описаны размеры кластера по умолчанию для упомянутой в подзаголовке файловой системы:
Размер тома | Windows NT 3.51 | Windows NT 4.0 | Windows 10, Windows 8, Windows 7, Windows Server 2008 R2, Windows Server 2008, Windows Vista, Windows Server 2003, Windows XP, Windows 2000 |
---|---|---|---|
7 МБ - 512 МБ | 512 байт | 4 КБ | 4 КБ |
>512 МБ - 1 ГБ | 1 КБ | 4 КБ | 4 КБ |
1 GB - 2 GB | 2 КБ | 4 КБ | 4 КБ |
2 ГБ - 2 ТБ | 4 КБ | 4 КБ | 4 КБ |
2 ТБ - 16 ТБ | Не поддерживается* | Не поддерживается* | 4 КБ |
16 ТБ - 32 ТБ | Не поддерживается* | Не поддерживается* | 8 KB |
32 ТБ - 64 ТБ | Не поддерживается* | Не поддерживается* | 16 KB |
64 TB - 128 TB | Не поддерживается* | Не поддерживается* | 32 КБ |
128 TB - 256 TB | Не поддерживается* | Не поддерживается* | 64 КБ |
> 256 ТБ | Не поддерживается | Не поддерживается | Не поддерживается |
Звездочка (*) означает, что она не поддерживается из-за ограничений основной загрузочной записи ( MBR ).
Структура логического диска
Для организации логического диска каждая ОС разделяет его на две части:
- системная область.
- область данных (Data).
Системная область предназначена для хранения служебной информации и управляет использованием области данных: применяется для регистрации состояния каждого участка диска. Эта область создается при форматировании и обновляется при операциях с файлами.
В системной области находятся:
- Загрузочная запись – начальная область логического диска, содержащая небольшую программу, инициализирующую процесс загрузки ОС. Содержит блок параметров диска (DPB – Disk Parameter Block) и системный загрузчик (SB – System Bootstrap). Загрузочная запись системного диска называется главной загрузочной записью – Master Boot Record.
- Таблица размещения файлов («таблица» — условное обозначение).
- Корневой каталог – встроенное оглавление информации, содержащейся в области данных. Корневой каталог на диске единственный, совпадает с именем соответствующего диска и не может быть удален программными средствами.
Область данных предназначена для регистрации данных, хранящейся на диске. Содержит файлы и каталоги, подчиненные корневому каталогу. С учетом общей структуры логического диска структуру всего дискового пространства, разбитого на несколько разделов, можно представить следующим образом:
Вся информация, необходимая для начальной загрузки компьютера, находится в самом первом секторе жёсткого диска. Эта информация называется главной записью загрузки — MBR (Master Boot Record).
Расширенная таблица разделов состоит из двух элементов: первый элемент расширенной таблицы разделов для первого логического устройства указывает на его загрузочный сектор, второй элемент — на EBR следующего логического устройства (Extended Boot Record, EBR — Расширенная загрузочная запись).
16) Установите соответствие между каталогами и их содержимым в ОС Linux
bin, boot, dev, etc, home | файлы подключенных устройств, настройки ОС и программ, каталоги пользователей, ядро ОС и данные для загрузки, команды ОС
17) Запишите маску, по которой можно отобрать файлы, имя которых начинается с латинской буквы «d», а расширение состоит из трёх символов и заканчивается на «b».
14) кластер
15) 2
16)
17) d*. b
Размер кластера по умолчанию для exFAT
В следующей таблице описаны размеры кластера по умолчанию для упомянутой в подзаголовке файловой системы:
Размер тома | Windows 7, Windows Server 2008 R2, Windows Server 2008, Windows Vista, Windows Server 2003, Windows XP |
---|---|
7 МБ - 256 МБ | 4 КБ |
256 МБ - 32 ГБ | 32 КБ |
32 ГБ - 256 ТБ | 128 КБ |
> 256 ТБ | Не поддерживается |
Ну и напоследок послесловие, которое немного резюмирует всё это дело. Еще раз, да.
Тип файловой системы
Как уже говорилось, диапазон доступного размера кластера зависит от файловой системы. Узнать её можно, нажав правой кнопкой мыши на диске в проводнике (" Мой компьютер "), и выбрав пункт " Свойства ".
В соответствующей колонке вы увидите, что за файловая система у Вас выбрана при форматировании для диска или внешнего накопителя (если Вы работаете с ним).
Чтобы узнать текущий размер файла, запустите командную строку ("поиск - cmd " или " WIN+R " на клавиатуре - cmd ) и введите:
fsutil fsinfo ntfsinfo X:
Результат не заставит себя ждать (не кликабельно):
Читайте также: