В файловой системе FAT32, адресующая 232=4,294,967,296 кластеров. используется системная структура – таблица FAT. С каждым блоком диска (кластером) связывается одна запись таблицы FAT (номер записи = номеру кластера). Если кластер с номером К распределен некоторому файлу, то в К-той записи таблицы FAT содержится номер следующего кластера данного файла (это число является также и номером той записи таблицы FAT, в которой содержится информация о продолжении файла!).
Итак, FAT – таблица, содержащая столько строк, сколько кластеров на диске. В каждой строке содержатся данные одного из четырех типов: свободный кластер (на рисунке пусто), сбойный кластер (на рисунке отмечен буквой b), ссылка на следующий кластер файла (на рисунке числа), признак конца файла (на рисунке #).
Таблица FAT
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | |
# | # | # | b |
Диск
A1 | A2 | B1 | C1 | B2 | A3 | A4 |
В NTFS принято следующее решение: действительно запись в MFT – файле имеет достаточно большой размер (1 Кб = 1024 байт). Кроме того, различаются начальные записи и записи продолжений, и если файл занимает очень много места, ему может быть выделена одна запись начальная и несколько записей – продолжений. В начальной записи стоит ссылка на запись продолжение. А в записи – продолжении перечисляются номера следующих кластеров файла и стоит ссылка на запись-продолжение (возможно, пустая). Таким образом, информация о занимаемых кластерах может занять несколько записей в файле MFT. Эти записи в общем случае располагаются не рядом (так как они занимаются по мере необходимости).
NTFS так же является 32-разрядной файловой системой, следовательно под номер кластера выделяется 32 бита (4 байта), размер кластера принято брать равным 8 секторов, то есть 8сек = 8*512 = 4096 байт (далее будем приближенно брать 4000 байт). Так как ссылка на продолжение содержится в записи MFT – файла, то чтобы добраться до конца файла приходится последовательно читать все MFT – записи (некоторое замедление!).
NTFS фрагмент MFT- файла | ||
… | ||
имя атрибуты дата время 37 38 … 57 112…190 начальная 33 | ||
191 192 235 2 3 4 5 300 301 302 303 304…503 продолжение нет | ||
… | ||
Так же сравним каталоги:
Каталоги могут непосредственно содержать значения характеристик файлов, как это сделано в файловой системе FAT, или ссылаться на таблицы. Каталоги могут образовывать иерархическую структуру за счет того, что каталог более низкого уровня может входить в каталог более высокого уровня.
В каталоге FAT16, FAT32 содержится следующая информация (размер записи = 32 байта):
- Имя файла (как и у NTFS)
- Расширение (как и у NTFS)
- Базовые атрибуты (как и у NTFS)
- Время последнего изменения (как и у NTFS)
- Дата последнего изменения (как и у NTFS)
- Размер (как и у NTFS)
- Номер первого кластера (номер записи в таблице FAT)
В каталоге NTFS содержится следующая информация (размер записи = 1024 байт):
- — // — // — тоже самое что и у FAT
- Номер записи в MFT-файле, в которой подробная информация об этом файле
Покажите, что дает применяемый NTFS метод транзакций. Проведите операцию копирования файла с одного места диска на другое, указывая соответствующие записи в журнале транзакций.
NTFS — отказоустойчивая система, которая вполне может привести себя в корректное состояние при практически любых реальных сбоях. Любая современная файловая система основана на таком понятии, как транзакция — действие, совершаемое целиком и корректно или не совершаемое вообще. У NTFS просто не бывает промежуточных (ошибочных или некорректных) состояний — квант изменения данных не может быть поделен на до и после сбоя, принося разрушения и путаницу — он либо совершен, либо отменен.
Для того, чтобы скопировать файл с одного места на другой, на одном и том же диске, фактически происходит новая запись копии этого файла на этот жесткий диск, для этого сначала записываем данные о копии в MFT – файл. Так как это файл (фиксированной структуры), то может потребоваться сначала его расширить. Затем надо записать данные в обычный каталог. При этом тоже может потребоваться изменить размеры файла-каталога, то есть тоже надо искать свободное место, изменять данные в MFT-файле (добавлять номер кластера в список, изменять размер, дату последнего изменения и т.д.). Затем следует найти свободное место для собственно записываемого файла (копии). Наконец, начать запись файла. В конце в журнал транзакций следует занести запись о завершении физической записи на диск.
_______________
Посчитать, сколько будет потрачено времени на доступ к данным. Имеется свободный кэш из 4 записей. Последовательность обращений к страницам оперативной памяти следующая (в скобках указан тип запроса): 2(read), 67(write), 2(read), 4(write), 7(write), 9(read), 2(write), 3 (write).
Уточню у ВСМ
_______________