10
В области дат находятся все
файлы и каталоги. Она разбита на кластеры. Номера кластеров соотв-ют номерам блоков нашей
файловой таблицы.
Логика поиска файла на диске.
Мы как пользователи имеем дело
с логической иерархической древовидной структурой. Предположим нам необходимо
найти на диске А некоторый файл. А:\ ab.txt-он
существует. Что делает ОС? Она обращается в нулевой сектор -область начального
загрузчика. Для того, чтобы опр-ть параметры данного носителя(файловую
систему, хар-ки данного диска). Затем ОС обращается в область корневого
каталога, которая разбита на дескрипторы. У каждого дескриптора есть
соответствующие поля:
┌───┬──┬───┬──┬──┬───┐
│
1 │ │Ab │ │
│ T
│ Имя файла
├───┼──┼───┼──┼──┼───┤
│
1 │ │txt│ │
│ │ расширение
├───┼──┼───┼──┼──┼───┤
│
1 │ │20h│ │
│10h│ атрибут
├───┼──┼───┼──┼──┼───┤
│...│ │...│ │
│ │
├───┼──┼───┼──┼──┼───┤
│
7
│ │ 4 │ │
│60 │ номер начального
кластера
├───┼──┼───┼──┼──┼───┤
│...│ │...│ │
│ │
└───┴──┴───┴──┴──┴───┘
ОС попав в область корневого каталога начинает просматривать каждый дескриптор один за
другим подряд. Пока не найдет дескриптор
в поле имени которого находится набор символов как в том файле, который мы
ищем. Потом ОС обращается в поле
расширения, чтобы убедится, что набор символов в поле расширения совпадает с
набором символов нашего файла.
Ос обращается в поле 3-
атрибут. Здесь, как правило обнаруживает 16-ричное
значение, которое должно сказать, что это признак каталога.
После она обращается в поле 7-номер
начального кластера(нр 4).она обращается в кластер с
данным номером. Там считывает информацию с кластера. Обращается в FAT таблицу. Обращается в блок, номер которого
соответствуют номеру кластера(4). Там содержится вариант информации, о том где находится продолжение или признак конца файла. Предположим файл продолжается в 6 кластере. ОС обр-ся в 6
кластер. Считывает информацию. Обр-ся в FATтаблицу. Там определенная информация в соотв. блоке.
Инфор-ция о продолжении файла в 9 кластере. ОС обр-ся в обл. данных в 9
кластер. Считывает информацию. Обр-ся в блок 9.Здесь например нах-ся признак
конца файла. Т.о.,ОС
опр-ет цепочку кластеров. В данном случае она состаит из 3 кластеров. ОС
считывает информацию из кластеров,
получает информацию из всего файла.
┌────────────────┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
│ Область данных │ │ │
│ 4 │ │ 6 │ │
│ 9 │
├────────────────┴───┴───┴───┴───┴───┴^──┴───┴───┴^─┬┤
│ ┌──────┘
┌─────────┘ ││
├────────────────┬───┬───┬───┬─┴─┬───┬──┴┬───┬───┬──v┤
│ FAT
│ │
│ │ 6 │ │
9 │ │ │50F│
└────────────────┴───┴───┴───┴───┴───┴───┴───┴───┴───┘
Предположим файл нах-ся на диске в директории:
A:\T\ef.txt
┌───┬───┬───┬──┬──┬───┐
│ 1 │ . │..
│ │ │Ef │
├───┼───┼───┼──┼──┼───┤
│ 2 │
│ │ │ │Txt│
├───┼───┼───┼──┼──┼───┤
│ 3 │10h│10h│
│ │20h│
├───┼───┼───┼──┼──┼───┤
│...│
│ │
│ │ │
├───┼───┼───┼──┼──┼───┤
│ 7 │60 │ 0 │ │ │100│
├───┼───┼───┼──┼──┼───┤
│...│
│ │
│ │ │
└───┴───┴───┴──┴──┴───┘
Ос обращается в начальный загрузчик.Считывает информацию о носителе. Обр-ся в обл. корневого
каталога. Также подряд перебирает дескрипторы. . Пока
не найдет дескриптор в поле имени
которого находится набор символов как в том файле, который мы ищем. Потом ОС обращается в поле расширения.
Информации в этом поле нет. ОС обращается в поле 3 .Там будет 16-ричное число.
Данный дескриптор содержит информацию о признаке подкаталога. ОС в 7 поле -
адреса, номера начального кластера, кот. Содержит информацию
о этой директории. Ос обращается в этот кластер. Она
увидит, что этот кластер содержит
дескриптор. Причем в поле имени которого расположен символ «.», так же
нет расширения ,
в поле 3 содержит признак каталога. В поле 7 этот дескриптор содержит
информацию о самом каталоге. Следующий дискриптор содержит в поле 1-«..»-признак
каталога. В поле 7-не будет информации.Этот дискриптор
содержит информацию о вышестоящем каталоге. Поэтому, если мы пишем команду cd.., то мы тем самым перемещаемся .