Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Жесткие диски и их интерфейсы.doc
Скачиваний:
63
Добавлен:
29.03.2015
Размер:
2.23 Mб
Скачать

Ntfs Структура ntfs

Файловая система NTFS (New Technology File System – файловая система новой технологии) является сложной файловой системой, разработанной независимо от системы FAT.

При установке NTFS, диск разделяется на две неравные части: первая в начале диска отводиться под специальную таблицу MFT (Master File Table - главная файловая таблица), называется MFT - зоной и занимает порядка 12% от общего размера диска, вторую часть занимают собственно ваши данные. Это основа NTFS. Каждая запись в MFT соответствует какому-либо файлу и занимает около 1 Kb. По своей сути это каталог всех файлов находящихся на диске.

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

Обратимся теперь к записи файла MFT. В этом месте хранится вся информация о файле, за исключением собственно данных. Имя файла, размер, положение на диске отдельных фрагментов, и т.д. Если для информации не хватает одной записи MFT, то используются несколько, причем не обязательно подряд. Если данных в файле не много, то они наоборот целиком хранятся в записи файла MFT. Это значит что небольшие файлы и каталоги (обычно до 1500 байт) могут полностью содержаться внутри записи MFT. Подобный подход обеспечивает очень быстрый доступ к маленьким файлам.

Имя файла может иметь длину до 255 символов, при этом допустимы любые символы, включая полный набор национальных алфавитов, так как данные представлены в Unicode (65535 разных символов).

Как и файловой системе FAT файлы в NTFS записываются в виде последовательности кластеров. Кластеры в файловой системе NTFS могут принимать размеры от 512 байт до 64 Кб. Стандартным значением длины кластера является размер 4 Кб.

Рассмотрим еще некоторые особенности файловой системы NTFS.

Каталоги, эффективность при поиске

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

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

Журналирование, обеспечение отказоустойчивости

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

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

Пример: Идет запись данных на диск. Вдруг, – отключается питание и система перезагружается. Что при этом происходит?

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

Ну а если ошибка произошла при записи в журнал? Тоже ничего страшного: транзакция либо еще и не начиналась (идет только попытка записать намерения её произвести), либо уже закончилась - то есть идет попытка записать, что транзакция на самом деле уже выполнена. В последнем случае при следующей загрузке система сама вполне разберется, что на самом деле всё и так записано корректно, и не обратит внимания на «незаконченную» транзакцию.

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

Сжатие

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

Размер сжатого файла или папки будет зависеть от типа файла. Например, при сжатии документа Word можно ожидать довольно значительного сжатия – около 70%. С другой стороны, при сжатии графического файла вы не достигнете высокого уровня компрессии (т.к. информация в этих файлах уже сжата).