Смекни!
smekni.com

Курс лекций Операционным системам и среды (стр. 21 из 21)

Первые 16 записей таблицы MFTсоответствуют метафайлам. Копии этих первых записей располагаются посередине диска.

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

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

Выделение дискового пространства

Каждый том NTFS (например, дисковый раздел) содержит файлы, каталоги, битовые массивы и другие структуры данных. Каждый том организован как линейная последовательность блоков (которые в терминологии компании Microsoft называются кластерами), причем размер блоков для каждого тома фиксирован (в зависимости от размера тома он может изменяться от 512 байт до 64 Кбайт). Большинство дисков NTFS использует блоки размером 4 Кбайт — это компромисс между применением больших блоков (для эффективной передачи данных) и использованием маленьких блоков (для снижения внутренней фрагментации).

Итак, у системы есть файлы - и ничего кроме файлов. Что включает в себя это понятие на NTFS?

  • Прежде всего, обязательный элемент - запись в MFT, ведь, как было сказано ранее, все файлы диска упоминаются в MFT. В этом месте хранится вся информация о файле, за исключением собственно данных. Имя файла, размер, положение на диске отдельных фрагментов, и т.д. Если для информации не хватает одной записи MFT, то используются несколько, причем не обязательно подряд.
  • Опциональный элемент - потоки данных файла. Может показаться странным определение "опциональный", но, тем не менее, ничего странного тут нет. Во-первых, файл может не иметь данных - в таком случае на него не расходуется свободное место самого диска. Во-вторых, файл может иметь не очень большой размер. Тогда идет в ход довольно удачное решение: данные файла хранятся прямо в MFT, в оставшемся от основных данных месте в пределах одной записи MFT. Файлы, занимающие сотни байт, обычно не имеют своего "физического" воплощения в основной файловой области - все данные такого файла хранятся в одном месте - в MFT.

Каждый файл на диске в системе NTES представлен с помощью потоков данных (streams), то есть у файла нет «просто данных», а есть «потоки данных». Чтобы правильнее понять эту сущность (поток данных), достаточно знать, что один из потоков имеет привычный нам смысл — это собственно данные файла. Кстати, большинство атрибутов файла (за исключением основных) — это тоже потоки данных. Таким образом, получается, что базовая сущность у файла только одна - номер в MFT, а всё остальное опционально.

Данный подход довольно удобен. Так, файлу можно назначить еще один поток данных, записав в него любые данные, например информацию об авторе и содержании файла, как это сделано в Windows 2000 (эта информация представлена на одной из вкладок диалогового окна свойств файла). Интересно, что эти дополнительные потоки н е видны стандартными средствами для работы с файлами операционной системы: наблюдаемый размер файла — это лишь размер потока основных (традиционных) данных. Можно, к примеру, удалить файл нулевой длины, и при этом освободится несколько мегабайтов свободного места — просто потому, что какая-нибудь «хитрая» программа или технология назначила ему поток дополнительных (альтернативных) данных такого большого размера.

Модель отслеживания дисковых блоков состоит в том, что они выделяются последовательными участками, насколько это возможно (из соображений эффективности). Например, если первый логический блок потока помещен в блок 20 диска, то система будет очень стараться поместить второй логический блок в блок 21, третий логический блок — в блок 22 и т. д. Одним из способов достижения непрерывности этих участков является выделение дискового пространства по нескольку блоков за один раз (по мере возможности).

Блоки потока описываются последовательностью записей, каждая их которых описывает последовательность логически смежных блоков. Для потока без пропусков будет только одна такая запись. К этой категории принадлежат такие потоки, которые записаны по порядку с начала и до конца. Для потока с одним пропуском (например, определены только блоки 0-49 и блоки 60-79) будет две записи. Такой поток может быть получен при помощи записи первых 50 блоков, а затем пропуском до 60 блока и записи еще 20 блоков. Когда такой пропуск считывается, то все недостающие байты — нулевые. Файлы с пропусками называются разреженными файлами ( sparse files ). Каждая запись начинается с заголовка, в котором дается смещение первого блока потока. Затем идет смещение первого не описанного данной записью блока. В приведенном выше примере в первой записи будет заголовок (0,50) и будут даны дисковые адреса этих 50 блоков. Во второй записи будет заголовок (50,20) и дисковые адреса этих 20 блоков. За заголовком записи следует одна или несколько пар (в каждой дается дисковый адрес и длина участка). Дисковый адрес — это смещение дискового блока от начала раздела; длина участка — это количество блоков в участке. В записи участка может быть столько пар, сколько необходимо.

Доступ к файлу (получение информации, списка дисковых адресов файла) осуществляется по имени.

Каталог на NTFS представляет собой специфический файл, хранящий ссылки на другие файлы и каталоги, создавая иерархическое строение данных на диске. Файл каталога поделен на блоки, каждый из которых содержит имя файла, базовые атрибуты и ссылку на элемент MFT, который уже предоставляет полную информацию об элементе каталога. Внутренняя структура каталога представляет собой бинарное дерево. Вот что это означает: для поиска файла с данным именем в линейном каталоге, таком, например, как у FAT-а, операционной системе приходится просматривать все элементы каталога, пока она не найдет нужный. Бинарное же дерево располагает имена файлов таким образом, чтобы поиск файла осуществлялся более быстрым способом - с помощью получения двухзначных ответов на вопросы о положении файла. Вопрос, на который бинарное дерево способно дать ответ, таков: в какой группе, относительно данного элемента, находится искомое имя - выше или ниже? Мы начинаем с такого вопроса к среднему элементу, и каждый ответ сужает зону поиска в среднем в два раза. Файлы, скажем, просто отсортированы по алфавиту, и ответ на вопрос осуществляется очевидным способом - сравнением начальных букв. Область поиска, суженная в два раза, начинает исследоваться аналогичным образом, начиная опять же со среднего элемента.

Характеристики NTFS

Характеристика Значение
Максимальный размер диска 16 Эбайт (1 Эбайт=264 бат=16 млрд Гбайт)
Минимальный размер диска 10 Мбайт
Размер файла 16 Эбайт
Количество записей в MFT 248
Длина пути Не ограничена
Количество элементов в корневом каталоге Не ограничено
Размер кластера 1 – 128 сек = 512 – 64 Кбайт
Поддержка длинных имен да

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

1) NTFS лучше всего подходит для использования с томами размером более 400 МБ. С увеличением размера тома производительность файловой системы NTFS не падает, как у FAT.

2) Благодаря способности к восстановлению в NTFS отсутствует необходимость использования каких-либо программ восстановления диска.

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

4) NTFS имеет встроенную поддержку сжатия дисков.

5) Следующее, очень полезное свойство файловой системы NTFS - это возможность введения квот. Это свойство, как правило необходимо системным администраторам, больших компаний, где работают большое количество пользователей, у которых нет привычки следить за актуальностью информации, и которые хранят ненужные файлы, тем самым занимая дисковое пространство. Так как администратор не может проследить за всем этим, он может ввести квоту на использование диска определенному пользователю. После установки квот пользователь может хранить на томе ограниченный объем данных, в то время как на этом диске может оставаться свободное пространство. Если пользователь превысит выданную ему квоту, в журнал событий будет внесена соответствующая запись. Чтобы включить квоты на диске нужно прежде всего, чтобы он был в формате NTFS, затем в свойствах папки (Вид) убрать флажок Использовать простой общий лоступ. Это нужно для того, чтобы в свойствах диска появилась вкладка Квота.

6) Размер кластера.

Недостатки:

1) Из-за дополнительного расхода дискового пространства файловую систему NTFS не рекомендуется использовать с томами размером менее 400 МБ. Такой расход объясняется необходимостью хранения системных файлов NTFS (в разделе размером 100 МБ для этого требуется около 4 МБ).

2) С помощью файловой системы NTFS нельзя форматировать дискеты. Windows NT форматирует дискеты с помощью FAT, так как объем служебной информации, необходимой для функционирования NTFS, не помещается на дискете.

3) Более высокие требования к объему оперативной памяти по сравнению с FAT 32/

4) Больший износ диска.