16    Поиск файла в NTFS.

В отличие от FAT, здесь чем больше список файлов, тем больше скорость поиска. Предположим на нужно найти на диске С в директиве Т файл аbсd. Логика поиска заключается в следующем: у нас существует загрузочный кластер, где содержится информация о томе. В частности там есть информация о том, где начинается главная файловая таблица. Если есть такая информация, то в соответствии со структурой главной файловой таблицы у нас есть метафайл, у него есть имя _____, и номер записи, в которой он находится вот такой _____. Следовательно, ОС когда она приступает к поиску файла, она после того, как просмотрела информацию из загрузочного кластера  обращается в главную файловую таблицу и знает где там расположена пятая запись. Обращается к этой пятой записи. Там нас интересует имя - $. И поскольку эта запись содержит информацию о каталоге, то там есть соответствующий атрибут IR. Для определенности мы предполагаем, что все каталоги и все файлы в памяти. В этом атрибуте есть пара записей, которая содержит имя и номер записи главной файловой таблицы. В данном случае нас интересует имя нашего каталога и номер записи, в которой содержится информация об этом каталоге: Т-101. Здесь еще и другие атрибуты. Итак, ОС попала в пятую запись, посмотрев список файлов в атрибуте, определяет, что информация о данном каталоге находится в 101 записи главной файловой таблицы. Адрес известен  и ОС отправляется в 101 запись  и там существует атрибут с именем T. И поскольку это информация о каталоге, то присутствует атрибут IR, который содержит информацию о файлах входящих в этот каталог. А каждый элемент этой информации это пара - имя файла и номер записи. Т.е. здесь у нас есть такая пара abcd и номер записи 143. ОС отправляется в 143 запись, там также есть атрибут (в данном случае он содержит имя abcd). Мы предположили, что файл у нас маленький, и вся информация файла находится в атрибуте data. ОС считывает всю эту информацию.

 

Hosted by uCoz